Проблема с Speclist (spechide)

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
28
Реакции
-3
Ошибка
Spechide убирает список игроков только у меня, а должен при /spechide убирать у игрока. Что за ним не следит админ. Думаю вы поняли
ОС
Linux
Amx Mod X
1.9.0
Билд
ReHlds-3.4.0.672-dev_mpatch
ReGamedll
5.9.0
Версия Metamod
1.3.0
Список метамодулей
-
Список плагинов
-
Автор плагина
gladius
Версия плагина
1.0
Исходный код
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <player_settings_saver>

#define SETTING_SPECLIST "Speclist"

#define ADMIN_FLAG ADMIN_KICK

new const cultura_tag[15] = "^1[^4System^1]"

new bool:SpecList[33];
new SpecHide[33];
new SyncHud;
new gMaxPlayers;

public plugin_init()
{
register_plugin("Speclist", "1.0", "gladius")

register_clcmd("say /speclist", "cmdSpeclist")
register_clcmd( "say /spechide", "cmdSpecHide", ADMIN_FLAG)

set_task(0.1, "tskShowSpec", 123094, "", 0, "b", 0);

gMaxPlayers = get_maxplayers();
SyncHud = CreateHudSyncObj();
}

public client_putinserver(id)
{
SpecHide[id] = false
SpecList[id] = get_setting_bool ( id, SETTING_SPECLIST, true )
}

public client_disconnected(id)
{
SpecHide[id] = false
}

public cmdSpecHide(id)
{
if(!(get_user_flags(id) & ADMIN_FLAG))
{
client_print_color(id, print_team_default, "%s You have to be Admin to use this command", cultura_tag);
return PLUGIN_HANDLED
}

if(SpecHide[id])
{
SpecHide[id] = false
client_print_color(id, print_team_default, "%s You're ^4now visible^1 in Speclist", cultura_tag)
}
else
{
SpecHide[id] = true
client_print_color(id, print_team_red, "%s You're ^3not visible^1 anymore in Speclist", cultura_tag)
}

return PLUGIN_HANDLED
}

public cmdSpeclist(id)
{
if(SpecList[id])
{
SpecList[id] = false;
client_print_color(id, print_team_red, "%s Speclist has been ^3disabled", cultura_tag);
}
else
{
SpecList[id] = true;
client_print_color(id, print_team_default, "%s Speclist has been ^4enabled", cultura_tag);
}
return PLUGIN_HANDLED;
}

public change_setting_value ( id, const setting[], const value[] )
{
if ( !strcmp ( setting, SETTING_SPECLIST ) )
SpecList[id] = bool:str_to_num ( value )
}

public tskShowSpec()
{
for(new id = 1; id <= gMaxPlayers; id++)
{
if(is_user_connected(id))
{
if(SpecList[id])
{
static Player;
Player = is_user_alive(id) ? id : pev(id, pev_iuser2);

static SpecMsg[2048], name[32], id2;
SpecMsg[0] = '^0';
new CountSpec;

static iPlayers[32], iNum;
get_players(iPlayers, iNum, "bch");
for(new i = 0; i < iNum; i++)
{
id2 = iPlayers[i];
if(SpecHide[id] && get_user_flags(id2) & ADMIN_FLAG)
{
continue;
}
if((pev(id2, pev_iuser1) == 4 || pev(id2, pev_iuser1) == 2) && pev(id2, pev_iuser2) == Player && Player != id2)
{
get_user_name(id2, name, sizeof(name) - 1);
format(SpecMsg, sizeof SpecMsg - 1, "%s^n%s %s", SpecMsg, name, pev(id2, pev_iuser1) == 2 ? "(3rd Person)" : "")
CountSpec++;
}
}

if(CountSpec)
{

format(SpecMsg, sizeof SpecMsg - 1, "(%d) PLAYERS SPECTATING:%s", CountSpec, SpecMsg);

set_hudmessage(255, 255, 255, 0.75, 0.15, 0, 0.1, 0.1, 0.1, 0.2, 1);
ShowSyncHudMsg(id, SyncHud, SpecMsg);
}
}
}
}
return PLUGIN_HANDLED
}
Spechide убирает список игроков только у меня, а должен при /spechide убирать у игрока. Что за ним не следит админ. Думаю вы поняли

Не знаю как пофиксить
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
584
Реакции
1,006
Помог
18 раз(а)
Код:
-if(SpecHide[id] && get_user_flags(id2) & ADMIN_FLAG)
+if(SpecHide[id2])
 
Сообщения
28
Реакции
-3
Спасибо большое Mistrick!
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу