Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Изменение antiflood.sma

, нужна помощь
Статус пользователя ncux0Zz
сообщение 23.8.2015, 16:08
Сообщение #1


Стаж: 14 лет

Сообщений: 359
Благодарностей: 14
Полезность: < 0

Хочу изменить стандартный файл antiflood.sma, так чтобы выдавало сообщение в чате а не в консоле один раз и красным цветом, пример "Прекратите флуд на сервере!"
Понял только, как сделать вывод сообщения не в консоле, а в чате. Выводит сообщение не однократно при повторном наборе текста в чат:
Cкрытый текст


Хотелось бы, чтобы получилось так: вывод максимум 3-4 строки сообщения хоть мгновенно, хоть поочередно, но на 4-5ый раз выводило один раз сообщение красным цветом "Прекратите флуд на сервере!" и после этого сообщения игрок бы не мог писать в чате секунды 3-5. И если можно, то как прикрепить квары для редактирования количество допустимых строк и времени, которое нельзя писать в чат.

antiflood.sma
Код:
// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright © The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
// https://alliedmods.net/amxmodx-license

//
// Anti Flood Plugin
//

#include <amxmodx>

new Float:g_Flooding[MAX_PLAYERS + 1] = {0.0, ...}
new g_Flood[MAX_PLAYERS + 1] = {0, ...}

new amx_flood_time;

public plugin_init()
{
register_plugin("Anti Flood", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("antiflood.txt")
register_clcmd("say", "chkFlood")
register_clcmd("say_team", "chkFlood")
amx_flood_time=register_cvar("amx_flood_time", "0.80")
}

public chkFlood(id)
{
new Float:maxChat = get_pcvar_float(amx_flood_time)

if (maxChat)
{
new Float:nexTime = get_gametime()

if (g_Flooding[id] > nexTime)
{
if (g_Flood[id] >= 3)
{
client_print(id, print_chat, "* %L *", id, "STOP_FLOOD")
g_Flooding[id] = nexTime + maxChat + 3.0
return PLUGIN_HANDLED
}
g_Flood[id]++
}
else if (g_Flood[id])
{
g_Flood[id]--
}

g_Flooding[id] = nexTime + maxChat
}

return PLUGIN_CONTINUE
}


Помогите кто разбирается в amxx коде, буду благодарен. Хотя бы по частично объяснить и дать кусками код.

Отредактировал: ncux0Zz, - 23.8.2015, 16:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Zylex
сообщение 23.8.2015, 19:07
Сообщение #2


Стаж: 10 лет

Сообщений: 128
Благодарностей: 6
Полезность: 40

#include <colorchat>
ColorChat(id, print_chat, "* %L *", id, "STOP_FLOOD")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: