GivePrivilleges "выдача онлайн привилегий на карту"

g52

Заблокированные
Пользователь
Регистрация
8 Июн 2018
Сообщения
367
Симпатии
57
victormevsa, лучше на скрине показали, мне так понятней будет (не скриптер)
 

perfectblood0

Команда форума
Администратор
Регистрация
29 Окт 2017
Сообщения
2.578
Симпатии
914
Пол
Женский

g52

Заблокированные
Пользователь
Регистрация
8 Июн 2018
Сообщения
367
Симпатии
57
perfectblood0, к примеру, из этих моделей на лету меняет на деф, просто такое впервые вижу 121.jpg
 

perfectblood0

Команда форума
Администратор
Регистрация
29 Окт 2017
Сообщения
2.578
Симпатии
914
Пол
Женский

sas333

Пользователь
Регистрация
25 Июн 2017
Сообщения
170
Симпатии
22
Предупреждения
230
Пол
Мужской
Skype
s3.kff
victormevsa, не планируете вывести в конфиг создание своих моделей и их количество и выставление флагов своих тоже через конфиг
 
K

kapangaIII

C-like:
#include <amxmodx>

//;**Информация**
//;Флаги можно поменять на свои:
//;Скин Парня - o
//;Скин Девушки - s
//;Вип Меню - t
//;Вампиризм - n
//;По этим пунктам префиксов плагин опредилит что
//;у пользователя есть нормальная VIP или Админка
//;а не та что даётся на одну карту(я использовал префиксы).
//;Префикс [Админ] - c
//;Префикс [VIP] - r
//;Префикс [Девушка] - s
//;Меню привилегий - q

#define PLUGIN   "Giveprivilleges"
#define AUTHOR   "Slove."
#define VERSION   "1.0"

#define ACCESSFLAG ADMIN_LEVEL_E

new typeImg[33]
new name[32]
new g_Menu;
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_clcmd("giveprivilleges", "privilleges_menu");
    g_Menu = menu_create("\rМеню\w|\rПривилегий\w*\d 18+^n\rВыберите что дать:\w*^n", "menu_handler2");
    menu_additem(g_Menu, "Дать \w[\rАдминку\w]");
    menu_additem(g_Menu, "Дать \w[\rVIP\w]");
    menu_additem(g_Menu, "Дать \w[\yВампиризм\w]");
    menu_additem(g_Menu, "Дать \w[\rСкин \yПарня\w]");
    menu_additem(g_Menu, "Дать \w[\rСкин \yДевушки\w]^n");
    menu_additem(g_Menu, "Забрать \w[\rПривилегию\w]");
    menu_setprop(g_Menu, MPROP_EXITNAME, "\rВыход");
}
public plugin_end()menu_destroy(g_Menu);

public privilleges_menu(id)
{
    if(~get_user_flags(id) & ACCESSFLAG)return PLUGIN_CONTINUE;
    menu_display(id, g_Menu, 0);
    return PLUGIN_HANDLED;
}

public menu_handler2(id,menu,item)
{
    typeImg[id]=item;
    privilleges_menu2(id);
}

