Ayuda con extra item - buy 2000 hp
#1
Hola a todos tengo este codigo de un extra item para zombie plague pero necesito poder limitar las compras a 1 o 2 veces por ronda.

Código PHP:
#include <amxmodx>
#include <fun>
#include <zombieplague>

new const item_name[] = "Buy 2000 HP!"
new g_itemid_buyhp
new hpamount

public plugin_init() 
{
    
register_plugin("[ZP] Buy Health Points""1.0""T[h]E Dis[as]teR")
    
hpamount register_cvar("zp_buyhp_amount""2000")
    
g_itemid_buyhp zp_register_extra_item(item_name5ZP_TEAM_ZOMBIE)
}
public 
zp_extra_item_selected(id,itemid)
{
    if(!
is_user_alive(id))
    
    return 
PLUGIN_HANDLED;
    
    if(
itemid==g_itemid_buyhp)
    {
        if(
zp_get_user_ammo_packs(id) < 20)
        {
            
client_print(idprint_chat,"[ZP] Not enough Ammopacks!");
            return 
PLUGIN_HANDLED;
        }
        else
        {
            
set_user_health(id,get_user_health(id)+get_pcvar_num(hpamount));
            
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - 5);
            
client_print(idprint_chat,"[ZP] You Bought HP!");
        }
    }
    return 
PLUGIN_CONTINUE;

[Imagen: ban1.jpg]
Responder
#2
Código PHP:
#include <amxmodx>
#include <fun>
#include <zombieplague>

new const item_name[] = "Buy 2000 HP!"
new g_itemid_buyhp
new hpamount
new g_bComprado33 ];

public 
plugin_init() 
{
    
register_plugin("[ZP] Buy Health Points""1.0""T[h]E Dis[as]teR")
    
hpamount register_cvar("zp_buyhp_amount""2000")
    
g_itemid_buyhp zp_register_extra_item(item_name5ZP_TEAM_ZOMBIE)
    
register_event("HLTV""event_round_start""a""1=0""2=0")
}
public 
event_round_start()
{
    
arraysetg_bComprado33);
}
public 
zp_extra_item_selected(id,itemid)
{
    if(!
is_user_alive(id))
    
    return 
PLUGIN_HANDLED;
    
    if(
itemid==g_itemid_buyhp)
    {
        if(
zp_get_user_ammo_packs(id) < 20)
        {
            
client_print(idprint_chat,"[ZP] Not enough Ammopacks!");
            return 
PLUGIN_HANDLED;
        }
        else
        {
            if( !
g_bCompradoid ] )
            {
                
g_bCompradoid ] = 1;
                
set_user_health(id,get_user_health(id)+get_pcvar_num(hpamount));
                
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - 5);
                
client_print(idprint_chat,"[ZP] You Bought HP!");
            }
            else
            {
                
client_print(idprint_chat,"[ZP] ya compraste este item!");
            }
        }
    }
    return 
PLUGIN_CONTINUE;

[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#3
Código PHP:
#include <amxmodx>
#include <fun>
#include <zombieplague>

new const item_name[] = "Buy 2000 HP!"
new g_itemid_buyhp
new hpamount
new g_bComprado33 ];
new 
cvar_limit

public plugin_init() 
{
    
register_plugin("[ZP] Buy Health Points""1.0""T[h]E Dis[as]teR")
    
    
hpamount register_cvar("zp_buyhp_amount""2000")
    
cvar_limit register_cvar("zp_buyhp_limit" "2")
    
    
g_itemid_buyhp zp_register_extra_item(item_name5ZP_TEAM_ZOMBIE)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
}
public 
event_round_start()
{
    
arraysetg_bComprado33);
}
public 
zp_extra_item_selected(id,itemid)
{
    if(!
is_user_alive(id))
        
    return 
PLUGIN_HANDLED;
    
    if(
itemid==g_itemid_buyhp)
    {
        if(
zp_get_user_ammo_packs(id) < 20)
        {
            
client_print(idprint_chat,"[ZP] Not enough Ammopacks!");
            return 
PLUGIN_HANDLED;
        }
        else
        {
            if( 
g_bCompradoid ] < get_pcvar_num(cvar_limit))
            {
                
g_bCompradoid ] ++;
                
set_user_health(id,get_user_health(id)+get_pcvar_num(hpamount));
                
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - 5);
                
client_print(idprint_chat,"[ZP] You Bought HP!");
            }
            else
            {
                
client_print(idprint_chat,"[ZP] ya compraste este item!");
            }
        }
    }
    return 
PLUGIN_CONTINUE;

aqui lo tienes es el mismo que el de arriba nada mas que le puse una cvar de limite
"zp_buyhp_limit"

pd : hay diferencia entre usar
Código PHP:
arraysetg_bComprado33); 
y un for ?
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Responder
#4
(25/03/2019, 12:53 AM)HK-416 escribió:
Código PHP:
#include <amxmodx>
#include <fun>
#include <zombieplague>

new const item_name[] = "Buy 2000 HP!"
new g_itemid_buyhp
new hpamount
new g_bComprado33 ];
new 
cvar_limit

public plugin_init() 
{
    
register_plugin("[ZP] Buy Health Points""1.0""T[h]E Dis[as]teR")
    
    
hpamount register_cvar("zp_buyhp_amount""2000")
    
cvar_limit register_cvar("zp_buyhp_limit" "2")
    
    
g_itemid_buyhp zp_register_extra_item(item_name5ZP_TEAM_ZOMBIE)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
}
public 
event_round_start()
{
    
arraysetg_bComprado33);
}
public 
zp_extra_item_selected(id,itemid)
{
    if(!
is_user_alive(id))
        
    return 
PLUGIN_HANDLED;
    
    if(
itemid==g_itemid_buyhp)
    {
        if(
zp_get_user_ammo_packs(id) < 20)
        {
            
client_print(idprint_chat,"[ZP] Not enough Ammopacks!");
            return 
PLUGIN_HANDLED;
        }
        else
        {
            if( 
g_bCompradoid ] < get_pcvar_num(cvar_limit))
            {
                
g_bCompradoid ] ++;
                
set_user_health(id,get_user_health(id)+get_pcvar_num(hpamount));
                
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - 5);
                
client_print(idprint_chat,"[ZP] You Bought HP!");
            }
            else
            {
                
client_print(idprint_chat,"[ZP] ya compraste este item!");
            }
        }
    }
    return 
PLUGIN_CONTINUE;

aqui lo tienes es el mismo que el de arriba nada mas que le puse una cvar de limite
"zp_buyhp_limit"

pd : hay diferencia entre usar
Código PHP:
arraysetg_bComprado33); 
y un for ?

Cuando quiero compilar me figura el siguiente error en la linea 16 (del cvar)

Error: Expected token: ",", but found "-string-" on line 16
Warning: Expression has no effect on line 16
Error: Expected token: ";", but found ")" on line 16
Error: Invalid expression, assumed zero on line 16
Error: Too many error messages on one line on line 16
[Imagen: ban1.jpg]
Responder
#5
(11/04/2019, 01:17 AM)jeivylook escribió: Cuando quiero compilar me figura el siguiente error en la linea 16 (del cvar)

Error: Expected token: ",", but found "-string-" on line 16
Warning: Expression has no effect on line 16
Error: Expected token: ";", but found ")" on line 16
Error: Invalid expression, assumed zero on line 16
Error: Too many error messages on one line on line 16

Cita:cvar_limit = register_cvar("zp_buyhp_limit" "2")

--->

Cita:cvar_limit = register_cvar("zp_buyhp_limit", "2")
Responder
#6
(25/03/2019, 12:53 AM)HK-416 escribió:
Código PHP:
#include <amxmodx>
#include <fun>
#include <zombieplague>

new const item_name[] = "Buy 2000 HP!"
new g_itemid_buyhp
new hpamount
new g_bComprado33 ];
new 
cvar_limit

public plugin_init() 
{
    
register_plugin("[ZP] Buy Health Points""1.0""T[h]E Dis[as]teR")
    
    
hpamount register_cvar("zp_buyhp_amount""2000")
    
cvar_limit register_cvar("zp_buyhp_limit" "2")
    
    
g_itemid_buyhp zp_register_extra_item(item_name5ZP_TEAM_ZOMBIE)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
}
public 
event_round_start()
{
    
arraysetg_bComprado33);
}
public 
zp_extra_item_selected(id,itemid)
{
    if(!
is_user_alive(id))
        
    return 
PLUGIN_HANDLED;
    
    if(
itemid==g_itemid_buyhp)
    {
        if(
zp_get_user_ammo_packs(id) < 20)
        {
            
client_print(idprint_chat,"[ZP] Not enough Ammopacks!");
            return 
PLUGIN_HANDLED;
        }
        else
        {
            if( 
g_bCompradoid ] < get_pcvar_num(cvar_limit))
            {
                
g_bCompradoid ] ++;
                
set_user_health(id,get_user_health(id)+get_pcvar_num(hpamount));
                
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - 5);
                
client_print(idprint_chat,"[ZP] You Bought HP!");
            }
            else
            {
                
client_print(idprint_chat,"[ZP] ya compraste este item!");
            }
        }
    }
    return 
PLUGIN_CONTINUE;

aqui lo tienes es el mismo que el de arriba nada mas que le puse una cvar de limite
"zp_buyhp_limit"

pd : hay diferencia entre usar
Código PHP:
arraysetg_bComprado33); 
y un for ?


El codigo tiene errores, solo permite comprar 2 veces por mapa y necesito que sea dos veces por ronda.
Tambien luego de la 2da compra, puedo seguir comprando, me descuenta los ammo packs pero no me suma hp
[Imagen: ban1.jpg]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)