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

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

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

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

23 страниц V  « 18 19 20 ... 21 22 »

[Stable] Lite Translit

, можно смело ставить на основные сервера;)
Статус пользователя Bloo
сообщение 1.11.2015, 17:45
Сообщение #361


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

shram47, можно, в новой версии которая лежит на форуме автора
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 1337322228
сообщение 1.11.2015, 17:47
Сообщение #362
Стаж: 10 лет

Сообщений: 202
Благодарностей: 29
Полезность: 103

shram47,
Cкрытый текст
Код
"f" "n" "Хозяин"
"f" "o" "Гл.Aдмин"
"f" "p" "Админ"
"f" "q" "Зам. хозяина"
"f" "r" "Зам. Девушка"
"f" "s" "Смотрящий"

Я вот так себе замутил и всё работает
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 2.11.2015, 6:39
Сообщение #363


Стаж: 10 лет
Город: Москва

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

Цитата(Bloo @ 1.11.2015, 19:41) *
shram47, можно, в новой версии которая лежит на форуме автора

это который платный форум? 200 рубликов и качай скоко хочешь?

Цитата(1337322228 @ 1.11.2015, 19:42) *
shram47,
Cкрытый текст
Код
"f" "n" "Хозяин"
"f" "o" "Гл.Aдмин"
"f" "p" "Админ"
"f" "q" "Зам. хозяина"
"f" "r" "Зам. Девушка"
"f" "s" "Смотрящий"

Я вот так себе замутил и всё работает

в том то и прикол, что не в cfg тема,а в исходнике плагина


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя evil
сообщение 2.11.2015, 9:32
Сообщение #364


Стаж: 14 лет

Сообщений: 1503
Благодарностей: 495
Полезность: 614

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

1337322228, Зам Девушка crazy.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 2.11.2015, 17:54
Сообщение #365


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

shram47, он
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 1337322228
сообщение 2.11.2015, 18:18
Сообщение #366
Стаж: 10 лет

Сообщений: 202
Благодарностей: 29
Полезность: 103

evil, Тебе дофига смешно что у меня девушка следит за порядком ?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Phoenixqs
сообщение 20.11.2015, 21:06
Сообщение #367


Стаж: 10 лет

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

Как исправить дублирование сообщений в чат?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 20.11.2015, 21:16
Сообщение #368


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Phoenixqs, убрать плагин который тоже подменяет чат
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romana
сообщение 24.12.2015, 23:28
Сообщение #369


Стаж: 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
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BaJIepbI4
сообщение 25.12.2015, 9:04
Сообщение #370


Стаж: 11 лет

Сообщений: 457
Благодарностей: 115
Полезность: 456

Цитата(romana @ 25.12.2015, 0:23) *
Помогите пожалуйста отсюда убрать префикс *Мертвый*!
код
Код:
#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
}


Вроде так:

код
Код:

#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(Террорист) ", " : ")
case 2: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s(Мент) ", " : ")
case 3: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
}
}
else
{
if(iTeam == 3) iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
else iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s", " : ")
}
#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
}


Отредактировал: Villlenka, - 25.12.2015, 9:07



Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romana
сообщение 25.12.2015, 18:22
Сообщение #371


Стаж: 10 лет

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

Цитата(Villlenka @ 25.12.2015, 9:59) *
[/spoiler]

Вроде так:

код
Код:

#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(Террорист) ", " : ")
case 2: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s(Мент) ", " : ")
case 3: iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
}
}
else
{
if(iTeam == 3) iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1(Наблюдатель) ")
else iLen = formatex(szFormatTags, charsmax(szFormatTags), "^1%s", " : ")
}
#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
}


Смотри, чего-то перед сообщением выводит :, как это убрать?
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Swidi
сообщение 16.1.2016, 2:07
Сообщение #372
Стаж: 11 лет

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

Ребята скачал плагин в первом посту все отлично работает и все устраивает, помогите только сделать что бы зеленый чат был только у администраторов сервера у вип забрать зеленый чат возможно ? Заранее спасибо!

Код:
/*
Lite Translit - легкая версия транслита aka Fuck you SkaJlbneJlb :D
Доп плюшки(отключаются):
* Теги в чате Гл. Админ | Админ | VIP
* Поддержка системы армейских званий - AES ( </a> )
* Зеленый чат для админов и випов
Credits:
* Спасибо serfreeman1337 за помощь по коду и профилирование.
* Спасибо WarDeN4ik и его клавиатуре :D за различные тесты
* А так же спасибо всем тем, кто помогал тестировать и скидывал баг-репорты
*/
#include <amxmodx>

