¡Hola jugadores de FiveM! Bienvenido a este tutorial sobre cómo convertir scripts ESX a QBCore (y viceversa). Si está familiarizado con FiveM, probablemente sepa que ESX es uno de los marcos más populares utilizados para crear scripts y modificaciones. Sin embargo, recientemente, un nuevo marco llamado QBCore ha ganado popularidad y ofrece una variedad de características y mejoras interesantes.
Convertir sus scripts ESX a QBCore puede aportarle numerosas ventajas, como un mejor rendimiento, una mayor funcionalidad y el acceso a una creciente comunidad de desarrolladores de QBCore.
NUEVO: Lanzamos una herramienta de conversión: ¡haga clic aquí para verla!
Índice
Lista completa de funciones
Esta es una lista para la conversión de scripts (funciones para cliente y servidor).
Actualizado: Octubre 2023
Del lado del cliente
esx:onPlayerDeath -> hospital:server:SetDeathStatus esx:playerLoaded -> QBCore:Client:OnPlayerLoaded esx:showAdvancedNotification -> QBCore:Notificar esx:showHelpNotification -> QBCore:Notificar esx:showNotification -> QBCore:Notificar ESX.GetPlayerData -> QBCore.Functions.GetPlayerData ESX.IsPlayerLoaded -> Ninguno ESX.SetPlayerData -> QBCore:Player:SetPlayerData ESX.TriggerServerCallback -> QBCore.Functions.TriggerCallback ESX.Game.DeleteObject -> None (Puede usar FiveM nativo DeleteEntity) ESX.Game.DeleteVehicle -> QBCore.Functions.DeleteVehicle ESX.Game.GetClosestObject -> None (Puede usar FiveM nativo GetClosestObjectOfType) ESX.Game.GetClosestPed -> QBCore.Functions.GetClosestPed ESX.Game.GetClosestPlayer -> QBCore.Functions.GetClosestPlayer ESX.Game.GetClosestVehicle -> QBCore.Functions.GetClosestVehicle ESX.Game.GetObjects -> None (usa enumeración) ESX.Game.GetPedMugshot -> None (Puede usar FiveM nativo RegisterPedheadshot) ESX.Game.GetPeds -> None (usa enumeración) ESX.Game.GetPlayers -> QBCore.Functions.GetPlayers ESX.Game.GetPlayersInArea -> None (usa enumeración) ESX.Game.GetVehicleInDirection -> None (usa fundición de rayos) ESX.Game.GetVehicles -> QBCore.Functions.GetVehicles ESX.Game.GetVehiclesInArea -> None (usa enumeración) ESX.Game.IsSpawnPointClear -> None (usa getvehiclesinarea) ESX.Game.SetVehicleProperties -> QBCore.Functions.SetVehicleProperties ESX.Game.GetVehicleProperties -> QBCore.Functions.GetVehicleProperties ESX.Game.SpawnLocalObject -> None (no molestar) ESX.Game.SpawnLocalVehicle -> Ninguno (no molestar) ESX.Game.SpawnObject -> None (Puede usar FiveM Native CreateObject) ESX.Game.SpawnVehicle -> QBCore.Functions.SpawnVehicle ESX.Game.Teleport -> (Puede usar FiveM Native SetEntityCoords y SetEntityHeading) ESX.Game.Utils.DrawText3D -> QBCore.Functions.DrawText3D
Del lado del servidor
ESX.CreatePickup -> Ninguno (irrelevante y realizado a través de qb-inventory) ESX.GetItemLabel -> None (sólo devuelve la etiqueta del artículo) 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 -> Ninguno (no te molestes) ESX.Trace -> Usa QBCore.Debug pero no te molestes en convertirlo ESX.UseItem -> QBCore.Functions.UseItem
xPlayer
xPlayer.addAccountMoney -> xPlayer.Functions.AddMoney (cuenta) xPlayer.addInventoryItem -> xPlayer.Functions.AddItem (nombre del artículo) xPlayer.addMoney -> xPlayer.Functions.AddMoney (dinero) xPlayer.addWeapon -> xPlayer.Functions.AddItem (nombre del arma) xPlayer.addWeaponAmmo -> xPlayer.Functions.AddItem (nombre de munición) xPlayer.addWeaponComponent -> xPlayer.Functions.AddItem (nombre del componente) xPlayer.canCarryItem -> None (xPlayer.Functions.AddItem ya lo comprueba) xPlayer.canSwapItem -> None (xPlayer.Functions.AddItem ya lo ha comprobado) xPlayer.getAccount -> None (usa datos del jugador) xPlayer.getAccounts -> None (usa datos del jugador) xPlayer.getCoords -> None (Puede 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 -> None (usa datos del jugador) xPlayer.getLoadout -> None (coger loadouts) xPlayer.getMoney -> None (usa datos del jugador) xPlayer.getName -> None (usa datos del jugador) xPlayer.getWeapon -> xPlayer.Functions.GetItemByName (nombre del arma) xPlayer.getWeight -> xPlayer.Player.GetTotalWeight xPlayer.hasWeapon -> xPlayer.Functions.GetItemByName (nombre del arma) xPlayer.hasWeaponComponent -> xPlayer.Functions.GetItemByName (nombre del componente) xPlayer.kick -> xPlayer.Functions.Kick xPlayer.removeAccountMoney -> xPlayer.Functions.RemoveMoney (cuenta) xPlayer.removeInventoryItem -> xPlayer.Functions.RemoveItem (nombre del item) xPlayer.removeMoney -> xPlayer.Functions.RemoveMoney (dinero) xPlayer.removeWeapon -> xPlayer.Functions.RemoveItem (nombre del arma) xPlayer.removeWeaponAmmo -> xPlayer.Functions.RemoveItem (nombre de munición) xPlayer.removeWeaponComponent -> xPlayer.Functions.RemoveItem (nombre del componente) xPlayer.setAccountMoney -> xPlayer.Functions.SetMoney (cuenta) xPlayer.setCoords -> None (usado para teletransportarse) xPlayer.setInventoryItem -> xPlayer.Functions.AddItem (nombre del item) xPlayer.setJob -> xPlayer.Functions.SetJob xPlayer.setMaxWeight -> None (Se establece en qb-core config) xPlayer.setMoney -> xPlayer.Functions.SetMoney xPlayer.setName -> None (no te molestes) xPlayer.setWeaponTint -> None (qb-weapons hace esto) xPlayer.showHelpNotification -> TriggerClientEvent('QBCore:Notify') xPlayer.showNotification -> ActivaClientEvent('QBCore:Notify') xPlayer.triggerEvent -> Ninguno (no molestar) xPlayer.updateCoords -> None (no molestar)
Eventos
esx:getSharedObject -> QBCore:GetObject esx:setJob -> QBCore:Client:OnJobUpdate esx:onPlayerSpawn -> QBCore:Client:OnPlayerLoaded playerSpawned -> QBCore:Client:OnPlayerLoaded (compatibilidad con spawnmanager) esx:addInventoryItem -> QBCore:Server:AddItem esx:removeInventoryItem -> QBCore:Server:RemoveItem esx:useItem -> QBCore:Server:UseItem MySQL.Async.fetchScalar() -> exports['ghmattimysql']:scalar() o QBCore.Functions.ExecuteSql(true, MySQL.Async.fetchAll() -> exports['ghmattimysql']:execute() o QBCore.Functions.ExecuteSql(true, MySQL.Async.execute() -> exports['ghmattimysql']:execute() o QBCore.Functions.ExecuteSql(false,
Tutorial de conversión
Para convertir los scripts, basta con utilizar la función distinta mencionada anteriormente. QBCore comparte funciones similares a ESX, aunque con nombres diferentes.