Mensajes: 104
Temas: 37
Registro en: Jul 2021
Reputación:
2
20/08/2022, 02:57 AM
(Última modificación: 20/08/2022, 02:57 AM por Asta.)
Buenas tengo esta funcion
Código PHP: public refwd_PlayerTakeDamage_Pre(iVictim, iInflictor, iAttacker, Float:flDamage, iBitsDamageType) { if(iVictim == iAttacker || !is_user_connected(iAttacker)) { return HC_CONTINUE; }
if(buyed[id]) { SetHookChainArg(4, ATYPE_FLOAT, flDamage * 2.0); client_print(id, print_center, "Doble Damage: %0.1f segundo%s", fPtime[id] - halflife_time(), (fPtime[id] - halflife_time() > 1.9 ? "s" : "")) if(halflife_time() >= fPtime[id] - 0.1) { client_print_color(id, id, "^4[Test]^1 Se te han acabado los^3 25 segundos^1 de ^3Doble Damage^1.") buyed[id] = false } } return HC_CONTINUE; }
lo que no se es como tomar el id para que me active la funcion dentro del if buyed, intente colocando la id en el public refwd_PlayerTakeDamage_Pre(id, iVictim, iInflictor, iAttacker, Float:flDamage, iBitsDamageType) y tampoco me funciono
Mensajes: 3,238
Temas: 47
Registro en: Feb 2015
Reputación:
34
Se supone que si el atacante tiene activada la variable se le multiplica el daño (?
id -> iAttacker
Mensajes: 104
Temas: 37
Registro en: Jul 2021
Reputación:
2
(20/08/2022, 03:10 AM)Skylar escribió: Se supone que si el atacante tiene activada la variable se le multiplica el daño (?
id -> iAttacker
lo que quiero es que la persona que compre el doble daño se le active solo a el, si coloco el iAttacker funciona pero el conteo solo se vera cuando el jugador dispara y la idea es que le salga todo el tiempo que dura el doble damage
Mensajes: 448
Temas: 38
Registro en: May 2020
Reputación:
19
Mensajes: 395
Temas: 48
Registro en: Oct 2018
Reputación:
6
20/08/2022, 12:30 PM
(Última modificación: 20/08/2022, 12:35 PM por [E]manuelitop15. Edited 1 time in total.)
(20/08/2022, 03:14 AM)Asta escribió: lo que quiero es que la persona que compre el doble daño se le active solo a el, si coloco el iAttacker funciona pero el conteo solo se vera cuando el jugador dispara y la idea es que le salga todo el tiempo que dura el doble damage
Cuando compra o le seteas el doble damage, setea tambien un task por tiempo hasta q termine el doble daño.
ejemplo:
Código PHP: const taskid_dmg = 55599; const max_tiempo = 25
set_tiempo_doble_dmg(id) { g_tiempo_dmg[id] = 0; remove_task(id + taskid_dmg); set_task(1.0, "task_dmg", id + taskid_dmg, _,_, "b"); }
public task_dmg(taskid) { new id; id = (taskid - taskid_dmg);
if (!is_user_alive(id) || !g_buyed[id]) { remove_task(taskid); return; }
if (g_tiempo_dmg[id] >= max_tiempo) { client_print_color(id, 0, "^4[Test]^1 Se te han acabado los^3 25 segundos^1 de ^3Doble Damage^1.") buyed[id] = false; remove_task(taskid); return; }
client_print(id, print_center, "Doble Damage: %d segundos", max_tiempo - g_tiempo_dmg[id]); g_tiempo_dmg[id]++; }
usarias la funcion
donde comprara el doble dmg o lo setearas al jugador.
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Mensajes: 104
Temas: 37
Registro en: Jul 2021
Reputación:
2
(20/08/2022, 12:30 PM)[E]manuelitop15 escribió: Cuando compra o le seteas el doble damage, setea tambien un task por tiempo hasta q termine el doble daño.
ejemplo:
Código PHP: const taskid_dmg = 55599; const max_tiempo = 25
set_tiempo_doble_dmg(id) { g_tiempo_dmg[id] = 0; remove_task(id + taskid_dmg); set_task(1.0, "task_dmg", id + taskid_dmg, _,_, "b"); }
public task_dmg(taskid) { new id; id = (taskid - taskid_dmg);
if (!is_user_alive(id) || !g_buyed[id]) { remove_task(taskid); return; }
if (g_tiempo_dmg[id] >= max_tiempo) { client_print_color(id, 0, "^4[Test]^1 Se te han acabado los^3 25 segundos^1 de ^3Doble Damage^1.") buyed[id] = false; remove_task(taskid); return; }
client_print(id, print_center, "Doble Damage: %d segundos", max_tiempo - g_tiempo_dmg[id]); g_tiempo_dmg[id]++; }
usarias la funcion
donde comprara el doble dmg o lo setearas al jugador.
y como quedaria en
Código PHP: public refwd_PlayerTakeDamage_Pre(iVictim, iInflictor, iAttacker, Float:flDamage, iBitsDamageType)
para cuando compre le de el doble daño al jugador
Mensajes: 300
Temas: 14
Registro en: Dec 2017
Reputación:
6
(20/08/2022, 08:49 PM)Asta escribió: y como quedaria en
Código PHP: public refwd_PlayerTakeDamage_Pre(iVictim, iInflictor, iAttacker, Float:flDamage, iBitsDamageType)
para cuando compre le de el doble daño al jugador
Pues detectas si buyed[id] está en true y aplicas el damage x2. Ya cuando el task termine este debería de quitarse
"Cada golpe es una lección, y cada lección te hace mejor."
Mensajes: 395
Temas: 48
Registro en: Oct 2018
Reputación:
6
20/08/2022, 09:32 PM
(Última modificación: 20/08/2022, 09:35 PM por [E]manuelitop15. Edited 3 times in total.)
(20/08/2022, 08:49 PM)Asta escribió: y como quedaria en
Código PHP: public refwd_PlayerTakeDamage_Pre(iVictim, iInflictor, iAttacker, Float:flDamage, iBitsDamageType)
para cuando compre le de el doble daño al jugador
El task es para mostrar el tiempo que le queda de doble daño verdad? no seteas ese tiempo restante en el ataque del jugador ahi solo va el daño del jugador.
Tambien en el task al terminar le quita el doble daño asi que tambien se desactiva el doble daño.
Donde activas esta variable, que activa el daño X2...
Ahi va la funcion que te dí.
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
(20/08/2022, 09:32 PM)rojedafeik escribió: Pues detectas si buyed[id] está en true y aplicas el damage x2. Ya cuando el task termine este debería de quitarse
|