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

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

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

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

3 страниц V   1 2 3

Admin prefixes 4.1

Статус пользователя Bloo
сообщение 14.5.2015, 16:34
Сообщение #21


Стаж: 12 лет

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

sonyaibo, да. По другому редактировать плагин.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sonyaibo
сообщение 14.5.2015, 16:36
Сообщение #22


Стаж: 12 лет

Сообщений: 289
Благодарности: выкл.

Цитата(Bloo @ 14.5.2015, 17:34) *
sonyaibo, да. По другому редактировать плагин.

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


Стаж: 12 лет

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

sonyaibo, да
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sonyaibo
сообщение 14.5.2015, 17:08
Сообщение #24


Стаж: 12 лет

Сообщений: 289
Благодарности: выкл.

Цитата(Bloo @ 14.5.2015, 17:44) *
sonyaibo, да

а может из за этого плагина не работать другой плаг allchat?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 14.5.2015, 17:20
Сообщение #25


Стаж: 12 лет

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

sonyaibo, может, оба чат подменивают.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя sonyaibo
сообщение 14.5.2015, 17:24
Сообщение #26


Стаж: 12 лет

Сообщений: 289
Благодарности: выкл.

кто может подсказать что надо изменить чтобы общий чат видели и мёртвые и живые?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gliden
сообщение 24.6.2015, 19:48
Сообщение #27


Стаж: 12 лет

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

Зачем вообще нужна функция блокировка " / " ( слеша ) в плагине, для чего это ?
И как убрать эту функцию, defain сделать какой то что ли... ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 24.6.2015, 20:11
Сообщение #28


Стаж: 12 лет

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

Gliden, не блокировки, а скрытия, зачем выводить в чат функциональные сообщения, типа /rs, /rtv и т.д.?
Что бы убрать попробуй удалить
Код:
new const forbidden_say_symbols[] = {
"/",
"!",
"%",
"$"
}

