Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

admin menu

, нужна помощь
Статус пользователя a1r1e1s
сообщение 8.3.2013, 16:20
Сообщение #1
Стаж: 13 лет

Сообщений: 16
Благодарностей: 1
Полезность: 0

Доброе время суток.
Кароче написал плагин, но не могу сделать ограничения на все.
Мне нужно чтоб из админ меню брать тока 1 раз, а там можно брать все бесконечно.
Помоги пожалуйста)
Вот исходник:

Скрытый текст
Код
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <colorchat>
#include <fun>
#include <hamsandwich>
#include <dhudmessage>

#pragma tabsize 0

#define ACCESS_FLAG ADMIN_LEVEL_G

#define PLUGIN "amx_adminmenu"
#define VERSION "1.0"
#define AUTHOR "ares"

public plugin_init()
{
        register_clcmd("amx_ares", "amx_ares" )
        register_plugin(PLUGIN, VERSION, AUTHOR);
}
  
public amx_ares(id)
{
    if(get_user_flags(id) & ADMIN_LEVEL_G)
    {
    new i_Menu = menu_create("\wМеню \wАдмина", "menu_handler")
    
    menu_additem(i_Menu, "\wВзять \r8000$", "1", 0)
    menu_additem(i_Menu, "\wВзять \r150 HP", "2", 0)
    menu_additem(i_Menu, "\wНабор гранат", "3", 0)
    menu_addblank(i_Menu,0)
    menu_additem(i_Menu, "\yВзять \rM3", "4", 0)
    menu_additem(i_Menu, "\wВозродится", "5", 0)
    menu_additem(i_Menu, "\wAmx Mod X Меню", "6", 0)
    
    menu_setprop(i_Menu, MPROP_EXITNAME, "Выйти");
    menu_display(id, i_Menu, 0)
    }
    else
    {
        new player_name[32]
        get_user_name(id, player_name, 31)
        ColorChat(id,RED,"[Surf]^4%s^1! У тебя нету прав для входа в ^3[^1Меню Администратора^3]",player_name)
    }
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    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)
    new i_Key = str_to_num(s_Data)
    switch(i_Key)
    {
        case 1:
        {
            if( is_user_alive( id ) )
            {  
                      
                        cs_set_user_money(id, cs_get_user_money(id) + 8000)
                        new player_name[32]
                        get_user_name(id, player_name, 31)
                        ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3[8000$]",player_name)
                        amx_ares(id)                                         
            }                        
                       
            
        }                    
        case 2:
        {
                        if( is_user_alive( id ) )
                    {
                       {
                               new health[32]
                               health[id] = get_user_health(id)
                               new armor[32]
                               armor[id] = get_user_armor(id)
                               set_user_health(id,health[id] = 150)
                               set_user_armor(id,armor[id] = 150)
                               new player_name[32]
                               get_user_name(id, player_name, 31)
                               ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3[150HP и AP]",player_name)
                               amx_ares(id)
                       }                    
                    }      
        }
        case 3:
         {
                                if( is_user_alive( id ) )
                    {
                      {
                                give_item( id, "weapon_hegrenade" )
                                give_item( id, "weapon_flashbang" )
                                give_item( id, "weapon_flashbang" )
                                give_item( id, "weapon_smokegrenade" )
                                new player_name[32]
                                get_user_name(id, player_name, 31)
                                ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3[Набор гранат]",player_name)
                                amx_ares(id)
                      }                        
                    }                                    
        }
        case 4:
         {  
                        
                        if( is_user_alive( id ) )
                        {
                                give_item(id, "weapon_m3")
                                cs_set_user_bpammo(id,CSW_M3,32)
                                new player_name[32]
                                get_user_name(id, player_name, 31)                                
                                ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3M3",player_name)
                        }                            
        }
        case 5:
        {              if( is_user_alive( id ) )
                       {
                         new name[32]  
                         get_user_name( id, name, charsmax( name ) )
                         set_user_health(id, 70)
                         set_user_godmode(id, 0)                        
                         ExecuteHam(Ham_CS_RoundRespawn, id)
                         return PLUGIN_HANDLED
                       }
        }
        case 6:
        {
            client_cmd(id,"amxmodmenu")
        }             
   }          
  menu_destroy(menu)
    return PLUGIN_HANDLED
}


Отредактировал: Andrei, - 8.3.2013, 16:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Nickk
сообщение 8.3.2013, 19:03
Сообщение #2
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Пробуйте. Там только нужно добавить, когда изменять на false булевый массив.

Скрытый текст
Код
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <colorchat>
#include <fun>
#include <hamsandwich>
#include <dhudmessage>

#pragma tabsize 0

new bool:used[33]

#define ACCESS_FLAG ADMIN_LEVEL_G

#define PLUGIN "amx_adminmenu"
#define VERSION "1.0"
#define AUTHOR "ares"

public plugin_init()
{
        register_clcmd("amx_ares", "amx_ares" )
        register_plugin(PLUGIN, VERSION, AUTHOR);
}
  
public amx_ares(id)
{
    if(get_user_flags(id) & ADMIN_LEVEL_G)
    {
    if(!used[id])
    {
    new i_Menu = menu_create("\wМеню \wАдмина", "menu_handler")
    
    menu_additem(i_Menu, "\wВзять \r8000$", "1", 0)
    menu_additem(i_Menu, "\wВзять \r150 HP", "2", 0)
    menu_additem(i_Menu, "\wНабор гранат", "3", 0)
    menu_addblank(i_Menu,0)
    menu_additem(i_Menu, "\yВзять \rM3", "4", 0)
    menu_additem(i_Menu, "\wВозродится", "5", 0)
    menu_additem(i_Menu, "\wAmx Mod X Меню", "6", 0)
    
    menu_setprop(i_Menu, MPROP_EXITNAME, "Выйти");
    menu_display(id, i_Menu, 0)

    used[id] = true
    }
    else
    {
        new player_name[32]
        get_user_name(id, player_name, 31)
        ColorChat(id,RED,"[Surf]^4%s^1! У тебя нету прав для входа в ^3[^1Меню Администратора^3]",player_name)
    }
    }
    else{
         ColorChat(id, NORMAL, "Вы уже использовали меню!")
    }
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    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)
    new i_Key = str_to_num(s_Data)
    switch(i_Key)
    {
        case 1:
        {
            if( is_user_alive( id ) )
            {  
                      
                        cs_set_user_money(id, cs_get_user_money(id) + 8000)
                        new player_name[32]
                        get_user_name(id, player_name, 31)
                        ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3[8000$]",player_name)
                        amx_ares(id)                                        
            }                        
                      
            
        }                    
        case 2:
        {
                        if( is_user_alive( id ) )
                    {
                       {
                               new health[32]
                               health[id] = get_user_health(id)
                               new armor[32]
                               armor[id] = get_user_armor(id)
                               set_user_health(id,health[id] = 150)
                               set_user_armor(id,armor[id] = 150)
                               new player_name[32]
                               get_user_name(id, player_name, 31)
                               ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3[150HP и AP]",player_name)
                               amx_ares(id)
                       }                    
                    }      
        }
        case 3:
         {
                                if( is_user_alive( id ) )
                    {
                      {
                                give_item( id, "weapon_hegrenade" )
                                give_item( id, "weapon_flashbang" )
                                give_item( id, "weapon_flashbang" )
                                give_item( id, "weapon_smokegrenade" )
                                new player_name[32]
                                get_user_name(id, player_name, 31)
                                ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3[Набор гранат]",player_name)
                                amx_ares(id)
                      }                        
                    }                                    
        }
        case 4:
         {  
                        
                        if( is_user_alive( id ) )
                        {
                                give_item(id, "weapon_m3")
                                cs_set_user_bpammo(id,CSW_M3,32)
                                new player_name[32]
                                get_user_name(id, player_name, 31)                                
                                ColorChat(0,GREEN,"^3[Админ]^4%s ^1взял ^3M3",player_name)
                        }                            
        }
        case 5:
        {              if( is_user_alive( id ) )
                       {
                         new name[32]  
                         get_user_name( id, name, charsmax( name ) )
                         set_user_health(id, 70)
                         set_user_godmode(id, 0)                        
                         ExecuteHam(Ham_CS_RoundRespawn, id)
                         return PLUGIN_HANDLED
                       }
        }
        case 6:
        {
            client_cmd(id,"amxmodmenu")
        }            
   }          
  menu_destroy(menu)
    return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя a1r1e1s
сообщение 8.3.2013, 21:51
Сообщение #3
Стаж: 13 лет

Сообщений: 16
Благодарностей: 1
Полезность: 0

извиняюсь я мб не правильно написал, я хотел сказать брать все что там но только по одному разу, например взял (хп, м3, гранаты, денги, возродитися по одному разу).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 8.3.2013, 23:53
Сообщение #4


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

a1r1e1s,
один раз за раунд, за карту, или может за всю жизнь..?

Отредактировал: AndrewZ, - 8.3.2013, 23:53


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя a1r1e1s
сообщение 9.3.2013, 9:50
Сообщение #5
Стаж: 13 лет

Сообщений: 16
Благодарностей: 1
Полезность: 0

Цитата(AndrewZ @ 9.3.2013, 0:53) *
a1r1e1s,
один раз за раунд, за карту, или может за всю жизнь..?

один раз за раунд
Взять 8000$ (один раз за раунд)
Взять 150 HP (один раз за раунд)
Набор гранат (один раз за раунд)
Взять M3 (один раз за раунд)
Возродится (один раз за раунд)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 9.3.2013, 10:37
Сообщение #6
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Создавать для каждого пункта bool, при каждом case проверять, если false, то даем и изменяем на true.
Потом отлавливаем начало раунда и все переводим в false.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: