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

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

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

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

Падает сервер при кике игрока.

Статус пользователя djlancer
сообщение 31.3.2017, 9:05
Сообщение #1
Стаж: 11 лет
Город: Донецк

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

Доброго времени суток форумчане. С недавних пор столкнулся с такой проблемой текст с консоли "Kick: "Ник игрока | Original<359><STEAM_ID><>" was kicked by "Console" (message "Ваш ник запрещен на сервере.")" Сервер падает и выбивает ошибку segmentation fault. Подскажите в чём проблема и куда копать? Сервер стоит на VDS (OS: Debian-7.0-x86_64-minimal) Зарание благодарен за помощь.
Meta List

Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] dproto_EF RUN - dproto_i386.so v0.9.548 ini Start Never
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.2 ini Start ANY
[ 3] VoiceTranscoder RUN - vtc.so v106 ini ANY ANY
[ 4] Cust. Flood Fix RUN - cf_fix_mm_i386.s v1.1 ini Start Never
[ 5] Fun RUN - fun_amxx_i386.so v1.8.2 pl2 ANY ANY
[ 6] Engine RUN - engine_amxx_i386 v1.8.2 pl2 ANY ANY
[ 7] CStrike RUN - cstrike_amxx_i38 v1.8.2 pl2 ANY ANY
[ 8] CSX RUN - csx_amxx_i386.so v1.8.2 pl2 ANY ANY
[ 9] Orpheu RUN - orpheu_amxx_i386 v2.5.1 pl2 ANY ANY
[10] Ham Sandwich RUN - hamsandwich_amxx v1.8.2 pl2 ANY ANY
[11] FakeMeta RUN - fakemeta_amxx_i3 v1.8.2 pl2 ANY ANY
11 plugins, 11 running

version
Код:
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 13:12:29 Aug 29 2013 (6153)


Список плагинов
;=================================================;
# Системы банов , защита и т.д. #
;=================================================;
opengl32.amxx ;Детектор вх.
aim_detector.amxx ;Детектор аима.
advanced_bans.amxx ;Бан по IP и STEAM_ID , скрины при бане , настройки в amxx.cfg


;=================================================;
# Стандартные плагины #
;=================================================;

admin.amxx
admincmd.amxx
menufront.amxx
cmdmenu.amxx
plmenu.amxx
mapsmenu.amxx
pluginmenu.amxx
adminchat.amxx
antiflood.amxx
scrollmsg.amxx
imessage.amxx
adminvote.amxx
;nextmap.amxx
;timeleft.amxx
pausecfg.amxx
statscfg.amxx
restmenu.amxx
;=================================================;
# Дополнительные плагины #
;=================================================;

MapManager.amxx ;Отличный менеджер карт + ртв + смена в конце раунда
;INFO_RANK_V0.1.amxx ;Информация о ранге игрока.
statsx_gui.amxx ;Нестандартная статистика сервера
IDEAL_VIP.amxx ;Отличный VIP плагин [Команда в консоль "vipmenu" по флагу "t"]
ad_manager.amxx ;Реклама в чат
rs_v1.3.amxx ;Новый сброс счёта со звуком.
voteban.amxx ;Голосование за бан игрока
spec_banner.amxx ;Показывает баннер в правом верхнем углу (картинка лежит /cstrike/gfx/banner.tga)
amx_ad.amxx ;Автоматическое запись демо игроку [Настройка в demo.cfg]
admin_freelook.amxx ;Админ может наблюдать за всеми
top_players.amxx ;Плагин показывает топ 20 игроков в HUD
Colored_Chat.amxx ;Русский/Английский чат
admin_check.amxx ;Админы, Випы On-Line.
csnadedrops.amxx ;После смерти игрока, остаются гранаты.
join_ip_colored.amxx ;Кто коннектится к серверу.
killa_hp.amxx ;Сколько осталось HP у противника.
mutemenu.amxx ;Меню затыкание игрока.
noplayers_map.amxx ;Когда сервер пустой карта de_dust2_2x2.
GHW_Weapon_Replacement.amxx ;Белые перчатки+нож.
amx_vipmodel.amxx ;VIP модель.
afk_manager.amxx ;Кик афк.
block_key.amxx ;Блок чит клавиш.
auto_rr.amxx ;Авто рестарт раунда.
Bomb_HuD.amxx ;Таймер бомбы.
damager.amxx ;Показывает нанесенный урон.
amx_hpk.amxx ;Кик за пинг.
cpanel.amxx ;cpanel say /cpanel
Blue_Fade.amxx ;Синеет экран при убийстве.
amx_parachute.amxx ;Парашут.
;block_change_name.amxx ;Запрет смены ника.
kill_assist.amxx ;Показывает кто помог убить.
anti_block.amxx ;Проход сквозь своих в начеле раунда.
steam_models.amxx ;Модел для стим игроков.


qconsole.log

condebug enabled
L 03/31/2017 - 08:02:20: [DPROTO]: Client 0 - Set AuthIdType 1 [dp_RevEmu]; pClient = 0x41ae6f08
L 03/31/2017 - 08:02:20: "Cs-Ska4at.ru | Original<358><STEAM_0:0:556043872><>" connected, address "95.59.135.77:27005"
L 03/31/2017 - 08:02:20: [VTC] Player 1 speex
L 03/31/2017 - 08:02:21: World triggered "Round_Start"
95.59.135.77:27005:reconnect
L 03/31/2017 - 08:02:29: [DPROTO]: Client 0 - Set AuthIdType 1 [dp_RevEmu]; pClient = 0x41ae6f08
L 03/31/2017 - 08:02:29: "Cs-Ska4at.ru | Original<359><STEAM_0:0:556043872><>" connected, address "95.59.135.77:27005"
L 03/31/2017 - 08:02:29: [VTC] Player 1 speex
L 03/31/2017 - 08:02:33: Kick: "Cs-Ska4at.ru | Original<359><STEAM_0:0:556043872><>" was kicked by "Console" (message "Ваш ник запрещен на сервере.")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя djlancer
сообщение 31.3.2017, 12:26
Сообщение #2
Стаж: 11 лет
Город: Донецк

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

