PDA

Просмотр полной версии : [Include] Begging - система попрошайничества



#iDanny
06.03.2018, 18:45
Begging - полноценный готовый скрипт для системы попрошайничества, а-ля Arizona RolePlay.

Коллбэк:

OnPlayerBeggingPay(playerid, money) - основной паблик для выдачи денег.


Функции:

beg_GetPlayerType - узнать тип попрошайничества. Параметры: playerid (id игрока). Возвращаемые значения: 0 - от имени себя, 1 - под покровительством мафии.
beg_switchForPlayer - начать / завершить попрошайничество. Параметры: playerid (id игрока). Всегда возвращает истину.
beg_switchPlayerRetainerToMafia - исключить / взять под покровительство мафии. Параметры: playerid (id игрока из мафии), targetid (id игрока попрошайки), mafianame (название мафии (организации)). Возвращает: BEGGED_FAIL_INVITE - при неудачной выполнении, BEGGED_SUCCESS_INVITE - удачно.


Для работы инклуда требуется стример, при подключении инклуда в фильтрскрипт, необходимо выше добавить: #define FILTERSCRIPT.

Настройки:
BEG_REPRINT_SEC - ограничение по времени на повторное использование функции beg_switchForPlayer (анти-флуд)
BEGGED_ANTI_FLOOD_SEC - время антифлуда в секундах.
BEG_PAY_TIME- интервал между выдачей денег
BEG_INDIVIDUAL_MONEY - сколько денег выдавать каждые BEG_TYPE_SEC (для игроков, попрошайничающих без покровительства мафии)
BEG_MAFIA_MONEY - сколько денег выдавать каждые BEG_TYPE_SEC (для игроков, попрошайничающих под покровительством мафии)
beg_varshars - в этой переменной хранятся все строковые данные (игровые сообщения, показываемые игрокам, опционально).
beg_forbidden_cords - координаты запрещенных мест для попрошайничества (x, y, z)

Ссылки:
Скачать (https://yadi.sk/d/31BNVi7g3T84ac)
Узреть код (http://pasted.co/f68e2ccd)
Пример использования (временно удалена)

VVWVV
06.03.2018, 19:10
1) Используйте единый стиль для именования функций. Кроме того, если вы уже начали делать префиксы для названий, то сделайте их для каждой функции одинаковыми.
2) Переменная BeggingInfo может конфликтовать с другими переменными, поэтому лучше объявить её статичной.
3) Магические числа - зло. Особенно в циклах.
4) Очень странное подключение библиотек:


#if !defined OnPlayerConnected
#include <a_samp>
#endif

#if !defined CreateDynamicObject
#include <streamer>
#endif

5) Перечисление str_begs может конфликтовать с другими перечислениями.
6) Объявите все функции статичными, которые не должны быть использованы в коде пользователя.

P.S. Чувствую себя синтаксическим анализатором от PVS-Studio.

#iDanny
07.03.2018, 20:20
VVWVV (http://pro-pawn.ru/member.php?4348-VVWVV),

1. Уже подумывал над этим, впрочем так и сделано в новой версии, сейчас доделаю с учетом ваших рекомендации и обновлю. кодекс написан для пиратов и в нем лишь рекомендации, а не свод правил (с) Пираты из карибского моря.
2. Вряд-ли, не думаю что кто нибудь решится объявлять в своих скриптах именно такую переменную, но это неправильно. Согласен, учту.
3. Учтено.
4. Была мысля, что если инклуд подключается дважды, то и в коде пользоваться окажется повторение библиотек. Но с подключениями да, обложался немного, делал ночью и что-то не заметил OnPlayerConnected.
5. Это почему?
6. Будет в новой версии.
_____________________________

Спасибо за адекватную критику, сразу заметна разница между форумами.

#iDanny
07.03.2018, 21:28
Обновлено.

Long-
15.03.2018, 14:47
VVWVV (http://pro-pawn.ru/member.php?4348-VVWVV),

1. Уже подумывал над этим, впрочем так и сделано в новой версии, сейчас доделаю с учетом ваших рекомендации и обновлю. кодекс написан для пиратов и в нем лишь рекомендации, а не свод правил (с) Пираты из карибского моря.
2. Вряд-ли, не думаю что кто нибудь решится объявлять в своих скриптах именно такую переменную, но это неправильно. Согласен, учту.
3. Учтено.
4. Была мысля, что если инклуд подключается дважды, то и в коде пользоваться окажется повторение библиотек. Но с подключениями да, обложался немного, делал ночью и что-то не заметил OnPlayerConnected.
5. Это почему?
6. Будет в новой версии.
_____________________________

Спасибо за адекватную критику, сразу заметна разница между форумами.

Она заметна не форумами, а пользователями которыми на них сидят.
На этом форуме сидят более прошаренные пользователи, если вы про g-i, то да, там менее прошаренные пользователи, хотя и на том форуме тоже сидят множество с этого портала.