Page 1 of 2

Buy Menu [Zaliems]

Posted: 2011 Jan 29 17:05
by zirualas
Taigi, neturėdamas ką veikti paėmiau ir sukūriau pamoką "Kaip sukurti Buy Menu".
Taigi paėmam ir padarom taip:

Code: Select all

#include <amxmodx>#include <amxmisc>#include <cstrike>
Tada prie į public plugin_init() įrašome:

Code: Select all

register_plugin("ShopMenu", "1.0", "Zirual")    register_clcmd( "say /shopmenu", "ShopMenu" ); // ten kur /shopmenu, galite parašyti savo norimą komandą
Dabar mums reikėtu meniu ;]

Rašome:

Code: Select all

public ShopMenu(id){    new menu = menu_create("\yShop Menu:", "menu_handler"); // Mūsų "topic" menių. Kuria rodys viršuje. \y - Geltona, \r - raudona        menu_additem(menu, "\w Grazus zodis - /r8000 $", "1", 0); // 1 Punktas    menu_additem(menu, "\w Blogas zodis - /r7500 $", "2", 0); // 2 Punktas    menu_additem(menu, "\w Paprastas zodis - /r8500 $", "3", 0); // 3 Punktas        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, menu, 0); }
Dabar reikėtu padaryti, kad kai pasirenki kažką, kad duotų mums kažką ;D.

Code: Select all

public menu_handler(id, menu, item){    if( item == MENU_EXIT )    {        menu_destroy(menu);        return PLUGIN_HANDLED;    }        new data[6], iName[64];    new acess, callback;        menu_item_getinfo(menu, item, acess, data,6, iName, 63, callback);    new key = str_to_num(data);        switch(key)    {         case 1:        {                        if (cs_get_user_money(id) < 8000) // pirmas punktas, jei keitete kaina virsuje tai turite ir cia pakeisti            {                client_print(id, print_chat, "Tau neuztenka pinigu") // Tekstas kuri parasys, jei neturesi 8000 $                return PLUGIN_HANDLED;            }                        if (!is_user_alive(id)) // Tikrina ar zaidejas gyvas            {                client_print(id, print_chat, "Turi buti gyvas") // Tekstas kuri parasys jei busi negyvas                return PLUGIN_HANDLED;            }                        if (cs_get_user_money(id) >= 8000 ) // Tikrina ar pinigu yra daugiau arba lygu (keisti suma jei keitete virsuje)            {                client_print(id, print_chat, "Tu nusipirkai grazu zodi.") // Tekstas kuri parasys jei nusipirksi kazka                cs_set_user_money(id , cs_get_user_money(id) - 8000, 0) // Atema is zaidejo 8000 $            }        }        case 2:        {                        if (cs_get_user_money(id) < 7500) // antras punktas, jei keitete kaina virsuje tai turite ir cia pakeisti            {                client_print(id, print_chat, "Tau neuztenka pinigu") // Tekstas kuri parasys, jei neturesi 7500 $                return PLUGIN_HANDLED;            }                        if (!is_user_alive(id)) // Tikrina ar zaidejas gyvas            {                client_print(id, print_chat, "Turi buti gyvas") // Tekstas kuri parasys jei busi negyvas                return PLUGIN_HANDLED;            }                        if (cs_get_user_money(id) >= 7500 ) // Tikrina ar pinigu yra daugiau arba lygu (keisti suma jei keitete virsuje)            {                client_print(id, print_chat, "Tu nusipirkai BLOGA zodi!!") // Tekstas kuri parasys jei nusipirksi kazka                cs_set_user_money(id , cs_get_user_money(id) - 7500, 0) // Atema is zaidejo 7500 $            }        }                case 3:        {                        if (cs_get_user_money(id) < 8500) // trecias punktas, jei keitete kaina virsuje tai turite ir cia pakeisti            {                client_print(id, print_chat, "Tau neuztenka pinigu") // Tekstas kuri parasys, jei neturesi 8500 $                return PLUGIN_HANDLED;            }                        if (!is_user_alive(id)) // Tikrina ar zaidejas gyvas            {                client_print(id, print_chat, "Turi buti gyvas") // Tekstas kuri parasys jei busi negyvas                return PLUGIN_HANDLED;            }                        if (cs_get_user_money(id) >= 8000 ) // Tikrina ar pinigu yra daugiau arba lygu (keisti suma jei keitete virsuje)            {                client_print(id, print_chat, "Tu nusipirkai Paprasciausia zodi") // Tekstas kuri parasys jei nusipirksi kazka                cs_set_user_money(id , cs_get_user_money(id) - 8000, 0) // Atema is zaidejo 8500 $            }        }        menu_destroy(menu);     return PLUGIN_HANDLED; }
Taigi, pamokele kaip ir baigta. Jum beliek eksperimentuoti su siuo kodu ;]

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 17:13
by xFrostas
Kur esi padaręs meniu handler'yje, kad tikrintų jog žaidėjas yra gyvas, galėtum padaryti tiesiog meniu funkcijoje būtų mažesnis kodas (gal ir lengvesnis ;D)

Code: Select all

public ShopMenu(id){    if (!is_user_alive(id)) // Tikrins ar esi gyvas    {        client_print(id, print_chat, "Turi buti gyvas") // Tekstas kuri parasys jei busi negyvas        return    }    else    {        // Meniu    }}

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 17:21
by zirualas
Nu galima daryti, bet cia shop menu, gal koks zmogus nores pasidaryti, kad galetu nusipirkti Spawn'a

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 17:37
by xFrostas
na nebent :) bet galima padaryti ir taip

Code: Select all

public ShopMenu(id){    if (!is_user_alive(id)) // Tikrins ar esi gyvas    {        client_print(id, print_chat, "Turi buti gyvas") // Tekstas kuri parasys jei busi negyvas        return    }    else    {        // Meniu    }    // Spawn punktas}

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 17:41
by zirualas
Tavo teisybe :] Todel ir parasiau:
Jum beliek eksperimentuoti su siuo kodu ;]

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 18:33
by xFrostas
beje pamiršau parašyt

Code: Select all

register_plugin(ShopMenu, 1.0, Zirual)
>>>

Code: Select all

register_plugin("ShopMenu", "1.0", "Zirual")

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 18:35
by zirualas
Pataisiau. Tikrai reikia maziau no-lifint ;DD

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 19:47
by aaarnas
Jei meniu turi mažiau nei 7 punktus, visada darykit taip, nes taip paprasčiau ir labiau optimizuota:

Code: Select all

public ShopMenu(id){    new menu = menu_create("\gShop Menu:", "menu_handler"); // Mūsų "topic" menių. Kuria rodys viršuje        menu_additem(menu, "\w Grazus zodis - /r8000 $"); // 1 Punktas    menu_additem(menu, "\w Blogas zodis - /r7500 $"); // 2 Punktas    menu_additem(menu, "\w Paprastas zodis - /r8500 $"); // 3 Punktas        menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, menu, 0); }

Code: Select all

 public menu_handler(id, menu, item){    if( item == MENU_EXIT )    {        menu_destroy(menu);        return PLUGIN_HANDLED;    }       switch(item) {        case 0: // Pirmas punktas        case 1: // Antras punktas        case 2: // Trecias    }        menu_destroy(menu);     return PLUGIN_HANDLED; }
Beje turėtų būti ne \r ? Ir kas tas \g ?

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 20:10
by zirualas
Beje turėtų būti ne \r ? Ir kas tas \g ?
\g tai green reiske, nezinau, man veike anksciau ;]

Re: Buy Menu [Zaliems]

Posted: 2011 Jan 29 20:21
by aaarnas
Ką tik pamėginau. simbolį \g sistema atpažįsta, bet jis nieko nepadaro. Gal veiktų su sena meniu sistema, bet abejoju. Nesu matęs žalios spalvos meniu.