И щас сделал себе ник как у игрока которого кикнул сервер, меня тоже кикнуло и сервер завис с той же ошибкой (ник игрока был "TazmaniaN g2a.com") Segmentation fault. И заметил что кикает у кого в нике есть .com .ru и т.д.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 31.3.2017, 20:53
Сообщение #3
Стаж: 11 лет
Город: Донецк

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

И вот ещё забыл добавить:

amxx plugins

Currently loaded plugins:
name version author file status
[ 1] opengl detector 0.7.8e kanagava opengl32.amxx running
[ 2] AIM detector 0.7.4e kanagava aim_detector.am running
[ 3] Nk_116_RuS+SS 0.7 S advanced_bans.a running
[ 4] Admin Base 1.8.3 AMXX Dev Team admin.amxx running
[ 5] Admin Commands 1.8.3 AMXX Dev Team admincmd.amxx running
[ 6] Menus Front-End 1.8.3 AMXX Dev Team menufront.amxx running
[ 7] Commands Menu 1.8.3 AMXX Dev Team cmdmenu.amxx running
[ 8] Players Menu 1.8.3 AMXX Dev Team plmenu.amxx running
[ 9] Maps Menu 1.8.3 AMXX Dev Team mapsmenu.amxx running
[ 10] Plugin Menu 1.8.3 AMXX Dev Team pluginmenu.amxx running
[ 11] Admin Chat 1.8.3 AMXX Dev Team adminchat.amxx running
[ 12] Anti Flood 1.8.3 AMXX Dev Team antiflood.amxx running
[ 13] Scrolling Message 1.8.2 AMXX Dev Team scrollmsg.amxx running
[ 14] Info. Messages 1.8.3 AMXX Dev Team imessage.amxx running
[ 15] Admin Votes 1.8.3 AMXX Dev Team adminvote.amxx running
[ 16] Pause Plugins 1.8.3 AMXX Dev Team pausecfg.amxx running
[ 17] Stats Configuration 1.8.3 AMXX Dev Team statscfg.amxx running
[ 18] Restrict Weapons 1.8.3 AMXX Dev Team restmenu.amxx running
[ 19] Map Manager 2.5.60 Mistrick MapManager.amxx running
[ 20] StatsX 1.8.3 AMXX Dev Team [U statsx_gui.amxx running
[ 21] IDEAL VIP by Ba/lePa 2.9 Ba/lePa IDEAL_VIP.amxx running
[ 22] Autoresponder/Advertis 0.5 MaximusBrood ad_manager.amxx running
[ 23] Reset Score 1.3 Adrenaline rs_v1.3.amxx running
[ 24] Voteban 3.0 SLIMSHADY_MOD voteban.amxx running
[ 25] Spectator Banner Ads 0.1.16 iG_os spec_banner.amx running
[ 26] Auto recording demo 2.0 IzI | Bonaqua (R amx_ad.amxx running
[ 27] Admin Free Look 2.0 Jim admin_freelook. running
[ 28] Stats Marquee 1.2 Travo top_players.amx running
[ 29] Colored Chat 3.6 ReVKa33 Colored_Chat.am running
[ 30] Admin_Check 0.1 LipTon* admin_check.amx running
[ 31] CSNadeDrops 0.14 Avalanche csnadedrops.amx running
[ 32] Join IP Colored 1.1 Alternative join_ip_colored running
[ 33] Killa HP 1.0 jas0n killa_hp.amxx running
[ 34] mute menu 1.0 cheap_suit mutemenu.amxx running
[ 35] No Players Map 0.1 X-factor noplayers_map.a running
[ 36] Weapon Model + Sound R 1.2 GHW_Chronic GHW_Weapon_Repl running
[ 37] AMX VIP Model 1.0 Starik amx_vipmodel.am running
[ 38] AFK Manager v1.4d Leon McVeran afk_manager.amx running
[ 39] Block cheat key 1.1 9 rpamm!? block_key.amxx running
[ 40] Auto Game Restart with 1.0 AbeX auto_rr.amxx running
[ 41] Bomb HUD Timer 0.2 Twe3k Bomb_HuD.amxx running
[ 42] Damager 2.0 Prayer damager.amxx running
[ 43] High Ping Kicker 1.0 Shadow/Bo0m! amx_hpk.amxx running
[ 44] Control Panel 1.0 Felix_Font cpanel.amxx running
[ 45] Blue Fade 0.1 Stimul Blue_Fade.amxx running
[ 46] Parachute 1.3 KRoT@L/JTP10181 amx_parachute.a running
[ 47] Kill assist (for CS) 1.2 Digi (a.k.a. Hun kill_assist.amx running
[ 48] (Team-)Semiclip 1.2 SchlumPF*/Empowe anti_block.amxx running
[ 49] Steam Models 0.1b+mod.l Freedo.m steam_models.am running
49 plugins, 49 running
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Profan
сообщение 31.3.2017, 22:48
Сообщение #4


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

djlancer, Модуль поставь localizebugfix_m v2.4
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 1.4.2017, 3:14
Сообщение #5
Стаж: 11 лет
Город: Донецк

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

Profan, Не помогло.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 1.4.2017, 6:30
Сообщение #6
Стаж: 11 лет
Город: Донецк

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

Или подскажите хотя-бы где глянуть список этих запрещенных ников, префиксов и т.д. Сервер по 6-10 раз за день падает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 1.4.2017, 8:10
Сообщение #7
Стаж: 11 лет
Город: Донецк

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

Вообщем нашел причину падений сервера - это плагин Colored_Chat.amxx
Подскажите что не так и почему выбивает ошибку segmentation fault.
Вот исходник плагина подскажите решение данной проблемы что сохранить список спам ников, и тем самым игрока просто кикало без падений сервера.
Colored_Chat.sma

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Colored Chat"
#define VERSION "3.6"
#define AUTHOR "ReVKa33"

/*

**Colored Chat Confings
**Globals variable

*/
#define MAXSAY 10
#define MAX_SPAMS 1000
#define MAX_SWEARS 1000
#define ACCESS_LEVEL ADMIN_LEVEL_E

//Gag
new s_GagName[33][32]
new s_GagIp[33][32]
new s_Arg[64]

new s_GagTime[32]
new s_GagPlayer[32]
new s_GagAdmin[32]
new s_GagTarget[32]

new s_CheckGag[32]
new s_CheckIp[32]

new gagid
new i_GagTime
new i_ShowGag

new Player_Gag
//Flood

new SysTime;
new i_Gag[33]
new bool:Flood[33]
//

//For File
new g_LoadPlayerPrefix[81]
new s_SwearFile_RU[64]
new s_SwearFile_ENG[64]
new s_SpamFile[64]
new s_File[64]

new SpamNum
new Input[32]
new SwearNum_RU
new SwearNum_ENG
new Swear_ENG[MAX_SWEARS][64]
new Swear_RU[MAX_SWEARS][64]
new Spam[MAX_SPAMS][192]
new Len
//


new g_Warning[33]

new const prefix[] = "Чат"
new iPlayerPrefix[33]
new iPlayerPrefixText[33][2][64]
new iPlayerColorText[33][2][32]

new g_antimat[33];
new g_admin[33];

//For Rus
new g_OriginalSimb[128][32]
new g_TranslitSimb[128][32]
new i_MaxSimbols
new Line

new iPlayerRus[33]

new Say_word[MAXSAY][] =
{
"0","1","2","3","4","5","6","7","8","9"
}
new GagTimes[7][] =
{
"10", "30", "60", "120", "180", "300", "1440"
}
/*

**Colored Chat Confings
**Globals variable

**End

*/

/*

** Colored Chat Init
** All comands


*/

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /rus", "LangRus")
register_clcmd("say /eng", "LangEng")


register_clcmd("say", "NewSay")
register_clcmd("say_team", "NewSayTeam")

register_concmd("amx_gag", "cmd_gag", ADMIN_LEVEL_E, "<Nick> <Minutes>")
register_concmd("amx_ungag", "cmd_ungag", ADMIN_LEVEL_E, "<Nick>")
register_concmd("amx_gagmenu", "GagsMenu", ADMIN_LEVEL_E, "- displays menu for gag")

}



public plugin_cfg()
{
new g_LoadDir[81]
get_configsdir(g_LoadDir, charsmax( g_LoadDir ))

formatex(g_LoadPlayerPrefix, charsmax( g_LoadPlayerPrefix ), "%s/Colored Chat/Chat_Prefix.ini", g_LoadDir)
formatex(s_SwearFile_ENG, charsmax( s_SwearFile_ENG ), "%s/Colored Chat/Chat_Swear_ENG.ini", g_LoadDir)
formatex(s_SwearFile_RU, charsmax( s_SwearFile_RU ), "%s/Colored Chat/Chat_Swear_RU.ini", g_LoadDir)
formatex(s_SpamFile, charsmax( s_SpamFile ), "%s/Colored Chat/Chat_Spam.ini", g_LoadDir)
formatex(s_File, charsmax( s_File ), "%s/Colored Chat/Chat_Translit.ini", g_LoadDir)

if(!file_exists( g_LoadPlayerPrefix ) || !file_exists( s_SwearFile_ENG ) || !file_exists( s_SwearFile_RU )|| !file_exists( s_SpamFile ) || !file_exists( s_File ))
{
set_fail_state("No file exists... ")
}

if(file_exists(s_File))
{
while((Line = read_file(s_File, Line, Input, 31, Len)) != 0)
{
strtok(Input, g_OriginalSimb[i_MaxSimbols], 16, g_TranslitSimb[i_MaxSimbols], 16, ' ')
i_MaxSimbols++
}
}

if(file_exists(s_SwearFile_RU))
{
new i=0
while(i < MAX_SWEARS && read_file(s_SwearFile_RU, i , Swear_RU[SwearNum_RU], 63, Len))
{
i++
if(Swear_RU[SwearNum_RU][0] == ';' || !Len)
{
continue
}
SwearNum_RU++
}
}
if(file_exists(s_SwearFile_ENG))
{
new i=0
while(i < MAX_SWEARS && read_file(s_SwearFile_ENG, i , Swear_ENG[SwearNum_ENG], 63, Len))
{
i++
if(Swear_ENG[SwearNum_ENG][0] == ';' || !Len)
{
continue
}
SwearNum_ENG++
}
}

if(file_exists(s_SpamFile))
{
new i=0
while(i < MAX_SPAMS && read_file(s_SpamFile, i , Spam[SpamNum], 191, Len))
{
i++
if(Spam[SpamNum][0] == ';' || !Len)
{
continue
}
SpamNum++
}
}

server_print("^n^n========== [%s] START LOADING FILES ==========^n", PLUGIN)
server_print("[%s] Current Version - %s Plugin Autor - %s", PLUGIN, VERSION, AUTHOR)
server_print("[%s] Configs dir: %s...........", PLUGIN, g_LoadDir)
server_print("[%s] Cheking if files exists..........Complete", PLUGIN)
server_print("[%s] Waiting for load files...............: %s.", PLUGIN, g_LoadDir)
server_print("[%s] Translit File Loaded. Symbols: %d", PLUGIN, i_MaxSimbols)
server_print("[%s] Prefix File Loaded............", PLUGIN)
server_print("[%s] Swear File Loaded [RUS]. Swears : %d..........", PLUGIN, SwearNum_RU)
server_print("[%s] Swear File Loaded [ENG]. Swears : %d..........", PLUGIN, SwearNum_ENG)
server_print("[%s] Spam File Loaded. Spam Words: %d^n...........", PLUGIN, SpamNum)
server_print("=========== [%s] END LOADING FILES ===============^n^n", PLUGIN)

return PLUGIN_CONTINUE

}




public client_putinserver(id)
{

g_antimat[id] = bool:access(id, ADMIN_MENU);
g_admin[id] = bool:access(id, ADMIN_LEVEL_E);
g_Warning[id] = 0;
iPlayerRus[id] = true;

set_task(25.0, "ShowInfo", id);

if (is_spam_nick(id))
{
new player = get_user_userid(id)
server_cmd("kick #%d Ваш ник запрещен на сервере.", player)
}

get_user_name(id, s_CheckGag, charsmax(s_CheckGag))
get_user_ip(id, s_CheckIp, charsmax(s_CheckIp), 1)

if(get_systime(0) < i_Gag[id])
{
if(!equal(s_GagName[id], s_CheckGag) && !equal(s_GagIp[id], s_CheckIp))
{
i_Gag[id] = get_systime(0)
}
}

return PLUGIN_CONTINUE
}
public ShowInfo(id)
{

if(is_user_connected(id))
{
{
ChatColor(id,"^1[^4%s^1] ^1Чтобы писать на ^4русском ^1напиши ^3/rus",prefix)
ChatColor(id,"^1[^4%s^1] ^1Чтобы писать на ^4английском ^1напиши ^3/eng",prefix)
}

}
}
/*

** Colored Chat Init
** All comands

** END

*/


/*

** Colored Chat Lang Confing
** Lang


*/

public LangRus(id)
{

if(!iPlayerRus[id])
{
iPlayerRus[id] = true
if(is_user_connected(id))
{
ChatColor(id, "^1[^4%s^1] ^1Русский чат ^3Активирован^1!", prefix)
client_cmd(id, "spk buttons/blip2")
}
}else{
if(is_user_connected(id))
{
ChatColor(id, "^1[^4%s^1] ^1Русский чат уже ^3Активирован^1!", prefix)
}
}
return PLUGIN_CONTINUE
}

public LangEng(id)
{
if(iPlayerRus[id])
{
if(is_user_connected(id))
{
iPlayerRus[id] = false
ChatColor(id, "^1[^4%s^1] ^1Английский чат ^3активирован^1!", prefix)
client_cmd(id, "spk buttons/blip2")
}
}else{
if(is_user_connected(id))
{
ChatColor(id, "^1[^4%s^1] ^1Английский чат уже ^3активирован^1!", prefix)
//return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}

/*

** Colored Chat Lang Confing
** Lang

** END

*/

/*

** Colored Chat Prefix Manager
** Finds the Prefix for Player Admin and ....


*/
public client_authorized(id)
{
if(!is_user_bot(id) || !is_user_hltv(id))
{
iPlayerPrefix[id] = false
iPlayerRus[id] = false

set_task(1.0, "CheckPlayer", id)
}
}

public client_infochanged(id)
{
if(!is_user_connected(id))
{
return PLUGIN_CONTINUE
}

new szNewName[32], szOldName[32]

get_user_name(id, szOldName, charsmax( szOldName ))
get_user_info(id, "name", szNewName, charsmax( szNewName ))

if(!equal(szNewName, szOldName))
{
iPlayerPrefix[id] = false
set_task(0.1, "CheckPlayer", id)
}
return PLUGIN_CONTINUE
}

public CheckPlayer(id)
{
new szName[64], szSteam[32]
new szParse[128]
new szParseType[32], szParseData[64], szParsePrefix[64], szParseColorText[32]
new iLine, iNum, iType

get_user_name(id, szName, charsmax( szName ))
get_user_authid(id, szSteam, charsmax( szSteam ))

for(iLine = 0; read_file(g_LoadPlayerPrefix, iLine, szParse, charsmax( szParse ), iNum); iLine++)
{
if(iNum > 0 && szParse[0] != ';')
{
parse(szParse,
szParseType,
charsmax( szParseType ),
szParseData,
charsmax( szParseData ),
szParsePrefix,
charsmax( szParsePrefix ),
szParseColorText,
charsmax( szParseColorText )
)

iType = str_to_num( szParseType )

if(iType == 1)
{
if(equal(szName, szParseData))
{
iPlayerPrefix[id] = true

iPlayerPrefixText[id][1] = szParsePrefix
iPlayerColorText[id][1] = szParseColorText

break
}else
if(equal(szSteam, szParseData))
{
iPlayerPrefix[id] = true

iPlayerPrefixText[id][1] = szParsePrefix
iPlayerColorText[id][1] = szParseColorText

break
}
}else
if(iType == 2)
{
if(CheckFlag(id, szParseData))
{
iPlayerPrefix[id] = true

iPlayerPrefixText[id][1] = szParsePrefix
iPlayerColorText[id][1] = szParseColorText

break
}
}
}
}
}



/*

** Colored Chat Prefix Manager
** Finds the Prefix for Player Admin and ....

** END

*/

public cmd_gag(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
{
return PLUGIN_HANDLED
}
read_args(s_Arg, charsmax(s_Arg))
parse(s_Arg, s_GagPlayer, charsmax(s_GagPlayer), s_GagTime, charsmax(s_GagTime))
if(!is_str_num(s_GagTime))
{
if(is_user_connected(id))
ChatColor(id, "^1[^4%s^1] Использование: ^3amx_gag ^1<имя/номер/стим> <время в минутах>", prefix)
return PLUGIN_CONTINUE
}
gagid = cmd_target(id, s_GagPlayer, 8)
if(!gagid)
{
return PLUGIN_HANDLED
}
get_user_name(id, s_GagAdmin, charsmax(s_GagAdmin))
get_user_name(gagid, s_GagTarget, charsmax(s_GagTarget))
if(equal(s_GagTarget,s_GagAdmin))
{
s_GagAdmin = "| Artic Fire Games |"
}
if (get_user_flags(gagid) & ADMIN_LEVEL_H )
{
if(is_user_connected(id))
ChatColor(id, "^1[^4AmxGag^1] ^3%s ^1имеет ^4иммунитет^1!", s_GagTarget)
}
else
{
i_GagTime = str_to_num(s_GagTime)
get_user_name(gagid, s_GagName[gagid], 31)
get_user_ip(gagid, s_GagIp[gagid], 31, 1)
SysTime = get_systime(0)
i_Gag[gagid] = SysTime + i_GagTime*60
Flood[gagid] = false
client_cmd(gagid, "spk buttons/button5")
client_cmd(id, "spk buttons/button5")

for(new player = 0; player <= get_maxplayers(); player++)
{
if(!is_user_connected(player))
{
continue
}
ChatColor(player,"^1[^4AmxGag^1] ^3%s ^1Вам заблокировали чат на ^4%d минут(ы)", s_GagTarget, i_GagTime)
}

}
return PLUGIN_CONTINUE
}

public GagsMenu(id)
{
new title[512]; formatex(title, sizeof(title) - 1, "\rGag Меню \yツ^n^n\yВыберите игрока:")

//Create the menu
new p_Menu = menu_create(title, "menu_chooose_user")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
new szTemp[120];
get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if (g_admin[i_Player]) formatex ( szTemp, sizeof ( szTemp ) - 1, "\w%s [\rAdmin\w]", s_Name);
else formatex ( szTemp, sizeof ( szTemp ) - 1, "\w%s", s_Name);
menu_additem(p_Menu, szTemp, s_Player, 0)
}

menu_display(id, p_Menu, 0)

return PLUGIN_HANDLED
}

public menu_chooose_user(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
Player_Gag = str_to_num(s_Data)
MenuGagTime(id)

menu_destroy(menu)
return PLUGIN_HANDLED
}

public MenuGagTime(id)
{
new title[512]; formatex(title, sizeof(title) - 1, "\rGag Меню \yツ^n^n\yВыберите время:")


//Create the menu
new p_Menu = menu_create(title, "menu_gagtime1")


for (new i; i < 7; i++)
{
menu_additem(p_Menu, GagTimes[i], Say_word[i+1], 0)
}

menu_display(id, p_Menu, 0)
}
public menu_gagtime1(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
}
new s_Data[6], s_Name[64], i_Access, i_Callback, nickname[32]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new time_Gag1 = str_to_num(s_Data) -1
new time_Gag = str_to_num(GagTimes[time_Gag1])
get_user_name(Player_Gag,nickname,31)
client_cmd(id," amx_gag %s %i",nickname, time_Gag)
}

public cmd_ungag(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
{
return PLUGIN_HANDLED
}
SysTime = get_systime(0)
read_args(s_GagPlayer, charsmax(s_GagPlayer))
gagid = cmd_target(id, s_GagPlayer, 8)
if(!gagid)
{
return PLUGIN_HANDLED
}
get_user_name(id, s_GagAdmin, charsmax(s_GagAdmin))
get_user_name(gagid, s_GagTarget, charsmax(s_GagTarget))
if(i_Gag[gagid] <= SysTime)
{
if(is_user_connected(id))
ChatColor(id, "У игрока %s уже включен чат!", s_GagTarget)
}
else
{
SysTime = get_systime(0)
i_Gag[gagid] = SysTime
client_cmd(gagid, "spk buttons/button6")
client_cmd(id, "spk buttons/button6")

for(new player = 0; player <= get_maxplayers(); player++)
{
if(!is_user_connected(player))
{
continue
}
ChatColor(player,"^1[^4AmxGag^1] ^3%s ^1чат ^4разброкирован^1.", s_GagTarget)
}

}
return PLUGIN_CONTINUE
}

/*

** Colored Chat SAY COMMANDS
** Chat addons

*/
public NewSay(id)
{
new szMessage[192]
new g_warned;
new swMessage[192]

read_args(szMessage, charsmax( szMessage ))
read_args(swMessage, charsmax( swMessage ))
remove_quotes(szMessage)
remove_quotes(swMessage)

swMessage[charsmax( swMessage )] = szMessage[charsmax( szMessage )]
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))
return PLUGIN_CONTINUE

if(is_user_Flood(id) || is_empty_message(szMessage) || is_user_gaged(id))
{
return PLUGIN_HANDLED
}

new len = charsmax(swMessage)
if ( iPlayerRus[id] )
replase_rus(swMessage, len);

if(is_spam_message(id, swMessage) || is_swear_message(id, swMessage))
{
g_warned = 1
}
for (new h = 1 ; h <= 3 ; h++)
{
message_cleaner( swMessage, len, h)
if(is_spam_message(id, swMessage) || is_swear_message(id, swMessage))
{
g_warned = 1
}
swMessage[charsmax( swMessage )] = szMessage[charsmax( szMessage )]

}

len = charsmax(szMessage)
if ( iPlayerRus[id] )
replase_rus(szMessage, len);

new szNewMessage[512]
new szLen
new szName[32]

get_user_name(id, szName, charsmax( szName ))

if (g_warned == 1 )
{

new j, playercount, players[32]

get_players ( players, playercount, "c" )

for ( j = 0 ; j < playercount ; j++)
{
if (get_user_flags(players[j]) & ADMIN_LEVEL_E && is_user_connected(players[j]) )
{
ChatColor( players[j], "^1[^4%s^1] %s : %s", prefix, szName, szMessage )
}
}
g_Warning[id] ++;
client_cmd(id, "spk buttons/button2")
szMessage = "[сообщение удалено]"
if(is_user_connected(id))
{
if(is_user_connected(id)) ChatColor(id, "^1[^4%s^1] Сообщение ^3удалено^1. Предупреждение: ^4%i", prefix, g_Warning[id])
}

if(g_Warning[id] > 4)
{
g_Warning[id] = 0;
server_cmd("amx_gag %s 3", szName);
}
}

if(!is_swear_message(id, szMessage))
{
SysTime = get_systime(0)
i_Gag[id] = SysTime + 2
Flood[id] = true
}

if(strlen( szMessage ) >= 192)
{
if(is_user_connected(id))
ChatColor(id, "^1[^4%s^1] Длинное сообщение...",prefix)
client_cmd(id, "spk buttons/button2")
return PLUGIN_HANDLED
}

if(is_user_alive(id))
{
if(iPlayerPrefix[id])
{

szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "%s", iPlayerPrefixText[id][1])
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)

}
else
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "%s", szMessage)
}

new iPlayers[32]
new iPlayer, iNum

get_players(iPlayers, iNum)


for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]

if(!is_user_connected(iPlayer))
continue

ChatColor(iPlayer, szNewMessage)

}
}else{
if(iPlayerPrefix[id])
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!g-!yМертв!g- !y%s", iPlayerPrefixText[id][1])
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)
}
else
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!g-!yМертв!g- !t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "%s", szMessage)
}

new iPlayers[32]
new iPlayer, iNum

get_players(iPlayers, iNum)

for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]

if(!is_user_connected(iPlayer))
continue

ChatColor(iPlayer, szNewMessage)
}
}
return PLUGIN_HANDLED_MAIN
}

public NewSayTeam(id)
{
new szMessage[192]
new g_warned;
new swMessage[192]

read_args(szMessage, charsmax( szMessage ))
read_args(swMessage, charsmax( swMessage ))
remove_quotes(szMessage)
remove_quotes(swMessage)

swMessage[charsmax( swMessage )] = szMessage[charsmax( szMessage )]
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))
return PLUGIN_CONTINUE

if(is_user_Flood(id) || is_empty_message(szMessage) || is_user_gaged(id))
{
return PLUGIN_HANDLED
}

new len = charsmax(swMessage)
if ( iPlayerRus[id] )
replase_rus(swMessage, len);

if(is_spam_message(id, swMessage) || is_swear_message(id, swMessage))
{
g_warned = 1
}
for (new h = 1 ; h <= 3 ; h++)
{
message_cleaner( swMessage, len, h)
if(is_spam_message(id, swMessage) || is_swear_message(id, swMessage))
{
g_warned = 1
}
swMessage[charsmax( swMessage )] = szMessage[charsmax( szMessage )]

}

len = charsmax(szMessage)
if ( iPlayerRus[id] )
replase_rus(szMessage, len);

new szNewMessage[512]
new szLen
new szName[32]

get_user_name(id, szName, charsmax( szName ))

if (g_warned == 1 )
{

new j, playercount, players[32]

get_players ( players, playercount, "c" )

for ( j = 0 ; j < playercount ; j++)
{
if (get_user_flags(players[j]) & ADMIN_LEVEL_E && is_user_connected(players[j]) )
{
ChatColor( players[j], "^1[^4%s^1] %s : %s", prefix, szName, szMessage )
}
}
g_Warning[id] ++;
client_cmd(id, "spk buttons/button2")
szMessage = "[сообщение удалено]"
if(is_user_connected(id))
{
if(is_user_connected(id)) ChatColor(id, "^1[^4%s^1] Сообщение ^3удалено^1. Предупреждение: ^4%i", prefix, g_Warning[id])
}

if(g_Warning[id] > 4)
{
g_Warning[id] = 0;
server_cmd("amx_gag %s 3", szName);
}
}

if(!is_swear_message(id, szMessage))
{
SysTime = get_systime(0)
i_Gag[id] = SysTime + 2
Flood[id] = true
}

if(strlen( szMessage ) >= 192)
{
if(is_user_connected(id))
ChatColor(id, "^1[^4%s^1] Длинное сообщение...",prefix)
return PLUGIN_HANDLED
}

if(is_user_alive(id))
{
if(iPlayerPrefix[id])
{
if(get_user_team(id) == 1)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tТеррорист!y) %s", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 2)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tКонтер!y-!tТеррорист!y) %s", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 3)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tЗритель!y) %s", iPlayerPrefixText[id][1])
}

szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)
}
else
{
if(get_user_team(id) == 1)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tТеррорист!y)")
}else
if(get_user_team(id) == 2)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tКонтер!y-!tТеррорист!y)")
}else
if(get_user_team(id) == 3)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tЗритель!y)")
}
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "%s", szMessage)
}
new iPlayers[32]
new iPlayer, iNum

get_players(iPlayers, iNum)

for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]

if(!is_user_connected(iPlayer) || get_user_team(iPlayer) != get_user_team(id))
continue

ChatColor(iPlayer, szNewMessage)
}
}else{
if(iPlayerPrefix[id])
{
if(get_user_team(id) == 1)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!g-!yМертв!g- !y(!tТеррорист!y) %s", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 2)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!g-!yМертв!g- !y(!tКонтер!y-!tТеррорист!y) %s", iPlayerPrefixText[id][1])
}else
if(get_user_team(id) == 3)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tЗритель!y) %s", iPlayerPrefixText[id][1])
}

szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage)
}
else
{
if(get_user_team(id) == 1)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!g-!yМертв!g- !y(!tТеррорист!y)")
}else
if(get_user_team(id) == 2)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!g-!yМертв!g- !y(!tКонтер!y-!tТеррорист!y)")
}else
if(get_user_team(id) == 3)
{
szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(!tЗритель!y)")
}
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName)
szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "%s", szMessage)
}

new iPlayers[32]
new iPlayer, iNum

get_players(iPlayers, iNum)

for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]

if(!is_user_connected(iPlayer) || get_user_team(iPlayer) != get_user_team(id))
continue

ChatColor(iPlayer, szNewMessage)
}
}
return PLUGIN_HANDLED_MAIN
}

/*

** Colored Chat SAY COMMANDS
** Chat addons

** END

*/

/*

** Colored Chat TRANSLIT FUNCTION
** Chat addons

*/
public replace_message(szMessage[], len)
{

while (replace(szMessage, len, "q", "")) {}
while (replace(szMessage, len, "w", "")) {}
while (replace(szMessage, len, "e", "")) {}
while (replace(szMessage, len, "r", "")) {}
while (replace(szMessage, len, "t", "")) {}
while (replace(szMessage, len, "y", "")) {}
while (replace(szMessage, len, "u", "")) {}
while (replace(szMessage, len, "i", "")) {}
while (replace(szMessage, len, "o", "")) {}
while (replace(szMessage, len, "p", "")) {}
while (replace(szMessage, len, "[", "")) {}
while (replace(szMessage, len, "]", "")) {}
while (replace(szMessage, len, "a", "")) {}
while (replace(szMessage, len, "s", "")) {}
while (replace(szMessage, len, "d", "")) {}
while (replace(szMessage, len, "f", "")) {}
while (replace(szMessage, len, "g", "")) {}
while (replace(szMessage, len, "h", "")) {}
while (replace(szMessage, len, "j", "")) {}
while (replace(szMessage, len, "k", "")) {}
while (replace(szMessage, len, "l", "")) {}
while (replace(szMessage, len, ";", "")) {}
while (replace(szMessage, len, "'", "")) {}
while (replace(szMessage, len, "z", "")) {}
while (replace(szMessage, len, "x", "")) {}
while (replace(szMessage, len, "c", "")) {}
while (replace(szMessage, len, "v", "")) {}
while (replace(szMessage, len, "b", "")) {}
while (replace(szMessage, len, "n", "")) {}
while (replace(szMessage, len, "m", "")) {}
while (replace(szMessage, len, ",", "")) {}
while (replace(szMessage, len, ".", "")) {}
while (replace(szMessage, len, "Q", "")) {}
while (replace(szMessage, len, "W", "")) {}
while (replace(szMessage, len, "E", "")) {}
while (replace(szMessage, len, "R", "")) {}
while (replace(szMessage, len, "T", "")) {}
while (replace(szMessage, len, "Y", "")) {}
while (replace(szMessage, len, "U", "")) {}
while (replace(szMessage, len, "I", "")) {}
while (replace(szMessage, len, "O", "")) {}
while (replace(szMessage, len, "P", "")) {}
while (replace(szMessage, len, "{", "")) {}
while (replace(szMessage, len, "}", "")) {}
while (replace(szMessage, len, "A", "")) {}
while (replace(szMessage, len, "S", "")) {}
while (replace(szMessage, len, "D", "")) {}
while (replace(szMessage, len, "F", "")) {}
while (replace(szMessage, len, "G", "")) {}
while (replace(szMessage, len, "H", "")) {}
while (replace(szMessage, len, "J", "")) {}
while (replace(szMessage, len, "K", "")) {}
while (replace(szMessage, len, "L", "")) {}
while (replace(szMessage, len, ":", "")) {}
while (replace(szMessage, len, "Z", "")) {}
while (replace(szMessage, len, "X", "")) {}
while (replace(szMessage, len, "C", "")) {}
while (replace(szMessage, len, "V", "")) {}
while (replace(szMessage, len, "B", "")) {}
while (replace(szMessage, len, "N", "")) {}
while (replace(szMessage, len, "M", "")) {}
while (replace(szMessage, len, "<", "")) {}
while (replace(szMessage, len, ">", "")) {}
}

public string_cleaner( str[] )
{
new i, len = strlen ( str )
while ( contain ( str, " " ) != -1 )
replace ( str, len, " ", "" )

len = strlen ( str )
while ( contain ( str, "|<" ) != -1 )
replace ( str, len, "|<", "k" )

len = strlen ( str )
while ( contain ( str, "|>" ) != -1 )
replace ( str, len, "|>", "p" )

len = strlen ( str )
while ( contain ( str, "()" ) != -1 )
replace ( str, len, "()", "o" )

len = strlen ( str )
while ( contain ( str, "[]" ) != -1 )
replace ( str, len, "[]", "o" )

len = strlen ( str )
while ( contain ( str, "{}" ) != -1 )
replace ( str, len, "{}", "o" )
len = strlen ( str )
while ( contain ( str, "-" ) != -1 )
replace ( str, len, "-", "" )
len = strlen ( str )
while ( contain ( str, "-" ) != -1 )
replace ( str, len, "-", "" )
len = strlen ( str )
while ( contain ( str, "_" ) != -1 )
replace ( str, len, "_", "" )
len = strlen ( str )
while ( contain ( str, "=" ) != -1 )
replace ( str, len, "=", "" )
len = strlen ( str )
while ( contain ( str, "/" ) != -1 )
replace ( str, len, "/", "" )
len = strlen ( str )
while ( contain ( str, "." ) != -1 )
replace ( str, len, ".", "" )
len = strlen ( str )
while ( contain ( str, "," ) != -1 )
replace ( str, len, ",", "" )


len = strlen ( str )
for ( i = 0 ; i < len ; i++ )
{
if ( str[i] == '@' )
str[i] = 'a'

if ( str[i] == '$' )
str[i] = 's'

if ( str[i] == '0' )
str[i] = 'o'

if ( str[i] == '<' )
str[i] = 'c'


}
}

public replase_rus(szMessage[], len )
{
if(!equal(szMessage, "/rus") && !equal(szMessage, "/pn") && !equal(szMessage, "/rs") && !equal(szMessage, "rtv") && !equal(szMessage, "/voteban") && !equal(szMessage, "/vips") && !equal(szMessage, "/mute") && !equal(szMessage, "/admin"))
{
for(new i; i < i_MaxSimbols; i++)
{
if(contain(szMessage, g_OriginalSimb[i]) != -1)
{
replace_all(szMessage, len, g_OriginalSimb[i], g_TranslitSimb[i])
}
}
}
}

/*

** Colored Chat TRANSLIT FUNCTION
** Chat addons

** END

*/


/*

** Colored Chat STOCK FUNCTION
** Chat addons


*/
stock CheckFlag(id, szFlag[64])
{
new szFlags
new StringFlags[32]

szFlags = get_user_flags(id)
get_flags(szFlags, StringFlags, charsmax( StringFlags ))

if(containi(StringFlags, szFlag) != -1)
return true

return false
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}




//Stock

stock is_empty_message(const Message[])
{

if(Message[0] == ' ' || equal(Message, "") || !strlen(Message))
{
return 1
}
return 0
}

stock is_spam_message(id, const szMessage[])
{
new i = 0
if (is_immune(id))
{
return 0
}
while(i < SpamNum)
{
if(containi(szMessage, Spam[i++]) != -1)
{
return 1
}
}
return 0
}

stock is_swear_message(id, const szMessage[])
{
new i = 0
if (is_immune(id))
{
return 0
}

if ( iPlayerRus[id] )
{
while(i < SwearNum_RU )
{
if(containi(szMessage, Swear_RU[i++]) != -1)
{

return 1
}
}

}
else
{
while(i < SwearNum_ENG )
{
if(containi(szMessage, Swear_ENG[i++]) != -1)
{

return 1
}
}
}
return 0
}

stock is_immune(id)
{

if(g_antimat[id])
{
return 1
}

return 0
}
stock is_user_Flood(id)
{
SysTime = get_systime(0)
if(SysTime < i_Gag[id])
{
if(Flood[id] && !g_antimat[id])
{
if(is_user_connected(id))
ChatColor(id, "^1[^4%s^1] Прекратите ^3флудить ^1в чат!",prefix);
i_Gag[id] = SysTime + 2;
client_cmd(id, "spk buttons/button2")
}

return 1
}
else if(Flood[id])
{
Flood[id] = false
}
return 0
}
stock is_user_gaged(id)
{
SysTime = get_systime(0)
if(SysTime < i_Gag[id] && !g_admin[id])
{
i_ShowGag = i_Gag[id] - SysTime
if(is_user_connected(id))
ChatColor(id, "^1[^4%s^1] Вам запрещено писать еще ^3%d минут(ы)",i_ShowGag/60+1)
client_cmd(id, "spk buttons/button2")
}
}


/*

** Colored Chat Stock FUNCTION
** Chat addons

** END

*/


public message_cleaner(szMessage[], len, Type)
{
if(Type == 1)
{
string_cleaner( szMessage )
}

if(Type == 2)
{
replace_message(szMessage, len)
}
if (Type == 3)
{
new i = 0
while(i < 10)
{
if(containi(szMessage, Say_word[i]) != -1)
{
replace ( szMessage, len, Say_word[i++], "" )
}
i++
}
}
}

public is_spam_nick(id)
{
new nick[32];
new i = 0;
get_user_name(id, nick, sizeof nick -1);

if (is_immune(id))
{
return 0
}

while(i < SpamNum)
{
if(containi(nick, Spam[i++]) != -1)
{
return 1
}
}
return 0
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 1.4.2017, 15:52
Сообщение #8
Стаж: 11 лет
Город: Донецк

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

Нет проблема всё таки не решилась, народ отзовитесь. Как была ошибка Segmentation fault так и осталась(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя cstriker
сообщение 1.4.2017, 17:08
Сообщение #9


Иконка группы

Стаж: 13 лет

Сообщений: 1233
Благодарностей: 586
Полезность: 869

Мб потому что у тебя AMX Mod X 1.8.2 а плагины, как я вижу, стоят от 1.8.3? Попробуй поставить cmdmenu.amxx от 1.8.2
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 1.4.2017, 17:41
Сообщение #10
Стаж: 11 лет
Город: Донецк

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

cstriker, Сервер начал падать просто так, ничего в нём не менял. Утром проснулся смотрю упал, я его перезагрузил. И потом в течении 2х часов он опять упал.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя XakepSDK
сообщение 1.4.2017, 18:22
Сообщение #11
Стаж: 11 лет

Сообщений: 60
Благодарностей: 13
Полезность: 169

LocalizeBugFix вроде должен загружаться до amxmodx.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 1.4.2017, 18:24
Сообщение #12
Стаж: 11 лет
Город: Донецк

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

XakepSDK, Тоже не помогает(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 1.4.2017, 18:29
Сообщение #13
Стаж: 11 лет
Город: Донецк

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

Вообщем вот скрин ошибки:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 4.6.2017, 16:22
Сообщение #14
Стаж: 11 лет
Город: Донецк

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

Судя по всему так никто и не поможет решить проблему(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 5.6.2017, 10:33
Сообщение #15


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

djlancer, вам что мешает самому проверить? Включите тот плагин, что кидает. Отключите половину остальных плагинов, войдите на сервер, если не упал, то включите половину другой половины и т.д. Пока не найдёте тот плагин из-за которого падает. Потом напишите что за плагин. Никто за вас же это не может на вашем сервере делать


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csparena
сообщение 5.6.2017, 12:10
Сообщение #16


Стаж: 10 лет

Сообщений: 2377
Благодарностей: 541
Полезность: 106

Цитата(djlancer @ 4.6.2017, 18:22) *
Судя по всему так никто и не поможет решить проблему(

устанави плагин lite_translit и будет тебе счастье.. как ты говорил тут color (замени) а если нет.. то надо посмотреть ... и тогда решим.. вечером приду с работы.. решим вместе

Отредактировал: csparena, - 5.6.2017, 12:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя djlancer
сообщение 5.6.2017, 12:49
Сообщение #17
Стаж: 11 лет
Город: Донецк

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

csparena, Спасибо большое, буду рад вашей помощи. Вот контакты skype - vitkru3
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: