Salta ai contenuti

Il menu boss

Un’app per chi gestisce un’attività: chi ci lavora, chi viene assunto, chi viene licenziato, chi avanza di grado, cosa c’è sul conto e chi deve soldi all’azienda.

Nulla al suo interno reimplementa il tuo framework. Assunzioni, licenziamenti e gradi sono operazioni del framework stesso, richieste tramite il bridge e ricontrollate all’arrivo — ESX, QBCore e QBox, ciascuno con le proprie parole.

L’app non compare nella schermata Home di chi non gestisce nulla. Arriva da sola la prossima volta che un nuovo boss apre il telefono, e se ne va allo stesso modo.


La maggior parte dei server lo segna già: ESX segna un grado con is_boss, QB segna un lavoro con isboss. Se il tuo lo fa, questo file non ha bisogno di nulla.

Config.Apps.Boss.Bosses in shared/config/boss.lua serve per quelli che non lo fanno — e per quelli in cui comandare non è un unico rango ma diversi, ciascuno con un po’ più di autorità di quello sotto:

Bosses = {
mechanic = 4, -- grade 4 and above, everything
police = { -- a ladder, where each rung adds to the ones below it
[3] = { 'Hire', 'Promote' }, -- a Sergeant may hire and promote, and nothing else
[4] = { 'Account', 'Invoice' }, -- a Lieutenant may also see the account and bill people
[5] = true, -- a Captain may do everything left in Actions
},
}

I gradini si sommano, ed è ciò che fa sembrare una scala una scala: un rango può fare tutto ciò che può fare il rango sotto di lui, più ciò che è scritto sulla sua riga. Nessuno ripete un elenco a ogni grado, e nessuno perde un potere venendo promosso.

Un grado con un elenco vuoto è comunque al comando: apre l’app e vede chi ci lavora, che è l’unica cosa che comandare significa sempre.

Config.Apps.Boss.Actions è il tetto per l’intera città — nulla in Bosses può concedere ciò che lì è disattivato. È il modo rapido per togliere un potere a tutte le attività in una volta.

Actions = { Hire = true, Fire = true, Promote = true, Account = true,
Deposit = true, Withdraw = true, Invoice = true },

Un potere disattivato non viene disegnato e viene rifiutato, in quest’ordine. Un pulsante che manca soltanto dallo schermo non è disattivato.


  • Si assume stando accanto a qualcuno. L’elenco è formato da chi si trova a pochi metri, e la stessa distanza viene ricontrollata quando il nome viene inviato, quindi un nome in quell’elenco è un nome che verrà accettato ancora un istante dopo. Un menu che può assumere chiunque in città indovinando un id è un menu che verrà usato esattamente per questo.
  • Nessuno può intervenire su se stesso né su chi ha il suo stesso grado o uno superiore. Entrambi i casi vengono spiegati a schermo, invece di essere pulsanti che non fanno nulla in silenzio.
  • Un grado si sceglie dalla scala inviata dal server, mai digitato.
  • Gli identificatori non attraversano mai la rete. Ogni persona nell’elenco è un ticket che ha significato solo per questa sessione.
  • Il denaro si muove sotto un lock, per azienda, e viene rimesso a posto se l’altra metà fallisce.