Inicio › Documentación › Personalización · origen_masterjob

Personalización · origen_masterjob

La carpeta custom/ gestiona la integración con el framework, el inventario, la ropa, los vehículos, el combustible y las notificaciones sin tocar el núcleo. Todos los ficheros son escrow_ignore, así que sobreviven a las actualizaciones.

text
custom/
├── client.lua              — notifications, inventory, stash, clothing, garage, mechanic, keys, fuel
├── client_pay_bills.lua    — bill payment NPC thread
├── blips.lua               — business blip rendering
└── server/
    ├── command.lua         — admin command definitions
    ├── main.lua            — inventory helpers, vehicle queries, payment, keys, bill sending
    └── menu/
        └── phone.lua       — phone number lookup

custom/client.lua

Custom.canOpenMenu(job) → { success, message }

Controla si el jugador local puede abrir el menú del negocio. Devuelve success = false con un mensaje para bloquear el acceso.

lua
Custom.canOpenMenu = function(job)
    return { success = true, message = '' }
end

Custom.ShowNotification(msg)

Muestra una notificación al jugador local. Se usa cuando Config.CustomNotify = true.

lua
Custom.ShowNotification = function(msg)
    -- Add your notification here
    -- Example: exports["origen_notify"]:ShowNotification(msg, "business")
end

Custom.ShowShopState(msg)

Muestra una notificación relacionada con la tienda (por ejemplo, compra correcta o fallida).

lua
Custom.ShowShopState = function(msg)
    -- Same as ShowNotification but can use a different style
end

ShowHelpNotification(key, msg)

Muestra una ayuda de interacción en el mundo. Se usa cuando Config.OrigenNotify = true.

lua
function ShowHelpNotification(key, msg)
    -- Default: uses origen_notify CreateHelp
    -- Add your own implementation if not using origen_notify
end

Custom.DrawText(key, msg) / Custom.HideText()

Dibuja la ayuda de interacción con la interfaz de texto. Se usa cuando Config.customDrawText = true.


GetItemData(item) → table | nil

Devuelve los datos de un objeto del sistema de inventario activo. Redirige según Config.Inventory.


OpenStash(Sid, Sslots, label, preId)

Abre el inventario de un almacén. Redirige según Config.Inventory:


OpenOutfitMenu(canEdit)

Abre el menú de selección de vestuario. Redirige según Config.Clothing.


openPlayerInventory(pID)

Abre el inventario de otro jugador (para el trabajo de mecánico). Redirige según Config.Inventory.


Custom.ReapirVehicle(vehicle)

Repara un vehículo. Implementa aquí tu arreglo de deformaciones si lo necesitas.

lua
Custom.ReapirVehicle = function(vehicle)
    -- exports['VehicleDeformation']:FixVehicleDeformation(vehicle)
end

Custom.GetVehicleProperties(vehicle) / Custom.SetVehicleProperties(vehicle, mods)

Obtiene o aplica las modificaciones de un vehículo. Redirige según Config.Framework.


Custom.GetVehicleFuel(vehicle) / Custom.SetVehicleFuel(vehicle, fuel)

Obtiene o aplica el combustible de un vehículo. Implementa aquí tu sistema de combustible.

lua
Custom.GetVehicleFuel = function(vehicle)
    -- return exports['FuelSystem']:GetFuel(vehicle)
end

Custom.OpenModificationMenu(vehicle)

Abre el menú de tuneo. Implementa aquí tu sistema de tuneo.

lua
Custom.OpenModificationMenu = function(vehicle)
    -- Used when Config.CustomMechanic = true
end

Custom.GetClientVehicleKeys(vehicle)

Da al jugador las llaves de un vehículo desde el cliente. Implementa aquí tu sistema de llaves.

lua
Custom.GetClientVehicleKeys = function(vehicle)
    local plate = GetVehicleNumberPlateText(vehicle)
    TriggerEvent("vehiclekeys:client:SetOwner", plate)
end

Custom.SpawnVehicle(model, cb, coords, isNetwork)

Crea un vehículo. Redirige según Config.Framework.


CustomGarage(PlayerData, coords) / CustomGarageBusiness(PlayerData, coords)

Sustituye el garaje por defecto por tu propio sistema. Solo se llama cuando Config.CustomGarage = true.


custom/server/main.lua

Custom.RemoveMoney(Player, account, amount, log) → boolean

Retira dinero de la cuenta de un jugador. Gestiona el objeto de efectivo de ox_inventory y las cuentas del framework.


Custom.GetVehicleKeys(source, plate)

Da las llaves de un vehículo desde el servidor. Implementa aquí tu sistema de llaves.

lua
Custom.GetVehicleKeys = function(source, plate)
    TriggerClientEvent("vehiclekeys:client:SetOwner", source, plate)
end

Custom.GetVehicleData(plate) → { owner } | false

Devuelve el identificador del propietario de un vehículo a partir de su matrícula, consultando la tabla de vehículos del framework.


Custom.PlateGenerator() → string

Genera una matrícula personalizada. Implementa aquí tu propia lógica.

lua
Custom.PlateGenerator = function()
    local plate = ''
    -- your plate generation logic
    return plate
end

Custom.QueryGiveBusinesscar(values) / Custom.QueryRemoveBusinesscar(values)

Inserta o elimina un vehículo en la tabla de vehículos del framework cuando se asigna o se retira un vehículo de negocio.


Custom.SendBill → false | function

Sustituye la lógica de creación de facturas por defecto. Asígnale una función para usar tu propio sistema de facturación:

lua
Custom.SendBill = function(data, cb)
    -- data: { senderSource, receiverSource, price, concept, business }
    -- cb(true) on success, cb('error message') on failure
    local success = MySQL.insert.await('INSERT INTO bills (...) VALUES (...)', {...})
    cb(success or 'Failed to send bill')
end