//#define TAGS // Теги в чате Гл. Админ | Админ | VIP [ По умолчанию включен ]
#define GREEN_MSG // Зеленый цвет чата админов и випов [ По умолчанию выключен ]
// #define AES // Поддержка системы армейских званий - AES ( <a href="https://c-s.net.ua/forum/topic56564.html" target="_blank">
) [ По дефолту выключен ]
// #define DEF_RUS // Русский язык по умолчанию [ По умолчанию английский ]
#define GL_ADMIN ADMIN_RCON // Флаг доступа для тега "Гл. Админ" в чате
#define ADMIN ADMIN_BAN // Флаг доступа для тега "Админ" в чате || Просмотр всего чата
#define VIP ADMIN_LEVEL_H // Флаг доступа для тега "VIP" в чате
// #define LOG_MESSAGE // Логирование чата в HLDS логи
// #define FIX_CRASH // Костыль от падения сервера с ошибкой о превышении 192 байтов. Дак вот, включать ТОЛЬКО если сервер падает.
// у меня так и не получилось уронить свой без фикса...

#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, "*** [LT] Русский чат активирован! ***")
}
else client_print(id, print_center, "*** [LT] Русский чат УЖЕ активирован! ***")
}

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

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


Отредактировал: iShot, - 13.7.2016, 17:54
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя anatol
сообщение 19.1.2016, 22:54
Сообщение #373


Стаж: 12 лет

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

кто может справился с буквой Ж ? что бы она писалась просто, а не через шифт ? а то пишеться постоянно Б и уже надоела она!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 1hp
сообщение 20.1.2016, 7:09
Сообщение #374
Стаж: 10 лет

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

Цитата(anatol @ 20.1.2016, 1:50) *
кто может справился с буквой Ж ? что бы она писалась просто, а не через шифт ? а то пишеться постоянно Б и уже надоела она!

это проблема не в плагине а в самой кс
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Day
сообщение 22.1.2016, 12:32
Сообщение #375


Стаж: 11 лет

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

trollface,
Дело в том,что не получается скомпилить lite translit,мне нужно убрать префиксы на админf и гл. админа и чтобы чат видели все,как живые,так и мёртвые и откл. чат чтобы админы видели весь чат.Если кто-то может скомпилить плагин и выложить его,буду признателен.

Отредактировал: Day, - 22.1.2016, 12:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Profan
сообщение 6.4.2016, 14:10
Сообщение #376


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

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

я не увидел функции как разделить чат мертвых и живых, это невозможно сделать данным плагином?

Отредактировал: Profan, - 6.4.2016, 14:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pogorelovios
сообщение 30.10.2016, 12:28
Сообщение #377


Стаж: 9 лет 9 месяцев

Сообщений: 130
Благодарностей: 4
Полезность: 33

Если у меня будут флаги rcon(Гл.Админ) и ban(Админ), будут 2 префикса в чате? nick [Гл.Админ] [Админ] Или нет?

Отредактировал: pogorelovios, - 30.10.2016, 12:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 30.10.2016, 15:30
Сообщение #378


Стаж: 10 лет

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

pogorelovios, будет один если флаг ркона есть [Гл.Админ]


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя selya-zek
сообщение 4.11.2016, 23:24
Сообщение #379
Стаж: 15 лет

Сообщений: 157
Благодарностей: 17
Полезность: 93

Кто может добавить в этот плагин префикс страны, помогите
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pogorelovios
сообщение 8.11.2016, 11:27
Сообщение #380


Стаж: 9 лет 9 месяцев

Сообщений: 130
Благодарностей: 4
Полезность: 33

Был плагин "AdminPrefixes" убрал, поставил lite_translit. Теперь спамит в логах ошибкой. Что не так?

L 11/08/2016 - 11:16:22: Start of error session.
L 11/08/2016 - 11:16:22: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20161108.log")
L 11/08/2016 - 11:16:22: [AMXX] Plugin file open error (plugin "AdminPrefixes.amxx")

L 11/08/2016 - 11:22:06: Start of error session.
L 11/08/2016 - 11:22:06: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20161108.log")
L 11/08/2016 - 11:22:06: [AMXX] Plugin file open error (plugin "lite_translit.amxxAdminPrefixes.amxx")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
23 страниц V  « 18 19 20 ... 21 22 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: