Русское сообщество по скриптингу

SpecList: убрать админов из списка

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

SpecList: убрать админов из списка

Сообщение Frenk » 20 июл 2016, 23:26

помогите переделать плагин speclist, чтобы админа не показывало в speclist и надо убрать команду /speclist ,

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#pragma semicolon 1
#define RED 64
#define GREEN 64
#define BLUE 64
#define UPDATEINTERVAL 1.0
// Comment below if you do not want /speclist showing up on chat
#define ECHOCMD
// Admin flag used for immunity
#define FLAG ADMIN_IMMUNITY
new const PLUGIN[] = "SpecList";
new const 
VERSION[] = "1.2a";
new const 
AUTHOR[] = "def";
new 
gMaxPlayers;
new 
gCvarOn;
new 
gCvarImmunity;
new 
bool:gOnOff[33] = { true, ... };
public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
register_cvar(PLUGINVERSIONFCVAR_SERVER0.0);
    
gCvarOn register_cvar("amx_speclist""1"00.0);
    
gCvarImmunity register_cvar("amx_speclist_immunity""1"00.0);
    
register_clcmd("say /speclist""cmdSpecList", -1"");
    
gMaxPlayers get_maxplayers();
    
set_task(UPDATEINTERVAL"tskShowSpec"123094""0"b"0);
}
public 
cmdSpecList(id)
{
    if( 
gOnOff[id] )
    {
        
client_print(idprint_chat"[AMXX] You will no longer see who's spectating you.");
        
gOnOff[id] = false;
    }
    else
    {
        
client_print(idprint_chat"[AMXX] You will now see who's spectating you.");
        
gOnOff[id] = true;
    }
    
#if defined ECHOCMD
        
return PLUGIN_CONTINUE;
    
#else
        
return PLUGIN_HANDLED;
    
#endif
}
public 
tskShowSpec()
{
    if( !
get_pcvar_num(gCvarOn) )
    {
        return 
PLUGIN_CONTINUE;
    }
    static 
szHud[1102];//32*33+45
    
static szName[34];
    static 
bool:send;
    
// FRUITLOOOOOOOOOOOOPS!
    
for( new alive 1alive <= gMaxPlayersalive++ )
    {
        new 
bool:sendTo[33];
        
send false;
        if( !
is_user_alive(alive) )
        {
            continue;
        }
        
sendTo[alive] = true;
        
get_user_name(aliveszName32);
        
format(szHud45"Spectating %s:^n"szName);
        for( new 
dead 1dead <= gMaxPlayersdead++ )
        {
            if( 
is_user_connected(dead) )
            {
                if(
                    
is_user_alive(dead)
                        ||
                    
is_user_bot(dead)
                )
                {
                    continue;
                }
                if( 
pev(deadpev_iuser2) == alive )
                {
                    if( !(
get_pcvar_num(gCvarImmunity)&&get_user_flags(dead0)&FLAG) )
                    {
                        
get_user_name(deadszName32);
                        
add(szName33"^n"0);
                        
add(szHud1101szName0);
                        
send true;
                    }
                    
sendTo[dead] = true;
                }
            }
        }
        if( 
send == true )
        {
            for( new 
1<= gMaxPlayersi++ )
            {
                if(
                    
sendTo[i] == true
                        
&&
                    
gOnOff[i] == true
                
)
                {
                    
set_hudmessage(REDGREENBLUE,
                    
0.750.1500.0UPDATEINTERVAL 0.10.00.0, -1);
                    
show_hudmessage(iszHud);
                }
            }
        }
    }
    return 
PLUGIN_CONTINUE;
}
public 
client_connect(id)
{
    
gOnOff[id] = true;
}
public 
client_disconnect(id)
{
    
gOnOff[id] = true;

Название темы скорректировано // Subb98
Аватара пользователя
Frenk
 
Сообщения: 4
Зарегистрирован: 20 июл 2016, 23:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: SpecList: убрать админов из списка

Сообщение Frenk » 21 июл 2016, 16:06

up
Аватара пользователя
Frenk
 
Сообщения: 4
Зарегистрирован: 20 июл 2016, 23:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: SpecList: убрать админов из списка

Сообщение flymic24 » 21 июл 2016, 16:31

1. Закомментируй это
Код: Выделить всё
// Comment below if you do not want /speclist showing up on chat
#define ECHOCMD
 


2. При составлении списка игроков отсеивай всех с нужным флагом доступа
Код: Выделить всё
if (get_user_flags(iIndex) & ADMIN_IMMUNITY)
{
    continue;
}
 
Аватара пользователя
flymic24
 
Сообщения: 209
Зарегистрирован: 05 окт 2012, 17:29
Откуда: Bryansk
Благодарил (а): 4 раз.
Поблагодарили: 76 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: SpecList: убрать админов из списка

Сообщение Xelson » 21 июл 2016, 16:37

Код: Выделить всё
if(
                    is_user_alive(dead)
                        ||
                    is_user_bot(dead)
                )

>>>>
Код: Выделить всё
if(is_user_alive(dead) || is_user_bot(dead) || get_user_flags(dead) & ADMIN_IMMUNITY)
Аватара пользователя
Xelson
 
Сообщения: 365
Зарегистрирован: 06 мар 2016, 14:41
Откуда: Беларусь
Благодарил (а): 16 раз.
Поблагодарили: 46 раз.
Опыт программирования: Больше трех лет

Re: SpecList: убрать админов из списка

Сообщение Mistrick » 21 июл 2016, 16:39

Зачем вы даете советы на то, что уже есть в плагине?
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: SpecList: убрать админов из списка

Сообщение Frenk » 21 июл 2016, 19:48

так не работает, админа сарано видно в speclist lol
Аватара пользователя
Frenk
 
Сообщения: 4
Зарегистрирован: 20 июл 2016, 23:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: SpecList: убрать админов из списка

Сообщение Frenk » 26 июл 2016, 20:37

up
Аватара пользователя
Frenk
 
Сообщения: 4
Зарегистрирован: 20 июл 2016, 23:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: SpecList: убрать админов из списка

Сообщение L4D2 » 27 июл 2016, 17:39

Frenk писал(а):up

Через телефон не айс, пробуй
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>

#define RED 64
#define GREEN 64
#define BLUE 64

#define UPDATEINTERVAL 1.0

// Admin flag used for immunity
#define FLAG ADMIN_IMMUNITY

new gMaxPlayersgCvarOngCvarImmunity;
new 
bool:gOnOff[33] = { true, ... };

public 
plugin_init() {
    
register_plugin("SpecList""1.2a""def");
   
    
gCvarOn register_cvar("amx_speclist""1"00.0);
    
gCvarImmunity register_cvar("amx_speclist_immunity""1"00.0);
    
    
gMaxPlayers get_maxplayers();
    
    
set_task(UPDATEINTERVAL"tskShowSpec"123094""0"b"0);
}

public 
tskShowSpec() {
    if( !
get_pcvar_num(gCvarOn) ) return PLUGIN_CONTINUE;
    
    static 
szHud[1102];//32*33+45
    
static szName[34];
    static 
bool:send;
    
    for( new 
alive 1alive <= gMaxPlayersalive++ ) {
        new 
bool:sendTo[33];
        
send false;
        if( !
is_user_alive(alive) &&  ) continue;
       
        
sendTo[alive] = true;
        
get_user_name(aliveszName32);
        
format(szHud45"Spectating %s:^n"szName);
        for( new 
dead 1dead <= gMaxPlayersdead++ ) {
            if( 
is_user_connected(dead) ) {
                if( 
pev(deadpev_iuser2) == alive ) {
                    if( !(
get_pcvar_num(gCvarImmunity) && !get_user_flags(dead0) & FLAG) ) {
                        
get_user_name(deadszName32);
                        
add(szName33"^n"0);
                        
add(szHud1101szName0);
                        
send true;
                    }
                    
sendTo[dead] = true;
                }
            }
        }
        if( 
send == true ) {
            for( new 
1<= gMaxPlayersi++ ) {
                if( 
sendTo[i] == true && gOnOff[i] == true ) {
                    
set_hudmessage(REDGREENBLUE,
                    
0.750.1500.0UPDATEINTERVAL 0.10.00.0, -1);
                    
show_hudmessage(iszHud);
                }
            }
        }
    }
    return 
PLUGIN_CONTINUE;
}
public 
client_connect(idgOnOff[id] = true;
public 
client_disconnect(idgOnOff[id] = true

==============================================
|| Пишу не большие плагины под заказ: Заказ онлайн (Кликабельно)
|| Ссылка на официальный топик: заказ плагинов.
|| Желаешь оставить отзыв: тебе сюда(кликни).
==============================================
Аватара пользователя
L4D2
 
Сообщения: 792
Зарегистрирован: 25 июн 2011, 19:26
Благодарил (а): 240 раз.
Поблагодарили: 100 раз.
Языки программирования: Counter-Strike 1.6


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10