Garry's Mod

Garry's Mod

Not enough ratings
Делаем налоговую систему для DarkRP. Часть №1
By haskell_md2
В этом руководстве вы научитесь работать с Lua библиотекой DarkRP. Исходник прилагается.
   
Award
Favorite
Favorited
Unfavorite
Шаг №1
Создаём файлик <tax_system.lua> по адресу: путь\к\стиму\common\GarrysMod\garrysmod\lua\autorun\server
Открываем при помощи Вашего любимого редактора кода и делаем проверку, так как скрипт должен запускаться исключительно на стороне сервера.

Шаг №2
Как вообще будет реализована собственно логика скрипта? Нужно отталкиваться от задачи:
1. Мы каким-то образом должны отлавливать моменты передачи денег между игроками.
2. Получать и доставлять только определённую долю от передаваемых денег.
3. Остальную часть от изначальных денег отправлять мэру.
--------------------------------------------------------------------------------------------------------------------------------------

Из этого следует:
1. Переменная, хранящая в себе процент комиссии.
2. Хук от DarkRP, прослушивающий события получения денег.
3. Функция, срабатывающая при активации хука и выполняющая оставшиеся задачи.
--------------------------------------------------------------------------------------------------------------------------------------

Перейдём к написанию кода:

Отлично! Теперь каждый раз, когда баланс игрока меняется, будет выводиться сообщение "ok!" в консоль от лица сервера (синим цветом).

Осталось только пояснить за "playerWalletChanged". playerWalletChanged - это хук, которого нет в обычном гарисмоде. Он будет работать только если у вас установлен игровой режим DarkRP. Брать информацию о подобных вещах можно здесь: https://darkrp.miraheze.org/wiki/Main_Page

Шаг №3
Осталось совсем не много! Как я уже говорил выше хук будет срабатывать при любом изменение баланса игрока, это исправляется довольно легко, надо добавить if, проверяющий пришедшие деньги. Если они отрицательные, то ничего не делаем, если положительные, то идём дальше.
Теперь сделаем вычитание при поступление и отправку мэру
Вот собственно и всё!
Исходник
Если вы пришли сюда только ради скрипта, то вам сюда: https://github.com/haskell-md2/GmodSctipts/blob/main/tax_system/tax_system.lua

Естественно скрипт далеко не совершенен, например при получение денег из маника тоже будет взиматься налог, что очень странно. Но в чём проблема улучшить его вам самим? Ведь в этом и заключается задача обучения!

Спасибо за прочтение! И пожалуйста, обязательно оцените!


3 Comments
i want to be deleted 3 Feb, 2021 @ 6:02am 
mfw 30% налог
haskell_md2  [author] 15 Jan, 2021 @ 6:58am 
@RA9 Посчитал, что не навредит.
Bakey 15 Jan, 2021 @ 4:16am 
if SERVER then в autorun/server :steamsad: