QBCore a fondo: el jugador y su dinero · Lección 1/4 · 8 min

Obtener el Core en cliente y servidor

Todo en QBCore empieza por GetCoreObject. Aprende a obtenerlo bien en ambos lados y a esperar a que el jugador cargue.

QBCore expone un objeto central (el «Core») desde el recurso qb-core. Lo obtienes con un export, igual en cliente que en servidor. A partir de ahí tienes Functions, Shared, etc.

lua
-- Vale en client.lua y en server.lua
local QBCore = exports['qb-core']:GetCoreObject()

Obtener el Core

En versiones modernas de QBCore puedes obtenerlo directamente con exports['qb-core']:GetCoreObject(). El viejo TriggerEvent('QBCore:GetObject', ...) ya no hace falta.

En el cliente: esperar a que el jugador cargue

lua
local QBCore = exports['qb-core']:GetCoreObject()
local PlayerData = {}

-- Cuando el jugador entra y carga su personaje
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
  PlayerData = QBCore.Functions.GetPlayerData()
end)

-- Cuando cambia algún dato (trabajo, dinero…)
RegisterNetEvent('QBCore:Player:SetPlayerData', function(data)
  PlayerData = data
end)

client.lua

En el cliente NO tienes el objeto Player completo (ese vive en el servidor). Tienes una COPIA de solo lectura: PlayerData. Para cualquier acción con consecuencias (dinero, items) pides al servidor.

Practica lo aprendido

0/3
Rellena los huecos

Completa la línea que obtiene el objeto Core de QBCore (vale igual en cliente y servidor).

1local QBCore = exports['qb-core']:()
Pista

Es un export del recurso qb-core; el viejo TriggerEvent('QBCore:GetObject', ...) ya no hace falta.

Test

En el cliente, ¿qué obtienes realmente del jugador con QBCore?

Ordena el código

Ordena el código de cliente que guarda PlayerData al cargar el personaje e imprime el citizenid.

Coloca las líneas en el orden correcto con las flechas.

local QBCore = exports['qb-core']:GetCoreObject()
print(PlayerData.citizenid)
end)
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
PlayerData = QBCore.Functions.GetPlayerData()
local PlayerData = {}
Pista

Core → variable PlayerData → escuchar OnPlayerLoaded → rellenar con GetPlayerData → imprimir.

Reto: prográmalo tú

En el cliente, imprime por consola tu citizenid en cuanto cargue el personaje.

Escríbelo tú en tu editor (VS Code) y pruébalo en tu servidor. Aquí se aprende haciéndolo, no copiando.

Ver pista

Guarda QBCore.Functions.GetPlayerData() en OnPlayerLoaded y haz print(PlayerData.citizenid).

Escribe aquí tu solución:

¿Qué tal esta lección?