1) Нужно рассортировать в архиве по папкам.
- sound/money_roulette/...
- addons/amxmodx/scripting/include/
- addons/amxmodx/data/lang/
2) В файле с переводами желательно в алфавитном порядке добавлять языки, т.е.: en, es, ro, ru
3) Зачем использовать переводчик чтобы переводить на другие языки? Если нет знаний языка - не нужно. Например испанский перевод неправилен, помимо того что там указана команда которой даже нет в плагине:
/iniciar-ruleta
4) Звуки нужно вынести в константу, потому что повторяются и это пустая трата ресурсов, и так намного эстетичнее.
5) Воспроизведение звуков с помощью client_cmd может блокироваться клиентами no-steam, если не важна поддержка no-steam клиентов тогда можно не заменять на SendAudio сообщение.
6) Дефайн
MR_SOUND
не совсем правильно реализован, нужно вынести его за форвард и если дефайн не закомментирован то уже тогда нужно прекешить звуки.
7) Почему постоянно не понятные названия переменных? Пример, используются разные названия переменных для получения флагов:
zFl
(212 строка) и
sFlag
(239).
8) 245-258 строки начиная со второго условия должно быть
else if
вместо
if
. Чтобы не выполнялись другие условия если уже то что выше сработало.
9) В функции
dInfo(id)
что вызывается таском нет условия на коннект игрока, будут ошибки.
10) В функции
money_gladmin(id)
вместо должно чтобы сделать if/else условия можно сделать всего лишь один раз условие. Имеется ввиду самое первое условие. Следует проверить нет ли флага, и если его нет то r
eturn PLUGIN_HANDLED
, и всё.
11) В той же функции что и в 10 пункте, зачем два раза используется
set_dhudmessage
если нет различий? Следует вынести за условие
if(get_pcvar_num(MONEY_SOUND))
12) В функции
give_money(id)
строки 298-300 вместо того чтобы два раза использовать
get_pcvar_num(MONEY_ROUND_COUNT)
следует записать в переменную.
13) В той же функции что и выше. Почему условие
get_pcvar_num(MONEY_ENABLED) == 1
именно там? Как я понимаю это отвечает работает вообще плагин или нет. В таком случае это условие должно быть до всех условий.
14) Код строки 335-352. В обоих условиях почти одно и то же. Строки 337, 338, 340, 341, 342 можно вынести за условие и в
else
их уже удалить, ибо будет выполнено в любом случае. То же самое и на строках 365, 366, 368, 369, 370 и в
else
. А так же строки 387, 388, 390, 391, 392.
15) Нет смысла в следующем коде:
new Sec = ReloadMoney[id] - time()
, можно сразу его вписать:
client_print_color(id, print_team_default, "%L", id, "ROULETTE_TIME", ReloadMoney[id] - time())
16) Функция
scroll_activated(id)
. Флаги игрока следует сохранить в переменную, потому что постоянно будет вызываться. Кроме этого, начиная со второго
if
(строка 448) стоит заменить на
else if
чтобы не вызывались другие условия если уже одно выполнено.
17) Функция
scroll_active_1(id)
вызываемая в таске. Нет условия подключён ли игрок. Все эти функции однотипные что идут ниже можно объединить в одну, зачем столько?
18) Функция scroll_pause(id). Нет сохранения флагов в переменную.
if
заменить на
else if
начиная со второго.