Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
Buenas, implemente el siguiente code..
Código PHP: new bool: g_awpfrost[33] frost_man(victim) { // Get origin static Float:originF[3] pev(victim, pev_origin, originF) // Frost nade explode sound engfunc(EngFunc_EmitSound, victim, CHAN_WEAPON, grenade_frost[random_num(0, sizeof grenade_frost - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM) // Only effect alive unfrozen zombies if (!is_user_alive(victim) || !g_zombie[victim] || g_frozen[victim] || g_nodamage[victim]) return; // Freeze icon? if (get_pcvar_num(cvar_hudicons)) { message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, victim) write_byte(0) // damage save write_byte(0) // damage take write_long(DMG_DROWN) // damage type - DMG_FREEZE write_coord(0) // x write_coord(0) // y write_coord(0) // z message_end() } // Light blue glow while frozen #if defined HANDLE_MODELS_ON_SEPARATE_ENT fm_set_rendering(g_ent_playermodel[victim], kRenderFxGlowShell, 0, 150, 250, kRenderNormal, 1) #else fm_set_rendering(victim, kRenderFxGlowShell, 0, 150, 250, kRenderNormal, 1) #endif // Freeze sound engfunc(EngFunc_EmitSound, victim, CHAN_BODY, grenade_frost_player[random_num(0, sizeof grenade_frost_player - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM) // Get freeze duration setting static Float:freezeduration freezeduration = get_pcvar_float(cvar_freezeduration) // Add a blue tint to their screen message_begin(MSG_ONE_UNRELIABLE, g_msgScreenFade, _, victim) write_short(UNIT_SECOND*1) // duration write_short(floatround(UNIT_SECOND*freezeduration)) // hold time write_short(FFADE_IN) // fade type write_byte(0) // red write_byte(50) // green write_byte(200) // blue write_byte(100) // alpha message_end() // Prevent from jumping if (pev(victim, pev_flags) & FL_ONGROUND) set_pev(victim, pev_gravity, 999999.9) // set really high else set_pev(victim, pev_gravity, 0.000001) // no gravity // Set a task to remove the freeze g_frozen[victim] = true; set_task(freezeduration/2, "remove_freeze", victim) }
Lo que quiero es darle al nemesis la awp, pero no me la da.
Código PHP: if (g_nemround) { // Play Nemesis sound ArrayGetString(sound_nemesis, random_num(0, ArraySize(sound_nemesis) - 1), sound, charsmax(sound)) PlaySound(sound); // Show Nemesis HUD notice set_dhudmessage(255, 0, 0, HUD_EVENT_X, HUD_EVENT_Y, 1, 0.0, 5.0, 1.0, 1.0) show_dhudmessage(0, "Modo: Nemesis") // Mode fully started! g_modestarted = true fm_give_item(id, "weapon_awp") awp__frost[id] = true // Round start forward ExecuteForward(g_fwRoundStart, g_fwDummyResult, MODE_NEMESIS, forward_id); } else { // Show First Zombie HUD notice set_dhudmessage(0, 255, 0, HUD_EVENT_X, HUD_EVENT_Y, 0, 0.0, 5.0, 1.0, 1.0) show_dhudmessage(0, "¡ MUTO EL PRIMER ZOMBIE !") // Mode fully started! g_modestarted = true // Round start forward ExecuteForward(g_fwRoundStart, g_fwDummyResult, MODE_INFECTION, forward_id); } }
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
No deberías colocar el ID del zombie?
Mensajes: 3,238
Temas: 47
Registro en: Feb 2015
Reputación:
34
03/11/2019, 02:27 AM
(Última modificación: 03/11/2019, 02:27 AM por Skylar. Edited 1 time in total.)
Código PHP: fm_give_item(id, "weapon_awp") awp__frost[id] = true // -----------------> fm_give_item(forward_id, "weapon_awp") awp__frost[forward_id] = true
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
(03/11/2019, 02:27 AM)Skylar escribió: Código PHP: fm_give_item(id, "weapon_awp") awp__frost[id] = true // -----------------> fm_give_item(forward_id, "weapon_awp") awp__frost[forward_id] = true
No...
Sigue sin darmela...
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
A lo mejor este confundido pero no hay una parte del código en donde prohíbe tener armas los zombies ?
“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.
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
(03/11/2019, 08:20 PM)HK-416 escribió: A lo mejor este confundido pero no hay una parte del código en donde prohíbe tener armas los zombies ? Código PHP: // Allowed weapons for zombies (added grenades/bomb for sub-plugin support, since they shouldn't be getting them anyway) const ZOMBIE_ALLOWED_WEAPONS_BITSUM = (1<<CSW_KNIFE)|(1<<CSW_HEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_C4)|(1<<CSW_AWP)
Ya puede tener la awp, pero en vez de congelar sin dañarlo, los congela y los mata...
Mensajes: 336
Temas: 26
Registro en: Sep 2016
Reputación:
5
03/11/2019, 10:37 PM
(Última modificación: 03/11/2019, 10:43 PM por GoldenCosta. Edited 2 times in total.)
ve a la public takedamage del zp y donde aplicas el daño del nemesis has un if con el weapon del apw poniendo el daño en 0... tambien haciendo esto awp__frost[id] = true vas a tener que falsear en el spawn post, menu de armas y otras partes para que no mantenga activado el apw del nemesis
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
(03/11/2019, 10:37 PM)GoldenCosta escribió: ve a la public takedamage del zp y donde aplicas el daño del nemesis has un if con el weapon del apw poniendo el daño en 0... tambien haciendo esto awp__frost[id] = true vas a tener que falsear en el spawn post, menu de armas y otras partes para que no mantenga activado el apw del nemesis
Algo asi?
Código PHP: if (get_user_weapon(attacker) == CSW_AWP) { awp__frost[attacker] = 0; }
Mensajes: 3,238
Temas: 47
Registro en: Feb 2015
Reputación:
34
05/11/2019, 04:50 PM
(Última modificación: 05/11/2019, 04:51 PM por Skylar. Edited 1 time in total.)
(05/11/2019, 02:51 PM)Reverant escribió: (03/11/2019, 10:37 PM)GoldenCosta escribió: ve a la public takedamage del zp y donde aplicas el daño del nemesis has un if con el weapon del apw poniendo el daño en 0... tambien haciendo esto awp__frost[id] = true vas a tener que falsear en el spawn post, menu de armas y otras partes para que no mantenga activado el apw del nemesis
Algo asi?
Código PHP: if (get_user_weapon(attacker) == CSW_AWP) { awp__frost[attacker] = 0; }
Código PHP: if( awp__frost[ attacker ] ) return HAM_SUPERCEDE;
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
(05/11/2019, 04:50 PM)Skylar escribió: (05/11/2019, 02:51 PM)Reverant escribió: (03/11/2019, 10:37 PM)GoldenCosta escribió: ve a la public takedamage del zp y donde aplicas el daño del nemesis has un if con el weapon del apw poniendo el daño en 0... tambien haciendo esto awp__frost[id] = true vas a tener que falsear en el spawn post, menu de armas y otras partes para que no mantenga activado el apw del nemesis
Algo asi?
Código PHP: if (get_user_weapon(attacker) == CSW_AWP) { awp__frost[attacker] = 0; }
Código PHP: if( awp__frost[ attacker ] ) return HAM_SUPERCEDE;
Me sigue matando a los humanos..,
Código PHP: if (g_nemesis[attacker]) { // Ignore nemesis damage override if damage comes from a 3rd party entity // (to prevent this from affecting a sub-plugin's rockets e.g.) if (inflictor == attacker) { // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) } if( awp__frost[ attacker ] ) return HAM_IGNORED; }
Mensajes: 336
Temas: 26
Registro en: Sep 2016
Reputación:
5
si tu zp no esta editado... ve a
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
buscas esto
Código PHP: // Attacker is zombie... // Prevent infection by HE grenade (bugfix) if (damage_type & DMG_HEGRENADE) return HAM_SUPERCEDE; // Nemesis? if (g_nemesis[attacker]) { // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; }
lo q vas a hacer
Código PHP: // Nemesis? if (g_nemesis[attacker]) { if (get_user_weapon(attacker) == CSW_AWP) { if (awp__frost[attacker]) { SetHamParamFloat(4, damage *= 0.0) frost_man(victim) // nose si es el public asi donde aplicas el efecto de congelacion }
} // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; }
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
(05/11/2019, 08:34 PM)GoldenCosta escribió: si tu zp no esta editado... ve a
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
buscas esto
Código PHP: // Attacker is zombie... // Prevent infection by HE grenade (bugfix) if (damage_type & DMG_HEGRENADE) return HAM_SUPERCEDE; // Nemesis? if (g_nemesis[attacker]) { // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; }
lo q vas a hacer
Código PHP: // Nemesis? if (g_nemesis[attacker]) { if (get_user_weapon(attacker) == CSW_AWP) { if (awp__frost[attacker]) { SetHamParamFloat(4, damage *= 0.0) frost_man(victim) // nose si es el public asi donde aplicas el efecto de congelacion }
} // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; }
Sigue haciendo daño el awp, es mas no me esta dando el model ahora que me doy cuenta, pero es lo de menos...
Deje el takedamage identico al que me dejaste, pero me los mata a los hm, y le agregue una cvar para confirmar si el problema se soluciona y no
No se que decis, quizas la funcion frost_man esta mall.
Código PHP: frost_man(victim) { // Get origin static Float:originF[3] pev(victim, pev_origin, originF) // Frost nade explode sound //engfunc(EngFunc_EmitSound, victim, CHAN_WEAPON, grenade_frost[random_num(0, sizeof grenade_frost - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM) // Only effect alive unfrozen zombies if (!is_user_alive(victim) || g_frozen[victim] || g_nodamage[victim]) return; // Freeze icon? if (get_pcvar_num(cvar_hudicons)) { message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, victim) write_byte(0) // damage save write_byte(0) // damage take write_long(DMG_DROWN) // damage type - DMG_FREEZE write_coord(0) // x write_coord(0) // y write_coord(0) // z message_end() } // Light blue glow while frozen #if defined HANDLE_MODELS_ON_SEPARATE_ENT fm_set_rendering(g_ent_playermodel[victim], kRenderFxGlowShell, 0, 150, 250, kRenderNormal, 1) #else fm_set_rendering(victim, kRenderFxGlowShell, 0, 150, 250, kRenderNormal, 1) #endif // Freeze sound //engfunc(EngFunc_EmitSound, victim, CHAN_BODY, grenade_frost_player[random_num(0, sizeof grenade_frost_player - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM) // Get freeze duration setting static Float:freezeduration freezeduration = get_pcvar_float(cvar_freezeduration) // Add a blue tint to their screen message_begin(MSG_ONE_UNRELIABLE, g_msgScreenFade, _, victim) write_short(UNIT_SECOND*1) // duration write_short(floatround(UNIT_SECOND*freezeduration)) // hold time write_short(FFADE_IN) // fade type write_byte(0) // red write_byte(50) // green write_byte(200) // blue write_byte(100) // alpha message_end() // Prevent from jumping if (pev(victim, pev_flags) & FL_ONGROUND) set_pev(victim, pev_gravity, 999999.9) // set really high else set_pev(victim, pev_gravity, 0.000001) // no gravity // Set a task to remove the freeze g_frozen[victim] = true; set_task(get_pcvar_float(cvar_freezeduration), "remove_freeze", victim) }
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
05/11/2019, 11:17 PM
(Última modificación: 05/11/2019, 11:18 PM por HK-416. Edited 1 time in total.)
Prueba alguna de estas dos
Código PHP: if (g_nemesis[attacker]) { if (get_user_weapon(attacker) == CSW_AWP) { if (awp__frost[attacker]) { damage = 0.0 SetHamParamFloat(4, damage) frost_man(victim) // nose si es el public asi donde aplicas el efecto de congelacion } } // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; }
Código PHP: if (g_nemesis[attacker]) { if (get_user_weapon(attacker) == CSW_AWP) { if (awp__frost[attacker]) { damage = 0.0 SetHamParamFloat(4, damage) frost_man(victim) // nose si es el public asi donde aplicas el efecto de congelacion } } // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_SUPERCEDE; }
“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.
Mensajes: 336
Temas: 26
Registro en: Sep 2016
Reputación:
5
06/11/2019, 12:05 AM
(Última modificación: 06/11/2019, 12:06 AM por GoldenCosta. Edited 1 time in total.)
sacale el bool al arma, dejalo como nueva variable
crear una nueva cvar con su comando
cvar_nemapwdamage
cvar_nemapwdamage = register_cvar("zp_nem_awp_d", "0")
anda a takedamage y reemplaza
SetHamParamFloat(4, damage *= 0.0)
------------------>
SetHamParamFloat(4, get_pcvar_float(cvar_nemapwdamage))
_____________________________________________________________________
ahora para el model lo estas reemplazando mal seguro....
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
07/11/2019, 10:21 PM
(Última modificación: 07/11/2019, 10:35 PM por Reverant. Edited 2 times in total.)
(06/11/2019, 12:05 AM)GoldenCosta escribió: sacale el bool al arma, dejalo como nueva variable
crear una nueva cvar con su comando
cvar_nemapwdamage
cvar_nemapwdamage = register_cvar("zp_nem_awp_d", "0")
anda a takedamage y reemplaza
SetHamParamFloat(4, damage *= 0.0)
------------------>
SetHamParamFloat(4, get_pcvar_float(cvar_nemapwdamage))
_____________________________________________________________________
ahora para el model lo estas reemplazando mal seguro....
Dejo el code para que veas, me sigue hacienddo el daño..
Código PHP: if (g_nemesis[attacker]) { if (get_user_weapon(attacker) == CSW_AWP) { if (awp__frost[attacker]) { SetHamParamFloat(4, get_pcvar_float(cvar_awpfrost__dmg)) frost_man(victim) } } // Ignore nemesis damage override if damage comes from a 3rd party entity // (to prevent this from affecting a sub-plugin's rockets e.g.) SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; }
if (g_nemround) { // Play Nemesis sound ArrayGetString(sound_nemesis, random_num(0, ArraySize(sound_nemesis) - 1), sound, charsmax(sound)) PlaySound(sound); // Show Nemesis HUD notice set_dhudmessage(255, 0, 0, HUD_EVENT_X, HUD_EVENT_Y, 1, 0.0, 5.0, 1.0, 1.0) show_dhudmessage(0, "Modo: Nemesis") // Mode fully started! g_modestarted = true fm_give_item(forward_id, "weapon_awp") awp__frost[forward_id] = true // Round start forward ExecuteForward(g_fwRoundStart, g_fwDummyResult, MODE_NEMESIS, forward_id); }
Ya le saque el bool, y deje en false en putinserver, en menu de armas y extras.
(05/11/2019, 11:17 PM)HK-416 escribió: Prueba alguna de estas dos
Código PHP: if (g_nemesis[attacker]) { if (get_user_weapon(attacker) == CSW_AWP) { if (awp__frost[attacker]) { damage = 0.0 SetHamParamFloat(4, damage) frost_man(victim) // nose si es el public asi donde aplicas el efecto de congelacion } } // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_IGNORED; }
Código PHP: if (g_nemesis[attacker]) { if (get_user_weapon(attacker) == CSW_AWP) { if (awp__frost[attacker]) { damage = 0.0 SetHamParamFloat(4, damage) frost_man(victim) // nose si es el public asi donde aplicas el efecto de congelacion } } // Set nemesis damage SetHamParamFloat(4, get_pcvar_float(cvar_nemdamage)) return HAM_SUPERCEDE; }
Por otro lado hk, son dos codes iguales...
y no funcionan
Mensajes: 336
Temas: 26
Registro en: Sep 2016
Reputación:
5
me mato... donde pusiste el codigo del daño? en takedamage o dentro de la funcion del modo?
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
(08/11/2019, 01:39 AM)GoldenCosta escribió: me mato... donde pusiste el codigo del daño? en takedamage o dentro de la funcion del modo?
El daño en takedamage, en el modo solo le di el arma y puse en true la variable. En el modo le da perfecto, porque los congela pero les saca daño...
Mensajes: 3,238
Temas: 47
Registro en: Feb 2015
Reputación:
34
(08/11/2019, 10:18 PM)Reverant escribió: (08/11/2019, 01:39 AM)GoldenCosta escribió: me mato... donde pusiste el codigo del daño? en takedamage o dentro de la funcion del modo?
El daño en takedamage, en el modo solo le di el arma y puse en true la variable. En el modo le da perfecto, porque los congela pero les saca daño...
En el comentario que hiciste arriba, se ve que pusiste el código del damage en donde se dan los modos
Mensajes: 336
Temas: 26
Registro en: Sep 2016
Reputación:
5
09/11/2019, 01:52 AM
(Última modificación: 09/11/2019, 01:55 AM por GoldenCosta. Edited 1 time in total.)
la ultima idea que tengo es que donde tienes la entidad de congelar del apw se establesca en 0 el daño, se me hace muy raro que en takedamage no te este tomando el daño, si estas espesificando bien que solo el nemesis, weapon apw y la variable se requiere para usarlo... aparte si no te funcionaria no tendria que congelar a los humanos
Mensajes: 225
Temas: 80
Registro en: Feb 2019
Reputación:
0
(08/11/2019, 11:15 PM)Skylar escribió: (08/11/2019, 10:18 PM)Reverant escribió: (08/11/2019, 01:39 AM)GoldenCosta escribió: me mato... donde pusiste el codigo del daño? en takedamage o dentro de la funcion del modo?
El daño en takedamage, en el modo solo le di el arma y puse en true la variable. En el modo le da perfecto, porque los congela pero les saca daño...
En el comentario que hiciste arriba, se ve que pusiste el código del damage en donde se dan los modos No, solo enganche ambos códigos en una misma llave
|