Page 1 of 2

Pirmas round

Posted: 2013 Jul 13 08:37
by Ofaz
Sveiki, turiu klausimą, kaip padaryt, kad menu išsimestų automatiškai pirmą raundą, kad nereikėtų nieko rašyt, tiesiog prasideda raundas, ir išmeta tą menu ar kažką panašaus..

Re: Pirmas round

Posted: 2013 Jul 13 09:48
by life55
Jai nori, kad per zemelapi tik viena karta ismestu tau ta norima menu(pasirinkus bet kuri is pasirinkimu, menu nebeismes tol, kol zmogus nepadaryt reconnect:

Code: Select all

#include <amxmodx>#include <cstrike>#include <fun>#include <fakemeta>#include <hamsandwich> new g_NerodytiMeniu[33]; public client_putinserver(id){          g_NerodytiMeniu[id] = false;      } public plugin_init() {    register_plugin("ismeta viena karta per prisijungima", "1.0", "life55")    RegisterHam(Ham_Spawn, "player", "player_spawn", 1)} public player_spawn(id) {    if (g_NerodytiMeniu[id])             return;    new menu = menu_create("Meniu:", "menu_cases")    menu_additem(menu, "pasirinkimas", "1", 0)    menu_additem(menu, "pasirinkimas", "2", 0)    menu_additem(menu, "pasirinkimas", "3", 0)    menu_additem(menu, "pasirinkimas", "4", 0)    menu_setprop(menu, MPROP_EXITNAME, "Uzdaryti")    menu_display(id, menu, 0)} public menu_cases(id, menu, item) {    if (item == MENU_EXIT)    {        menu_destroy(menu)        return PLUGIN_HANDLED    }     new data[6], szName[64]    new access, callback    menu_item_getinfo(menu, item, access, data,5, szName, 63, callback)    new key = str_to_num(data)     switch(key)    {            case 1:        {            g_NerodytiMeniu[id] = true;         //sito ^ netrink, prisidesi ka noresi.        }            case 2:        {            g_NerodytiMeniu[id] = true;         //sito ^ netrink, prisidesi ka noresi.        }     case 3:        {            g_NerodytiMeniu[id] = true;         //sito ^ netrink, prisidesi ka noresi.        }     case 4:        {            g_NerodytiMeniu[id] = true;        //sito ^ netrink, prisidesi ka noresi.        }    }    return PLUGIN_HANDLED}

Re: Pirmas round

Posted: 2013 Jul 13 11:12
by psychical
Kurdamas bool kintamajį priekyje prirašyk bool:
Norint surasti paspaustą pasirinkimą užtenka to ką gaunam, jei mums reikia tik pasirinkimo numerio
Be to bereikalingi include's irgi naudos neatneš

Code: Select all

#include <amxmodx>#include <hamsandwich> new bool:g_bNerodytiMeniu[33]; public client_putinserver(id)    g_NerodytiMeniu[id] = false; public plugin_init(){    register_plugin("ismeta viena karta per prisijungima", "1.0", "life55")    RegisterHam(Ham_Spawn, "player", "player_spawn", 1)} public player_spawn(id){    if(!is_user_alive(id))        return;     if (g_bNerodytiMeniu[id])        return;     new menu = menu_create("Meniu:", "menu_cases")    menu_additem(menu, "pasirinkimas", "1", 0)    menu_additem(menu, "pasirinkimas", "2", 0)        menu_setprop(menu, MPROP_EXITNAME, "Uzdaryti")        menu_display(id, menu, 0)} public menu_cases(id, menu, item){    if (item == MENU_EXIT)    {        menu_destroy(menu)        return PLUGIN_HANDLED    }     switch(item)    {        case 0: //pasirinkus pirma pasirinkima        {            //kazkas vykdoma        }        case 1: //pasirinkus antra pasirinkima        {            //kazkas vykdoma        }    }    g_bNerodytiMeniu[id] = true;    return PLUGIN_HANDLED}

Re: Pirmas round

Posted: 2013 Jul 13 11:20
by life55
dekui, kad pataisei. Tik case numerius sumaisiai.

Code: Select all

    #include <amxmodx>    #include <hamsandwich>         new bool:g_NerodytiMeniu[33];         public client_putinserver(id)        g_NerodytiMeniu[id] = false;         public plugin_init()    {        register_plugin("ismeta viena karta per prisijungima", "1.0", "life55")        RegisterHam(Ham_Spawn, "player", "player_spawn", 1)    }         public player_spawn(id)    {        if (g_NerodytiMeniu[id])            return;             new menu = menu_create("Meniu:", "menu_cases")        menu_additem(menu, "pasirinkimas", "0", 0)        menu_additem(menu, "pasirinkimas", "1", 0)               menu_setprop(menu, MPROP_EXITNAME, "Uzdaryti")               menu_display(id, menu, 0)    }         public menu_cases(id, menu, item)    {        if (item == MENU_EXIT)        {            menu_destroy(menu)            return PLUGIN_HANDLED        }             switch(item)        {            case 0: //pasirinkus pirma pasirinkima            {                //kazkas vykdoma            }            case 1: //pasirinkus antra pasirinkima            {                //kazkas vykdoma            }        }        g_NerodytiMeniu[id] = true;        return PLUGIN_HANDLED    }

Re: Pirmas round

Posted: 2013 Jul 13 11:36
by newb
Pawn tas bool: nebutinas, bet jei taisai, tai ir kintamaji pavadink g_bNerodytiMeniu ^_^
Ir kur is_user_alive tikrinimas per spawna ? :D

Re: Pirmas round

Posted: 2013 Jul 13 23:17
by psychical
newb wrote:Pawn tas bool: nebutinas, bet jei taisai, tai ir kintamaji pavadink g_bNerodytiMeniu ^_^
Ir kur is_user_alive tikrinimas per spawna ? :D
Su tais kintamūjų pavadinimais iš vis nematau skirtumo ar jis B ar jis ASD nuo to niekas nesikeičia....

O dėl is_user_alive() tai jis POST'e reikalingas tik dėl visa ko, ne labai post'e teko matyti negyvą žaidėją, bet aišku, visko būna

Re: Pirmas round

Posted: 2013 Jul 14 02:03
by aaarnas
Kintamųjų pavadinimai yra labai svarbu. Svarbu net yra laikytis vieningo rašymo stiliaus. Kas prasideda su didžiąją raide, kur tarpai dedami ir panašiai. Tai lengvina kodo skaitymą.

Spawn iškviečiamas mirusiam žaidėjui rodos tada, kai jis tampa spectate.

Re: Pirmas round

Posted: 2013 Jul 14 13:24
by alfre
tiesa.optimizuotas kodas + tvarkingai surasytas,yra geriau.

Re: Pirmas round

Posted: 2013 Jul 14 13:47
by hleV
newb wrote:Pawn tas bool: nebutinas, bet jei taisai, tai ir kintamaji pavadink g_bNerodytiMeniu ^_^
Fuck HN.

Re: Pirmas round

Posted: 2013 Jul 15 21:26
by Fly3r
bool: nebūtinas, bet su juo sutaupoma daug atminties.