Garry's Mod

Garry's Mod

评价数不足
Делаем налоговую систему для DarkRP. Часть №1
由 haskell_md2 制作
В этом руководстве вы научитесь работать с Lua библиотекой DarkRP. Исходник прилагается.
   
奖励
收藏
已收藏
取消收藏
Шаг №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 条留言
died of a broken heart 2021 年 2 月 3 日 上午 6:02 
mfw 30% налог
haskell_md2  [作者] 2021 年 1 月 15 日 上午 6:58 
@RA9 Посчитал, что не навредит.
Bakey 2021 年 1 月 15 日 上午 4:16 
if SERVER then в autorun/server :steamsad: