El menú de jefe
Una app para quien dirige un negocio: quién trabaja allí, a quién se contrata, a quién se despide, quién asciende, qué hay en la cuenta y quién le debe dinero a la empresa.
Nada de esto reimplementa tu framework. Contratar, despedir y los rangos son operaciones propias del framework, que se piden a través del bridge y se vuelven a comprobar al entrar: ESX, QBCore y QBox, cada uno a su manera.
La app no aparece en la pantalla de inicio de alguien que no dirige nada. Llega sola la próxima vez que un nuevo jefe abre su móvil, y se va de la misma forma.
Quién manda
Sección titulada «Quién manda»La mayoría de servidores ya lo marcan: ESX marca un rango con is_boss, QB marca un trabajo con isboss. Si el tuyo lo hace, este archivo no necesita nada.
Config.Apps.Boss.Bosses, en shared/config/boss.lua, es para los que no lo hacen, y para aquellos en los que mandar no es un solo rango sino varios, cada uno con un poco más de permisos que el de abajo:
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 },}Los escalones se suman, y eso es lo que hace que una escalera se lea como tal: un rango puede hacer todo lo que puede el rango de debajo, más lo que esté escrito en su propia línea. Nadie repite una lista en cada rango, y nadie pierde un permiso por ascender.
Un rango con una lista vacía sigue mandando: abre la app y ve quién trabaja allí, que es lo único que siempre significa mandar.
Lo que se puede hacer en general
Sección titulada «Lo que se puede hacer en general»Config.Apps.Boss.Actions es el techo para toda la ciudad: nada en Bosses puede conceder algo que esté desactivado ahí. Es la forma rápida de quitarles un permiso a todos los negocios a la vez.
Actions = { Hire = true, Fire = true, Promote = true, Account = true, Deposit = true, Withdraw = true, Invoice = true },Un permiso desactivado no se dibuja y se rechaza, en ese orden. Un botón que solo falta en la pantalla no está desactivado.
Las reglas que la pantalla no puede discutir
Sección titulada «Las reglas que la pantalla no puede discutir»- Para contratar hay que estar al lado de alguien. La lista es quien esté a unos pocos metros, y la misma distancia se vuelve a comprobar cuando se envía el nombre, así que un nombre de esa lista es un nombre que seguirá siendo aceptado un momento después. Un menú que puede contratar a cualquiera de la ciudad adivinando un id es un menú que se usará exactamente para eso.
- Nadie puede actuar sobre sí mismo ni sobre nadie de su mismo rango o superior. Ambas cosas se explican en la pantalla en lugar de ser botones que no hacen nada en silencio.
- El rango se elige de la escalera que envió el servidor, nunca se escribe.
- Los identificadores nunca viajan por la red. Cada persona de la plantilla es un ticket que solo significa algo para esta sesión.
- El dinero se mueve bajo un bloqueo, por empresa, y se devuelve si la otra mitad falla.