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

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

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

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

Не видно чат на демке HLTV

[РЕШЕНО]
Статус пользователя ThisIsSparta
сообщение 2.11.2015, 22:29
Сообщение #1
Стаж: 11 лет

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

Здравствуйте.
Использую этот плагин чата Advanced Chat, Для CSDM
Возникла такая проблема, на демках записанных HLTV не видно чата, где-то тут писали что проблема в плагине который перехватывает чат, собственно вопрос, возможно ли его переделать/доделать чтобы чат писало в демке если возможно то как?)

Заранее всем спасибо)

Код

Код:

#include <amxmodx>
#include <cstrike>
#include <dhudmessage>

#define VERSION "1.0"
#define CHATFLAG ADMIN_IMMUNITY
#define PREFIXFILE "addons/amxmodx/configs/prefixes.ini"

#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))

enum _:DATA {
AUTH[32],
PREFIX[32]
}

new Array:g_aData, g_PlayerData[DATA]
new g_iBitClientAccess
new g_szPrefix[33][64], g_typed[190], g_message[190], g_name[32]
new g_Flood[33] = {0, ...}
new Float:g_fLastSay[33], Float:g_Flooding[33] = {0.0, ...}

#define SAY_DELAY 60.0
#define STARTMAP_DELAY 300.0
#define FLOODTIME 0.75

public plugin_init()
{
register_plugin("Advanced Chat", VERSION, "miRror")

register_concmd("ap_reload", "LoadConPrefixes")
register_clcmd("say", "HookSay")
register_clcmd("say_team", "HookSayTeam")

g_aData = ArrayCreate(DATA)

LoadPrefixes()
}

public LoadConPrefixes(id)
{
if(!(get_user_flags(id) & CHATFLAG))
{
console_print(id, "У вас нет прав доступа для перезагрузки префиксов")

return PLUGIN_HANDLED
}

LoadPrefixes()

new players[32], pcount

get_players(players, pcount, "ch")

for(new i; i < pcount; i++)
SearchClient(players[i])

server_print("*** Префиксы успешно перезагружены ***")
console_print(id, "*** Префиксы успешно перезагружены ***")

return PLUGIN_HANDLED
}

public LoadPrefixes()
{
new fp = fopen(PREFIXFILE, "rt")

if(!fp)
return PLUGIN_HANDLED

new buff[256];
while(!feof(fp))
{
fgets(fp, buff, charsmax(buff));
if(buff[0] && buff[0] != ';' && parse(buff, g_PlayerData[AUTH], charsmax(g_PlayerData[AUTH]), g_PlayerData[PREFIX], charsmax(g_PlayerData[PREFIX])))
ArrayPushArray(g_aData, g_PlayerData)
}
return fclose(fp);
}

public client_putinserver(id)
{
g_fLastSay[id] = 0.0
SearchClient(id)
set_task(5.0, "client_access_add", id)
}
public client_access_add(id)
BIT_ADD(g_iBitClientAccess, id)

public client_disconnect(id)
{
BIT_SUB(g_iBitClientAccess, id)

if(task_exists(id))
remove_task(id)
}

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

if(BIT_NOT_VALID(g_iBitClientAccess, id))
return PLUGIN_HANDLED

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

if ( CheckFlood ( id ) )
return PLUGIN_HANDLED_MAIN

if(g_typed[0] == '@' && get_user_flags(id) & CHATFLAG)
{
showdhud(id, g_typed)

return PLUGIN_HANDLED
}

get_user_name(id, g_name, charsmax(g_name))

if(g_szPrefix[id][0])
{
static szFrmt[40]

formatex(szFrmt, charsmax(szFrmt), "^1[^4%s^1]", g_szPrefix[id])

formatex(g_message, charsmax(g_message), "%s^3 %s :^4 %s", szFrmt, g_name, g_typed)
} else
formatex(g_message, charsmax(g_message), "^3%s :^1 %s", g_name, g_typed)

static players[32], pcount

get_players(players, pcount, "ch")

for(new i; i < pcount; i++)
send_message(g_message, id, players[i])

return PLUGIN_HANDLED_MAIN
}

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

if(BIT_NOT_VALID(g_iBitClientAccess, id))
return PLUGIN_HANDLED

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

if ( CheckFlood ( id ) )
return PLUGIN_HANDLED_MAIN

get_user_name(id, g_name, charsmax(g_name))

if(get_user_flags(id) & CHATFLAG) formatex(g_message, charsmax(g_message), "^1(Админ) ^3%s :^4 %s", g_name, g_typed)
else formatex(g_message, charsmax(g_message), "^1(Игрок) ^3%s :^1 %s", g_name, g_typed)

static players[32], pcount

get_players(players, pcount, "ch")

for(new i; i < pcount; i++)
if(get_user_flags(players[i]) & CHATFLAG || players[i] == id)
send_message(g_message, id, players[i])

return PLUGIN_HANDLED_MAIN
}

public showdhud(id, g_typed[])
{
static g_msgChannel

get_user_name(id, g_name, charsmax(g_name))

if (++g_msgChannel > 6 || g_msgChannel < 3)
g_msgChannel = 3

new Float:verpos = 0.55 + float(g_msgChannel) / 35.0

set_dhudmessage(255, 255, 255, 0.05, verpos, 0, 6.0, 6.0, 0.5, 0.15)

show_dhudmessage(0, "%s : %s", g_name, g_typed[1])

client_print(0, print_notify, "%s : %s", g_name, g_typed[1])
}

public CheckFlood(id)
{
new Float:nexTime = get_gametime()

if (g_Flooding[id] > nexTime)
{
if (g_Flood[id] >= 3)
{
client_print(id, print_notify, "** Прекратите флудить **")
g_Flooding[id] = nexTime + FLOODTIME + 3.0
return 1
}
g_Flood[id]++
}
else if (g_Flood[id])
{
g_Flood[id]--
}

g_Flooding[id] = nexTime + FLOODTIME

return 0
}

SearchClient(const id)
{
for(new i; i < ArraySize(g_aData); i++)
{
ArrayGetArray(g_aData, i, g_PlayerData);

if(get_user_flags(id) & read_flags(g_PlayerData[AUTH]))
return SetPrefix(id, g_PlayerData[PREFIX]);
}
return g_szPrefix[id] = "";
}

SetPrefix(const id, const prefix[])
return copy(g_szPrefix[id], charsmax(g_szPrefix[]), prefix);

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



chat_for_csdm.zip
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Adidasman
сообщение 2.11.2015, 22:34
Сообщение #2


Стаж: 12 лет

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

Код:
get_players(players, pcount, "ch")


>

Код:
get_players(players, pcount, "c")


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