и
Код:
bool:check_say_characters(const check_message[])
{
for(new i = 0; i < charsmax(forbidden_say_symbols); i++)
{
if(check_message[0] == forbidden_say_symbols[i])
{
return true
}
}
return false
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gliden
сообщение 25.6.2015, 15:29
Сообщение #29


Стаж: 12 лет

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

Хотя логично, сейчас попробую и отпишусь !

Отредактировал: Bloo, - 25.6.2015, 16:00
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gliden
сообщение 25.6.2015, 16:42
Сообщение #30


Стаж: 12 лет

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

Цитата(Gliden @ 25.6.2015, 16:29) *
Хотя логично, сейчас попробую и отпишусь !

В общем, кому надо, тестите, мне уже не нужно удалять эту функцию, оставлю я её, думаю, что это функция на оборот полезная !
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ToL9N4eG
сообщение 11.11.2015, 19:59
Сообщение #31
Стаж: 13 лет

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

В какой строке прописан приоритет присваивания префиксов?
Исходник
Код:
#include <amxmodx>
#include <amxmisc>
#include <celltrie>
#include <cstrike>

#define VERSION "4.1"
#define FLAG_LOAD ADMIN_CFG
#define MAX_PREFIXES 50

new g_listen, g_listen_flag;
new pre_ips_count = 0, pre_names_count = 0, pre_steamids_count, pre_flags_count = 0, temp_cvar[2];
new configs_dir[64], file_prefixes[128], text[128], prefix[32], type[2], key[32], length, line = 0, error[256];
new g_saytxt, g_maxplayers, CsTeams:g_team;
new g_typed[192], g_message[190], g_name[32];
new Trie:pre_ips_collect, Trie:pre_names_collect, Trie:pre_steamids_collect, Trie:client_prefix;
new str_id[16], temp_key[35], temp_prefix[32];
new Array:g_aFlagsCollect

new const say_team_info[2][CsTeams][] =
{
{"*Наблюдатель* ", "*Умер* ", "*Умер* ", "*Наблюдатель* "},
{"", "", "", ""}
}

new const sayteam_team_info[2][CsTeams][] =
{
{"(Наблюдатель) ", "*Умер*(Террорист) ", "*Умер*(Контр-Террорист) ", "(Наблюдатель) "},
{"(Наблюдатель) ", "(Террорист) ", "(Контр-Террорист) ", "(Наблюдатель) "}
}

new const forbidden_say_symbols[] = {
"/",
"@",
"%",
"$"
}

new const separator[] = "************************************************"
new const in_prefix[] = "[RoG]"

public plugin_init()
{
register_plugin("Admin Prefixes", VERSION, "m0skVi4a ;]")

g_listen = register_cvar("ap_listen", "1")
g_listen_flag = register_cvar("ap_listen_flag", "a")

g_saytxt = get_user_msgid ("SayText")
g_maxplayers = get_maxplayers()

register_concmd("ap_reload_prefixes", "LoadPrefixes")
register_clcmd("say", "HookSay")
register_clcmd("say_team", "HookSayTeam")

pre_ips_collect = TrieCreate()
pre_names_collect = TrieCreate()
pre_steamids_collect = TrieCreate()
client_prefix = TrieCreate()
g_aFlagsCollect = ArrayCreate ( 34 )

register_dictionary("admin_prefixes.txt")

get_configsdir(configs_dir, charsmax(configs_dir))
formatex(file_prefixes, charsmax(file_prefixes), "%s/ap_prefixes.ini", configs_dir)

LoadPrefixes(0)
}

public LoadPrefixes(id)
{
if(!(get_user_flags(id) & FLAG_LOAD))
{
console_print(id, "%L", LANG_SERVER, "PREFIX_PERMISSION", in_prefix)
return PLUGIN_HANDLED
}

TrieClear(pre_ips_collect)
TrieClear(pre_names_collect)
TrieClear(pre_steamids_collect)
ArrayClear ( g_aFlagsCollect )

line = 0, length = 0, pre_flags_count = 0, pre_ips_count = 0, pre_names_count = 0;

if(!file_exists(file_prefixes))
{
formatex(error, charsmax(error), "%L", LANG_SERVER, "PREFIX_NOT_FOUND", in_prefix, file_prefixes)
set_fail_state(error)
}

server_print(separator)

new sText[34]
while(read_file(file_prefixes, line++ , text, charsmax(text), length) && (pre_ips_count + pre_names_count + pre_steamids_count + pre_flags_count) <= MAX_PREFIXES)
{
if(!text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
continue

parse(text, type, charsmax(type), key, charsmax(key), prefix, charsmax(prefix))
trim(prefix)

if(!type[0] || !prefix[0] || !key[0])
continue

replace_all(prefix, charsmax(prefix), "!g", "^x04")
replace_all(prefix, charsmax(prefix), "!t", "^x03")
replace_all(prefix, charsmax(prefix), "!n", "^x01")

switch(type[0])
{
case 'f':
{
pre_flags_count++
formatex ( sText, charsmax ( sText ), "^"%s^" ^"%s^"", key, prefix )
ArrayPushString ( g_aFlagsCollect, sText )
server_print("%L", LANG_SERVER, "PREFIX_LOAD_FLAG", in_prefix, prefix, key[0])
}
case 'i':
{
pre_ips_count++
TrieSetString(pre_ips_collect, key, prefix)
server_print("%L", LANG_SERVER, "PREFIX_LOAD_IP", in_prefix, prefix, key)
}
case 's':
{
pre_steamids_count++
TrieSetString(pre_steamids_collect, key, prefix)
server_print("%L", LANG_SERVER, "PREFIX_LOAD_STEAMID", in_prefix, prefix, key)
}
case 'n':
{
pre_names_count++
TrieSetString(pre_names_collect, key, prefix)
server_print("%L", LANG_SERVER, "PREFIX_LOAD_NAME", in_prefix, prefix, key)
}
default:
{
continue
}
}
}

if(pre_flags_count <= 0 && pre_ips_count <= 0 && pre_steamids_count <= 0 && pre_names_count <= 0)
{
server_print("%L", LANG_SERVER, "PREFIX_NO", in_prefix)
}

get_user_name(id, g_name, charsmax(g_name))
server_print("%L", LANG_SERVER, "PREFIX_LOADED_BY", in_prefix, g_name)
console_print(id, "%L", LANG_SERVER, "PREFIX_LOADED", in_prefix)

server_print(separator)

for(new i = 1; i <= g_maxplayers; i++)
{
num_to_str(i, str_id, charsmax(str_id))
TrieDeleteKey(client_prefix, str_id)
PutPrefix(i)
}

return PLUGIN_HANDLED
}

public client_putinserver(id)
{
num_to_str(id, str_id, charsmax(str_id))
TrieSetString(client_prefix, str_id, "")
PutPrefix(id)
}

public HookSay(id)
{
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)

trim(g_typed)

if(equal(g_typed, "") || !is_user_connected(id))
return PLUGIN_HANDLED_MAIN

if(check_say_characters(g_typed))
return PLUGIN_HANDLED_MAIN

num_to_str(id, str_id, charsmax(str_id))
TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix))

get_user_name(id, g_name, charsmax(g_name))

g_team = cs_get_user_team(id)

if(temp_prefix[0])
{
formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", say_team_info[is_user_alive(id)][g_team], temp_prefix, g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", say_team_info[is_user_alive(id)][g_team], g_name, g_typed)
}

get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue

if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
send_message(g_message, id, i)
}
}

return PLUGIN_HANDLED_MAIN
}

public HookSayTeam(id)
{
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)

trim(g_typed)

if(equal(g_typed, "") || !is_user_connected(id))
return PLUGIN_HANDLED_MAIN

if(check_say_characters(g_typed))
return PLUGIN_HANDLED_MAIN

num_to_str(id, str_id, charsmax(str_id))
TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix))

get_user_name(id, g_name, charsmax(g_name))

g_team = cs_get_user_team(id)

if(temp_prefix[0])
{
formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", sayteam_team_info[is_user_alive(id)][g_team], temp_prefix, g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", sayteam_team_info[is_user_alive(id)][g_team], g_name, g_typed)
}

get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))

for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue

if(get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
{
send_message(g_message, id, i)
}
}
}

return PLUGIN_HANDLED_MAIN
}

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

new g_old_name[32];

get_user_info(id, "name", g_name, charsmax(g_name))
get_user_name(id, g_old_name, charsmax(g_old_name))

if(!equal(g_name, g_old_name))
{
num_to_str(id, str_id, charsmax(str_id))
TrieSetString(client_prefix, str_id, "")
set_task(0.5, "PutPrefix", id)
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public PutPrefix(id)
{
num_to_str(id, str_id, charsmax(str_id))
TrieSetString(client_prefix, str_id, "")

get_user_authid(id, temp_key, charsmax(temp_key))

if(TrieGetString(pre_steamids_collect, temp_key, temp_prefix, charsmax(temp_prefix)))
{
TrieSetString(client_prefix, str_id, temp_prefix)
return
}

new sFlags[32]
get_flags ( get_user_flags ( id ), sFlags, charsmax ( sFlags ) )

if ( sFlags[0] && sFlags[0] != 'z' )
{
new iSize = ArraySize ( g_aFlagsCollect )
new sBuff[34], sKey[2]
for ( new i; i < iSize; i++ )
{
ArrayGetString ( g_aFlagsCollect, i, sBuff, charsmax ( sBuff ) )
parse ( sBuff, sKey, 1, temp_prefix, charsmax ( temp_prefix ) )

if ( contain ( sFlags, sKey ) != -1 )
{
TrieSetString ( client_prefix, str_id, temp_prefix )
return
}
}
}

get_user_ip(id, temp_key, charsmax(temp_key), 1)

if(TrieGetString(pre_ips_collect, temp_key, temp_prefix, charsmax(temp_prefix)))
{
TrieSetString(client_prefix, str_id, temp_prefix)
return
}

get_user_name(id, temp_key, charsmax(temp_key))

if(TrieGetString(pre_names_collect, temp_key, temp_prefix, charsmax(temp_prefix)))
{
TrieSetString(client_prefix, str_id, temp_prefix)
}
}

send_message(const message[], const id, const i)
{
message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
write_byte(id)
write_string(message)
message_end()
}

bool:check_say_characters(const check_message[])
{
for(new i = 0; i < charsmax(forbidden_say_symbols); i++)
{
if(check_message[0] == forbidden_say_symbols[i])
{
return true
}
}
return false
}

public plugin_end ()
{
ArrayDestroy ( g_aFlagsCollect )
TrieDestroy ( pre_ips_collect )
TrieDestroy ( pre_steamids_collect )
TrieDestroy ( pre_names_collect )
TrieDestroy ( client_prefix )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 21.11.2015, 12:19
Сообщение #32
Стаж: 11 лет

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

конечно я не люблю обсуждать чужой труд но
чтение конфига ужасен (особенно цикл) автор данного плагина одного забил что ini файл делается для того чтоб любой юзер смог редактировать(напр. приоритет) под свои нужды.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 21.11.2015, 12:22
Сообщение #33
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Будет ли корректно работать с allchat? Будет ли Mysql версия?


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 21.11.2015, 12:27
Сообщение #34
Стаж: 11 лет

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

igor_ok, что мешает проверить самому?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 21.11.2015, 12:50
Сообщение #35
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Vaqtincha, Нужно 2 человека, сейчас нет такой возможности.


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 21.11.2015, 13:15
Сообщение #36
Стаж: 11 лет

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

igor_ok, для этой цели я использую одну фишку HL Protector'а можно запускать двух клиентов одновременно (или одну копию клиента запускаешь несколько раз) пишеш в чате у первого и сразу переключаешь на второго и видишь результат.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 22.11.2015, 15:57
Сообщение #37
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Vaqtincha, Я уже написал свою версию allchat с блекджеком и шл*хами) (С mysql и динамическими префиксами)


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lceman
сообщение 2.12.2015, 0:49
Сообщение #38
Стаж: 16 лет

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

Баг с team чатом неисправим?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 2.12.2015, 6:36
Сообщение #39
Стаж: 11 лет

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

какой баг
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя cosmetok
сообщение 3.12.2015, 18:48
Сообщение #40
Стаж: 11 лет

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

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