Oka, en unos momentos se instala.
Ya que no es un plugin privado voy a mostrar mi versión (pueden usar la versión de Flasher de Alliedmods).
Si quieren reportar un bug y ayudarme a mejorar el plugin, o simplemnte hacer sugerencias, postear aqui, enviarme un mp, mensaje de visita, msn, face o donde se les ocurra xD.
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#define VERSION "0.0.1"
#define DMG_EGON DMG_ENERGYBEAM
new pCvarEgonDamageMultiplier
new szClassReplacer[19]
new iForward
public plugin_precache()
{
// Nice author name.
register_plugin("Antiegon remake", VERSION, "Imperium Games")
pCvarEgonDamageMultiplier = register_cvar("mp_egon_dmg_multiplier", "0.5")
new pCvarEgonReplacer = register_cvar("mp_egon_replacer", "ammo_gaussclip")
switch( get_pcvar_num(register_cvar("mp_egon_mode", "0")) )
{
case 1:
{
get_pcvar_string( pCvarEgonReplacer, szClassReplacer, charsmax(szClassReplacer) )
iForward = register_forward(FM_Spawn, "FM_Spawn_Pre", 0)
}
case 2:
{
RegisterHam(Ham_TakeDamage, "player", "Ham_CBasePlayer_TakeDamage_Pre", 0)
}
}
}
public FM_Spawn_Pre(iEnt)
{
if( !pev_valid(iEnt) )
return
static szClassname[12]
pev( iEnt, pev_classname, szClassname, charsmax(szClassname) )
// equal(szClassname, "weapon_egon")
if( szClassname[7] == 'e' && szClassname[8] == 'g' && szClassname[9] == 'o' && szClassname[10] == 'n' )
{
static iReplacer
iReplacer = engfunc( EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szClassReplacer) )
if( pev_valid(iReplacer) )
{
static Float:flVec[3]
pev(iEnt, pev_origin, flVec)
set_pev(iReplacer, pev_origin, flVec)
pev(iEnt, pev_angles, flVec)
set_pev(iReplacer, pev_angles, flVec)
engfunc(EngFunc_RemoveEntity, iEnt)
dllfunc(DLLFunc_Spawn, iReplacer)
}
}
}
public plugin_init()
{
if( iForward )
{
unregister_forward(FM_Spawn, iForward, 0)
}
}
public Ham_CBasePlayer_TakeDamage_Pre(iVictim, iInflictor, iAttacker, Float:flDamage, iDamagebits)
{
if( iDamagebits & DMG_EGON && get_user_weapon(iAttacker) == HLW_EGON )
{
SetHamParamFloat( 4, flDamage * get_pcvar_float(pCvarEgonDamageMultiplier) )
return HAM_HANDLED
}
return HAM_IGNORED
}
CVars:
- mp_egon_mode 1: Reemplaza a weapon_egon por una entidad, dicha entidad es el valor de mp_egon_replacer.
- mp_egon_mode 2: Modifica el daño de weapon_egon, dicho daño es multiplicado por el valor de mp_egon_dmg_multiplier
- Cualquier otro valor, todo sigue normal (valor por defecto 0).
- mp_egon_replacer: Valor por defecto ammo_gaussclip.
- mp_egon_dmg_multiplier: Valor por defecto 0.5 (mitad del daño de weapon_egon).