Русское сообщество по скриптингу

Система предупреждений 2.0

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

Система предупреждений 2.0

Сообщение Vaillante » 22 июл 2014, 15:18

Авторы: Я (LeeVaillante)
Версия: 2.0

Описание:
Это простенькая система предупреждений для вашего сервера.
Можно указать максимальное количество предупреждений, наказание.
Наказание срабатывает, только если количество предупреждений == 'max'+1
Лог всех выданных предупреждений в папке logs/warns
* Плагин писал для своего сервера


Настройки:
Настройки плагина:
wl_max — максимальное количество предупреждений

wl_punish — наказание, если предупреждений 'max+1'
wl_notify — тип оповещения
0 — не показывать
1 — MOTD окно
2 — HUD сообщение
3 — DHUD сообщение
4 — сообщение в чат

wl_notify_message — текст HUD/DHUD сообщения
wl_notify_settings — настройки HUD/DHUD сообщения
Формат:
<red - красный> <blue - синий> <green - зеленый> <x - по оси X> <y - по оси Y>
Пример:
wl_notify_settings "255 144 0 0.44 0.35"


Подробнее смотрите конфигурационный файл плагина.

Команды:
amx_warning <#userid or name> <reason> — выдать предупреждение
amx_warning_menu — простенькое меню для выдачи предупреждений


Warning System 2.0.rar

Warnings Lite.rar
Последний раз редактировалось Vaillante 25 июл 2014, 15:16, всего редактировалось 2 раз(а).
Аватара пользователя
Vaillante
 
Сообщения: 493
Зарегистрирован: 28 окт 2013, 14:56
Откуда: ты?
Благодарил (а): 131 раз.
Поблагодарили: 90 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Система предупреждений: Lite

Сообщение kentyxa » 22 июл 2014, 15:22

Это простенькая система предупреждений для вашего сервера.

А смысл тогда прятать исходник?
На форуме больше не обитаю.

04.01.2015
Аватара пользователя
kentyxa
 
Сообщения: 777
Зарегистрирован: 30 июл 2013, 16:47
Благодарил (а): 99 раз.
Поблагодарили: 170 раз.

Re: Система предупреждений: Lite

Сообщение Vaillante » 22 июл 2014, 15:23

kentyxa писал(а):
Это простенькая система предупреждений для вашего сервера.

А смысл тогда прятать исходник?

Хочется так :-X
Аватара пользователя
Vaillante
 
Сообщения: 493
Зарегистрирован: 28 окт 2013, 14:56
Откуда: ты?
Благодарил (а): 131 раз.
Поблагодарили: 90 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Система предупреждений: Lite

Сообщение 9iky6 » 22 июл 2014, 15:59

Вы должны зарегистрироваться, чтобы видеть ссылки. Или просто копия? У fifaer'а вроде бы было ограничение на выдачу тоже, я уже не помню оригинал
Аватара пользователя
9iky6
 
Сообщения: 2178
Зарегистрирован: 30 янв 2012, 19:07
Откуда: Россия
Благодарил (а): 375 раз.
Поблагодарили: 703 раз.

Re: Система предупреждений: Lite

Сообщение Vaillante » 22 июл 2014, 16:07

9iky6 писал(а):Вы должны зарегистрироваться, чтобы видеть ссылки. Или просто копия? У fifaer'а вроде бы было ограничение на выдачу тоже, я уже не помню оригинал

Нет, не повтор, и не копия.
В лс могу скинуть исходный код, если интересно(в первом посту писал)
Аватара пользователя
Vaillante
 
Сообщения: 493
Зарегистрирован: 28 окт 2013, 14:56
Откуда: ты?
Благодарил (а): 131 раз.
Поблагодарили: 90 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Система предупреждений: Lite

Сообщение Dmitry Beast » 22 июл 2014, 16:22

можно исходник глянуть?
Аватара пользователя
Dmitry Beast
 
Сообщения: 1533
Зарегистрирован: 24 дек 2010, 10:35
Откуда: Челябинск
Благодарил (а): 431 раз.
Поблагодарили: 206 раз.
Опыт программирования: Больше трех лет
Языки программирования: All Languages

Re: Система предупреждений: Lite

Сообщение KORD_12.7 » 22 июл 2014, 16:44

Лол, похоже уже скоро будут прятать исходы плагов аля "Hello World".

ЗЫ
Имхо, нет исхода - тему в мусор.

_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 141 раз.
Поблагодарили: 251 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: Система предупреждений: Lite

Сообщение Vaillante » 22 июл 2014, 16:52

KORD_12.7 писал(а):Лол, похоже уже скоро будут прятать исходы плагов аля "Hello World".

ЗЫ
Имхо, нет исхода - тему в мусор.

:-D
[pawn]
  1. #include amxmodx

  2. #include amxmisc

  3. #include colorchat

  4.  

  5. new const PLUGIN[]      =       "Warnings: Lite";

  6. new const AUTHOR[]      =       "LeeVaillante";

  7. new const UPDATE[]      =       "22, July(07), 2014";

  8. new const VERSION[]     =       "1.0";

  9.  

  10. enum _:cvars_num {

  11.         MAX, PUNISH

  12. }

  13.  

  14. new cvar[cvars_num], warns[33]

  15.  

  16. public plugin_init()

  17. {

  18.         register_plugin(PLUGIN, VERSION, AUTHOR)

  19.        

  20.         cvar[MAX]                       = register_cvar("wl_max", "4")

  21.         cvar[PUNISH]            = register_cvar("wl_punish", "kick %userid% ^"Нарушение правил сервера^"")

  22.        

  23.         register_concmd("amx_warning", "cmdAddWarnings", ADMIN_BAN, "<#userid or name> <reason>")

  24.         register_clcmd("amx_warning_menu", "menuAddWarnings", ADMIN_BAN)

  25.         register_clcmd("add_warning", "addWarnPost")

  26. }

  27.  

  28. public plugin_cfg()

  29. {

  30.         new file[128]

  31.         get_configsdir(file, charsmax(file))

  32.         add(file, charsmax(file), "/warnings/main.cfg")

  33.         if(file_exists(file))

  34.         {

  35.                 server_cmd("exec %s", file)

  36.                 server_print("")

  37.                 server_print("          ^"%s^" Copyright (c) 2014", PLUGIN)

  38.                 server_print("          Author: %s", AUTHOR)

  39.                 server_print("          Version %s build on %s", VERSION, UPDATE)

  40.                 server_print("")

  41.         }

  42.         else

  43.         {

  44.                 log_to_error("Configuration File not found!^nPlugin Stopped")

  45.                 pause("ad")

  46.         }

  47. }

  48.  

  49. public cmdAddWarnings(id, level, cid)

  50. {

  51.         if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED

  52.        

  53.         new target[32], reason[64]

  54.         read_argv(1, target, 31)

  55.         read_argv(2, reason, 63)

  56.        

  57.         new player = cmd_target(id, target, 1)

  58.         if(!player) return PLUGIN_HANDLED

  59.        

  60.         new authid[2][32], name[2][32], userid[2]

  61.         userid[0] = get_user_userid(id)

  62.         userid[1] = get_user_userid(player)

  63.        

  64.         get_user_authid(id, authid[0], 31)

  65.         get_user_authid(player, authid[1], 31)

  66.        

  67.         get_user_name(id, name[0], 31)

  68.         get_user_name(player, name[1], 31)

  69.        

  70.         warns[player]++

  71.         log_to_warnings(name[0], userid[0], authid[0], name[1], userid[1], authid[1], reason)

  72.         if(warns[player] >= get_pcvar_num(cvar[MAX])+1)

  73.         {

  74.                 new szPunish[128], szUserID[64], szCmd[128]

  75.                 get_pcvar_string(cvar[PUNISH], szPunish, charsmax(szPunish))

  76.                 formatex(szUserID, charsmax(szUserID), "#%d", userid[1])

  77.                 replace(szPunish, charsmax(szPunish), "%userid%", szUserID)

  78.                 formatex(szCmd, charsmax(szCmd), "%s", szPunish)

  79.                

  80.                 console_print(player, "[WARNING] Вы были наказаны за нарушение правил сервера.")

  81.                 console_print(player, "[WARNING] Количество предупреждений было превышено.")

  82.                

  83.                 server_cmd(szCmd)

  84.  

  85.                 console_print(id, "[WARNING] Игрок %s наказан, т.к кол-во предупреждений достигло максимума.", name[1])

  86.         }

  87.         switch(get_cvar_num("amx_show_activity"))

  88.         {

  89.                 case 0: client_print_color(player, RED, "^1[^4WARNING^1] Вам было выдано предупреждение за ^4%s", reason)

  90.                 case 1: client_print_color(id, RED, "^1[^4WARNING^1] Игроку ^4%s^1 выдано предупреждение за ^4%s", name[1], reason)

  91.                 case 2: client_print_color(0, RED, "^1[^4WARNING^1] Админ ^4%s^1 выдал предупреждение ^4%s^1 за ^4%s", name[0], name[1], reason)

  92.         }

  93.         return PLUGIN_HANDLED

  94. }

  95.  

  96. stock log_to_error(const message[])

  97. {

  98.         new log[256], date[32]

  99.         vformat(log, charsmax(log), message, 2)

  100.         get_time("error_%Y%m%d.log", date, charsmax(date))

  101.        

  102.         log_to_file(date, "[%s] Displaying debug trace (plugin ^"%s^", version ^"%s^")", PLUGIN, PLUGIN, VERSION)

  103.         log_to_file(date, "[%s] %s", PLUGIN, log)

  104. }

  105.  

  106. stock log_to_warnings(const name[], userid, const authid[], const name2[], userid2, const authid2[], const reason[])

  107. {

  108.         new log[256], date[32], FileDir[128], FileName[64]

  109.        

  110.         formatex(FileDir, charsmax(FileDir), "addons/amxmodx/logs/warns")

  111.        

  112.         if(dir_exists(FileDir)) mkdir(FileDir)

  113.         vformat(log, charsmax(log), reason, 2)

  114.        

  115.         get_time("warns_%Y%m%d.log", date, charsmax(date))

  116.         formatex(FileName, charsmax(FileName), "%s/%s", FileDir, date)

  117.        

  118.         log_to_file(FileName, "%s<%d><%s> выдал предупреждение игроку %s<%d><%s> за ^"%s^"", name, userid, authid, name2, userid2, authid2, reason)

  119. }

  120.  

  121. public client_disconnect(id)

  122. {

  123.         warns[id] = 0

  124. }

  125.  

  126.  

  127. public menuAddWarnings(id)

  128. {

  129.         new i_Menu = menu_create("\rВыберите игрока:", "menu_handler")

  130.         new s_Players[32], i_Num, i_Player

  131.         new s_Name[32], s_Player[10], item[128]

  132.         get_players(s_Players, i_Num)

  133.  

  134.         for (new i; i < i_Num; i++)

  135.         {

  136.                 i_Player = s_Players[i]

  137.                 get_user_name(i_Player, s_Name, charsmax(s_Name))

  138.                 num_to_str(i_Player, s_Player, charsmax(s_Player))

  139.                 formatex(item, charsmax(item), "%s      [%d]", s_Name, warns[i_Player])

  140.                 menu_additem(i_Menu, item, s_Player, 0)

  141.  

  142.         }

  143.         menu_display(id, i_Menu, 0)

  144.         return PLUGIN_HANDLED

  145. }

  146.  

  147. public menu_handler(id, menu, item)

  148. {

  149.         if (item == MENU_EXIT)

  150.         {

  151.                 menu_destroy(menu)

  152.                 return PLUGIN_HANDLED

  153.         }

  154.  

  155.         new s_Data[6], s_Name[64], i_Access, i_Callback

  156.         menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

  157.  

  158.         // Получаем ID игрока, который был выбран в меню

  159.         new i_Player = str_to_num(s_Data)

  160.  

  161.         client_cmd(id, "messagemode ^"add_warning %i^"", i_Player);

  162.         client_print_color(id, RED, "^1[^4WARNING^1] Введите причину выдачи предупреждения")

  163.        

  164.         menu_destroy(menu)

  165.         return PLUGIN_HANDLED

  166. }

  167.  

  168. public addWarnPost(id)

  169. {

  170.         new target[10], reason[64]

  171.         read_argv(1, target, 9)

  172.         read_argv(2, reason, 63)

  173.        

  174.         new player = str_to_num(target)

  175.         if(!player) return PLUGIN_HANDLED

  176.        

  177.         new authid[2][32], name[2][32], userid[2]

  178.         userid[0] = get_user_userid(id)

  179.         userid[1] = get_user_userid(player)

  180.        

  181.         get_user_authid(id, authid[0], 31)

  182.         get_user_authid(player, authid[1], 31)

  183.        

  184.         get_user_name(id, name[0], 31)

  185.         get_user_name(player, name[1], 31)

  186.        

  187.         warns[player]++

  188.         log_to_warnings(name[0], userid[0], authid[0], name[1], userid[1], authid[1], reason)

  189.         if(warns[player] >= get_pcvar_num(cvar[MAX])+1)

  190.         {

  191.                 new szPunish[128], szUserID[64], szCmd[128]

  192.                 get_pcvar_string(cvar[PUNISH], szPunish, charsmax(szPunish))

  193.                 formatex(szUserID, charsmax(szUserID), "#%d", userid[1])

  194.                 replace(szPunish, charsmax(szPunish), "%userid%", szUserID)

  195.                 formatex(szCmd, charsmax(szCmd), "%s", szPunish)

  196.                

  197.                 console_print(player, "[WARNING] Вы были наказаны за нарушение правил сервера.")

  198.                 console_print(player, "[WARNING] Количество предупреждений было превышено.")

  199.                

  200.                 server_cmd(szCmd)

  201.                

  202.                 console_print(id, "[WARNING] Игрок %s наказан, т.к кол-во предупреждений достигло максимума.", name[1])

  203.         }

  204.         switch(get_cvar_num("amx_show_activity"))

  205.         {

  206.         case 0: client_print_color(player, RED, "^1[^4WARNING^1] Вам было выдано предупреждение за ^4%s", reason)

  207.         case 1: client_print_color(id, RED, "^1[^4WARNING^1] Игроку ^4%s^1 выдано предупреждение за ^4%s", name[1], reason)

  208.         case 2: client_print_color(0, RED, "^1[^4WARNING^1] Админ ^4%s^1 выдал предупреждение ^4%s^1 за ^4%s", name[0], name[1], reason)

  209.         }

  210.         return PLUGIN_HANDLED

  211. }
[/pawn]
Аватара пользователя
Vaillante
 
Сообщения: 493
Зарегистрирован: 28 окт 2013, 14:56
Откуда: ты?
Благодарил (а): 131 раз.
Поблагодарили: 90 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Система предупреждений: Lite

Сообщение KORD_12.7 » 22 июл 2014, 16:54

И что тут прятать было? :dntknw:

_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 141 раз.
Поблагодарили: 251 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: Система предупреждений: Lite

Сообщение Vaillante » 22 июл 2014, 16:56

KORD_12.7 писал(а):И что тут прятать было? :dntknw:

В принципе ничего...
Аватара пользователя
Vaillante
 
Сообщения: 493
Зарегистрирован: 28 окт 2013, 14:56
Откуда: ты?
Благодарил (а): 131 раз.
Поблагодарили: 90 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

След.

Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2