Перейти к содержимому

Меню босса

Одно приложение для того, кто управляет бизнесом: кто там работает, кого нанимают, кого увольняют, кто идёт на повышение, что лежит на счёте и кто должен компании деньги.

Ничто в нём не переписывает ваш фреймворк. Найм, увольнение и ранги — это собственные операции фреймворка, запрашиваемые через bridge и проверяемые повторно на входе, — ESX, QBCore и QBox каждый на своём языке.

На главном экране у того, кто ничем не управляет, этого приложения нет. Оно появляется само, когда новый босс в следующий раз откроет телефон, и так же исчезает.


Большинство серверов уже отмечают это: в ESX ранг помечается как is_boss, в QB работа — как isboss. Если на вашем так и есть, этому файлу ничего не нужно.

Config.Apps.Boss.Bosses в shared/config/boss.lua нужен для тех, у кого этого нет, — и для тех, где «главный» — это не один ранг, а несколько, каждому из которых разрешено чуть больше, чем нижестоящему:

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
},
}

Ступени суммируются, благодаря чему лестница читается как лестница: ранг может всё, что может ранг ниже, плюс то, что записано в его собственной строке. Никому не приходится повторять список на каждом ранге, и никто не теряет права от повышения.

Ранг с пустым списком всё равно считается главным: он открывает приложение и видит, кто здесь работает, — а это единственное, что всегда означает быть главным.

Config.Apps.Boss.Actions — это потолок для всего города: ничто в Bosses не может выдать то, что здесь выключено. Это короткий способ убрать одно право сразу у всех бизнесов.

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

Выключенное право не рисуется и отклоняется, именно в таком порядке. Кнопка, которая просто отсутствует на экране, — это не выключенная функция.


  • Найм выполняется рядом с человеком. Список — это те, кто находится в нескольких метрах, и то же расстояние проверяется ещё раз при отправке имени, так что имя из этого списка будет принято и мгновением позже. Меню, которое может принять на работу любого жителя города, угадав его id, обязательно будут использовать именно для этого.
  • Никто не может трогать себя или любого, чей ранг равен его собственному или выше. Оба случая объясняются на экране, а не превращаются в кнопки, которые молча ничего не делают.
  • Ранг выбирается из лестницы, присланной сервером, и никогда не вводится вручную.
  • Идентификаторы никогда не передаются по сети. Каждый в списке сотрудников — это билет, имеющий смысл только для этой сессии.
  • Деньги перемещаются под блокировкой, для каждой компании отдельно, и возвращаются обратно, если вторая половина операции не удалась.