Confronto API tra Framework
INFO
Quando adatti uno script a un altro framework, cambiano le funzioni per giocatore, denaro, item e job. Questa nota mostra i pattern corrispondenti.
| Obiettivo | Dettagli |
|---|---|
| Cosa imparerai | • Pattern equivalenti ESX/QBCore/Qbox/ox • Adattare uno script • Evitare errori comuni |
| Prerequisiti | • Introduzione framework (16/01) |
1. Ottenere il Player Object
-- ESX (client)
local ESX = exports['es_extended']:getSharedObject()
-- ESX (server)
local xPlayer = ESX.GetPlayerFromId(source)
-- QBCore (server)
local Player = QBCore.Functions.GetPlayer(source)
-- Qbox/ox (server)
local player = Ox.GetPlayer(source) -- o esx::GetPlayer, dipende dalla versione2. Denaro
-- ESX
xPlayer.getMoney() -- cash
xPlayer.getAccount('bank').money
xPlayer.addMoney(100)
xPlayer.removeMoney(50)
-- QBCore
Player.Functions.GetMoney('cash')
Player.Functions.GetMoney('bank')
Player.Functions.AddMoney('cash', 100)
Player.Functions.RemoveMoney('bank', 50)3. Item
-- ESX (senza ox)
xPlayer.getInventoryItem('item')
xPlayer.addInventoryItem('item', 1)
xPlayer.removeInventoryItem('item', 1)
-- ESX (con ox_inventory) / Qbox
exports.ox_inventory:GetItem(source, 'item')
exports.ox_inventory:AddItem(source, 'item', 1)
exports.ox_inventory:RemoveItem(source, 'item', 1)
-- QBCore (qb-inventory)
Player.Functions.GetItemByName('item')
Player.Functions.AddItem('item', 1)
Player.Functions.RemoveItem('item', 1)4. Job
-- ESX
local job = xPlayer.getJob()
xPlayer.setJob('police', 2)
-- QBCore
local job = Player.PlayerData.job
Player.Functions.SetJob('police', 2)5. Eventi Client/Server (uguali ovunque)
La comunicazione eventi non cambia:
-- client
TriggerServerEvent('resource:event', data)
RegisterNetEvent('resource:event', function() end)
-- server
RegisterNetEvent('resource:event')
AddEventHandler('resource:event', function(data) end)6. Callback
-- ESX
ESX.TriggerServerCallback('resource:callback', function(result) end, args)
-- ox_lib (funziona ovunque con ox_lib)
lib.callback.register('resource:callback', function(source, args) end) -- server
lib.callback.await('resource:callback', args) -- client7. Adattare uno Script (procedura)
- Trova tutte le funzioni del framework usate (
xPlayer.,QBCore., ecc.) - Sostituiscile con l’equivalente del target (tabella sopra)
- Attenzione a: nome database, tabelle users/characters, identificatori
- Testa le funzioni di denaro/item/job una per una
WARNING
Il cambio framework non è solo sostituire funzioni: cambiano anche la struttura del DB (es. ESX usa
identifier, QBCore usacitizenid) e le tabelle. Un porting superficiale produce bug economici.
Verifica
- Tutte le chiamate framework sostituite
- Database allineato (identifiers/tabelle)
- Denaro/item/job testati
- callback migrate a lib.callback o equivalente
TIP
Prossimo passo: 03 - Framework Agnostic
Torna alla: Indice Generale