public privilleges_menu2(id){
    if(!(get_user_flags(id) & ACCESSFLAG)) return PLUGIN_CONTINUE;
   
    new Menu = menu_create("\rСписок\w|\rИгроков:\w*", "menu_handler")
   
    new Player
    new sPlayerName[128]
    new sPlayerId[11]                                        
   
    new playersList[32]
    new playersnum
    get_players(playersList, playersnum, "c")
   
    for(new i; i<playersnum; i++)
    {
        Player = playersList[i]
        get_user_name(Player, sPlayerName, charsmax(sPlayerName))
        num_to_str(Player, sPlayerId, charsmax(sPlayerId))
        menu_additem(Menu, sPlayerName, sPlayerId)
    }
   
    menu_setprop(Menu, MPROP_BACKNAME, "\yНазад")
    menu_setprop(Menu, MPROP_NEXTNAME, "\yВперёд")
    menu_setprop(Menu, MPROP_EXITNAME, "\rВыход")
    menu_display(id, Menu, 0)
   
    return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED
    }
    get_user_name(id, name, 31);
    new flags = read_flags("cmnotu"); // флаги админки
    new flagsvip = read_flags("t"); // флаги вип
    new flagsvampir = read_flags("n"); // флаги вампиризма
    new flagsboy = read_flags("o"); // флаги пацана
    new flagsgirl = read_flags("s"); // флаги девушки
    new flagsnone = read_flags("z"); // флаг пользователя
    new s_Data[6], s_Name[64], i_Access, i_Callback;
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback);
    menu_destroy(menu);
    new Player = str_to_num(s_Data);
   
    if(!is_user_connected(Player)){
        print_col_chat(id, "!g[Сервер] !yИгрок вышел с сервера.")
        privilleges_menu(id)                              
        return PLUGIN_HANDLED
    }                                                    
    switch(typeImg[id])
    {
        case 0:
        {
            if(!flags)flags=read_flags("cmnotu");
            if(get_user_flags(Player) & flags)
            {
                print_col_chat(id, "!g[Сервер] !yУ игрока !g%s !yуже есть !tАдминка.", s_Name)
            }
            else
            {
                set_user_flags(Player,flags);
                print_col_chat(0, "!g[Сервер] !yАдминистратор !g%s !yвыдал игроку !g%s !tАдминку !yна карту.", name, s_Name)
                menu_display(id, menu, 0);
            }
        }
        case 1:
        {
            if(!flags)flags=read_flags("t");
            if(get_user_flags(Player) & flags)
            {
                print_col_chat(id, "!g[Сервер] !yУ игрока !g%s !yуже есть !tVIP.", s_Name)
            }
            else
            {
                set_user_flags(Player,flagsvip);
                print_col_chat(0, "!g[Сервер] !yАдминистратор !g%s !yвыдал игроку !g%s !tVIP !yна карту.", name, s_Name)
                menu_display(id, menu, 0);
            }
        }
        case 2:
        {
            if(!flags)flags=read_flags("n");
            if(get_user_flags(Player) & flags)
            {
                print_col_chat(id, "!g[Сервер] !yУ игрока !g%s !yуже есть !tВампиризм.", s_Name)
            }
            else
            {
                set_user_flags(Player,flagsvampir);
                print_col_chat(0, "!g[Сервер] !yАдминистратор !g%s !yвыдал игроку !g%s !tВампиризм !yна карту.", name, s_Name)
                menu_display(id, menu, 0);
            }
        }
        case 3:
        {  
            if(!flags)flags=read_flags("ad");
            if(get_user_flags(Player) & flags)
            {
                print_col_chat(id, "!g[Сервер] !yУ игрока !g%s !yуже есть !tСкин.", s_Name)
            }
            else
            {
                set_user_flags(Player,flagsboy);
                print_col_chat(0, "!g[Сервер] !yАдминистратор !g%s !yвыдал игроку !g%s !tСкин Парня !yна карту.", name, s_Name)
                menu_display(id, menu, 0);
            }
        }
        case 4:
        {
            if(!flags)flags=read_flags("ad");
            if(get_user_flags(Player) & flags)
            {
                print_col_chat(id, "!g[Сервер] !yУ игрока !g%s !yуже есть !tСкин.", s_Name)
            }
            else
            {
                set_user_flags(Player,flagsgirl);
                print_col_chat(0, "!g[Сервер] !yАдминистратор !g%s !yвыдал игроку !g%s !tСкин Девушки !yна карту.", name, s_Name)
                menu_display(id, menu, 0);
            }
        }
        case 5:
        {
            static flags=0;
            if(!flags)flags=read_flags("adqf");
            if(get_user_flags(Player) & flags)
            {
                print_col_chat(id, "!g[Сервер] !yНельзя забрать у !g%s !yпривилегию.", s_Name)
            }
            else
            {
                remove_user_flags(Player,  read_flags("cmnrtous"));
                set_user_flags(Player,flagsnone);
                print_col_chat(0, "!g[Сервер] !yАдминистратор !g%s !yзабрал у !g%s !yпривилегию.", name, s_Name)
                menu_display(id, menu, 0);
            }
        }
   }
                                                           
   return PLUGIN_CONTINUE
}

stock print_col_chat(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)                                                              
   replace_all(msg, 190, "!g", "^4") // Green Color
   replace_all(msg, 190, "!y", "^1") // Default Color
   replace_all(msg, 190, "!t", "^3") // Team Color
   
   if (id)
      players[0] = id
   else
      get_players(players, count, "ch")
   
   {
      for ( new i = 0; i < count; i++ )
      {
         if (is_user_connected(players[i]))
         {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i])
            write_string(msg)
            message_end()
         }
      }
   }
}

Алгоритм все еще хрень.
:/
Исправил утечку. Парень обновляет плагин, ничего не исправив. Продолжай в том же духе.

У тебя половина кода в хэндлерах не выполняется.
 

victormevsa

Пользователь
Регистрация
5 Янв 2018
Сообщения
129
Симпатии
31
Пол
Мужской
victormevsa, не планируете вывести в конфиг создание своих моделей и их количество и выставление флагов своих тоже через конфиг
Не знаю, возможно сделаю.[DOUBLEPOST=1555143352][/DOUBLEPOST]
:/
Исправил утечку. Парень обновляет плагин, ничего не исправив. Продолжай в том же духе.

У тебя половина кода в хэндлерах не выполняется.
Я тебя просил, покажи пальцем и помоги. А ты отказываешься.
Я же говорил - я новичок.
 
Сверху Снизу