como dice el titulo implemente el sistema de party 2.2 y estoy teniendo problemas al disparar ya puse un plugin para verificar cuanto le saco al zombie y por ejemplo el plugin me dice que le quito 1000 y el hud del combo me dice 400 entonces eso quiere decir que no me esta tomando las siguientes variables: g_arma_prim[attacker], y g_mejoras[attacker]
Hola, pasa el código completo. El party 2.2 el hud del combo lo llama por un task, quizas es eso que al aparecer en 0.2 no te muestra el daño que le sacas en el momento según el arma..
if(g_combop[i] > 0) { if(g_PartyData[i][In_Party]) { if(g_happytime) { set_hudmessage(0, 255, 255, -1.0, 0.6, 1, 0.1, 5.0, 0.01, 0.01, -1) ShowSyncHudMsg(i, g_hudmsg1, "==== HORA VICIO COMBO PARTY ====^n[Hits: %d | Daño: %d / %d]^n[Total de Combos Party: %d]^n[==== %d de AP ====]", g_Hitsp[i], g_damagep[i], g_damagep[i], (power(g_combop[i], 1)*4000), g_combop[i], g_combop[i] * 1) } else { set_hudmessage(0, 200, 200, -1.0, 0.6, 1, 0.1, 5.0, 0.01, 0.01, -1) ShowSyncHudMsg(i, g_hudmsg1, "==== COMBO DE LA PARTY ====^n[Hits: %d | Daño: %d / %d]^n[Total de Combos: %d]^n[==== %d de AP ====]", g_Hitsp[i], g_damagep[i], g_damagep[i], (power(g_combop[i], 1)*2000), g_combop[i], g_combop[i] * 0.5) } } } }
entonces puedo guardar el daño del party y sin party en 1 sola variable o tengo que poner g_damage[33] en g_damage[33][2]? o como tambien pense en quitar g_damage[33] por g_damagedealt[33] que es la que trae el zp por default.
23/09/2018, 05:31 PM (Última modificación: 23/09/2018, 05:33 PM por -[GILBERT]-.)
(23/09/2018, 12:47 PM)warrior escribió: Usate la variable de la imagen que pasaste para el combo
ya descarte el combo es efectivamente que no se suman todos los daños use el siguiente combo y el problema es el mismo https://forums.alliedmods.net/showthread.php?t=169040
es decir solo toma el daño normal, mas no el de mejoras, ni el daño modificado del arma, hay forma de sumar todas esas variables y meter el resultado en otra variable?
aca te dejo otra solución para mostrar el daño en tu combo:
Código PHP:
new g_damagep_[33] // principio del plugin
Código PHP:
g_damagep_[user] = floatround(damage)
luego en el hud agrega la variable g_damagep_[attacker]
Reemplaza esto
Código PHP:
if(!g_PartyData[attacker][In_Party]) // Combos Sin Party { // Combos Agregados g_damage[attacker] += floatround(damage) g_Hits[attacker]++ while(g_damage[attacker]>=(power(g_combo[attacker], 1)*1000)) { g_combo[attacker]++ } remove_task(attacker+TASK_COMBO) set_task(0.1, "task_combo", attacker+TASK_COMBO) set_task(5.0, "reset_combo", attacker+TASK_COMBO) } else // Combos Del Party { new Players[32], user get_party_index(attacker, Players) for(new i; i < g_PartyData[attacker][Amount_In_Party]; i++) { user = Players[i] g_damagep[user] += floatround(damage) / g_PartyData[user][Amount_In_Party] g_Hitsp[user]++ while(g_damagep[user]>=(power(g_combop[user], 1)*2000)) { g_combop[user]++ } remove_task(user+TASK_COMBOP) set_task(0.1, "task_party_combo", user+TASK_COMBOP) set_task(4.0, "reset_party_combo", user+TASK_COMBOP) } }
>>>>>>>>>>>>>>>>>>>>>>
Código PHP:
if(!g_PartyData[attacker][In_Party]) // Combos Sin Party { // Combos Agregados g_damage[attacker] += floatround(damage) g_Hits[attacker]++ while(g_damage[attacker]>=(power(g_combo[attacker], 1)*1000)) { g_combo[attacker]++ } remove_task(attacker+TASK_COMBO) set_task(0.1, "task_combo", attacker+TASK_COMBO) set_task(5.0, "reset_combo", attacker+TASK_COMBO) } else // Combos Del Party { new Players[32], user get_party_index(attacker, Players) for(new i; i < g_PartyData[attacker][Amount_In_Party]; i++) { user = Players[i] g_damagep[user] += floatround(damage) / g_PartyData[user][Amount_In_Party] g_damagep_[user] = floatround(damage) g_Hitsp[user]++ while(g_damagep[user]>=(power(g_combop[user], 1)*2000)) { g_combop[user]++ } remove_task(user+TASK_COMBOP) set_task(0.1, "task_party_combo", user+TASK_COMBOP) set_task(4.0, "reset_party_combo", user+TASK_COMBOP) } }
Te agregue la variable g_damagep_ estando en party, te faltaria agregar esta variable en el hud del party. Deberias hacer lo mismo al estar sin party, pruebaa
por ahora no me ha servido nada, el combo de lukks si me sirvio pero usandolo externo ojo me refiero a que si concuerda el daño del hit con el print del plugin que yo tengo que refleja el daño por hit, warrior recuerda que el problema que tengo por ahora no es el party sino el combo que no me refleja el daño total de 1 bala.
g_danioo[attacker] = floatround(damage) // guardamos el damage en esta variable client_print(attacker, print_chat, "%i", g_danioo[attacker]) // mostramos el daño guardado en la variable de arriba e imprimimos en el say
24/09/2018, 05:05 PM (Última modificación: 24/09/2018, 05:12 PM por -[GILBERT]-.)
warrior gracias por la paciencia y la ayuda logre resolver el problema poniendo lo siguiente:
Código PHP:
g_damage[attacker] += floatround(damage) * 4
y ahora si me refleja el daño total supongo que fue por esto que me di cuenta ya hace uno minutos :
Código PHP:
// Armor multiplier for the final damage on normal zombies if (!g_nemesis[victim] && !g_assassin[victim] && !g_sniper[attacker]) { damage *= get_pcvar_float(cvar_zombiearmor) SetHamParamFloat(4, damage * 4 / (DEFENSA_ZOMBIE(g_mejoras[victim][1][M_DEFENSA]) + 1)) }
ahora si vamos a optimizar, tu me dices que la variable g_damagep[id] esta demas? puedo usar entonces la misma variable g_damage[id] en la parte del party?
Código PHP:
if(!g_PartyData[attacker][In_Party]) // Combos Sin Party { // Combos Agregados g_damage[attacker] += floatround(damage) * 4 g_damage_hits[attacker] = floatround(damage) * 4 g_Hits[attacker]++ while(g_damage[attacker]>=(power(g_combo[attacker], 1)*(get_pcvar_num(cvar_damage_combo)))) { g_combo[attacker]++ } remove_task(attacker+TASK_COMBO) set_task(0.1, "task_combo", attacker+TASK_COMBO) set_task(5.0, "reset_combo", attacker+TASK_COMBO) } else // Combos Del Party { new Players[32], user get_party_index(attacker, Players) for(new i; i < g_PartyData[attacker][Amount_In_Party]; i++) { user = Players[i] g_damage[user] += floatround(damage) * 4 / g_PartyData[user][Amount_In_Party] g_Hits[user]++ while(g_damage[user]>=(power(g_combo[user], 1)*(get_pcvar_num(cvar_damage_combo_party)))) { g_combo[user]++ } remove_task(user+TASK_COMBOP) set_task(0.1, "task_party_combo", user+TASK_COMBOP) set_task(5.0, "reset_party_combo", user+TASK_COMBOP) } }
asi? al igual cambiar las del task_party_combo
y como optimizaria mas este codigo:
Código PHP:
public task_combo(attacker) { attacker -= TASK_COMBO
Aca divides el valor lo que le sumas en g_damagep[user] , por lo tanto te mostaria otra cantidad en el hud... y la division del ap es al final del party aclaro.
Para reducir el código, yo lo haria de esta forma:
Código PHP:
public task_combo(attacker) { attacker -= TASK_COMBO
24/09/2018, 11:52 PM (Última modificación: 25/09/2018, 01:29 AM por -[GILBERT]-.)
por ahora todo lo estoy entendiendo bien pero aclaro que esa division lo trajo el party 2.2 + combo y es obvio que el hud dara falsos dijitos ya que mas bien deberia sumar el daño de todos los integrantes del party, ahora ahorrando lineas tambien me di cuenta que se ahora bytes, me ahorre 3.000 bytes con ese metodo xD ahora presento un problema al aplicarlo al reset_combo
Código PHP:
public reset_combo(id) { id -= TASK_COMBO
if (g_combo[id]>0) { zp_colored_print(id, "%s ^x04[%s]^x03 [Ganancia:^x04 %d^x03] X ^x04[ %s ] ^x03[Total:^x04 %s^x03] %s", TAG, g_happytime ? "HORA VICIO" : "COMBOS", g_combo[id], is_user_admin(id) ? g_ganancia[id] : 1, is_user_admin(id) ? (g_combo[id] * g_ganancia[id]) : (g_combo[id] * 1), g_happytime ? "por estar en Hora Vicio" : "")