Fix broken shock roach death.
Fix hwgrunt not spinning down the minigun. Other misc. fixes.
This commit is contained in:
Binary file not shown.
@@ -16,7 +16,7 @@ new Trie:g_HLDefaultNames;
|
|||||||
|
|
||||||
public plugin_init()
|
public plugin_init()
|
||||||
{
|
{
|
||||||
register_plugin( "HL-MONSTER Bridge", "1.0", "Giegue" );
|
register_plugin( "HL-MONSTER Bridge", "1.1", "Giegue" );
|
||||||
|
|
||||||
RegisterHam( Ham_IRelationship, "monster_alien_controller", "mmIRelationship" );
|
RegisterHam( Ham_IRelationship, "monster_alien_controller", "mmIRelationship" );
|
||||||
RegisterHam( Ham_IRelationship, "monster_alien_grunt", "mmIRelationship" );
|
RegisterHam( Ham_IRelationship, "monster_alien_grunt", "mmIRelationship" );
|
||||||
@@ -71,6 +71,8 @@ public plugin_init()
|
|||||||
|
|
||||||
set_task( 0.3, "hlScan", 0, "", 0, "b" );
|
set_task( 0.3, "hlScan", 0, "", 0, "b" );
|
||||||
register_srvcmd( "monster_hurt_entity", "hlTakeDamage" );
|
register_srvcmd( "monster_hurt_entity", "hlTakeDamage" );
|
||||||
|
|
||||||
|
RegisterHam( Ham_Killed, "player", "PlayerKilled", 1 );
|
||||||
}
|
}
|
||||||
public plugin_end()
|
public plugin_end()
|
||||||
{
|
{
|
||||||
@@ -186,3 +188,17 @@ public hlTakeDamage()
|
|||||||
ExecuteHamB( Ham_TakeDamage, victim, inflictor, attacker, damage, damageBits );
|
ExecuteHamB( Ham_TakeDamage, victim, inflictor, attacker, damage, damageBits );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PlayerKilled( victim, attacker, shouldgib )
|
||||||
|
{
|
||||||
|
// don't obstruct monstermod
|
||||||
|
if ( victim == attacker )
|
||||||
|
return HAM_IGNORED;
|
||||||
|
|
||||||
|
// fix monster score
|
||||||
|
if ( entity_get_int( attacker, EV_INT_flags ) & FL_MONSTER )
|
||||||
|
entity_set_float( attacker, EV_FL_frags, entity_get_float( attacker, EV_FL_frags ) + 2 );
|
||||||
|
|
||||||
|
entity_set_edict( victim, EV_ENT_dmg_inflictor, attacker );
|
||||||
|
return HAM_IGNORED;
|
||||||
|
}
|
||||||
|
|||||||
@@ -399,12 +399,12 @@ void check_player_dead( edict_t *pPlayer )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// SOMETHING that is a monster
|
// Does this monster have a name?
|
||||||
if ( !FStringNull( pAttacker->v.netname ) )
|
if ( !FStringNull( pAttacker->v.netname ) )
|
||||||
strcpy(szName, STRING( pAttacker->v.netname ));
|
strcpy(szName, STRING( pAttacker->v.netname ));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// No netname, use classname
|
// No name, use class
|
||||||
strcpy(szName, STRING( pAttacker->v.classname ));
|
strcpy(szName, STRING( pAttacker->v.classname ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -537,8 +537,8 @@ void check_monster_info( edict_t *pPlayer )
|
|||||||
// It should be alive
|
// It should be alive
|
||||||
if ( UTIL_IsAlive( tr.pHit ) )
|
if ( UTIL_IsAlive( tr.pHit ) )
|
||||||
{
|
{
|
||||||
// Must be a monster
|
// Must be a monster (and strictly a monster!)
|
||||||
if (tr.pHit->v.flags & FL_MONSTER)
|
if (strncmp( STRING( tr.pHit->v.classname ), "monster_", 8 ) == 0 && tr.pHit->v.flags & FL_MONSTER)
|
||||||
{
|
{
|
||||||
char szName[129];
|
char szName[129];
|
||||||
float monsterHealth, monsterFrags;
|
float monsterHealth, monsterFrags;
|
||||||
|
|||||||
@@ -372,6 +372,8 @@ void CMHornet::DieTouch ( edict_t *pOther )
|
|||||||
CMBaseMonster *pMonster = GetClassPtr((CMBaseMonster *)VARS(pOther));
|
CMBaseMonster *pMonster = GetClassPtr((CMBaseMonster *)VARS(pOther));
|
||||||
pMonster->TakeDamage( pev, VARS( pev->owner ), pev->dmg, DMG_BULLET );
|
pMonster->TakeDamage( pev, VARS( pev->owner ), pev->dmg, DMG_BULLET );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
UTIL_TakeDamageExternal( pOther, pev, VARS( pev->owner ), pev->dmg, DMG_BULLET );
|
||||||
}
|
}
|
||||||
|
|
||||||
pev->modelindex = 0;// so will disappear for the 0.1 secs we wait until NEXTTHINK gets rid
|
pev->modelindex = 0;// so will disappear for the 0.1 secs we wait until NEXTTHINK gets rid
|
||||||
|
|||||||
@@ -700,6 +700,17 @@ void CMHWGrunt :: SetActivity ( Activity NewActivity )
|
|||||||
case ACT_RUN:
|
case ACT_RUN:
|
||||||
case ACT_WALK:
|
case ACT_WALK:
|
||||||
default:
|
default:
|
||||||
|
if ( m_flMinigunSpinTime != 0 )
|
||||||
|
{
|
||||||
|
// if the hwgrunt used his minigun but became unable to attack
|
||||||
|
// then spin it down before doing anything else
|
||||||
|
refreshActivity = FALSE;
|
||||||
|
|
||||||
|
EMIT_SOUND(ENT(pev), CHAN_WEAPON, "hassault/hw_spindown.wav", 0.8, ATTN_NORM);
|
||||||
|
m_flMinigunSpinTime = gpGlobals->time + 1.40;
|
||||||
|
iSequence = LookupSequence( "spindown" );
|
||||||
|
}
|
||||||
|
else
|
||||||
iSequence = LookupActivity ( NewActivity );
|
iSequence = LookupActivity ( NewActivity );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ void CMShockRoach::MonsterThink(void)
|
|||||||
{
|
{
|
||||||
pev->health = -1;
|
pev->health = -1;
|
||||||
Killed(pev, 0);
|
Killed(pev, 0);
|
||||||
return;
|
//return; // it still needs to think
|
||||||
}
|
}
|
||||||
|
|
||||||
CMHeadCrab::MonsterThink();
|
CMHeadCrab::MonsterThink();
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ typedef struct {
|
|||||||
} gamedll_funcs_t;
|
} gamedll_funcs_t;
|
||||||
|
|
||||||
extern gamedll_funcs_t *gpGamedllFuncs;
|
extern gamedll_funcs_t *gpGamedllFuncs;
|
||||||
|
extern void check_player_dead( edict_t *pPlayer );
|
||||||
|
|
||||||
// Print to console.
|
// Print to console.
|
||||||
void META_CONS(char *fmt, ...) {
|
void META_CONS(char *fmt, ...) {
|
||||||
@@ -1760,6 +1760,7 @@ int UTIL_TakeDamage( edict_t *pEdict, entvars_t *pevInflictor, entvars_t *pevAtt
|
|||||||
{
|
{
|
||||||
pEdict->v.health = 1; // can't suicide if already dead!
|
pEdict->v.health = 1; // can't suicide if already dead!
|
||||||
gpGamedllFuncs->dllapi_table->pfnClientKill(pEdict);
|
gpGamedllFuncs->dllapi_table->pfnClientKill(pEdict);
|
||||||
|
check_player_dead(pEdict); // will you just fucking work?
|
||||||
|
|
||||||
// Add 1 score to the monster that killed this player
|
// Add 1 score to the monster that killed this player
|
||||||
if ( pevAttacker->flags & FL_MONSTER )
|
if ( pevAttacker->flags & FL_MONSTER )
|
||||||
|
|||||||
Reference in New Issue
Block a user