[ZP] Happy Hour (SOLUCIONADO)
#1
Hola segui esta guia https://forums.alliedmods.net/showthread...7?t=113547
para agregarle happy hour al zp, y me tira este warning en esta linea

Código PHP:
while (g_damagedealt[attacker] >= (ammodamage  / (g_happytime 1))  && g_level[attacker] < MAX_NIVEL

esa es la linea y el code completo seria este

// Reward ammo packs for every [ammo damage] dealt

Código PHP:
[php]while (g_damagedealt[attacker] >= (ammodamage  / (g_happytime 1))  && g_level[attacker] < MAX_NIVEL)
{
g_ammopacks[attacker]++
g_damagedealt[attacker] -= ammodamage
check_level
(attacker)




me tira este warning:

Warning: Tag mismatch on line 2170
Responder
#2
Te comiste un parentesis e.e
Código PHP:
while (g_damagedealt[attacker] >= (ammodamage  / (g_happytime 1))  && g_level[attacker] < MAX_NIVEL)) 
[Imagen: 76561198204267641.png]
Responder
#3
(24/09/2020, 11:10 PM)☆ LaZy escribió: Te comiste un parentesis e.e
Código PHP:
while (g_damagedealt[attacker] >= (ammodamage  / (g_happytime 1))  && g_level[attacker] < MAX_NIVEL)) 

no.

while (g_damagedealt[attacker] >= (ammodamage / (g_happytime + 1)) && g_level[attacker] < MAX_NIVEL)
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#4
(24/09/2020, 11:41 PM)Hypnotize escribió: no.

while (g_damagedealt[attacker] >= (ammodamage  / (g_happytime + 1) && g_level[attacker] < MAX_NIVEL)

Fijate bien e.e
[Imagen: 76561198204267641.png]
Responder
#5
a me troleo el cel xddd y yo vi tu while no el de el jaja

pues yo veo bien los paréntesis en lo que el puso, si es un warning seguro es porque g_happytime es un bool y lo suma con un entero

es decir

new bool: g_happytime

->

new g_happytime


for(new i=0;i <= sizeof horas - 1;i++)
{
if(Tiempo != horas[i]) continue
g_happytime = true
break;
}

-->
g_happytime = 0;
for(new i=0;i <= sizeof horas - 1;i++)
{
if(Tiempo != horas[i]) continue
g_happytime = 1;
break;
}
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#6
(25/09/2020, 12:21 AM)Hypnotize escribió: a me troleo el cel xddd y yo vi tu while no el de el jaja

pues yo veo bien los paréntesis en lo que el puso, si es un warning seguro es porque g_happytime es un bool y lo suma con un entero

es decir

new bool: g_happytime

->

new g_happytime


for(new i=0;i <= sizeof horas - 1;i++)
    {
        if(Tiempo != horas[i]) continue
        g_happytime = true
        break;
    }

-->
g_happytime = 0;
for(new i=0;i <= sizeof horas - 1;i++)
    {
        if(Tiempo != horas[i]) continue
        g_happytime = 1;
        break;
    }

tenes razon
[Imagen: 76561198204267641.png]
Responder
#7
hice lo que señalo hypnotize y ahora funciona correctamente, sin ningun warning ni nada por el estilo, la ganancia lo puse al finalzar el combo, hasta ahi todo bien..
cuando es hora vicio, el combo finaliza y si fue de 100 aps, da correspondiente 200 aps, ahora el problema es que.. cuando No es hora vicio, no da nada directamente, dejo el code del final de combo y de la happy hour

Código PHP:
public fin_combo(id)
{
    
id -= TASK_FIN_COMBO
    
if (g_level[id] < MAX_NIVEL)
    {
        
g_ammopacks[id] += ((g_combo[id] * 1) * (g_happytime 1)) // esto suma los aps al usuario
        
check_level(id)
    }
    
    
set_hudmessage(2550255, -1.00.1506.01.9)
    
ShowSyncHudMsg(idg_MsgSync4"Combo Finalizada^nGanas +%s APs"AddPoints((g_combo[id] * 1) * (g_happytime 1))) // aca muestra la ganancia en el combo
    
g_combo[id] = 0
    g_combo_hits
[id] = 0
    g_combo_dmg_total
[id] = 0
    
}


// Happy Hour
public happyhour(id)
{
    new 
data[12]
    
get_time("%H"data12)
    new 
Tiempo str_to_num(data)
 
    
g_happytime 0;
    for(new 
i=0;<= sizeof horas 1;i++)
    {
    if(
Tiempo != horas[i]) continue
    
g_happytime ;
    break;
    }
    if(
g_happytime)
    {
        
zp_colored_print(0"^x04[ZP]^x01 -^x03 La Hora vicio ya empezo Ganancias: x2")
    }

Responder
#8
es porque g_hapy es 0 y todo número multiplicado por 0 es 0

proba así

g_ammopacks[iId] += (g_combo[iId] * (g_happytime ? 2 : 1));
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#9
(26/09/2020, 01:20 PM)Hypnotize escribió: es porque g_hapy es 0 y todo número multiplicado por 0 es 0

proba así

g_ammopacks[iId] += (g_combo[iId] * (g_happytime ? 2 : 1));

Listo! funciona correctamente todo, en horario x2 y sin horario, antes de dar por solucionado el post, me encantaria saber , exactamente que funcion cumple eso que me sugeriste reemplazar
Responder
#10
multiplique combo POR g_happytime ? 2 : 1


en g_happytime ? 2 : 1 user un ternario, le pregunte si es hora feliz, y si es lo multiplique por 2 y si no es por 1

en HH
4 de combo * 2 = 8

sin HH
4 de combo * 1 = 4
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)