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

stock на проверку админов  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

stock на проверку админов

Сообщение nemec21 » 08 мар 2017, 11:01

Доброе утро всем!!
Ребят есть у кого сток на проверку, есть ли админ на сервере?
Заранее спасибо :thumbs_up
что нибудь подобное этому

Код: Выделить всё
stock bool:is_user_steam(id)                  
{
    static dp_pointer
    if
(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    {
        server_cmd("dp_clientinfo %d", id)
        server_exec()
        return (get_pcvar_num(dp_pointer) == 2) ? true : false
    
}
    return false
}

Тема перемещена в раздел "Скриптинг" // Subb98


Добавлено спустя 6 минут 27 секунд:
Это подходит?
Код: Выделить всё
stock is_admin(id)                        
{
    new 
flags get_user_flags(id)
        return(
flags && !(flags ADMIN_USER))
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: stock на проверку админов  [Решено]

Сообщение Subb98 » 08 мар 2017, 11:03

Код: Выделить всё
stock bool:have_admins() {
    new 
players[32], playersnum;
    
get_players(playersplayersnum"ch");

    for(new 
iplayersnumi++) {
        if(
get_user_flags(players[i]) & ADMIN_BAN/* access level */) {
            return 
true;
        }
    }

    return 
false;
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: stock на проверку админов

Сообщение nemec21 » 08 мар 2017, 11:10

а куда можно всунуть проверку на админа тут?
Код: Выделить всё
#include <amxmodx>

#define PLUGIN "no players"
#define VERSION "1.0"
#define AUTHOR "Nemec"

new g_szBlockMapPrefixList[][] = 
{           
    
"$2000$",   
    
"awp_india",        
    
"aim_usp"
    
"aim_deagle",
    
"aim_headshot",
    
"aim_aztec",      
    
"awp_india"                 
}                               

new 
g_numg_maxplayers
new szMapName[32
                                          
public 
plugin_init()
{
    
register_plugin"no players""1.0""//")

    
get_mapname(szMapNamecharsmax(szMapName))
    for(new 
isizeof(g_szBlockMapPrefixList); i++)
    {    
        if (
contain(g_szBlockMapPrefixList[i], szMapName) != INVALID_HANDLE)
        {                                       
            
pause("d");                   
        }
    }
    
g_maxplayers get_maxplayers()
    
set_task(20.0"check_players"0__"b"
}
 
public 
check_clients()                  
{                                                          
    
g_num 0                
                                                                                                               
    
for (new playerid 1playerid <= g_maxplayersplayerid++)
    {
        if (
is_user_connected(playerid))
            
g_num++
    }
    return 
g_num           

                                                                                   
public 
check_players()                               
{         
    new 
currentMap[32]
    new 
map[] = "de_dust2"
    
get_mapname(currentMap31)

    if (
check_clients() < && !equali(mapcurrentMap))
    {
        
set_task(10.0"change_map"0mapcharsmax(map))
        
ChatColor(0"^3[^4ONLINER gamer^3] ^1ìåíüøå^3 7 èãðîêîâ^1,ïîýòîìó êàðòà ñåíèòñÿ íà ^3%s"map)
    }
    return 
PLUGIN_CONTINUE                          
}                                                                                          

public 
change_map(map[])
{
    
server_cmd("changelevel %s"map)
}                             

stock check_admins() 
{
    new 
players[32], playersnum;
    
get_players(playersplayersnum"ch")

    for(new 
iplayersnumi++) 
    {
        if(
get_user_flags(players[i]) & ADMIN_BAN
        {
            return 
true;
        }
    }
    return 
false
}

stock ChatColor(const id, const input[], any:...) 
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!t""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }                                                    
    }
}  
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: stock на проверку админов

Сообщение NEoMASTERR » 08 мар 2017, 11:11

А зачем?
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: stock на проверку админов

Сообщение Subb98 » 08 мар 2017, 11:12

nemec21, где нужно, там и используй. Учись читать код.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: stock на проверку админов

Сообщение nemec21 » 08 мар 2017, 11:16

Subb98. да учусь на примерах.я не для себя делаю. Мне интересно смотреть примеры и пробовать потом

Добавлено спустя 59 секунд:
NEoMASTERR, хочу к примеру сделать - если админ на сервере не проихадила смена карты
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: stock на проверку админов

Сообщение Subb98 » 08 мар 2017, 11:16

nemec21, ты уже не первый день занимаешься скриптингом. Эти навыки у тебя уже должны быть.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: stock на проверку админов

Сообщение nemec21 » 08 мар 2017, 11:23

я попробовал так ну не знаю что выйде, думаю плагин станет на паузу))
Код: Выделить всё
public plugin_init()
{
    register_plugin( "no players", "1.0", "//")

    get_mapname(szMapName, charsmax(szMapName))
    for(new i; i < sizeof(g_szBlockMapPrefixList); i++)
    {    
        if 
((contain(g_szBlockMapPrefixList[i], szMapName) != INVALID_HANDLE) ||  check_admins())
        {                                       
            pause
("d");                   
        
}
    }
    g_maxplayers = get_maxplayers()                       
    set_task
(20.0, "check_players", 0, _, _, "b") 
}


Добавлено спустя 47 секунд:
Subb98. Не ну я понимаю. Так правильно что я выше написал?

Добавлено спустя 3 минуты 38 секунд:
проверка же говорит от что если админ на сервере то плагин на паузе
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: stock на проверку админов

Сообщение Subb98 » 08 мар 2017, 11:28

nemec21, не туда условие добавил, подумай ещё.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: stock на проверку админов

Сообщение nemec21 » 08 мар 2017, 11:32

Код: Выделить всё
public check_players()                               
{                                 
    if(!
check_admins())    
    {     
        new 
currentMap[32]
        new 
map[] = "de_dust2"
        
get_mapname(currentMap31)                                 

        if (
check_clients() < && !equali(mapcurrentMap))
        {
            
set_task(10.0"change_map"0mapcharsmax(map))
            
ChatColor(0"^3[ ^4ONLINER gamer ^3] ^1ìåíüøå^3 7 èãðîêîâ^1,ïîýòîìó êàðòà ñåíèòñÿ íà ^3%s"map)
        }
    }
Последний раз редактировалось nemec21 08 мар 2017, 11:34, всего редактировалось 1 раз.
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

След.

Вернуться в Скриптинг

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

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 12