Comandos#
Vending Machine Creator registra un solo comando en el juego. No hay comandos de consola: para ver qué está haciendo el script, activa Config.Debug y lee las consolas F8 y del servidor.
Comando | Dónde | Descripción |
|---|---|---|
| En el juego | Abre el creador: colocar, editar, teletransportarse a máquinas y eliminarlas. Solo administradores del framework y los trabajos de |
Teclas#
Tecla | Dónde | Hace |
|---|---|---|
| A menos de 2 m de una máquina | La usa, la compra cuando está a la venta, o la gestiona cuando es tuya. |
| A menos de 2 m de una máquina que se puede robar, con el lockpick | La fuerza. Se configura con |
| Modo de colocación | Coloca la máquina. |
| Modo de colocación | La gira 15° por cada paso, o despacio mientras se mantiene pulsado. |
| Modo de colocación | Cancela y vuelve al creador. |
Exports#
Vending Machine Creator no registra exports. Otros recursos lo controlan mediante el evento y los callbacks de servidor de abajo (los mismos que usan su propia interfaz y la app VendGo), y todas las comprobaciones que hay detrás siguen ejecutándose en el servidor.
Eventos#
Iniciar un robo desde tu propio lockpick
Cuando otro recurso ya hace usable el lockpick (los scripts de forzar vehículos suelen hacerlo), deja Config.Robbery.useItem desactivado y envía este evento desde el handler de ese recurso. El jugador fuerza la máquina robable más cercana a menos de 3 m.
-- server side, inside your lockpick's usable-item handler
TriggerClientEvent('vendingmachine:robbery:useItem', source)El lockpick, la distancia, el tiempo de espera y el propietario se vuelven a comprobar en el servidor. Si no hay ninguna máquina lo bastante cerca, se le indica al jugador que está demasiado lejos, así que envíalo solo cuando tu script no haya encontrado nada propio que forzar.
Callbacks de servidor#
Callbacks de ox_lib sobre los que está construida la app VendGo. Llámalos desde el cliente para crear tu propia app de teléfono, tablet o tienda en portátil. Siguen Config.Phone: con enabled = false cada uno responde phone_disabled, y con allowRemotePurchase = false los dos callbacks de compra responden remote_disabled.
vending:phone:getSnapshot
Todo lo que muestra la app: los saldos del jugador, cada máquina colocada ordenada por distancia a las coordenadas que envías, y cada tipo de máquina.
local c = GetEntityCoords(cache.ped)
local data = lib.callback.await('vending:phone:getSnapshot', false, {
coords = { x = c.x, y = c.y, z = c.z },
})
-- data.ok, data.cashBalance, data.bankBalance
-- data.customMachines[i] = { id, label, coords, distance, account, items }
-- data.machineTypes[i] = { id, label, account, items }
-- items[i] = { slot, item, label, price }vending:phone:purchase
Compra una unidad, ya sea de una máquina colocada (custom) o de un tipo de máquina, el catálogo de la ciudad (world).
-- from placed machine 12, product slot 1
local result = lib.callback.await('vending:phone:purchase', false, {
source = 'custom', machineId = 12, slot = 1,
})
-- from the 'drinks' machine type, product slot 2
local result = lib.callback.await('vending:phone:purchase', false, {
source = 'world', machineTypeId = 'drinks', slot = 2,
})
-- { ok = true, item, label, price } or { ok = false, error = 'not_enough_money' }vending:phone:purchaseCart
Varios productos de una máquina, en un solo pago. El stock y el dinero se comprueban para todo el carrito antes de cobrar nada.
local result = lib.callback.await('vending:phone:purchaseCart', false, {
source = 'custom',
machineId = 12,
lines = {
{ slot = 1, quantity = 2 },
{ slot = 3, quantity = 1 },
},
})
-- { ok = true, total, purchased = { { item, label, quantity, price }, ... } }Las compras hechas así son silenciosas: no se envía ninguna notificación, así que muestra tú el resultado. El stock, las ganancias del propietario y la comprobación del dinero funcionan exactamente igual que en la máquina.
Sobre los errores#
Los callbacks de compra responden con un código en lugar de una frase, para que tu interfaz pueda redactarlo en su propio idioma:
Código | Significa |
|---|---|
| La cuenta de pago de la máquina no cubre el precio. |
| El jugador no puede llevarlo. |
| Una máquina con propietario tiene menos unidades de las solicitadas. |
| La máquina está a la venta y nadie la ha comprado todavía; hasta entonces no vende nada. |
| No hay ninguna máquina ni tipo de máquina con ese id. |
| Esa máquina no tiene ningún producto en ese hueco. |
| El carrito no tiene líneas, o mezcla productos que se pagan desde cuentas distintas. |
| Desactivado en |
| El framework aún no tiene un personaje para ese jugador; normalmente sigue cargando. |
| La solicitud estaba mal formada: sin tabla, o un |



