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

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

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

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

Меню сервера!

, Подскажите!
Статус пользователя selest
сообщение 25.10.2014, 19:07
Сообщение #1


Стаж: 12 лет

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

Скрытый текст
Код
#include <amxmodx>
#include <fakemeta>

new bool:ChooseTeam_Used[33];
new bool:DetectVIPMap[33];


new act_menu[33] = 1; // Т.е. Вкл.

public plugin_init()
{
    register_plugin("Main Menu" , "1.0" , "villlenka" );
    
    register_message(get_user_msgid("ShowMenu"), "MenuTeam");
    register_message(get_user_msgid("VGUIMenu"), "VGUITeam");
    
    register_clcmd("chooseteam", "OpenMenu");
    register_clcmd("say /menu", "OpenMenu");
    register_clcmd("menu", "OpenMenu");    
//    register_clcmd("chooseteam", "clcmd_changeteam")
//  register_clcmd("jointeam", "clcmd_changeteam")
    
    register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0");
    
        new entity = -1;
    if((engfunc(EngFunc_FindEntityByString, entity, "classname", "info_vip_start")) > 0)
    {
        DetectVIPMap[0] = true;
    }
    else
    {
        DetectVIPMap[0] = false;
    }
}

public Event_HLTV_New_Round(id)  
{
    arrayset(ChooseTeam_Used, false, sizeof(ChooseTeam_Used));
}  

public client_authorized(id)
{
    ChooseTeam_Used[id] = false;
}

public OpenMenu(id)
{
    if(DetectVIPMap[0] == false)
    {
        menu_cancel(id);
        TeamMenu(id);
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

public MenuTeam(msg, des, rec)
{
    if(DetectVIPMap[0] == false)
    {
        static const TeamSelect[] = "#Team_Select";
        
        static sz_Menu[sizeof(TeamSelect)];
        
        get_msg_arg_string(4, sz_Menu, charsmax(sz_Menu));
        
        if(!equal( sz_Menu, TeamSelect))
        {
            return PLUGIN_CONTINUE;
        }
        
        set_pdata_int(rec, 205, 0);
        
        TeamMenu(rec);
        
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

public VGUITeam(msg, des, rec)
{
    if(get_msg_arg_int(1) != 2)
    {
        return PLUGIN_CONTINUE;
    }
    
    TeamMenu(rec);
    
    return PLUGIN_HANDLED;
}

public TeamMenu(id)
{  
    if(ChooseTeam_Used[id] == true)
    {
        client_print(id, print_center, "Only 1 team change is allowed.");
        return PLUGIN_HANDLED;
    }
    
    if (act_menu[id] == 1)
    {
        new iPlayers[32], iNumCT , iNumT;
        get_players(iPlayers, iNumCT, "e", "CT" );
        get_players(iPlayers, iNumT, "e", "TERRORIST");
        
        new menu = menu_create("\yВыберите команду:", "TeamMenu_Handler");
        
        new szTittle[124];
        
        formatex(szTittle, charsmax(szTittle), "\wТеррористы \r[%d]", iNumT);
        menu_additem(menu, szTittle, "1")
        formatex(szTittle, charsmax(szTittle), "\wКонтр-террористы \r[%d]^n", iNumCT);
        menu_additem(menu, szTittle, "2")    
        menu_additem(menu, "\wАвыто-выбор", "3");
        menu_additem(menu, "\wНаблюдатели", "4");
        menu_setprop(menu, MPROP_EXITNAME, "Выход");
        
        menu_display(id, menu, 0);

                act_menu[id] = 0;
                
    }
    else
    {
        new menu = menu_create("Душевный сервер |Knife DM","func_menu");
        menu_setprop( menu,MPROP_NUMBER_COLOR,"\r")
        menu_additem( menu,"\yВыбрать команду")
        menu_additem( menu,"Одеть \rШапку")
        menu_additem( menu,"Сменить \rНожик")
        menu_additem( menu,"Включить \rЛинию")            
        menu_additem( menu,"Включить \r3D")
        menu_additem( menu,"\yСуперМАРКЕТ \r[24/7]")
        menu_additem( menu,"Админ Меню [\rАдмин\w]","7")
        menu_additem( menu,"AmxModMenu [\rАдмин\w]","8")
        menu_additem( menu,"Связь с \rадмином","9")
        menu_display(id, menu, 0);
        
    }
    return PLUGIN_CONTINUE;
}

public TeamMenu_Handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        return PLUGIN_HANDLED;
    }
        
        new Name[64], Data[6], Access, Callback;
    
        menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, Callback);
    
        static choose[4][2] = {"1","2","5","6"};
        engclient_cmd(id, "jointeam", choose[Data[0] - '1']);
    //    engclient_cmd(id, "menuselect","5");
        
        ChooseTeam_Used[id] = true;
        
        menu_destroy(menu);
                
        return PLUGIN_HANDLED;
}
    
public func_menu(id, menu, key)
{
  key++

  if(key==1)
    {
        act_menu[id] = 1;
        client_cmd(id,"chooseteam");
    }
  
  if(key==2) client_cmd(id,"say /hats")
  if(key==3) client_cmd(id,"say /knife")
  if(key==4) client_cmd(id,"tmenu")
  if(key==5) client_cmd(id,"say /cam")
  if(key==6) client_cmd(id,"say /shop")
  if(key==7) client_cmd(id,"adminnice")
  if(key==8) client_cmd(id,"amxmodmenu")
  if(key==9) client_cmd(id,"say /admin")
  
  return PLUGIN_HANDLED;
}


Помогите сделать,что бы можно вызвать меню много раз... а то пишет "Only 1 team change is allowed."

Отредактировал: selest, - 25.10.2014, 19:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 25.10.2014, 20:05
Сообщение #2
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Скрытый текст
Код:
#include <amxmodx> 
#include <fakemeta>

new bool:DetectVIPMap[33];


new act_menu[33] = 1; // Т.е. Вкл.

public plugin_init()
{
register_plugin("Main Menu" , "1.0" , "villlenka" );

register_message(get_user_msgid("ShowMenu"), "MenuTeam");
register_message(get_user_msgid("VGUIMenu"), "VGUITeam");

register_clcmd("chooseteam", "OpenMenu");
register_clcmd("say /menu", "OpenMenu");
register_clcmd("menu", "OpenMenu");

new entity = -1;
if((engfunc(EngFunc_FindEntityByString, entity, "classname", "info_vip_start")) > 0)
{
DetectVIPMap[0] = true;
}
else
{
DetectVIPMap[0] = false;
}
}

public OpenMenu(id)
{
if(DetectVIPMap[0] == false)
{
menu_cancel(id);
TeamMenu(id);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public MenuTeam(msg, des, rec)
{
if(DetectVIPMap[0] == false)
{
static const TeamSelect[] = "#Team_Select";

static sz_Menu[sizeof(TeamSelect)];

get_msg_arg_string(4, sz_Menu, charsmax(sz_Menu));

if(!equal( sz_Menu, TeamSelect))
{
return PLUGIN_CONTINUE;
}

set_pdata_int(rec, 205, 0);

TeamMenu(rec);

return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public VGUITeam(msg, des, rec)
{
if(get_msg_arg_int(1) != 2)
{
return PLUGIN_CONTINUE;
}

TeamMenu(rec);

return PLUGIN_HANDLED;
}

public TeamMenu(id)
{
if (act_menu[id] == 1)
{
new iPlayers[32], iNumCT , iNumT;
get_players(iPlayers, iNumCT, "e", "CT" );
get_players(iPlayers, iNumT, "e", "TERRORIST");

new menu = menu_create("\yВыберите команду:", "TeamMenu_Handler");

new szTittle[124];

formatex(szTittle, charsmax(szTittle), "\wТеррористы \r[%d]", iNumT);
menu_additem(menu, szTittle, "1")
formatex(szTittle, charsmax(szTittle), "\wКонтр-террористы \r[%d]^n", iNumCT);
menu_additem(menu, szTittle, "2")
menu_additem(menu, "\wАвыто-выбор", "3");
menu_additem(menu, "\wНаблюдатели", "4");
menu_setprop(menu, MPROP_EXITNAME, "Выход");

menu_display(id, menu, 0);

act_menu[id] = 0;

}
else
{
new menu = menu_create("Душевный сервер |Knife DM","func_menu");
menu_setprop( menu,MPROP_NUMBER_COLOR,"\r")
menu_additem( menu,"\yВыбрать команду")
menu_additem( menu,"Одеть \rШапку")
menu_additem( menu,"Сменить \rНожик")
menu_additem( menu,"Включить \rЛинию")
menu_additem( menu,"Включить \r3D")
menu_additem( menu,"\yСуперМАРКЕТ \r[24/7]")
menu_additem( menu,"Админ Меню [\rАдмин\w]","7")
menu_additem( menu,"AmxModMenu [\rАдмин\w]","8")
menu_additem( menu,"Связь с \rадмином","9")
menu_display(id, menu, 0);

}
return PLUGIN_CONTINUE;
}

public TeamMenu_Handler(id, menu, item)
{
if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}

new Name[64], Data[6], Access, Callback;

menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, Callback);

static choose[4][2] = {"1","2","5","6"};
engclient_cmd(id, "jointeam", choose[Data[0] - '1']);
menu_destroy(menu);

return PLUGIN_HANDLED;
}

public func_menu(id, menu, key)
{
key++

if(key==1)
{
act_menu[id] = 1;
client_cmd(id,"chooseteam");
}

if(key==2) client_cmd(id,"say /hats")
if(key==3) client_cmd(id,"say /knife")
if(key==4) client_cmd(id,"tmenu")
if(key==5) client_cmd(id,"say /cam")
if(key==6) client_cmd(id,"say /shop")
if(key==7) client_cmd(id,"adminnice")
if(key==8) client_cmd(id,"amxmodmenu")
if(key==9) client_cmd(id,"say /admin")

return PLUGIN_HANDLED;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя selest
сообщение 25.10.2014, 22:50
Сообщение #3


Стаж: 12 лет

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

Цитата(Orty_Hart @ 25.10.2014, 21:05) *
Скрытый текст
Код:
#include <amxmodx> 
#include <fakemeta>

new bool:DetectVIPMap[33];


new act_menu[33] = 1; // Т.е. Вкл.

public plugin_init()
{
register_plugin("Main Menu" , "1.0" , "villlenka" );

register_message(get_user_msgid("ShowMenu"), "MenuTeam");
register_message(get_user_msgid("VGUIMenu"), "VGUITeam");

register_clcmd("chooseteam", "OpenMenu");
register_clcmd("say /menu", "OpenMenu");
register_clcmd("menu", "OpenMenu");

new entity = -1;
if((engfunc(EngFunc_FindEntityByString, entity, "classname", "info_vip_start")) > 0)
{
DetectVIPMap[0] = true;
}
else
{
DetectVIPMap[0] = false;
}
}

public OpenMenu(id)
{
if(DetectVIPMap[0] == false)
{
menu_cancel(id);
TeamMenu(id);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public MenuTeam(msg, des, rec)
{
if(DetectVIPMap[0] == false)
{
static const TeamSelect[] = "#Team_Select";

static sz_Menu[sizeof(TeamSelect)];

get_msg_arg_string(4, sz_Menu, charsmax(sz_Menu));

if(!equal( sz_Menu, TeamSelect))
{
return PLUGIN_CONTINUE;
}

set_pdata_int(rec, 205, 0);

TeamMenu(rec);

return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public VGUITeam(msg, des, rec)
{
if(get_msg_arg_int(1) != 2)
{
return PLUGIN_CONTINUE;
}

TeamMenu(rec);

return PLUGIN_HANDLED;
}

public TeamMenu(id)
{
if (act_menu[id] == 1)
{
new iPlayers[32], iNumCT , iNumT;
get_players(iPlayers, iNumCT, "e", "CT" );
get_players(iPlayers, iNumT, "e", "TERRORIST");

new menu = menu_create("\yВыберите команду:", "TeamMenu_Handler");

new szTittle[124];

formatex(szTittle, charsmax(szTittle), "\wТеррористы \r[%d]", iNumT);
menu_additem(menu, szTittle, "1")
formatex(szTittle, charsmax(szTittle), "\wКонтр-террористы \r[%d]^n", iNumCT);
menu_additem(menu, szTittle, "2")
menu_additem(menu, "\wАвыто-выбор", "3");
menu_additem(menu, "\wНаблюдатели", "4");
menu_setprop(menu, MPROP_EXITNAME, "Выход");

menu_display(id, menu, 0);

act_menu[id] = 0;

}
else
{
new menu = menu_create("Душевный сервер |Knife DM","func_menu");
menu_setprop( menu,MPROP_NUMBER_COLOR,"\r")
menu_additem( menu,"\yВыбрать команду")
menu_additem( menu,"Одеть \rШапку")
menu_additem( menu,"Сменить \rНожик")
menu_additem( menu,"Включить \rЛинию")
menu_additem( menu,"Включить \r3D")
menu_additem( menu,"\yСуперМАРКЕТ \r[24/7]")
menu_additem( menu,"Админ Меню [\rАдмин\w]","7")
menu_additem( menu,"AmxModMenu [\rАдмин\w]","8")
menu_additem( menu,"Связь с \rадмином","9")
menu_display(id, menu, 0);

}
return PLUGIN_CONTINUE;
}

public TeamMenu_Handler(id, menu, item)
{
if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}

new Name[64], Data[6], Access, Callback;

menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, Callback);

static choose[4][2] = {"1","2","5","6"};
engclient_cmd(id, "jointeam", choose[Data[0] - '1']);
menu_destroy(menu);

return PLUGIN_HANDLED;
}

public func_menu(id, menu, key)
{
key++

if(key==1)
{
act_menu[id] = 1;
client_cmd(id,"chooseteam");
}

if(key==2) client_cmd(id,"say /hats")
if(key==3) client_cmd(id,"say /knife")
if(key==4) client_cmd(id,"tmenu")
if(key==5) client_cmd(id,"say /cam")
if(key==6) client_cmd(id,"say /shop")
if(key==7) client_cmd(id,"adminnice")
if(key==8) client_cmd(id,"amxmodmenu")
if(key==9) client_cmd(id,"say /admin")

return PLUGIN_HANDLED;
}

Спасибо, а как сделать все 9 пунктов на первой страничке?))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 26.10.2014, 10:49
Сообщение #4
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

selest,
с этим меню я никогда не работал.
я работал с меню, которое разработало и использовало сообщество AMXMODX
поэтому не знаю как....
могу написать другое меню (по другому будет составлен код, а результат такой-же наверное....)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: