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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Убрать префикс (Мертвый) LiteTranslit

Статус пользователя romana
сообщение 5.12.2015, 22:48
Сообщение #1


Стаж: 10 лет

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

Здравствуйте.
Не могли бы вы помочь удалить из плагина префикс мёртвый, был бы очень вам благодарен!

Код:
#include <amxmodx>

#define TAGS
//#define GREEN_MSG
// #define AES
#define DEF_ENG
#define GL_ADMIN ADMIN_RCON
#define ADMIN ADMIN_BAN
#define VIP ADMIN_LEVEL_H
// #define LOG_MESSAGE
// #define FIX_CRASH


#if defined AES
#include <aes_main>
#endif
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))

new iPlayerRus[33]
new iIgnorePlayer

new const eng[][] = { "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","{","}",":",'"',"<",">","~","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","[","]",";","'",",",".","`","?","/","@","$","^^","&" };
new const rus[][] = { "Ф","И","С","В","У","А","П","Р","Ш","О","Л","Д","Ь","Т","Щ","З","Й","К","Ы","Е","Г","М","Ц","Ч","Н","Я","Х","Ъ","ж","Э","Б","Ю","Ё","ф","и","с","в","у","а","п","р","ш","о","л","д","ь","т","щ","з","й","к","ы","е","г","м","ц","ч","н","я","х","ъ","ж","э","б","ю","ё",",",".","'",";", ":","?" };

public plugin_init()
{
#define VERSION "2.5.7b"
register_plugin("Lite Translit", VERSION, "neygomon")
register_cvar("lt_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)

register_clcmd("say /rus", "LangRus")
register_clcmd("say /eng", "LangEng")
register_clcmd("say", "Say_Handler")
register_clcmd("say_team", "SayTeam_Handler")
}

public client_putinserver(id)
{
if(is_user_hltv(id) || is_user_bot(id))
{
set_bit(iIgnorePlayer, id)
return
}
#if defined DEF_RUS
iPlayerRus[id] = true
#endif
}

public client_disconnect(id)
clr_bit(iIgnorePlayer, id)

public LangRus(id)
{
if(!iPlayerRus[id])
{
iPlayerRus[id] = true
client_print(id, print_center, "Русский чат активирован!")
}
else client_print(id, print_center, "Русский чат УЖЕ активирован!")
}

public LangEng(id)
{
if(iPlayerRus[id])
{
iPlayerRus[id] = false
client_print(id, print_center, "Английский чат активирован!")
}
else client_print(id, print_center, "Английский чат УЖЕ активирован!")
}

public Say_Handler(id)
return FormatMsg(id, false)

public SayTeam_Handler(id)
return FormatMsg(id, true)

public FormatMsg(id, bool:is_say_team)
{
if(get_bit(iIgnorePlayer, id)) return PLUGIN_CONTINUE
static szMessage[128]
read_args(szMessage, charsmax(szMessage))
remove_quotes(szMessage)

if(!szMessage[0] || szMessage[0] == '/') return PLUGIN_HANDLED_MAIN

if(iPlayerRus[id])
{
for(new i; i < sizeof eng; i++)
replace_all2(szMessage, charsmax(szMessage), eng[i], rus[i])
}

static iLen, szFormatTags[96], iAlive, iTeam; iAlive = is_user_alive(id), iTeam = get_user_team(id)
if(is_say_team)
{
switch(iTeam)
{
case 1: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s(Террорист) ", iAlive ? "" : "*Мертвый* ")
case 2: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s(Мент) ", iAlive ? "" : "*Мертвый* ")
case 3: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
}
}
else
{
if(iTeam == 3) iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
else iLen = formatex(szFormatTags, charsmax(szFormatTags), "%s", iAlive ? "^1" : "^1*Мертвый* ")
}
#if defined AES
static AESLvl[33][64], aStats[AES_ST_END]
aes_get_player_stats(id, aStats)
aes_get_level_name(aStats[AES_ST_LEVEL], AESLvl[id], 63, LANG_SERVER)
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^4[%s] ", AESLvl[id])
#endif
#if defined TAGS
static const szAdminPrefix[][] = { "", "^4[Гл. Админ] ", "^4[Админ] ", "^4[VIP] " }
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "%s", szAdminPrefix[CheckFlags(id)])
#endif
#if defined GREEN_MSG
if(CheckFlags(id)) iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^3%%s1^1 : ^4")
else iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^3%%s1^1 : ")
#else
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^3%%s1^1 : ")
#endif
#if defined FIX_CRASH
/* Костыль :D || "Fix" crash on 192 bytes */
if(strlen(szFormatTags) + strlen(szMessage) >= 190)
{
client_print(id, print_center, "Сообщение слишком длинное;)");
return PLUGIN_HANDLED;
}
/* End fix */
#endif
static players[32], pcount; get_players(players, pcount, "c")
if(is_say_team)
{
for(new i; i < pcount; i++)
if(get_user_flags(id) & ADMIN || (iTeam == get_user_team(players[i]) && iAlive == is_user_alive(players[i])))
PrintChat(players[i], id, szFormatTags, szMessage)
}
else
{
for(new i; i < pcount; i++)
PrintChat(players[i], id, szFormatTags, szMessage)
}
#if defined LOG_MESSAGE
static authid[32], userteam[16], username[32]
get_user_name(id, username, 31)
get_user_authid(id, authid, 31)
get_user_team(id, userteam, 15)
log_message("^"%s<%d><%s><%s>^" %s ^"%s^"", username, get_user_userid(id), authid, userteam, is_say_team ? "say_team" : "say" , szMessage)
#endif
return PLUGIN_HANDLED
}

stock PrintChat(const iReceiver, const iSender, const szTags[], const szMessage[])
{
static StrSend[191]; formatex(StrSend, charsmax(StrSend), "%s %%s2", szTags)
message_begin(MSG_ONE_UNRELIABLE, 76, _, iReceiver)
write_byte(iSender)
write_string(StrSend)
write_string("")
write_string(szMessage)
message_end()
}
stock CheckFlags(id)
{
static iFlags
iFlags = get_user_flags(id)
if(iFlags & GL_ADMIN) return 1
else if(iFlags & ADMIN) return 2
else if(iFlags & VIP) return 3
return 0
}

stock replace_all2(string[], len, const what[], const with[])
{
new pos
if((pos = contain(string, what)) == -1) return 0
new total, with_len = strlen(with), diff = strlen(what) - with_len, total_len = strlen(string), temp_pos
while(total_len + with_len < len && replace(string[pos], len - pos, what, with) != 0)
{
total++
pos += with_len
total_len -= diff
if (pos >= total_len) break
temp_pos = contain(string[pos], what)
if (temp_pos == -1) break
pos += temp_pos
}
return total
}


Отредактировал: Bloo, - 6.12.2015, 12:08
Причина: Выдано устное предупреждение!
Прикрепленные файлы:
Прикрепленный файл  lite_translit.sma ( 6,31 килобайт ) Кол-во скачиваний: 9
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя HoHoL
сообщение 5.12.2015, 22:53
Сообщение #2


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

Стаж: 14 лет

Сообщений: 962
Благодарностей: 918
Полезность: 1174

Меценат Меценат

Код вставь в pawn, чтобы разобрать можно было.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 6.12.2015, 13:02
Сообщение #3
Стаж: 11 лет

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

Код:
#include <amxmodx>

#define TAGS
//#define GREEN_MSG
// #define AES
#define DEF_ENG
#define GL_ADMIN ADMIN_RCON
#define ADMIN ADMIN_BAN
#define VIP ADMIN_LEVEL_H
// #define LOG_MESSAGE
// #define FIX_CRASH


#if defined AES
#include <aes_main>
#endif
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))

new iPlayerRus[33]
new iIgnorePlayer

new const eng[][] = { "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","{","}",":",'"',"<",">","~","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","[","]",";","'",",",".","`","?","/","@","$","^^","&" };
new const rus[][] = { "Ф","И","С","В","У","А","П","Р","Ш","О","Л","Д","Ь","Т","Щ","З","Й","К","Ы","Е","Г","М","Ц","Ч","Н","Я","Х","Ъ","ж","Э","Б","Ю","Ё","ф","и","с","в","у","а","п","р","ш","о","л","д","ь","т","щ","з","й","к","ы","е","г","м","ц","ч","н","я","х","ъ","ж","э","б","ю","ё",",",".","'",";", ":","?" };

public plugin_init()
{
#define VERSION "2.5.7b"
register_plugin("Lite Translit", VERSION, "neygomon")
register_cvar("lt_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)

register_clcmd("say /rus", "LangRus")
register_clcmd("say /eng", "LangEng")
register_clcmd("say", "Say_Handler")
register_clcmd("say_team", "SayTeam_Handler")
}

public client_putinserver(id)
{
if(is_user_hltv(id) || is_user_bot(id))
{
set_bit(iIgnorePlayer, id)
return
}
#if defined DEF_RUS
iPlayerRus[id] = true
#endif
}

public client_disconnect(id)
clr_bit(iIgnorePlayer, id)

public LangRus(id)
{
if(!iPlayerRus[id])
{
iPlayerRus[id] = true
client_print(id, print_center, "Русский чат активирован!")
}
else client_print(id, print_center, "Русский чат УЖЕ активирован!")
}

public LangEng(id)
{
if(iPlayerRus[id])
{
iPlayerRus[id] = false
client_print(id, print_center, "Английский чат активирован!")
}
else client_print(id, print_center, "Английский чат УЖЕ активирован!")
}

public Say_Handler(id)
return FormatMsg(id, false)

public SayTeam_Handler(id)
return FormatMsg(id, true)

public FormatMsg(id, bool:is_say_team)
{
if(get_bit(iIgnorePlayer, id)) return PLUGIN_CONTINUE
static szMessage[128]
read_args(szMessage, charsmax(szMessage))
remove_quotes(szMessage)

if(!szMessage[0] || szMessage[0] == '/') return PLUGIN_HANDLED_MAIN

if(iPlayerRus[id])
{
for(new i; i < sizeof eng; i++)
replace_all2(szMessage, charsmax(szMessage), eng[i], rus[i])
}

static iLen, szFormatTags[96], iAlive, iTeam; iAlive = is_user_alive(id), iTeam = get_user_team(id)
if(is_say_team)
{
switch(iTeam)
{
case 1: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s(Террорист) ", iAlive ? "" : "")
case 2: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s(Мент) ", iAlive ? "" : "")
case 3: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
}
}
else
{
if(iTeam == 3) iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
else iLen = formatex(szFormatTags, charsmax(szFormatTags), "%s", iAlive ? "^1" : "")
}
#if defined AES
static AESLvl[33][64], aStats[AES_ST_END]
aes_get_player_stats(id, aStats)
aes_get_level_name(aStats[AES_ST_LEVEL], AESLvl[id], 63, LANG_SERVER)
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^4[%s] ", AESLvl[id])
#endif
#if defined TAGS
static const szAdminPrefix[][] = { "", "^4[Гл. Админ] ", "^4[Админ] ", "^4[VIP] " }
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "%s", szAdminPrefix[CheckFlags(id)])
#endif
#if defined GREEN_MSG
if(CheckFlags(id)) iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^3%%s1^1 : ^4")
else iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^3%%s1^1 : ")
#else
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^3%%s1^1 : ")
#endif
#if defined FIX_CRASH
/* Костыль :D || "Fix" crash on 192 bytes */
if(strlen(szFormatTags) + strlen(szMessage) >= 190)
{
client_print(id, print_center, "Сообщение слишком длинное;)");
return PLUGIN_HANDLED;
}
/* End fix */
#endif
static players[32], pcount; get_players(players, pcount, "c")
if(is_say_team)
{
for(new i; i < pcount; i++)
if(get_user_flags(id) & ADMIN || (iTeam == get_user_team(players[i]) && iAlive == is_user_alive(players[i])))
PrintChat(players[i], id, szFormatTags, szMessage)
}
else
{
for(new i; i < pcount; i++)
PrintChat(players[i], id, szFormatTags, szMessage)
}
#if defined LOG_MESSAGE
static authid[32], userteam[16], username[32]
get_user_name(id, username, 31)
get_user_authid(id, authid, 31)
get_user_team(id, userteam, 15)
log_message("^"%s<%d><%s><%s>^" %s ^"%s^"", username, get_user_userid(id), authid, userteam, is_say_team ? "say_team" : "say" , szMessage)
#endif
return PLUGIN_HANDLED
}

stock PrintChat(const iReceiver, const iSender, const szTags[], const szMessage[])
{
static StrSend[191]; formatex(StrSend, charsmax(StrSend), "%s %%s2", szTags)
message_begin(MSG_ONE_UNRELIABLE, 76, _, iReceiver)
write_byte(iSender)
write_string(StrSend)
write_string("")
write_string(szMessage)
message_end()
}
stock CheckFlags(id)
{
static iFlags
iFlags = get_user_flags(id)
if(iFlags & GL_ADMIN) return 1
else if(iFlags & ADMIN) return 2
else if(iFlags & VIP) return 3
return 0
}

stock replace_all2(string[], len, const what[], const with[])
{
new pos
if((pos = contain(string, what)) == -1) return 0
new total, with_len = strlen(with), diff = strlen(what) - with_len, total_len = strlen(string), temp_pos
while(total_len + with_len < len && replace(string[pos], len - pos, what, with) != 0)
{
total++
pos += with_len
total_len -= diff
if (pos >= total_len) break
temp_pos = contain(string[pos], what)
if (temp_pos == -1) break
pos += temp_pos
}
return total
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 6.12.2015, 13:19
Сообщение #4


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

пользуйся лучше этой версией
Lite_Translit
Код:
#include <amxmodx>

/*
Спасибо PRoSToTeM@ за новый способ транслитерации
*/

#define TAGS // Теги в чате Гл. Админ | Админ | VIP [ По умолчанию включен ]
#if defined TAGS
//#define LT_PREFIXES // Свои префиксы. Файл addons/amxmodx/configs/lt_prefixes.ini [ По умолчанию выключен ]
#endif
#define STEAM // Тег стим игрока [ По умолчанию выключен ]
#define GREEN_MSG // Зеленый цвет чата админов и випов [ По умолчанию выключен ]
#define AES // Поддержка системы армейских званий - AES ( <a href="https://c-s.net.ua/forum/topic56564.html" target="_blank"></a> ) [ По умолчанию выключен ]
#define DEF_RUS // Русский язык по умолчанию [ По умолчанию английский ]
#define GIRL ADMIN_VOTE // Флаг доступа для тега "Девушка" в чате
#define GL_ADMIN ADMIN_RCON // Флаг доступа для тега "Гл. Админ" в чате
#define ADMIN ADMIN_BAN // Флаг доступа для тега "Админ" в чате
#define VIP ADMIN_LEVEL_H // Флаг доступа для тега "VIP" в чате
#define ANTIFLOOD // Замена стандартного плагина antiflood.amxx [ По умолчанию выключен ]
#define AD_TIME 0.75 // Время между сообщениями, когда сработает антифлуд система
#define ADMIN_ALLCHAT // Показывать весь чат админам [ По умолчанию включен ]
//#define DEFAULT_CS_CHAT // Cтандартный чат кс [ По умолчанию выключен ]
//Живые общаются только с живыми, мертвые с мертвыми. Админ видит весь чат если ADMIN_ALLCHAT
#if defined AES
enum _:
{
AES_ST_EXP,
AES_ST_LEVEL,
AES_ST_BONUSES,
AES_ST_NEXTEXP,
AES_ST_END
};
native aes_get_player_stats(id, data[4]);
native aes_get_level_name(lvlnum, level[], len, idLang = 0);

public plugin_natives()
set_native_filter("native_filter");

public native_filter(const name[], index, trap)
return !trap ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
#endif

new const g_chConvert[94 * 2 char] =
{
0x2100D0AD, 0x2300D0B6, 0x25003F00, 0xD18D2800, 0x29002A00, 0x2B00D0B1, 0x2D00D18E, 0x2E003000,
0x31003200, 0x33003400, 0x35003600, 0x37003800, 0x3900D096, 0xD0B6D091, 0x3D00D0AE, 0x2C002200,
0xD0A4D098, 0xD0A1D092, 0xD0A3D090, 0xD09FD0A0, 0xD0A8D09E, 0xD09BD094, 0xD0ACD0A2, 0xD0A9D097,
0xD099D09A, 0xD0ABD095, 0xD093D09C, 0xD0A6D0A7, 0xD09DD0AF, 0xD1855C00, 0xD18A3A00, 0x5F00D191,
0xD184D0B8, 0xD181D0B2, 0xD183D0B0, 0xD0BFD180, 0xD188D0BE, 0xD0BBD0B4, 0xD18CD182, 0xD189D0B7,
0xD0B9D0BA, 0xD18BD0B5, 0xD0B3D0BC, 0xD186D187, 0xD0BDD18F, 0xD0A52F00, 0xD0AAD081
};

new bool:g_bUseRus[33];
#if defined STEAM
new bool:g_bIsSteam[33];
#endif
#if defined LT_PREFIXES
enum _:DATA
{
TYPE[2],
AUTH[32],
PREFIX[64]
};
new Array:g_aData, g_PlayerData[DATA];
new g_szPrefix[33][64];
#endif

#define GetBit(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetBit(%1,%2) %1 |= (1 << (%2 & 31))
#define ResetBit(%1,%2) %1 &= ~(1 << (%2 & 31))
#if defined ADMIN_ALLCHAT
new g_bitAdmin;
#endif
new g_bitAlive;

public plugin_init()
{
#define VERSION "2.8"
register_plugin("Lite Translit", VERSION, "neygomon");
register_cvar("lt_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY);

register_clcmd("say /rus", "LangCtrlRus");
register_clcmd("say /eng", "LangCtrlEng");

register_clcmd("say", "HandlerSay");
register_clcmd("say_team", "HandlerSayTeam");

register_event("ResetHUD", "eResetHUD", "be");
register_event("DeathMsg", "eDeathMsg", "a", "1>0");
}

#if defined LT_PREFIXES
public plugin_cfg()
{
g_aData = ArrayCreate(DATA);

new buff[256], fp = fopen("addons/amxmodx/configs/lt_prefixes.ini", "rt");
if(!fp) return set_fail_state("File ^"addons/amxmodx/configs/lt_prefixes.ini^" not found");

while(!feof(fp))
{
fgets(fp, buff, charsmax(buff));
if(buff[0] && buff[0] != ';' && parse(buff, g_PlayerData[TYPE], charsmax(g_PlayerData[TYPE]), g_PlayerData[AUTH], charsmax(g_PlayerData[AUTH]), g_PlayerData[PREFIX], charsmax(g_PlayerData[PREFIX])))
ArrayPushArray(g_aData, g_PlayerData);
}
return fclose(fp);
}
#endif
public client_putinserver(id)
{
#if defined LT_PREFIXES
SearchClient(id);
#endif
#if defined DEF_RUS
g_bUseRus[id] = true;
#else
g_bUseRus[id] = false;
#endif
#if defined STEAM
g_bIsSteam[id] = is_user_steam(id) ? true : false;
#endif
#if defined ADMIN_ALLCHAT
if(get_user_flags(id) & ADMIN_CHAT) SetBit(g_bitAdmin, id);
else ResetBit(g_bitAdmin, id);
#endif
}

public client_disconnect(id) ResetBit(g_bitAlive, id);
public eResetHUD(id) SetBit(g_bitAlive, id);
public eDeathMsg() ResetBit(g_bitAlive, read_data(2));

public HandlerSay(id) return FormatMsg(id, false);
public HandlerSayTeam(id) return FormatMsg(id, true);

public LangCtrlRus(id)
{
if(g_bUseRus[id])
client_print(id, print_chat, "*** [LT] Русский язык УЖЕ включен! ***");
else
{
client_print(id, print_chat, "*** [LT] Русский язык активирован! ***");
g_bUseRus[id] = true;
client_cmd(id, "spk buttons/blip1.wav");
}
}

public LangCtrlEng(id)
{
if(!g_bUseRus[id])
client_print(id, print_chat, "*** [LT] Английский язык УЖЕ включен! ***");
else
{
client_print(id, print_chat, "*** [LT] Английский язык активирован! ***");
g_bUseRus[id] = false;
client_cmd(id, "spk buttons/blip1.wav");
}
}

FormatMsg(id, bool:IsTeam)
{
#define MAX_BYTES 180
static sMessage[MAX_BYTES], sConvertStr[charsmax(sMessage) * 2 + 1];
read_args(sMessage, charsmax(sMessage));
remove_quotes(sMessage);

if(sMessage[0] == EOS || sMessage[0] == '/')
return PLUGIN_HANDLED_MAIN;
#if defined ANTIFLOOD
static Float:fTimeFlood[33], Float:fGameTime, iFloodWarn[33];

if(fTimeFlood[id] > (fGameTime = get_gametime()))
{
if(++iFloodWarn[id] > 2)
{
client_print(id, print_chat, "*** [LT] Прекратите флудить! ***");
fTimeFlood[id] = fGameTime + AD_TIME + 3.0;
return PLUGIN_HANDLED;
}
}
else if(iFloodWarn[id]) iFloodWarn[id]--;
fTimeFlood[id] = fGameTime + AD_TIME;
#endif
static iLen, sTags[MAX_BYTES], idTeam, sTeam[16];
idTeam = get_user_team(id, sTeam, charsmax(sTeam));

switch(idTeam)
{
case 1: iLen = formatex(sTags, charsmax(sTags), "%s%s ", GetBit(g_bitAlive, id) ? "^1" : "^1*^3Мертвый^1* ", IsTeam ? "^1[^3TT^1]" : "");
case 2: iLen = formatex(sTags, charsmax(sTags), "%s%s ", GetBit(g_bitAlive, id) ? "^1" : "^1*^3Мертвый^1* ", IsTeam ? "^1[^3CT^1]" : "");
default:iLen = formatex(sTags, charsmax(sTags), "^1*^3Spec^1* ");
}
#if defined GREEN_MSG || (defined TAGS && !defined LT_PREFIXES)
static IsAccess; IsAccess = CheckFlags(id);
#endif
#if defined AES
static AESLvl[33][64], aStats[AES_ST_END];
aes_get_player_stats(id, aStats); aes_get_level_name(aStats[AES_ST_LEVEL], AESLvl[id], charsmax(AESLvl[]), LANG_SERVER);
iLen += formatex(sTags[iLen], charsmax(sTags) - iLen, "^4[%s] ", AESLvl[id]);
#endif
#if defined STEAM
if(g_bIsSteam[id])
iLen += formatex(sTags[iLen], charsmax(sTags) - iLen, "^1[^4Steam^1] ");
#endif
#if defined TAGS
#if defined LT_PREFIXES
if(g_szPrefix[id][0])
{
replace_all(g_szPrefix[id], charsmax(g_szPrefix[]), "!n", "^1");
replace_all(g_szPrefix[id], charsmax(g_szPrefix[]), "!t", "^3");
replace_all(g_szPrefix[id], charsmax(g_szPrefix[]), "!g", "^4");
iLen += formatex(sTags[iLen], charsmax(sTags) - iLen, "%s ", g_szPrefix[id]);
}
#else
static const szAdminPrefix[][] = { "", "^1[^4Девушка^1] ", "^1[^4Гл. Админ^1] ", "^1[^4Админ^1] ", "^1[^4Вип^1] " };
iLen += formatex(sTags[iLen], charsmax(sTags) - iLen, "%s", szAdminPrefix[IsAccess]);
#endif
#endif
#if defined GREEN_MSG
switch(IsAccess)
{
case 0: iLen += formatex(sTags[iLen], charsmax(sTags) - iLen, "^3%%s1^1 : %%s2");
default:iLen += formatex(sTags[iLen], charsmax(sTags) - iLen, "^3%%s1^1 : ^4%%s2");
}
#else
iLen += formatex(sTags[iLen], charsmax(sTags) - iLen, "^3%%s1^1 : %%s2");
#endif
if(g_bUseRus[id])
{
new nLen;
for(new n; sMessage[n] != EOS; n++)
{
if('!' <= sMessage[n] <= '~')
{
sConvertStr[nLen++] = g_chConvert{(sMessage[n] - '!') * 2};
if(g_chConvert{(sMessage[n] - '!') * 2 + 1} != EOS)
sConvertStr[nLen++] = g_chConvert{(sMessage[n] - '!') * 2 + 1};
}
else sConvertStr[nLen++] = sMessage[n];
}
sConvertStr[nLen] = EOS;
}
else sConvertStr = sMessage;

static iByteLimit; iByteLimit = MAX_BYTES;
while(iLen + strlen(sConvertStr) > MAX_BYTES) sConvertStr[iByteLimit -= 10] = 0;

static players[32], pcount; get_players(players, pcount, "c");
switch(IsTeam)
{
case true:
{
for(new i; i < pcount; i++)
{
#if defined ADMIN_ALLCHAT
if(GetBit(g_bitAdmin, players[i]) || (GetBit(g_bitAlive, id) == GetBit(g_bitAlive, players[i]) && idTeam == get_user_team(players[i])))
#else
if(GetBit(g_bitAlive, id) == GetBit(g_bitAlive, players[i]) && idTeam == get_user_team(players[i]))
#endif
PrintChat(players[i], id, sTags, sConvertStr);
}
}
case false:
{
for(new i; i < pcount; i++)
#if defined DEFAULT_CS_CHAT
#if defined ADMIN_ALLCHAT
if(GetBit(g_bitAdmin, players[i]) || GetBit(g_bitAlive, id) == GetBit(g_bitAlive, players[i]))
#else
if(GetBit(g_bitAlive, id) == GetBit(g_bitAlive, players[i]))
#endif
PrintChat(players[i], id, sTags, sConvertStr);
#else
PrintChat(players[i], id, sTags, sConvertStr);
#endif
}
}
static sAuthId[25], sName[32];
get_user_name(id, sName, charsmax(sName));
get_user_authid(id, sAuthId, charsmax(sAuthId));
log_message("^"%s<%d><%s><%s>^" %s ^"%s^"", sName, get_user_userid(id), sAuthId, sTeam, IsTeam ? "say_team" : "say" , sConvertStr);
return PLUGIN_HANDLED;
}

PrintChat(iReceiver, iSender, const sTags[], const sMessage[])
{
message_begin(MSG_ONE, 76, .player=iReceiver);
write_byte(iSender);
write_string(sTags);
write_string("");
write_string(sMessage);
message_end();
}

stock SearchClient(const id)
{
for(new i; i < ArraySize(g_aData); i++)
{
ArrayGetArray(g_aData, i, g_PlayerData);
switch(g_PlayerData[TYPE])
{
case 'f':
{
if(get_user_flags(id) & read_flags(g_PlayerData[AUTH]))
return copy(g_szPrefix[id], charsmax(g_szPrefix[]), g_PlayerData[PREFIX]);
}
case 'i':
{
static sIP[16]; get_user_ip(id, sIP, charsmax(sIP), 1);
if(!strcmp(g_PlayerData[AUTH], sIP))
return copy(g_szPrefix[id], charsmax(g_szPrefix[]), g_PlayerData[PREFIX]);
}
case 's':
{
static sAuthid[25]; get_user_authid(id, sAuthid, charsmax(sAuthid));
if(!strcmp(g_PlayerData[AUTH], sAuthid))
return copy(g_szPrefix[id], charsmax(g_szPrefix[]), g_PlayerData[PREFIX]);
}
}
}
return g_szPrefix[id][0] = 0;
}

stock CheckFlags(id)
{
static iFlags; iFlags = get_user_flags(id);
if(iFlags & GIRL) return 1;
else if(iFlags & GL_ADMIN) return 2;
else if(iFlags & ADMIN) return 3;
else if(iFlags & VIP) return 4;
return 0;
}

stock bool:is_user_steam(id)
{
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя chuma
сообщение 6.12.2015, 13:34
Сообщение #5
Стаж: 10 лет

Сообщений: 34
Благодарностей: 5
Полезность: 112

Vaqtincha, Не, с ковычек удалить это не дело, наверное проверку Alive убрать нужно.
Vaqtincha, energydance, Чем новее, тем хуже!

Отредактировал: Bloo, - 6.12.2015, 14:32
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 6.12.2015, 13:42
Сообщение #6


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Цитата(chuma @ 6.12.2015, 14:29) *
Не, с ковычек удалить это не дело, наверное проверку Alive убрать нужно.



Чем новее, тем хуже!

Чем же например?


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 6.12.2015, 13:43
Сообщение #7
Стаж: 11 лет

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

chuma, вдруг завтра хочет вернуть. так что без комментариев
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 6.12.2015, 13:52
Сообщение #8
Стаж: 11 лет

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

energydance, не слушай его здесь все хотят показать себя умным.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя chuma
сообщение 6.12.2015, 13:53
Сообщение #9
Стаж: 10 лет

Сообщений: 34
Благодарностей: 5
Полезность: 112

Цитата(Vaqtincha @ 6.12.2015, 14:39) *
chuma, вдруг завтра хочет вернуть. так что без комментариев

Убери, если нетрудно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 6.12.2015, 13:57
Сообщение #10


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Цитата(Vaqtincha @ 6.12.2015, 14:48) *
energydance, не слушай его здесь все хотят показать себя умным.

Да я это уже понял что на словах умник а на деле ......


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 6.12.2015, 13:58
Сообщение #11
Стаж: 11 лет

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

Где аргументы? Что будет если просто убрат "*мертвый*" ? Сервер падает чтоли? или что то страшное случится?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 6.12.2015, 14:14
Сообщение #12


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Цитата(Vaqtincha @ 6.12.2015, 14:54) *
Где аргументы? Что будет если просто убрат "*мертвый*" ? Сервер падает чтоли? или что то страшное случится?

Сервер не падает полет нормальный , компилируется на ура
В исходнике Тот что я скинул ищим строку 1*^3Мертвый^1* ", IsTeam ? "^1[^3TT^1]" : ""); где мертвый стираете слово ставите пробел в обоих строках


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romana
сообщение 6.12.2015, 14:55
Сообщение #13


Стаж: 10 лет

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

Цитата(Vaqtincha @ 6.12.2015, 14:54) *
Где аргументы? Что будет если просто убрат "*мертвый*" ? Сервер падает чтоли? или что то страшное случится?


Нужно полностью функцию убирать. А не её слова.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 6.12.2015, 17:38
Сообщение #14
Стаж: 11 лет

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

romana, исправь ситуацию убери функцию
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: