Kad leistu viena karta per rounda naudot menu

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Kad leistu viena karta per rounda naudot menu

Post by Pukuotukas951 »

Kad leistu viena karta per rounda naudot menu tai su kokia funkcija reik tikrint? Spawn ar su event round start? ar kaip??

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Kad leistu viena karta per rounda naudot menu

Post by psychical »

http://amxmodx.lt/viewtopic.php?f=16&t=1873 kelk seną temą, o ne kurk nauja, bet tokią pačią...

-- 2012 Geg 18 13:18 --
Pukuotukas951 wrote:Kad leistu viena karta per rounda naudot menu tai su kokia funkcija reik tikrint? Spawn ar su event round start? ar kaip??
Kažkas tokio:

Code: Select all

#include <amxmodx>#include <hamsandwich> new one_use[33]; public plugin_init(){    register_plugin("pluginas", "1.0.0", "kurejas");        RegisterHam(Ham_Spawn, "player", "OnSpawn");        register_clcmd("say /komanda", "cmdKomanda");    register_clcmd("say_team /komanda", "cmdKomanda");} public OnSpawn(id){    if(one_use[id])        one_use[id] = 0;} public cmdKomanda(id){    if(!is_user_alive(id))        return;     if(one_use[id])    {        client_print(id, print_chat, "Tik viena karta per rounda!")        return;    }     new menu = create_menu("Menu", "komanda_choose")    menu_additem...} public komanda_choose(id, menu, item){    if(item == MENU_EXIT)    {        menu_destroy(menu);        return PLUGIN_HANDLED;    }        switch(item)    {        case 0:        {            one_use[id] = 1;        }    }    menu_destroy(menu);    return PLUGIN_HANDLED;}

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: Kad leistu viena karta per rounda naudot menu

Post by Pukuotukas951 »

Vistiek neleidžia naudot meniu tik kas antrą round'ą. nes va taip yra:

Code: Select all

 #define KeysVipCTMenu (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<9)#define KeysVipTMenu (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9) new g_has_user_menu[33] public plugin_init() {        register_menucmd(register_menuid("VipTMenu"), KeysVipTMenu, "PressedVipTMenu")    register_menucmd(register_menuid("VipCTMenu"), KeysVipCTMenu, "PressedVipCTMenu")     RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1)} public cmdVmenu(id){    if (!( get_user_flags(id) & VIP_LEVEL))    {        client_printc(id, "%s Tik vipam", PREFIX);        return PLUGIN_HANDLED;    }     if (!is_user_alive(id))    {        client_printc(id, "%s Only alive", PREFIX);        return PLUGIN_HANDLED;    }     if (g_has_user_menu[id])    {        new CsTeams:user_team;        user_team = cs_get_user_team(id);         if (user_team == CS_TEAM_T)        {            ShowVipTMenu(id);        }         else if (user_team == CS_TEAM_CT)        {            ShowVipCTMenu(id);        }    }     else    {        client_printc(id, "%s JAU PANAUDOJAI MENIU Si RAUNDA", PREFIX);    }     return PLUGIN_HANDLED;} public ShowVipCTMenu(id) {    show_menu(id, KeysVipCTMenu,     "\rvip meniu^n^n\    \r1. \wjjjjjjjjjjjj^n\    \r2. \wyyyyyyyyyyyyyyyy^n\    \r3. \wggggggggggg^n\    \r4. \wddddddddddddddddd^n\    \r5. \wbbbbbbbbbbbbbbbbbbbb^n^n\    \r0. \wIseiti",    -1, "VipCTMenu")} public PressedVipCTMenu(id, key) {    switch (key)     {            case 0:         {            g_has_user_menu[id] = 0        }         case 1:         {            g_has_user_menu[id] = 0        }         case 2:         {            g_has_user_menu[id] = 0        }         case 3:         {            g_has_user_menu[id] = 0        }         case 4:         {            g_has_user_menu[id] = 0        }    }    return PLUGIN_HANDLED;} public ShowVipTMenu(id) {    show_menu(id, KeysVipTMenu,     "\r vip meniu^n^n\    \r1. \wuuuuuuu^n\    \r2. \wiiiiiiiiiiiiiii^n\    \r3. \weeeeeeeeeeeeee^n\    \r4. \wfffffffffffff^n\    \r5. \wggggggggggggggggg^n\    \r6. \whhhhhhhhhhhhhhh^n^n\    \r0. \wIseiti",    -1, "VipTMenu")} public PressedVipTMenu(id, key){    switch (key)     {        case 0:         {            g_has_user_menu[id] = 0        }         case 1:         {            g_has_user_menu[id] = 0        }         case 2:         {            g_has_user_menu[id] = 0        }         case 3:         {            g_has_user_menu[id] = 0         }         case 4:         {            g_has_user_menu[id] = 0         }        case 5:         {            g_has_user_menu[id] = 0         }    }    return PLUGIN_HANDLED;}public FwdHamSpawn_Post(id){    if(!is_user_alive(id))    return HAM_IGNORED;         g_has_user_menu[id] = 1     return HAM_IGNORED;}

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Kad leistu viena karta per rounda naudot menu

Post by psychical »

Pukuotukas951 wrote:Vistiek neleidžia naudot meniu tik kas antrą round'ą. nes va taip yra:

Code: Select all

 #define KeysVipCTMenu (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<9)#define KeysVipTMenu (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9) new g_has_user_menu[33] public plugin_init() {        register_menucmd(register_menuid("VipTMenu"), KeysVipTMenu, "PressedVipTMenu")    register_menucmd(register_menuid("VipCTMenu"), KeysVipCTMenu, "PressedVipCTMenu")     RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1)} public cmdVmenu(id){    if (!( get_user_flags(id) & VIP_LEVEL))    {        client_printc(id, "%s Tik vipam", PREFIX);        return PLUGIN_HANDLED;    }     if (!is_user_alive(id))    {        client_printc(id, "%s Only alive", PREFIX);        return PLUGIN_HANDLED;    }     if (g_has_user_menu[id])    {        new CsTeams:user_team;        user_team = cs_get_user_team(id);         if (user_team == CS_TEAM_T)        {            ShowVipTMenu(id);        }         else if (user_team == CS_TEAM_CT)        {            ShowVipCTMenu(id);        }    }     else    {        client_printc(id, "%s JAU PANAUDOJAI MENIU Si RAUNDA", PREFIX);    }     return PLUGIN_HANDLED;} public ShowVipCTMenu(id) {    show_menu(id, KeysVipCTMenu,     "\rvip meniu^n^n\    \r1. \wjjjjjjjjjjjj^n\    \r2. \wyyyyyyyyyyyyyyyy^n\    \r3. \wggggggggggg^n\    \r4. \wddddddddddddddddd^n\    \r5. \wbbbbbbbbbbbbbbbbbbbb^n^n\    \r0. \wIseiti",    -1, "VipCTMenu")} public PressedVipCTMenu(id, key) {    switch (key)     {            case 0:         {            g_has_user_menu[id] = 0        }         case 1:         {            g_has_user_menu[id] = 0        }         case 2:         {            g_has_user_menu[id] = 0        }         case 3:         {            g_has_user_menu[id] = 0        }         case 4:         {            g_has_user_menu[id] = 0        }    }    return PLUGIN_HANDLED;} public ShowVipTMenu(id) {    show_menu(id, KeysVipTMenu,     "\r vip meniu^n^n\    \r1. \wuuuuuuu^n\    \r2. \wiiiiiiiiiiiiiii^n\    \r3. \weeeeeeeeeeeeee^n\    \r4. \wfffffffffffff^n\    \r5. \wggggggggggggggggg^n\    \r6. \whhhhhhhhhhhhhhh^n^n\    \r0. \wIseiti",    -1, "VipTMenu")} public PressedVipTMenu(id, key){    switch (key)     {        case 0:         {            g_has_user_menu[id] = 0        }         case 1:         {            g_has_user_menu[id] = 0        }         case 2:         {            g_has_user_menu[id] = 0        }         case 3:         {            g_has_user_menu[id] = 0         }         case 4:         {            g_has_user_menu[id] = 0         }        case 5:         {            g_has_user_menu[id] = 0         }    }    return PLUGIN_HANDLED;}public FwdHamSpawn_Post(id){    if(!is_user_alive(id))    return HAM_IGNORED;         g_has_user_menu[id] = 1     return HAM_IGNORED;}
WHAT IS THIS???

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: Kad leistu viena karta per rounda naudot menu

Post by Pukuotukas951 »

Čia kodo dalis. Sakau man kas antrą round leidžia naudoti tą meniu, dėl šito man rodos:

Code: Select all

if (g_has_user_menu[id])    {        new CsTeams:user_team;        user_team = cs_get_user_team(id);         if (user_team == CS_TEAM_T)        {            ShowVipTMenu(id);        }         else if (user_team == CS_TEAM_CT)        {            ShowVipCTMenu(id);        }    }     else    {        client_printc(id, "%s JAU PANAUDOJAI MENIU Si RAUNDA", PREFIX);    }     return PLUGIN_HANDLED;}


User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Kad leistu viena karta per rounda naudot menu

Post by hleV »

Meniu callback'e reiktų naudot return PLUGIN_HANDLED.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Kad leistu viena karta per rounda naudot menu

Post by psychical »

hleV wrote:Meniu callback'e reiktų naudot return PLUGIN_HANDLED.
Pas ji "client_printc(id, "%s JAU PANAUDOJAI MENIU Si RAUNDA", PREFIX);" yra else'e tad return ... čia nieko nepakeis

Pukuotukas951
Gana aktyvus vartotojas
Posts: 445
Joined: 2011 Aug 27 09:29

Re: Kad leistu viena karta per rounda naudot menu

Post by Pukuotukas951 »

Susitvarkiau buvo bėda return'uose.

O kuris optimaliau ar

Code: Select all

new bool: g_has_user_menu[id] ar  new g_has_user_menu[MAX_PLAYERS + 1]

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Kad leistu viena karta per rounda naudot menu

Post by hleV »

psychical wrote:
hleV wrote:Meniu callback'e reiktų naudot return PLUGIN_HANDLED.
Pas ji "client_printc(id, "%s JAU PANAUDOJAI MENIU Si RAUNDA", PREFIX);" yra else'e tad return ... čia nieko nepakeis
Nesupratau ką čia parašei, bet kalbėjau apie šitą.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 4 guests