This commit is contained in:
Giegue
2023-04-25 22:33:53 -03:00
29 changed files with 83 additions and 47 deletions

View File

@@ -184,13 +184,8 @@ void CMAGrunt :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vec
if (flDamage <= 0) if (flDamage <= 0)
flDamage = 0.1;// don't hurt the monster much, but allow bits_COND_LIGHT_DAMAGE to be generated flDamage = 0.1;// don't hurt the monster much, but allow bits_COND_LIGHT_DAMAGE to be generated
} }
else
{ CMBaseMonster::TraceAttack(pevAttacker, flDamage, vecDir, ptr, bitsDamageType);
SpawnBlood(ptr->vecEndPos, BloodColor(), flDamage);// a little surface blood.
TraceBleed( flDamage, vecDir, ptr, bitsDamageType );
}
AddMultiDamage( pevAttacker, this->edict(), flDamage, bitsDamageType );
} }
//========================================================= //=========================================================
@@ -537,7 +532,7 @@ void CMAGrunt :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.agruntHealth; pev->health = gSkillData.agruntHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -350,7 +350,7 @@ void CMBarney :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_RED : m_bloodColor;
pev->health = gSkillData.barneyHealth; pev->health = gSkillData.barneyHealth;
pev->view_ofs = Vector ( 0, 0, 50 );// position of the eyes relative to monster's origin. pev->view_ofs = Vector ( 0, 0, 50 );// position of the eyes relative to monster's origin.
m_flFieldOfView = VIEW_FIELD_FULL; m_flFieldOfView = VIEW_FIELD_FULL;

View File

@@ -609,7 +609,7 @@ void CMBigMomma :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->health = 150 * gSkillData.bigmommaHealthFactor; pev->health = 150 * gSkillData.bigmommaHealthFactor;
pev->view_ofs = Vector ( 0, 0, 128 );// position of the eyes relative to monster's origin. pev->view_ofs = Vector ( 0, 0, 128 );// position of the eyes relative to monster's origin.
m_flFieldOfView = 0.3;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.3;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -615,7 +615,7 @@ void CMBullsquid :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.bullsquidHealth; pev->health = gSkillData.bullsquidHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -21,6 +21,7 @@ public:
int m_iMonsterIndex;// index of the monster(s) that will be created. int m_iMonsterIndex;// index of the monster(s) that will be created.
string_t m_iszCustomModel;// custom model that the monster will use. string_t m_iszCustomModel;// custom model that the monster will use.
int m_iMonsterBlood;//blood color of spawned monsters.
int m_cNumMonsters;// max number of monsters this ent can create int m_cNumMonsters;// max number of monsters this ent can create
int m_iMaxLiveChildren;// max number of monsters that this maker may have out at one time. int m_iMaxLiveChildren;// max number of monsters that this maker may have out at one time.

View File

@@ -30,8 +30,7 @@
#include "weapons.h" #include "weapons.h"
#include "func_break.h" #include "func_break.h"
const Vector g_vecZero = Vector(0,0,0); extern DLL_GLOBAL Vector g_vecAttackDir;
Vector g_vecAttackDir;
entvars_t *g_pevLastInflictor; entvars_t *g_pevLastInflictor;
#define HUMAN_GIB_COUNT 6 #define HUMAN_GIB_COUNT 6
@@ -1322,33 +1321,33 @@ void CMBaseMonster :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vecto
if ( pev->takedamage ) if ( pev->takedamage )
{ {
m_LastHitGroup = ptr->iHitgroup; m_LastHitGroup = ptr->iHitgroup;
/*jlb // do we need the hitboxes to be customizable? use vanilla HL skill.cfg for now
switch ( ptr->iHitgroup ) switch ( ptr->iHitgroup )
{ {
case HITGROUP_GENERIC: case HITGROUP_GENERIC:
break; break;
case HITGROUP_HEAD: case HITGROUP_HEAD:
flDamage *= gSkillData.monHead; flDamage *= 3; //gSkillData.monHead;
break; break;
case HITGROUP_CHEST: case HITGROUP_CHEST:
flDamage *= gSkillData.monChest; flDamage *= 1; //gSkillData.monChest;
break; break;
case HITGROUP_STOMACH: case HITGROUP_STOMACH:
flDamage *= gSkillData.monStomach; flDamage *= 1; //gSkillData.monStomach;
break; break;
case HITGROUP_LEFTARM: case HITGROUP_LEFTARM:
case HITGROUP_RIGHTARM: case HITGROUP_RIGHTARM:
flDamage *= gSkillData.monArm; flDamage *= 1; //gSkillData.monArm;
break; break;
case HITGROUP_LEFTLEG: case HITGROUP_LEFTLEG:
case HITGROUP_RIGHTLEG: case HITGROUP_RIGHTLEG:
flDamage *= gSkillData.monLeg; flDamage *= 1; //gSkillData.monLeg;
break; break;
default: default:
break; break;
} }
jlb*/
SpawnBlood(ptr->vecEndPos, BloodColor(), flDamage);// a little surface blood. SpawnBlood(ptr->vecEndPos, BloodColor(), flDamage);// a little surface blood.
TraceBleed( flDamage, vecDir, ptr, bitsDamageType ); TraceBleed( flDamage, vecDir, ptr, bitsDamageType );
AddMultiDamage( pevAttacker, this->edict(), flDamage, bitsDamageType ); AddMultiDamage( pevAttacker, this->edict(), flDamage, bitsDamageType );

View File

@@ -308,7 +308,7 @@ void CMController :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_FLY; pev->movetype = MOVETYPE_FLY;
pev->flags |= FL_FLY; pev->flags |= FL_FLY;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->health = gSkillData.controllerHealth; pev->health = gSkillData.controllerHealth;
pev->view_ofs = Vector( 0, 0, -2 );// position of the eyes relative to monster's origin. pev->view_ofs = Vector( 0, 0, -2 );// position of the eyes relative to monster's origin.
m_flFieldOfView = VIEW_FIELD_FULL;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = VIEW_FIELD_FULL;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -298,7 +298,7 @@ void check_monster_hurt(edict_t *pAttacker)
vecSpot = vecSrc + gpGlobals->v_forward * distance; vecSpot = vecSrc + gpGlobals->v_forward * distance;
// trace a line ignoring enemies body... // trace a line ignoring enemies body...
UTIL_TraceLine ( vecSrc, vecSpot, dont_ignore_monsters, pent, &tr ); UTIL_TraceLine ( vecSrc, vecSpot, dont_ignore_monsters, pAttacker, &tr );
damage = pent->v.fuser4 - pent->v.health; damage = pent->v.fuser4 - pent->v.health;
@@ -795,7 +795,6 @@ void check_respawn(void)
} }
} }
DLL_GLOBAL short g_sModelIndexFireball;// holds the index for the fireball DLL_GLOBAL short g_sModelIndexFireball;// holds the index for the fireball
DLL_GLOBAL short g_sModelIndexSmoke;// holds the index for the smoke cloud DLL_GLOBAL short g_sModelIndexSmoke;// holds the index for the smoke cloud
DLL_GLOBAL short g_sModelIndexTinySpit;// holds the index for the spore grenade explosion DLL_GLOBAL short g_sModelIndexTinySpit;// holds the index for the spore grenade explosion
@@ -807,6 +806,11 @@ DLL_GLOBAL short g_sModelIndexLaser;// holds the index for the laser beam
DLL_GLOBAL const char *g_pModelNameLaser = "sprites/laserbeam.spr"; DLL_GLOBAL const char *g_pModelNameLaser = "sprites/laserbeam.spr";
DLL_GLOBAL short g_sModelIndexLaserDot;// holds the index for the laser beam dot DLL_GLOBAL short g_sModelIndexLaserDot;// holds the index for the laser beam dot
// globals.cpp
DLL_GLOBAL const Vector g_vecZero = Vector(0, 0, 0); // null vector
DLL_GLOBAL Vector g_vecAttackDir; // attack direction
void world_precache(void) void world_precache(void)
{ {
g_sModelIndexFireball = PRECACHE_MODELINDEX("sprites/zerogxplode.spr");// fireball g_sModelIndexFireball = PRECACHE_MODELINDEX("sprites/zerogxplode.spr");// fireball
@@ -1254,10 +1258,11 @@ int mmDispatchSpawn( edict_t *pent )
} }
// free any allocated keyvalue memory // free any allocated keyvalue memory
for (index = 0; index < monster_spawn_count; index++) for (index = 0; index < MAX_MONSTERS; index++)
{ {
if (monster_spawnpoint[index].keyvalue) if (monster_spawnpoint[index].keyvalue != NULL)
free(monster_spawnpoint[index].keyvalue); free(monster_spawnpoint[index].keyvalue);
monster_spawnpoint[index].keyvalue = NULL;
} }
// do level initialization stuff here... // do level initialization stuff here...

View File

@@ -683,7 +683,7 @@ void CMGargantua :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->health = gSkillData.gargantuaHealth; pev->health = gSkillData.gargantuaHealth;
//pev->view_ofs = Vector ( 0, 0, 96 );// taken from mdl file //pev->view_ofs = Vector ( 0, 0, 96 );// taken from mdl file
m_flFieldOfView = -0.2;// width of forward view cone ( as a dotproduct result ) m_flFieldOfView = -0.2;// width of forward view cone ( as a dotproduct result )
@@ -1325,7 +1325,7 @@ void CMBabyGargantua::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->health = gSkillData.babygargHealth; pev->health = gSkillData.babygargHealth;
//pev->view_ofs = Vector ( 0, 0, 96 );// taken from mdl file //pev->view_ofs = Vector ( 0, 0, 96 );// taken from mdl file
m_flFieldOfView = -0.2;// width of forward view cone ( as a dotproduct result ) m_flFieldOfView = -0.2;// width of forward view cone ( as a dotproduct result )

View File

@@ -613,7 +613,7 @@ void CMGonome::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.gonomeHealth; pev->health = gSkillData.gonomeHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -220,7 +220,7 @@ void CMHAssassin :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_RED : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.hassassinHealth; pev->health = gSkillData.hassassinHealth;
m_flFieldOfView = VIEW_FIELD_WIDE; // indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = VIEW_FIELD_WIDE; // indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -252,7 +252,7 @@ void CMHeadCrab :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.headcrabHealth; pev->health = gSkillData.headcrabHealth;
pev->view_ofs = Vector ( 0, 0, 20 );// position of the eyes relative to monster's origin. pev->view_ofs = Vector ( 0, 0, 20 );// position of the eyes relative to monster's origin.

View File

@@ -832,7 +832,7 @@ void CMHGrunt :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_RED : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.hgruntHealth; pev->health = gSkillData.hgruntHealth;
m_flFieldOfView = VIEW_FIELD_FULL; // indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = VIEW_FIELD_FULL; // indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -272,7 +272,7 @@ void CMHoundeye :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_YELLOW; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.houndeyeHealth; pev->health = gSkillData.houndeyeHealth;
pev->yaw_speed = 5;//!!! should we put this in the monster's changeanim function since turn rates may vary with state/anim? pev->yaw_speed = 5;//!!! should we put this in the monster's changeanim function since turn rates may vary with state/anim?

View File

@@ -199,7 +199,7 @@ void CMHWGrunt::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_RED : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.hwgruntHealth; pev->health = gSkillData.hwgruntHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -421,7 +421,7 @@ void CMISlave :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.slaveHealth; pev->health = gSkillData.slaveHealth;
pev->view_ofs = Vector ( 0, 0, 64 );// position of the eyes relative to monster's origin. pev->view_ofs = Vector ( 0, 0, 64 );// position of the eyes relative to monster's origin.

View File

@@ -227,7 +227,7 @@ void CMMassn::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_RED : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.massnHealth; pev->health = gSkillData.massnHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -728,6 +728,8 @@ void scan_extra_cfg(FILE *fp)
{ {
char *cmd = strtok(input, " "); char *cmd = strtok(input, " ");
char *value = strtok(NULL, " "); char *value = strtok(NULL, " ");
if (value == NULL)
continue; // command with no value, skip
// Remove all quotes from "value" // Remove all quotes from "value"
char parse[128] = {0}; char parse[128] = {0};

View File

@@ -65,6 +65,11 @@ void CMMonsterMaker :: KeyValue( KeyValueData *pkvd )
m_iszCustomModel = ALLOC_STRING(pkvd->szValue); m_iszCustomModel = ALLOC_STRING(pkvd->szValue);
pkvd->fHandled = TRUE; pkvd->fHandled = TRUE;
} }
else if ( FStrEq(pkvd->szKeyName, "bloodcolor") )
{
m_iMonsterBlood = atoi(pkvd->szValue);
pkvd->fHandled = TRUE;
}
else else
CMBaseMonster::KeyValue( pkvd ); CMBaseMonster::KeyValue( pkvd );
} }
@@ -124,7 +129,7 @@ void CMMonsterMaker :: Precache( void )
void CMMonsterMaker::MakeMonster( void ) void CMMonsterMaker::MakeMonster( void )
{ {
edict_t *pent; edict_t *pent;
pKVD keyvalue[1]; // sometimes, i don't know what am i doing. -Giegue pKVD keyvalue[MAX_KEYVALUES]; // sometimes, i don't know what am i doing. -Giegue
int createSF = SF_MONSTER_FALL_TO_GROUND; int createSF = SF_MONSTER_FALL_TO_GROUND;
if ( m_iMaxLiveChildren > 0 && m_cLiveChildren >= m_iMaxLiveChildren ) if ( m_iMaxLiveChildren > 0 && m_cLiveChildren >= m_iMaxLiveChildren )
@@ -165,6 +170,13 @@ void CMMonsterMaker::MakeMonster( void )
strcpy(keyvalue[0].key, "model"); strcpy(keyvalue[0].key, "model");
strcpy(keyvalue[0].value, STRING( m_iszCustomModel )); strcpy(keyvalue[0].value, STRING( m_iszCustomModel ));
} }
// Override monster blood color?
if ( m_iMonsterBlood )
{
// setup blood keyvalue
strcpy(keyvalue[1].key, "bloodcolor");
sprintf(keyvalue[1].value, "%i", m_iMonsterBlood );
}
// Attempt to spawn monster // Attempt to spawn monster
pent = spawn_monster(m_iMonsterIndex, pev->origin, pev->angles, createSF, keyvalue); pent = spawn_monster(m_iMonsterIndex, pev->origin, pev->angles, createSF, keyvalue);

View File

@@ -2626,6 +2626,23 @@ void CMBaseMonster :: KeyValue( KeyValueData *pkvd )
m_iClassifyOverride = atoi( pkvd->szValue ); m_iClassifyOverride = atoi( pkvd->szValue );
pkvd->fHandled = TRUE; pkvd->fHandled = TRUE;
} }
else if (FStrEq(pkvd->szKeyName, "bloodcolor"))
{
switch ( atoi( pkvd->szValue ) )
{
case -1: m_bloodColor = DONT_BLEED; break;
case 1: m_bloodColor = BLOOD_COLOR_RED; break;
case 2: m_bloodColor = BLOOD_COLOR_YELLOW; break;
case 3: m_bloodColor = BLOOD_COLOR_BLUE; break;
case 4: m_bloodColor = BLOOD_COLOR_PINK; break;
case 5: m_bloodColor = BLOOD_COLOR_WHITE; break;
case 6: m_bloodColor = BLOOD_COLOR_ORANGE; break;
case 7: m_bloodColor = BLOOD_COLOR_BLACK; break;
case 8: m_bloodColor = BLOOD_COLOR_GREEN; break;
default: m_bloodColor = 0; break; // Invalid, set default
}
pkvd->fHandled = TRUE;
}
else else
{ {
CMBaseToggle::KeyValue( pkvd ); CMBaseToggle::KeyValue( pkvd );

View File

@@ -142,7 +142,7 @@ void CMOtis::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_RED : m_bloodColor;
pev->health = gSkillData.otisHealth; pev->health = gSkillData.otisHealth;
pev->view_ofs = Vector(0, 0, 50);// position of the eyes relative to monster's origin. pev->view_ofs = Vector(0, 0, 50);// position of the eyes relative to monster's origin.
m_flFieldOfView = VIEW_FIELD_WIDE; // NOTE: we need a wide field of view so npc will notice player and say hello m_flFieldOfView = VIEW_FIELD_WIDE; // NOTE: we need a wide field of view so npc will notice player and say hello

View File

@@ -570,7 +570,7 @@ void CMPitdrone::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.pitdroneHealth; pev->health = gSkillData.pitdroneHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -601,7 +601,7 @@ void CMScientist :: Spawn( void )
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_RED : m_bloodColor;
pev->health = gSkillData.scientistHealth; pev->health = gSkillData.scientistHealth;
pev->view_ofs = Vector ( 0, 0, 50 );// position of the eyes relative to monster's origin. pev->view_ofs = Vector ( 0, 0, 50 );// position of the eyes relative to monster's origin.
m_flFieldOfView = VIEW_FIELD_WIDE; // NOTE: we need a wide field of view so scientists will notice player and say hello m_flFieldOfView = VIEW_FIELD_WIDE; // NOTE: we need a wide field of view so scientists will notice player and say hello

View File

@@ -69,7 +69,7 @@ void CMShockRoach::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_FLY; pev->movetype = MOVETYPE_FLY;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = BLOOD_COLOR_YELLOW;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.roachHealth; pev->health = gSkillData.roachHealth;

View File

@@ -367,7 +367,7 @@ void CMStrooper::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.strooperHealth; pev->health = gSkillData.strooperHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -105,7 +105,7 @@ void CMStukabat :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_FLY; pev->movetype = MOVETYPE_FLY;
pev->flags |= FL_FLY; pev->flags |= FL_FLY;
m_bloodColor = BLOOD_COLOR_YELLOW; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->health = gSkillData.stukabatHealth; pev->health = gSkillData.stukabatHealth;
pev->view_ofs = Vector ( 0, 0, 22 );// position of the eyes relative to monster's origin. pev->view_ofs = Vector ( 0, 0, 22 );// position of the eyes relative to monster's origin.
m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -149,7 +149,12 @@ inline BOOL FStringNull(int iString) { return iString == iStringNull; }
#define DONT_BLEED -1 #define DONT_BLEED -1
#define BLOOD_COLOR_RED (BYTE)247 #define BLOOD_COLOR_RED (BYTE)247
#define BLOOD_COLOR_YELLOW (BYTE)195 #define BLOOD_COLOR_YELLOW (BYTE)195
#define BLOOD_COLOR_GREEN BLOOD_COLOR_YELLOW #define BLOOD_COLOR_BLUE (BYTE)211 // custom colors
#define BLOOD_COLOR_PINK (BYTE)147
#define BLOOD_COLOR_WHITE (BYTE)11
#define BLOOD_COLOR_ORANGE (BYTE)231
#define BLOOD_COLOR_BLACK (BYTE)49 // not 100% accurate but close enough
#define BLOOD_COLOR_GREEN (BYTE)181 // ^
typedef enum typedef enum
{ {

View File

@@ -635,7 +635,7 @@ void CMVoltigore::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.voltigoreHealth; pev->health = gSkillData.voltigoreHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )
@@ -1143,7 +1143,7 @@ void CMBabyVoltigore::Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->effects = 0; pev->effects = 0;
pev->health = gSkillData.babyVoltigoreHealth; pev->health = gSkillData.babyVoltigoreHealth;
m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.2;// indicates the width of this monster's forward view cone ( as a dotproduct result )

View File

@@ -241,7 +241,7 @@ void CMZombie :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_GREEN; m_bloodColor = !m_bloodColor ? BLOOD_COLOR_YELLOW : m_bloodColor;
pev->health = gSkillData.zombieHealth; pev->health = gSkillData.zombieHealth;
pev->view_ofs = VEC_VIEW;// position of the eyes relative to monster's origin. pev->view_ofs = VEC_VIEW;// position of the eyes relative to monster's origin.
m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result )