Olá jogadores do FiveM! Bem-vindo a este tutorial sobre como converter scripts ESX em QBCore (e vice-versa). Se você conhece FiveM, provavelmente sabe que ESX é um dos frameworks mais populares usados para criar scripts e mods. No entanto, recentemente, uma nova estrutura chamada QBCore ganhou popularidade, oferecendo uma gama de recursos e melhorias interessantes.
A conversão de seus scripts ESX para o QBCore pode trazer inúmeras vantagens, como melhor desempenho, funcionalidade aprimorada e acesso a uma comunidade crescente de desenvolvedores do QBCore.
NOVO: Lançamos uma ferramenta de conversão – clique aqui para conferir!
Índice
Lista completa de funções
Esta é uma lista para a conversão de scripts (funções para cliente e servidor).
Atualizado: Outubro de 2023
Lado do cliente
esx:onPlayerDeath -> hospital:server:SetDeathStatus esx:playerLoaded -> QBCore:Client:OnPlayerLoaded esx:showAdvancedNotification -> QBCore:Notify esx:showHelpNotification -> QBCore:Notify esx:showNotification -> QBCore:Notify ESX.GetPlayerData -> QBCore.Functions.GetPlayerData ESX.IsPlayerLoaded -> Nenhum ESX.SetPlayerData -> QBCore:Player:SetPlayerData ESX.TriggerServerCallback -> QBCore.Functions.TriggerCallback ESX.Game.DeleteObject -> Nenhum (pode usar DeleteEntity nativo do FiveM) ESX.Game.DeleteVehicle -> QBCore.Functions.DeleteVehicle ESX.Game.GetClosestObject -> Nenhum (Pode usar GetClosestObjectOfType nativo do FiveM) ESX.Game.GetClosestPed -> QBCore.Functions.GetClosestPed ESX.Game.GetClosestPlayer -> QBCore.Functions.GetClosestPlayer ESX.Game.GetClosestVehicle -> QBCore.Functions.GetClosestVehicle ESX.Game.GetObjects -> Nenhum (usa enumeração) ESX.Game.GetPedMugshot -> Nenhum (pode usar RegisterPedheadshot nativo do FiveM) ESX.Game.GetPeds -> Nenhum (usa enumeração) ESX.Game.GetPlayers -> QBCore.Functions.GetPlayers ESX.Game.GetPlayersInArea -> Nenhum (usa enumeração) ESX.Game.GetVehicleInDirection -> Nenhum (usa fundição de raios) ESX.Game.GetVehicles -> QBCore.Functions.GetVehicles ESX.Game.GetVehiclesInArea -> Nenhum (usa enumeração) ESX.Game.IsSpawnPointClear -> Nenhum (usa getvehiclesinarea) ESX.Game.SetVehicleProperties -> QBCore.Functions.SetVehicleProperties ESX.Game.GetVehicleProperties -> QBCore.Functions.GetVehicleProperties ESX.Game.SpawnLocalObject -> Nenhum (não se preocupe) ESX.Game.SpawnLocalVehicle -> Nenhum (não se preocupe) ESX.Game.SpawnObject -> Nenhum (pode usar o FiveM Native CreateObject) ESX.Game.SpawnVehicle -> QBCore.Functions.SpawnVehicle ESX.Game.Teleport -> (pode usar FiveM Native SetEntityCoords e SetEntityHeading) ESX.Game.Utils.DrawText3D -> QBCore.Functions.DrawText3D
Lado do servidor
ESX.CreatePickup -> Nenhum (irrelevante e feito por meio do qb-inventory) ESX.GetItemLabel -> Nenhum (retorna apenas o rótulo do item) ESX.GetPlayerFromId -> QBCore.Functions.GetPlayer ESX.GetPlayerFromIdentifier -> QBCore.Functions.GetPlayerByCitizenId ESX.GetPlayers -> QBCore.Functions.GetPlayers ESX.RegisterServerCallback -> QBCore.Functions.CreateCallback ESX.RegisterUsableItem -> QBCore.Functions.CreateUseableItem ESX.SavePlayer -> QBCore.Player.Save ESX.SavePlayers -> Nenhum (não se preocupe) ESX.Trace -> Use QBCore.Debug, mas não se preocupe em converter isso ESX.UseItem -> QBCore.Functions.UseItem
xPlayer
xPlayer.addAccountMoney -> xPlayer.Functions.AddMoney (conta) xPlayer.addInventoryItem -> xPlayer.Functions.AddItem (nome do item) xPlayer.addMoney -> xPlayer.Functions.AddMoney (dinheiro) xPlayer.addWeapon -> xPlayer.Functions.AddItem (nome da arma) xPlayer.addWeaponAmmo -> xPlayer.Functions.AddItem (nome da munição) xPlayer.addWeaponComponent -> xPlayer.Functions.AddItem (nome do componente) xPlayer.canCarryItem -> Nenhum (xPlayer.Functions.AddItem já verifica isso) xPlayer.canSwapItem -> Nenhum (xPlayer.Functions.AddItem já verifica isso) xPlayer.getAccount -> Nenhum (usar dados do jogador) xPlayer.getAccounts -> Nenhum (usar dados do jogador) xPlayer.getCoords -> Nenhum (pode usar FiveM Native GetEntityCoords) xPlayer.getGroup -> xPlayer.Functions.GetPermission xPlayer.getIdentifier -> xPlayer.Functions.GetIdentifier xPlayer.getInventory -> QBCore.Player.LoadInventory xPlayer.getInventoryItem -> xPlayer.Functions.GetItemByName xPlayer.getJob -> Nenhum (usar dados do jogador) xPlayer.getLoadout -> Nenhum (foder loadouts) xPlayer.getMoney -> Nenhum (usar dados do jogador) xPlayer.getName -> Nenhum (usar dados do jogador) xPlayer.getWeapon -> xPlayer.Functions.GetItemByName (nome da arma) xPlayer.getWeight -> xPlayer.Player.GetTotalWeight xPlayer.hasWeapon -> xPlayer.Functions.GetItemByName (nome da arma) xPlayer.hasWeaponComponent -> xPlayer.Functions.GetItemByName (nome do componente) xPlayer.kick -> xPlayer.Functions.Kick xPlayer.removeAccountMoney -> xPlayer.Functions.RemoveMoney (conta) xPlayer.removeInventoryItem -> xPlayer.Functions.RemoveItem (nome do item) xPlayer.removeMoney -> xPlayer.Functions.RemoveMoney (dinheiro) xPlayer.removeWeapon -> xPlayer.Functions.RemoveItem (nome da arma) xPlayer.removeWeaponAmmo -> xPlayer.Functions.RemoveItem (nome da munição) xPlayer.removeWeaponComponent -> xPlayer.Functions.RemoveItem (nome do componente) xPlayer.setAccountMoney -> xPlayer.Functions.SetMoney (conta) xPlayer.setCoords -> None (usado para teletransporte) xPlayer.setInventoryItem -> xPlayer.Functions.AddItem (nome do item) xPlayer.setJob -> xPlayer.Functions.SetJob xPlayer.setMaxWeight -> Nenhum (É definido na configuração do qb-core) xPlayer.setMoney -> xPlayer.Functions.SetMoney xPlayer.setName -> Nenhum (não se preocupe) xPlayer.setWeaponTint -> Nenhum (qb-weapons faz isso) xPlayer.showHelpNotification -> TriggerClientEvent('QBCore:Notify') xPlayer.showNotification -> TriggerClientEvent('QBCore:Notify') xPlayer.triggerEvent -> Nenhum (não se preocupe) xPlayer.updateCoords -> Nenhum (não se preocupe)
Eventos
esx:getSharedObject -> QBCore:GetObject esx:setJob -> QBCore:Client:OnJobUpdate esx:onPlayerSpawn -> QBCore:Client:OnPlayerLoaded playerSpawned -> QBCore:Client:OnPlayerLoaded (compatibilidade com gerenciador de spawn) esx:addInventoryItem -> QBCore:Server:AddItem esx:removeInventoryItem -> QBCore:Server:RemoveItem esx:useItem -> QBCore:Server:UseItem MySQL.Async.fetchScalar() -> exports['ghmattimysql']:scalar() ou QBCore.Functions.ExecuteSql(true, MySQL.Async.fetchAll() -> exports['ghmattimysql']:execute() ou QBCore.Functions.ExecuteSql(true, MySQL.Async.execute() -> exports['ghmattimysql']:execute() ou QBCore.Functions.ExecuteSql(false,
Tutorial de conversão
Para converter os scripts, basta utilizar a função distinta mencionada anteriormente. O QBCore compartilha funções semelhantes às do ESX, embora com nomes diferentes.