Прибрати відлуння на карті - російська спільнота по скриптингу amxx

#define PLUGIN "Echo OFF"
#define VERSION "1.0"
#define AUTHOR "DJ_WEST"

public plugin_init ()
register_plugin (PLUGIN. VERSION. AUTHOR)

new s_Map # 91; 32 # 93;

g_CvarRoomType = get_cvar_pointer ( "room_type")

get_mapname (s_Map. charsmax (s_Map))
if (! equali (s_Map. "cs_siege"))
set_pcvar_num (g_CvarRoomType. 0)
>

Не пишіть мені в ЛС. якщо вам потрібна допомога на безоплатній основі. Будь-які питання на форум.

Так не піде тому що room_type це клієнтська змінна

Додано через 3 хвилини 56 секунд:
І відлуння є не тільки на цій карті, можна спробувати Хука FM_KeyValue roomtype для env_sound, і якщо такого не було, то встановлювати клієнтам 0

Так не піде тому що room_type це клієнтська змінна


Вірно, помилився, Listen сервер вплинув на мозок, тоді:
Код: Виділити все #include

#define PLUGIN "Echo OFF"
#define VERSION "1.0"
#define AUTHOR "DJ_WEST"

new bool. g_b_Echo = false

public plugin_init ()
register_plugin (PLUGIN. VERSION. AUTHOR)

new s_Map # 91; 32 # 93;

get_mapname (s_Map. charsmax (s_Map))

if (equali (s_Map. "cs_siege"))
g_b_Echo = true
>

public client_putinserver (id)
if (! g_b_Echo)
client_cmd (id. "room_type 0")
>

І відлуння є не тільки на цій карті, можна спробувати Хука FM_KeyValue roomtype для env_sound, і якщо такого не було, то встановлювати клієнтам 0


Якщо робити глобально, то так, а якщо конкретно під сервер, то зійде і так, список карт можна розширити, додавши в перевірку. У будь-якому випадку - це був приклад для нього =)

Не пишіть мені в ЛС. якщо вам потрібна допомога на безоплатній основі. Будь-які питання на форум.

Спробуй так:
Код: Виділити все #include

#define PLUGIN "Echo OFF"
#define VERSION "1.2"
#define AUTHOR "DJ_WEST"

#define MAXPLAYERS 32

new bool. g_b_Echo = false
new bool. g_b_Changed # 91; MAXPLAYERS + 1 # 93; = false
new g_CvarEchoMaps

public plugin_init ()
register_plugin (PLUGIN. VERSION. AUTHOR)
register_clcmd ( "jointeam". "Join_Team")
g_CvarEchoMaps = register_cvar ( "amx_echo_maps". "addons / amxmodx / configs / echo_maps.ini")

set_task (1.0. "Read_Echo_Maps")
>

public Join_Team (id)
if (! g_b_Echo . g_b_Changed # 91; id # 93;)
client_cmd (id. "room_type 0")
g_b_Changed # 91; id # 93; = true
>
>

public Read_Echo_Maps ()
new s_Map # 91; 32 # 93 ;, s_Line # 91; 32 # 93 ;, i_LineCount. i_LineLen. s_File # 91; 128 # 93;

get_mapname (s_Map. charsmax (s_Map))
get_pcvar_string (g_CvarEchoMaps. s_File. charsmax (s_File))

while (read_file (s_File. i_LineCount ++, s_Line. charsmax (s_Line), i_LineLen))
if (i_LineLen equali (s_Map. s_Line))
g_b_Echo = true
break
>
>

public client_disconnect (id)
g_b_Changed # 91; id # 93; = false

Не пишіть мені в ЛС. якщо вам потрібна допомога на безоплатній основі. Будь-які питання на форум.

Відмінно. Залишилося тільки зібрати список карт, на яких є відлуння і вписати його в addons / amxmodx / configs / echo_maps.ini Поки ось:
Код: Виділити все cs_siege
de_grozniy_b1 Може ще є якісь?