|
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
|

10-04-2012
, 20:10
Re: [ES]Ayuda con menu de compra
|
#18
|
No está muy optimizado pero es algo... se podian hacer multiples menues y multiples handlers de otra manera pero no me la acuerdo xD.
PHP Code:
#include <amxmodx> #include <cstrike> #include <fun> #include <engine>
new type
new const Shop_Messages[10][] = { "Tenes que estar vivo, o te falta dinero para comprar este item!", "Compraste 100 de HP!", "Compraste 1 Flashbang!", "Compraste una Deagle con 1 Bala!", "Compraste 125 de HP!", "Compraste una HE!", "Compraste una Scout con 1 Bala!", "Compraste 150 de HP!", "Compraste 1 SG!", "Compraste una Awp con 1 Bala!" }
public plugin_init() { register_plugin("Menu Hns", "1.0", "Swaycher(KiLlEsT)") register_clcmd("say /shop", "Menues") }
public Menues(id) { new menu = menu_create("\y¿Que menu quieres abrir?", "Handler") menu_additem(menu, "Armas", "1") menu_additem(menu, "Granadas", "2") menu_additem(menu, "Vida", "3") menu_setprop(menu, MPROP_EXITNAME, "Salir", MEXIT_ALL) menu_setprop(menu, MPROP_NUMBER_COLOR, "\y") menu_display(id, menu, 0) }
public Handler(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) type = 0 } switch (item) { case 0: type = 1 case 1: type = 2 case 2: type = 3 } Menues_secundarios(id) }
public Menues_secundarios(id) { new formato[50]; switch (type) { case 1: formatex(formato, charsmax(formato), "Armas") case 2: formatex(formato, charsmax(formato), "Granadas") case 3: formatex(formato, charsmax(formato), "Vida") } new menu = menu_create(formato, "Handler_secundario") if (type == 1) { menu_additem(menu, "Deagle - 10000 \r(1 Bala)", "1") menu_additem(menu, "Scout - 12500 \r(1 Bala)", "2") menu_additem(menu, "Awp - 15000 \r(1 Bala)", "3") } else if (type == 2) { menu_additem(menu, "Flash \r- 4000", "1") menu_additem(menu, "He \r- 5000", "2") menu_additem(menu, "Frost \r- 6000", "3") } else if (type == 3) { menu_additem(menu, "Vida +100 \r- 5000", "1") menu_additem(menu, "Vida +125 \r- 6500", "2") menu_additem(menu, "Vida +150 \r- 8000", "3") } menu_setprop(menu, MPROP_EXITNAME, "Salir", MEXIT_ALL) menu_setprop(menu, MPROP_NUMBER_COLOR, "\y") menu_display(id, menu, 0) }
public Handler_secundario(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) type = 0 } new money = cs_get_user_money(id) switch (item) { case 0: { if (type == 1) { if (money >= 100 && is_user_alive(id)) { cs_set_user_money(id, money - 100) give_item(id, "weapon_deagle") cs_set_weapon_ammo(find_ent_by_owner(id, "weapon_deagle", id), 1) client_print(id, print_center, Shop_Messages[3]) } else client_print(id, print_center, Shop_Messages[0]) } else if (type == 2) { if (money >= 4000 && is_user_alive(id)) { cs_set_user_money(id, money - 4000) give_item(id, "weapon_flashbang") client_print(id, print_center, Shop_Messages[2]) } else client_print(id, print_center, Shop_Messages[0]) } else if (type == 3) { if (money >= 5000 && is_user_alive(id)) { cs_set_user_money(id, money - 5000) set_user_health(id, 100) client_print(id, print_center, Shop_Messages[1]) } else client_print(id, print_center, Shop_Messages[0]) } } case 1: { if (type == 1) { if (money >= 12500 && is_user_alive(id)) { cs_set_user_money(id, money - 12500) give_item(id, "weapon_scout") cs_set_weapon_ammo(find_ent_by_owner(id, "weapon_scout", id), 1) client_print(id, print_center, Shop_Messages[6]) } else client_print(id, print_center, Shop_Messages[0]) } else if (type == 2) { if (money >= 5000 && is_user_alive(id)) { cs_set_user_money(id, money - 5000) give_item(id, "weapon_hegrenade") client_print(id, print_center, Shop_Messages[5]) } else client_print(id, print_center, Shop_Messages[0]) } else if (type == 3) { if (money >= 6500 && is_user_alive(id)) { cs_set_user_money(id, money - 6500) set_user_health(id, 125) client_print(id, print_center, Shop_Messages[4]) } else client_print(id, print_center, Shop_Messages[0]) } } case 2: { if (type == 1) { if (money >= 15000 && is_user_alive(id)) { cs_set_user_money(id, money - 15000) cs_set_weapon_ammo(find_ent_by_owner(id, "weapon_awp", id), 1) give_item(id, "weapon_awp") client_print(id, print_center, Shop_Messages[9]) } else client_print(id, print_center, Shop_Messages[0]) } else if (type == 2) { if (money >= 6000 && is_user_alive(id)) { cs_set_user_money(id, money - 6000) give_item(id, "weapon_smokegrenade") client_print(id, print_center, Shop_Messages[8]) } else client_print(id, print_center, Shop_Messages[0]) } else if (type == 3) { if (money >= 8000 && is_user_alive(id)) { cs_set_user_money(id, money - 8000) set_user_health(id, 150) client_print(id, print_center, Shop_Messages[7]) } else client_print(id, print_center, Shop_Messages[0]) } } } type = 0 }
Aver, te doy algo para que hagas:
Supongamos que un jugador compra una dk o una awp, luego la va a volver a poder comprar y las balas se bugearian, quedaria (en caso de la dk) 1 / 7. Lo que quiero que intentes hacer es crear una restricción de los items; me explico - creas una variable con la cantidad de dimensiones de los items totales, le aumentas la dimension del item a 1(en cada item diferente dimension), y antes de darle el arma, mandar el mensaje, etc, pones que si la variable que creaste[dimension que utilizas] es igual a 1 returne.
PD: Igual te digo que el menu que te dejo rak es mucho mejor que este, pero dudo que lo entiendas, por eso te hice este que por ahi lo entendes mejor.
EDIT: Ya que tenes problemas para abrir el menu con la N, en este code te puse para que lo abras escribiendo en say "/shop". No lo testie pero creo que está bien.
__________________
Last edited by Swaycher; 10-04-2012 at 20:12.
|
|