Ir al contenido

Personalización

Casi todo está en un solo archivo, config.lua. Los dos archivos del bridge y los locales también están abiertos.


ArchivoQué decide¿Abierto?
config.luaIdioma, moneda, interacción, límite de colocación, y cada máquina fija con su precioSí
locales/*.luaLos avisos, las notificaciones y las etiquetas del targetSí
bridge/client_bridge.luaDetección del framework, lectura del dinero, notificaciones, texto de ayuda, y las zonas de ox-target / qb-target / drawtextSí
bridge/server_bridge.luaCobrar y pagar dinero o fichas, nombres e ids de personaje, notificaciones, y los ítems de máquina usablesSí
items/Definiciones de ítems para ox, qb y ESX, y los iconos en items/images/Sí
ui/El menú de la máquina y los siete juegos, cada uno en su carpeta dentro de ui/games/Sin escrow
client/data.luaPosición de la cámara y de la pantalla para cada modelo de máquinaCon escrow
mic_arcade_props/Los modelos de máquina y el renderizador de pantallaSolo assets

OpciónQué hacePor defecto
Config.LocaleQué archivo de locales/ se usa'en'
Config.PaymentTypeCon qué se paga una partida: cash, bank, both o item'item'
Config.PaymentItemEl ítem que se usa como moneda cuando PaymentType es item'arcade_coin'
Config.Interactionox-target (con guion), qb-target o drawtext'ox-target'
Config.MaxArcadesPerPlayerCuántas máquinas colocadas puede tener un personaje a la vez3
ValorQué ocurre
cashSe paga en efectivo (en ESX, la cuenta money)
bankSe paga desde la cuenta bancaria
bothPrimero en efectivo; si no hay suficiente, el resto sale del banco
itemSe paga en Config.PaymentItem, un ítem por cada unidad de precio

La misma moneda se usa para las apuestas y los premios de DuoFight.


Una entrada por modelo de máquina. Cada entrada tiene un Price y, opcionalmente, cualquier número de posiciones fijas (vec4 con x, y, z y heading) — se genera una máquina en cada una.

MáquinaModeloJuegoPrecioFija de serie
DuoFightmic_arcade_duofightJuego de lucha a dos jugadores, o contra la máquina0No (comentada)
Alienmic_arcade_alienAlien100No (comentada)
Breakoutmic_arcade_brickBreakout100No (comentada)
Pixelmic_arcade_pixelPixel100Sí
Racemic_arcade_raceRace100Sí
Towermic_arcade_towerTower100Sí
Roadmic_arcade_roadRoad100Sí
  • Para añadir una máquina fija, añade una posición a la lista de ese modelo. Ponte donde la quieras, toma tus coordenadas y tu heading, y escríbelos.
  • Para quitar una, borra o comenta su posición. El Price se sigue aplicando a las máquinas colocadas de ese modelo.
  • Un precio de 0 hace que la máquina sea gratuita.
  • El origen de la máquina Breakout está más bajo que el de las demás — la posición de Breakout incluida está unos 0.7 más abajo en el eje z que sus vecinas. Haz lo mismo cuando añadas una.

El Price es también lo que cobra una máquina colocada de ese modelo.


Un ítem de máquina (arcade_alien, arcade_race…) inicia la colocación:

TeclaQué hace
Mirar alrededorMueve la vista previa adonde estás mirando
Rueda del ratónLa gira
ELa coloca y retira el ítem
ESC / RetrocesoCancela; conservas el ítem

El dueño — y solo el dueño — tiene la opción Pick Up Arcade (Recoger Arcade en es) sobre ella (con drawtext, la segunda tecla que aparece en el aviso). Recogerla devuelve el ítem. Una máquina que alguien está usando no se puede recoger.

Config.MaxArcadesPerPlayer cuenta las máquinas que un personaje tiene colocadas en ese momento.


Al elegir dos jugadores en DuoFight se pide una apuesta: 1, 5, 25, 50 o 100, en tu moneda. El anfitrión la paga y espera en la máquina; al siguiente jugador que usa la máquina se le ofrece el combate y paga lo mismo para unirse.

ResultadoQué ocurre
VictoriaEl ganador recibe las dos apuestas
EmpateCada jugador recupera su apuesta
Un jugador se va a mitad del combatePierde por abandono: el otro jugador gana las dos apuestas
El anfitrión se va antes de que alguien se unaEl combate se cancela; la apuesta del anfitrión no se devuelve
Un jugador se desconectaEl combate se cancela, sin pago

Todos los juegos menos DuoFight guardan la mejor puntuación de cada personaje en mic_arcade_leaderboard y muestran el top diez en la máquina. Los nombres son el nombre del personaje en tu framework. Para reiniciar una clasificación, vacía esa tabla (o las filas de un juego) con el servidor parado.


Vienen diez en locales/: en, es, fr, de, it, pt, nl, ja, ru, zh. Pon el código en Config.Locale.

Para añadir uno, copia locales/en.lua a un archivo nuevo con el nombre de tu código, cambia Locales['en'] por tu código, traduce la parte derecha de cada línea y configura Config.Locale. Una clave que falta se muestra como Translation [xx][key] does not exist — no hay respaldo en inglés.

Los archivos de idioma cubren lo que muestra el mundo del juego: las etiquetas del target, los avisos de ayuda y las notificaciones. El texto dentro de los juegos forma parte de ui/games/.


ArchivoQué cubre
bridge/client_bridge.luaDetección del framework, la cantidad de dinero o fichas que se muestra al jugador, Bridge.Notify, el texto de ayuda, y la zona de interacción de cada máquina para ox-target, qb-target o drawtext
bridge/server_bridge.luaDetección del framework, cobrar y pagar dinero o ítems (Bridge.RemoveMoney, Bridge.AddMoney), los ítems de máquina, nombre e id del personaje, notificaciones de servidor, y la lista de ítems de máquina usables

Otro recurso de notificaciones: cambia Bridge.Notify en el archivo de cliente y Bridge.ServerNotify en el de servidor. Los mensajes de dinero insuficiente se envían desde Bridge.RemoveMoney.

Otro recurso de target: Bridge.RegisterArcadeInteraction y Bridge.RemoveArcadeInteraction en el archivo de cliente son los únicos sitios donde se toca el target.

Otro inventario: las fichas y los ítems de máquina se leen y se retiran a través de las funciones de jugador del propio framework en server_bridge.lua. Apunta Bridge.RemoveMoney, Bridge.AddMoney, Bridge.RemoveSpecificItem, Bridge.AddSpecificItem y Bridge.GetMoney a tu inventario si no responde a esas.

Un nuevo ítem usable para una máquina: la tabla UsableArcades al final de server_bridge.lua asocia cada ítem con su modelo de máquina.