Raised This Month: $ Target: $400
 0% 

[ES]Ayuda con menu de compra


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Swaycher
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
Old 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(menuMPROP_EXITNAME"Salir"MEXIT_ALL)
    
menu_setprop(menuMPROP_NUMBER_COLOR"\y")
    
    
menu_display(idmenu0)
}

public 
Handler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
type 0
    
}
    
    switch (
item)
    {
        case 
0type 1
        
case 1type 2
        
case 2type 3
    
}
    
    
Menues_secundarios(id)
}

public 
Menues_secundarios(id)
{
    new 
formato[50];
    
    switch (
type)
    {
        case 
1formatex(formatocharsmax(formato), "Armas")
        case 
2formatex(formatocharsmax(formato), "Granadas")
        case 
3formatex(formatocharsmax(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(menuMPROP_EXITNAME"Salir"MEXIT_ALL)
    
menu_setprop(menuMPROP_NUMBER_COLOR"\y")
    
    
menu_display(idmenu0)
}

public 
Handler_secundario(idmenuitem)
{
    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(idmoney 100)
                    
give_item(id"weapon_deagle")
                    
cs_set_weapon_ammo(find_ent_by_owner(id"weapon_deagle"id), 1)
                    
client_print(idprint_centerShop_Messages[3])
                }
                else 
                    
client_print(idprint_centerShop_Messages[0])
            }
            else if (
type == 2)
            {
                if (
money >= 4000 && is_user_alive(id))
                {
                    
cs_set_user_money(idmoney 4000)
                    
give_item(id"weapon_flashbang")
                    
client_print(idprint_centerShop_Messages[2])
                } 
                else
                    
client_print(idprint_centerShop_Messages[0])
            }
            else if (
type == 3)
            {
                if (
money >= 5000 && is_user_alive(id))
                { 
                    
cs_set_user_money(idmoney 5000)
                    
set_user_health(id100)
                    
client_print(idprint_centerShop_Messages[1])
                }
                else
                    
client_print(idprint_centerShop_Messages[0])
            }
        }
        case 
1:
        {
            if (
type == 1)
            {
                if (
money >= 12500 && is_user_alive(id))
                {
                    
cs_set_user_money(idmoney 12500)
                    
give_item(id"weapon_scout")
                    
cs_set_weapon_ammo(find_ent_by_owner(id"weapon_scout"id), 1)
                    
client_print(idprint_centerShop_Messages[6])
                }
                else 
                    
client_print(idprint_centerShop_Messages[0])
            }
            else if (
type == 2)
            {
                if (
money >= 5000 && is_user_alive(id))
                {
                    
cs_set_user_money(idmoney 5000)
                    
give_item(id"weapon_hegrenade")
                    
client_print(idprint_centerShop_Messages[5])
                } 
                else
                    
client_print(idprint_centerShop_Messages[0])
            }
            else if (
type == 3)
            {
                if (
money >= 6500 && is_user_alive(id))
                { 
                    
cs_set_user_money(idmoney 6500)
                    
set_user_health(id125)
                    
client_print(idprint_centerShop_Messages[4])
                }
                else
                    
client_print(idprint_centerShop_Messages[0])
            }
        }
        case 
2:
        {
            if (
type == 1)
            {
                if (
money >= 15000 && is_user_alive(id))
                {
                    
cs_set_user_money(idmoney 15000)
                    
cs_set_weapon_ammo(find_ent_by_owner(id"weapon_awp"id), 1)
                    
give_item(id"weapon_awp")
                    
client_print(idprint_centerShop_Messages[9])
                }
                else
                    
client_print(idprint_centerShop_Messages[0])
            }
            else if (
type == 2)
            {
                if (
money >= 6000 && is_user_alive(id))
                { 
                    
cs_set_user_money(idmoney 6000)
                    
give_item(id"weapon_smokegrenade")
                    
client_print(idprint_centerShop_Messages[8])
                }
                else
                    
client_print(idprint_centerShop_Messages[0])
            }
            else if (
type == 3)
            {
                if (
money >= 8000 && is_user_alive(id))
                {
                    
cs_set_user_money(idmoney 8000)
                    
set_user_health(id150)
                    
client_print(idprint_centerShop_Messages[7])
                }
                else
                    
client_print(idprint_centerShop_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.
__________________
Quote:
Originally Posted by fearAR View Post
Claro esta que no tengo idea de como verificar los diferentes cortes de ángulo.
http://forums.alliedmods.net/showthread.php?t=196349

Last edited by Swaycher; 10-04-2012 at 20:12.
Swaycher is offline
Send a message via MSN to Swaycher Send a message via Skype™ to Swaycher
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:10.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode