*** empty log message ***

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1752 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Magnus 2006-01-01 21:33:21 +00:00
parent 4a0c9a0e79
commit a80a951e94
17 changed files with 2327 additions and 4051 deletions

View File

@ -7,6 +7,7 @@ void() player_stand1;
void (vector org) spawn_tfog; void (vector org) spawn_tfog;
void (vector org, entity death_owner) spawn_tdeath; void (vector org, entity death_owner) spawn_tdeath;
void(float slot) WeaponAmmo; void(float slot) WeaponAmmo;
void() Identify;
float modelindex_dead, modelindex_sneak, modelindex_prone, modelindex_eyes, modelindex_player, modelindex_gone; float modelindex_dead, modelindex_sneak, modelindex_prone, modelindex_eyes, modelindex_player, modelindex_gone;
@ -331,19 +332,12 @@ entity() SelectSpawnPoint =
if (spot) if (spot)
return spot; return spot;
ent1 = "info_player_start"; if (coop == 1)
ent1 = "info_player_coop";
spot = find (world, classname, "info_player_start"); else
if (spot)
cooperate = 1;
spot = find (world, classname, "spawn3");
if (spot)
ent1 = "spawn3"; ent1 = "spawn3";
if (spot) if (ent1 == "spawn3")
{ {
if (self.team == 1) if (self.team == 1)
ent1 = "spawn1"; ent1 = "spawn1";
@ -488,7 +482,6 @@ void() PutClientInServer =
self.classname = "player"; self.classname = "player";
self.health = 100; self.health = 100;
self.takedamage = DAMAGE_AIM; self.takedamage = DAMAGE_AIM;
self.solid = SOLID_SLIDEBOX;
self.movetype = MOVETYPE_WALK; self.movetype = MOVETYPE_WALK;
self.show_hostile = 0; self.show_hostile = 0;
self.max_health = 100; self.max_health = 100;
@ -503,6 +496,8 @@ void() PutClientInServer =
self.effects = 0; self.effects = 0;
self.invincible_time = 0; self.invincible_time = 0;
self.active = 1; self.active = 1;
self.solid = SOLID_NOT;
self.materialize = 200;
DecodeLevelParms (); DecodeLevelParms ();
@ -512,7 +507,7 @@ void() PutClientInServer =
self.th_pain = player_pain; self.th_pain = player_pain;
self.th_die = PlayerDie; self.th_die = PlayerDie;
self.slot1 = 17; self.slot1 = 17;
self.slot2 = 19; self.armor = 2;
self.current_slot = 1; self.current_slot = 1;
WeaponAmmo(1); WeaponAmmo(1);
WeaponAmmo(2); WeaponAmmo(2);
@ -833,7 +828,7 @@ void() PlayerJump =
self.button2 = 0; self.button2 = 0;
// player jumping sound // player jumping sound
sound (self, CHAN_BODY, "player/plyrjmp8.wav", 1, ATTN_NORM); sound (self, CHAN_BODY, "player/ax1.wav", 1, ATTN_NORM);
}; };
@ -952,6 +947,89 @@ void() CheckWaterJump =
} }
}; };
void () SpeedControl =
{
self.maxspeed = 200;
if (self.position == 1)
self.maxspeed = self.maxspeed * 0.50;
if (self.position == 2)
self.maxspeed = self.maxspeed * 0.25;
if (self.currentmenu != "none")
self.maxspeed = 0;
};
void() ArmorCheck =
{
local float type;
local float bit;
local float value;
//Armor
if (self.armor == 1)
type = 0.20;
if (self.armor == 2)
type = 0.30;
if (self.armor == 3)
type = 0.35;
if (self.armor == 4)
type = 0.35;
if (self.armor == 5)
type = 0.40;
if (self.armor == 6)
type = 0.45;
if (self.armor == 7)
type = 0.10;
if (self.armor == 8)
type = 0.50;
if (self.armor <= 3)
self.items = (self.items - (self.items & ((IT_ARMOR1 | IT_ARMOR2) | IT_ARMOR3)) + IT_ARMOR1);
else if (self.armor <= 6)
self.items = (self.items - (self.items & ((IT_ARMOR1 | IT_ARMOR2) | IT_ARMOR3)) + IT_ARMOR1);
else
self.items = (self.items - (self.items & ((IT_ARMOR1 | IT_ARMOR2) | IT_ARMOR3)) + IT_ARMOR1);
if (self.armor == 1)
self.armornoise = "misc/thud.wav";
if (self.armor == 2)
self.armornoise = "misc/thud.wav";
if (self.armor == 3)
self.armornoise = "misc/thud.wav";
if (self.armor == 4)
self.armornoise = "weapons/ric1.wav";
if (self.armor == 5)
self.armornoise = "misc/thud.wav";
if (self.armor == 6)
self.armornoise = "misc/thud.wav";
if (self.armor == 7)
self.armornoise = "misc/laserdef.wav";
if (self.armor == 8)
self.armornoise = "weapons/ric1.wav";
self.armorvalue = type * 100;
self.armortype = type;
};
void () WeightControl =
{
GetArmorWeight();
GetWeaponWeight(self, 1);
GetWeaponWeight(self, 2);
if (self.class == 1)
self.max_weight = 20;
if (self.class == 2)
self.max_weight = 20;
if (self.class == 3)
self.max_weight = 30;
if (self.class == 4)
self.max_weight = 15;
};
void () PositionControl = void () PositionControl =
{ {
local string img; local string img;
@ -1002,6 +1080,35 @@ void() PlayerPreThink =
makevectors (self.v_angle); // is this still used makevectors (self.v_angle); // is this still used
if (self.materialize > 0)
{
self.materialize = self.materialize - 1;
if (self.materialize <= 0)
{
if (walkmove(0, 0))
{
self.solid = SOLID_SLIDEBOX;
//bprint(2, "turning solid\n");
}
else
{
self.materialize = 50;
//bprint(2, "stuck in object, returning non-solid\n");
}
}
}
if (self.team == 0 && self.currentmenu == "none")
{
self.currentmenu = "select_team";
DisplayMenu ();
}
else if (self.class == 0 && self.currentmenu == "none")
{
self.currentmenu = "select_skill";
DisplayMenu ();
}
self.recoil = self.recoil - 0.2; self.recoil = self.recoil - 0.2;
@ -1013,7 +1120,11 @@ void() PlayerPreThink =
if (self.cycle1 < time) if (self.cycle1 < time)
{ {
Identify();
PositionControl(); PositionControl();
SpeedControl();
WeightControl();
ArmorCheck();
Crosshair(); Crosshair();
if (self.currentmenu != "none") if (self.currentmenu != "none")
DisplayMenu(); DisplayMenu();
@ -1026,7 +1137,37 @@ void() PlayerPreThink =
if (self.cycle2 < time) if (self.cycle2 < time)
{ {
self.cycle2 = time + 2; if (self.equipment == 8)
r = 30;
else
r = 20;
if (self.sneak == 0)
{
if (self.ammo_cells < r)
self.ammo_cells = self.ammo_cells + 1;
if (self.ammo_cells > r)
self.ammo_cells = r;
}
if (self.sneak >= 1)
{
self.ammo_cells = self.ammo_cells = 1;
if (self.ammo_cells <= 0)
{
sprint(self, 2, "uncloaked.\n");
self.sneak = 0;
}
}
if (self.regen > 0)
{
self.health = self.health + 3;
self.regen = self.regen - 1;
}
self.cycle2 = time + 1;
} }
@ -1244,6 +1385,8 @@ void() CheckPowerups =
}; };
void() Footstep;
/* /*
================ ================
PlayerPostThink PlayerPostThink
@ -1263,7 +1406,7 @@ void() PlayerPostThink =
return; return;
// check to see if player landed and play landing sound // check to see if player landed and play landing sound
if ((self.jump_flag < -300) && (self.flags & FL_ONGROUND) ) if ((self.jump_flag < -50) && (self.flags & FL_ONGROUND) )
{ {
if (self.watertype == CONTENT_WATER) if (self.watertype == CONTENT_WATER)
sound (self, CHAN_BODY, "player/h2ojump.wav", 1, ATTN_NORM); sound (self, CHAN_BODY, "player/h2ojump.wav", 1, ATTN_NORM);
@ -1274,11 +1417,20 @@ void() PlayerPostThink =
sound (self, CHAN_VOICE, "player/land2.wav", 1, ATTN_NORM); sound (self, CHAN_VOICE, "player/land2.wav", 1, ATTN_NORM);
} }
else else
sound (self, CHAN_VOICE, "player/land.wav", 1, ATTN_NORM); Footstep();
} }
self.jump_flag = self.velocity_z; self.jump_flag = self.velocity_z;
if (self.rtime >= 1)
{
self.weaponframe = 3;
self.rtime = (self.rtime - 1);
if (self.perk == 3)
self.rtime = (self.rtime - 1);
}
CheckPowerups (); CheckPowerups ();
W_WeaponFrame (); W_WeaponFrame ();
@ -1299,10 +1451,28 @@ void() ClientConnect =
bprint (PRINT_HIGH, " entered the game\n"); bprint (PRINT_HIGH, " entered the game\n");
stuffcmd(self, "bind shift impulse 200\n"); stuffcmd(self, "v_damagecshift 1\n");
stuffcmd(self, "bind ctrl impulse 201\n");
stuffcmd(self, "alias duck impulse 200\n"); stuffcmd(self, "alias duck impulse 200\n");
stuffcmd(self, "alias prone impulse 201\n"); stuffcmd(self, "alias prone impulse 201\n");
stuffcmd(self, "alias reload impulse 50\n");
stuffcmd(self, "alias chem impulse 51\n");
stuffcmd(self, "alias buy impulse 52\n");
stuffcmd(self, "alias special impulse 53\n");
stuffcmd(self, "alias exit impulse 54\n");
stuffcmd(self, "alias drop impulse 55\n");
stuffcmd(self, "alias info impulse 56\n");
stuffcmd(self, "alias equip impulse 57\n");
stuffcmd(self, "bind c equip\n");
stuffcmd(self, "bind g drop\n");
stuffcmd(self, "bind e exit\n");
stuffcmd(self, "bind z special\n");
stuffcmd(self, "bind r reload\n");
stuffcmd(self, "bind x chem\n");
stuffcmd(self, "bind b buy\n");
stuffcmd(self, "bind q info\n");
stuffcmd(self, "bind shift prone\n");
stuffcmd(self, "bind ctrl duck\n");
stuffcmd(self, "exec fallout.cfg\n"); stuffcmd(self, "exec fallout.cfg\n");
@ -1350,6 +1520,68 @@ void(entity targ, entity attacker) ClientObituary =
attackerteam = infokey(attacker, "team"); attackerteam = infokey(attacker, "team");
targteam = infokey(targ, "team"); targteam = infokey(targ, "team");
if (targ.classname == "player")
{
if (coop == 1 && no_connect < 4)
no_connect = no_connect + 1;
if (no_connect > 4)
no_connect = 4;
}
if (attacker.classname == "player")
{
if (coop == 1 && no_connect < 4)
no_connect = no_connect + 1;
if (attacker == targ)
attacker.kills = attacker.kills - 1;
else if (attacker.team == targ.team)
attacker.kills = attacker.kills - 1;
else if (targ.classname == "player")
attacker.kills = attacker.kills + 1;
else if (targ.classname == "monster")
attacker.kills = attacker.kills + 1;
}
if (targ == attacker && targ.deathtype == "suicide")
{
bprint(2, attacker.netname);
bprint(2, " takes the easy way out\n");
return;
}
if (targ == attacker && targ.deathtype == "bleed")
{
bprint(2, attacker.netname);
bprint(2, " bled to death\n");
return;
}
if (targ != attacker && (targ.classname == "monster" || targ.classname == "player") && (attacker.classname == "monster" || attacker.classname == "player"))
{
bprint (PRINT_MEDIUM, "[ ");
if (attacker.critical == 3) //headshot
bprint (PRINT_MEDIUM, "X ");
if (attacker.critical == 777) //through the wall
bprint (PRINT_MEDIUM, "% ");
if (attacker.critical == 778) //wall headshot
bprint (PRINT_MEDIUM, "& ");
if (attacker.velocity_z != 0)
bprint (PRINT_MEDIUM, "@ ");
if (attacker.current_slot == 1 && attacker.mag1 == 0)
bprint (PRINT_MEDIUM, "! ");
bprint (PRINT_MEDIUM, "] ");
bprint(2, attacker.netname);
bprint(2, " >>> ");
bprint(2, targ.netname);
bprint(2, "\n");
return;
}
if (targ.classname == "player") if (targ.classname == "player")
{ {
@ -1631,3 +1863,112 @@ void(entity targ, entity attacker) ClientObituary =
} }
} }
}; };
void() Identify =
{
local string c1, c2, c3, c5, c6, c7;
makevectors (self.v_angle);
traceline (self.origin, (self.origin + (v_forward * 2000)), FALSE, self);
if (trace_ent.classname == "player" && self.currentmenu == "none" && self.team == trace_ent.team)
{
if (trace_ent.class == 2)
c1 = "medic\n";
if (trace_ent.class == 3)
c1 = "assassin\n";
if (trace_ent.class == 4)
c1 = "soldier\n";
if (trace_ent.class == 6)
c1 = "scientist\n";
c2 = ftos (trace_ent.health);
c3 = GetWeaponName (trace_ent, trace_ent.current_slot);
if (trace_ent.armor == 0)
c5 = "\nno armor";
if (trace_ent.armor == 1)
c5 = "\nlightly armored";
if (trace_ent.armor == 2)
c5 = "\nleather armor";
if (trace_ent.armor == 3)
c5 = "\nkevlar armor";
if (trace_ent.armor == 4)
c5 = "\nmetal armor";
if (trace_ent.armor == 5)
c5 = "\ncombat armor";
if (trace_ent.armor == 6)
c5 = "\nbrotherhood armor";
if (trace_ent.armor == 7)
c5 = "\nforce armor";
if (trace_ent.armor == 8)
c5 = "\nmetal armor mkii";
centerprint7 (self, trace_ent.netname, "\n", c1, c2, "\n", c3, c5);
}
if (trace_ent.classname == "robowolf" && self.currentmenu == "none")
{
c1 = "robo-fang\n";
c2 = "robot construct\nowned by ";
c3 = trace_ent.track.netname;
if (trace_ent.team == self.team)
c5 = "\nfriendly\n";
else
c5 = "\nhostile\n";
centerprint7 (self, trace_ent.netname, c1, c2, c3, c5, "", "");
}
if (trace_ent.classname == "station" && self.currentmenu == "none")
{
c1 = trace_ent.netname;
if (self.armor == 0)
c2 = "uncompleted";
else if (trace_ent.health >= trace_ent.max_health)
c2 = "online";
else if (trace_ent.health >= trace_ent.max_health*0.75)
c2 = "banged up";
else if (trace_ent.health >= trace_ent.max_health*0.50)
c2 = "damaged";
else
c2 = "almost destroyed";
c3 = trace_ent.track.netname;
centerprint7 (self, c1, "\nstationary bot", "\n", c2, "\n", "owned by ", c3);
}
if (trace_ent.classname == "monster" && self.currentmenu == "none")
{
c1 = "hostile";
c2 = "natural armor";
if (trace_ent.armor == 1)
c2 = "lightly armored";
if (trace_ent.armor == 2)
c2 = "leather armor";
if (trace_ent.armor == 3)
c2 = "kevlar armor";
if (trace_ent.armor == 4)
c2 = "metal armor";
if (trace_ent.armor == 5)
c2 = "combat armor";
if (trace_ent.armor == 6)
c2 = "brotherhood armor";
if (trace_ent.armor == 7)
c2 = "force armor";
if (trace_ent.armor == 8)
c2 = "metal armor mkii";
if (trace_ent.weapon == 1)
c3 = "rifle";
if (trace_ent.weapon == 2)
c3 = "pistol";
if (trace_ent.weapon == 3)
c3 = "shotgun";
if (trace_ent.weapon == 4)
c3 = "smg";
if (trace_ent.weapon >= 5)
c3 = "assault rifle";
centerprint7 (self, trace_ent.netname, "\n", c1, "\n", c2, "\n", c3);
}
};

View File

@ -105,12 +105,13 @@ The damage is coming from inflictor, but get mad at attacker
This should be the only function that ever reduces health. This should be the only function that ever reduces health.
============ ============
*/ */
void(entity targ, entity inflictor, entity attacker, float damage) T_Damage=
void(entity targ, entity inflictor, entity attacker, float damage) T_Damage =
{ {
local vector dir; local vector dir;
local entity oldself; local entity oldself;
local float save; local float save;
local float take; local float take, severity, helm;
local string s; local string s;
local string attackerteam, targteam; local string attackerteam, targteam;
@ -129,6 +130,56 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage=
else else
damage = damage * 4; damage = damage * 4;
if (attacker.critical == 3)//attacker scored a headshot/critical
{
if (attacker.critical == 3)
{
severity = 0 + random()*20;
if (attacker.perk == 7)
severity = severity + 4;
if (attacker.class == 3)
severity = severity + 2;
if (severity >= 19)
damage = (damage * 5);
else if (severity >= 14)
damage = (damage * 4);
else
damage = (damage * 3);
helm = targ.armortype;
if (targ.helmet == 0)
{
sound (targ, CHAN_BODY, "player/headshot.wav", 1, ATTN_NORM);
helm = 0;
}
if (targ.helmet == AS_STRAIGHT)
{
sound (targ, CHAN_BODY, "weapons/helmet.wav", 1, ATTN_NORM);
helm = 0.30;
}
if (targ.helmet == AS_SLIDING)
{
sound (targ, CHAN_BODY, "weapons/helmet.wav", 1, ATTN_NORM);
helm = 0.45;
}
damage = (damage - (damage * helm));
makevectors (targ.v_angle);
}
}
if (damage <= 0)
{
damage = 0;
sound (targ, CHAN_BODY, targ.armornoise, 1, ATTN_NORM);
}
if (random()*4<=1)
sound (targ, CHAN_BODY, targ.armornoise, 1, ATTN_NORM);
// save damage based on the target's armor level // save damage based on the target's armor level
save = ceil(targ.armortype*damage); save = ceil(targ.armortype*damage);
@ -139,7 +190,6 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage=
targ.items = targ.items - (targ.items & (IT_ARMOR1 | IT_ARMOR2 | IT_ARMOR3)); targ.items = targ.items - (targ.items & (IT_ARMOR1 | IT_ARMOR2 | IT_ARMOR3));
} }
targ.armorvalue = targ.armorvalue - save;
take = ceil(damage-save); take = ceil(damage-save);
// add to the damage total for clients, which will be sent as a single // add to the damage total for clients, which will be sent as a single
@ -154,7 +204,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage=
damage_inflictor = inflictor; damage_inflictor = inflictor;
/*
// figure momentum add // figure momentum add
if ( (inflictor != world) && (targ.movetype == MOVETYPE_WALK) ) if ( (inflictor != world) && (targ.movetype == MOVETYPE_WALK) )
{ {
@ -174,7 +224,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage=
if ( (rj > 1) & ((attacker.classname == "player") & (targ.classname == "player")) & ( attacker.netname == targ.netname)) if ( (rj > 1) & ((attacker.classname == "player") & (targ.classname == "player")) & ( attacker.netname == targ.netname))
targ.velocity = targ.velocity + dir * damage * rj; targ.velocity = targ.velocity + dir * damage * rj;
} }*/
@ -207,6 +257,7 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage=
return; return;
// do the damage // do the damage
take = take - targ.armor;
targ.health = targ.health - take; targ.health = targ.health - take;
if (targ.health <= 0) if (targ.health <= 0)

View File

@ -468,7 +468,7 @@ float fraglimit;
float deathmatch; float deathmatch;
float coop; float coop;
float rj = 1; float rj = 1;
float no_connect;
//================================================ //================================================
// //
@ -626,7 +626,12 @@ float red_armor;
.float ctimer; .float ctimer;
.float flash; .float flash;
.float oldteam; .float oldteam;
.float dead;
.float grenadetoggle;
.float kills;
.float materialize;
.string armornoise;
.string ammotype1; .string ammotype1;
.string ammotype2; .string ammotype2;
.string deathsound; .string deathsound;
@ -796,6 +801,7 @@ void(string s) changelevel = #70;
void(string var, string val) cvar_set = #72; // sets cvar.value void(string var, string val) cvar_set = #72; // sets cvar.value
void(entity client, string s) centerprint = #73; // sprint, but in middle void(entity client, string s) centerprint = #73; // sprint, but in middle
void (entity client, string x1, string x2, string x3, string x4, string x5, string x6, string x7) centerprint7 = #73;
void(vector pos, string samp, float vol, float atten) ambientsound = #74; void(vector pos, string samp, float vol, float atten) ambientsound = #74;

View File

@ -237,7 +237,7 @@ void () door_touch =
{ {
if (self.size_y <= 128 && self.size_x <= 128) if (self.size_y <= 128 && self.size_x <= 128)
{ {
if (other.class == 6) if (other.class == 4)
{ {
SpawnOpenDoor(self, other); SpawnOpenDoor(self, other);
return; return;

View File

@ -427,12 +427,14 @@ void() armor_touch =
void() item_armor1 = void() item_armor1 =
{ {
self.touch = armor_touch; self.touch = SUB_Null;
precache_model ("progs/armor.mdl"); self.solid = SOLID_BBOX;
setmodel (self, "progs/armor.mdl"); precache_model ("progs/enforcer.mdl");
setmodel (self, "progs/enforcer.mdl");
self.skin = 0; self.skin = 0;
setsize (self, '-16 -16 0', '16 16 56'); setsize (self, '-16 -16 -24', '16 16 32');
StartItem (); setorigin(self, self.origin + '0 0 24');
self.classname = "merchant";
}; };
/*QUAKED item_armor2 (0 .5 .8) (-16 -16 0) (16 16 32) /*QUAKED item_armor2 (0 .5 .8) (-16 -16 0) (16 16 32)

View File

@ -262,6 +262,7 @@ void() monster_knight =
self.th_melee = knight_atk1; self.th_melee = knight_atk1;
self.th_pain = knight_pain; self.th_pain = knight_pain;
self.th_die = knight_die; self.th_die = knight_die;
self.armornoise = "weapons/ric1.wav";
walkmonster_start (); walkmonster_start ();
}; };

View File

@ -175,5 +175,5 @@ string () de_dust =
string () EquipmentString = string () EquipmentString =
{ {
return ("+ special equipment +\npress your c key to activate!\n\n<>1 stealth boy <20>20c\n<>2 displacer cloak <20>20c\n<>3 security alarm <20>20c\n<>4 motion sensor <20>20c\n<>5 extra magazines <20>20c\n<>6 electronic tools mark ii <20>30c\n<>7 climbing gear <20>30c\n<>8 remote camera <20>40c\n<>9 enhanced battery <20>50c\n<>0 laser defense field <20>50c\n"); return ("+ special equipment +\npress your c key to activate!\n\n<>1 medic's bag <20>15c\n<>2 security alarm <20>15c\n<>3 remote camera <20>15c\n<>4 belt pouch <20>15c\n<>5 backpack <20>15c\n<>6 toolkit mark ii <20>15c\n<>7 climbing gear <20>15c\n<>8 enhanced battery <20>15c\n<>9 stealth boy <20>45c\n\n");
}; };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -880,6 +880,7 @@ void () monster_ogre =
self.health = 280; self.health = 280;
self.team = 3; self.team = 3;
self.armorvalue = 0; self.armorvalue = 0;
self.armornoise = "misc/thud.wav";
self.th_stand = ogre_stand1; self.th_stand = ogre_stand1;
self.th_walk = ogre_walk1; self.th_walk = ogre_walk1;
self.th_run = ogre_run1; self.th_run = ogre_run1;

View File

@ -18,32 +18,68 @@ void () Footstep =
local float r; local float r;
rand = random (); rand = random ();
if (self.sneak != 0)
return;
if (self.perk == 5) if (self.perk == 5)
r = 0.4; r = 0.5;
else
r = 0.8;
if ((rand < 0.25))
sound (self, CHAN_ITEM, "player/step1.wav", r, ATTN_NORM);
else else
{ {
if ((rand < 0.5)) r = 1;
{ if (random()*4<=1)
self.show_hostile = time + 0.1;
}
if (world.worldtype == 1 || world.worldtype == 2)
{
if ((rand < 0.25))
sound (self, CHAN_ITEM, "player/step1.wav", r, ATTN_NORM);
else if ((rand < 0.5))
sound (self, CHAN_ITEM, "player/step2.wav", r, ATTN_NORM); sound (self, CHAN_ITEM, "player/step2.wav", r, ATTN_NORM);
} else if ((rand < 0.75))
sound (self, CHAN_ITEM, "player/step3.wav", r, ATTN_NORM);
else else
{ sound (self, CHAN_ITEM, "player/step4.wav", r, ATTN_NORM);
if ((rand < 0.75)) }
{ if (world.worldtype == 0)
sound (self, CHAN_ITEM, "player/step3.wav", r, ATTN_NORM); {
} if ((rand < 0.25))
else sound (self, CHAN_ITEM, "player/step1a.wav", r, ATTN_NORM);
{ else if ((rand < 0.5))
sound (self, CHAN_ITEM, "player/step4.wav", r, ATTN_NORM); sound (self, CHAN_ITEM, "player/step2a.wav", r, ATTN_NORM);
} else if ((rand < 0.75))
} sound (self, CHAN_ITEM, "player/step3a.wav", r, ATTN_NORM);
else
sound (self, CHAN_ITEM, "player/step4a.wav", r, ATTN_NORM);
} }
}; };
float (entity guy) holding_melee =
{
if ((guy.current_slot == WEAPON_SHOTGUN))
{
if ((guy.slot1 <= TE_WIZSPIKE))
{
return (TRUE);
}
if ((guy.slot1 >= WEAPON_BIG))
{
return (FALSE);
}
}
if ((guy.current_slot == WEAPON_ROCKET))
{
if ((guy.slot2 <= TE_WIZSPIKE))
{
return (TRUE);
}
if ((guy.slot2 >= WEAPON_BIG))
{
return (FALSE);
}
}
};
void () player_crouch; void () player_crouch;
void () player_stand1 = [ 149, player_stand1 ] void () player_stand1 = [ 149, player_stand1 ]
@ -51,14 +87,14 @@ void () player_stand1 = [ 149, player_stand1 ]
if (self.rtime == 0) if (self.rtime == 0)
self.weaponframe = 0; self.weaponframe = 0;
if ((self.position == WEAPON_SHOTGUN)) if (self.position == 1)
{ {
player_crouch (); player_crouch ();
return; return;
} }
else else
{ {
if ((self.position == WEAPON_SHOTGUN)) if (self.position == 2)
{ {
player_lay (); player_lay ();
return; return;
@ -66,13 +102,13 @@ void () player_stand1 = [ 149, player_stand1 ]
} }
if ((self.velocity_x || self.velocity_y)) if ((self.velocity_x || self.velocity_y))
{ {
self.walkframe = 0; self.walkframe = MULTICAST_ALL;
player_run (); player_run ();
return; return;
} }
if ((self.walkframe >= MULTICAST_PVS_R)) if ((self.walkframe >= MULTICAST_PVS_R))
{ {
self.walkframe = 0; self.walkframe = MULTICAST_ALL;
} }
self.frame = (149 + self.walkframe); self.frame = (149 + self.walkframe);
self.walkframe = (self.walkframe + WEAPON_SHOTGUN); self.walkframe = (self.walkframe + WEAPON_SHOTGUN);
@ -83,39 +119,41 @@ void () player_crouch = [ 45, player_run ]
if (self.rtime == 0) if (self.rtime == 0)
self.weaponframe = 0; self.weaponframe = 0;
if ((!self.velocity_x && !self.velocity_y)) if (!self.velocity_x && !self.velocity_y)
{ {
self.frame = 45; self.frame = 45;
return; return;
} }
else else
{ {
if ((self.position == WEAPON_SHOTGUN)) if (self.position == 2)
{ {
player_lay (); player_lay ();
return; return;
} }
} }
self.frame = (36 + self.walkframe); self.frame = (36 + self.walkframe);
if (self.walkframe >= TE_TELEPORT) if ((self.walkframe >= TE_TELEPORT))
self.walkframe = 0; {
self.walkframe = (self.walkframe + 1); self.walkframe = MULTICAST_ALL;
}
self.walkframe = (self.walkframe + WEAPON_SHOTGUN);
}; };
void () player_climb = [ 20, player_run ] void () player_climb = [ 23, player_run ]
{ {
self.weaponframe = 0; self.weaponframe = 0;
if (((!self.velocity_x && !self.velocity_y) && !self.velocity_z)) if (self.velocity == '0 0 0')
{ {
self.frame = 25; self.frame = 25;
return; return;
} }
self.frame = (SVC_TEMPENTITY + self.walkframe); self.frame = (23 + self.walkframe);
if ((self.walkframe >= TE_LIGHTNINGBLOOD)) if ((self.walkframe >= 10))
{ {
self.walkframe = 0; self.walkframe = 0;
} }
self.walkframe = (self.walkframe + WEAPON_SHOTGUN); self.walkframe = (self.walkframe + 1);
}; };
void () player_run = [ 137, player_run ] void () player_run = [ 137, player_run ]
@ -125,7 +163,7 @@ void () player_run = [ 137, player_run ]
if (self.rtime == 0) if (self.rtime == 0)
self.weaponframe = 0; self.weaponframe = 0;
if (((((self.equipment == 7) && (self.equipment_state == WEAPON_SHOTGUN)) && (self.grab == WEAPON_SHOTGUN)) && !(self.flags & FL_ONGROUND))) if (self.equipment == 7 && self.equipment_state == 1 && self.grab == 1 && !(self.flags & FL_ONGROUND))
{ {
player_climb (); player_climb ();
return; return;
@ -135,42 +173,44 @@ void () player_run = [ 137, player_run ]
player_stand1 (); player_stand1 ();
return; return;
} }
if ((self.position == WEAPON_SHOTGUN)) if ((self.position == 1))
{ {
player_crouch (); player_crouch ();
return; return;
} }
else else
{ {
if (self.position == 1) if ((self.position == 2))
{ {
player_lay (); player_lay ();
return; return;
} }
} }
if ((((((self.walkframe == AS_MELEE) && (self.ghost == 0)) && (self.position == 0)) && (self.velocity_z == 0)) && (self.vehicle == 0))) if (self.walkframe == 1 && self.ghost == 0 && self.position == 0 && self.velocity_z == 0)
{
Footstep (); Footstep ();
}
if ((((((self.walkframe == 6) && (self.ghost == 0)) && (self.position == 0)) && (self.velocity_z == 0)) && (self.vehicle == 0))) if (self.walkframe == 4 && self.ghost == 0 && self.position == 0 && self.velocity_z == 0)
{
Footstep (); Footstep ();
}
if ((((((self.walkframe == TE_LIGHTNING3) && (self.ghost == 0)) && (self.position == 0)) && (self.velocity_z == 0)) && (self.vehicle == 0))) if (self.walkframe == 7 && self.ghost == 0 && self.position == 0 && self.velocity_z == 0)
{
Footstep (); Footstep ();
}
self.frame = (137 + self.walkframe); self.frame = (137 + self.walkframe);
if ((self.walkframe >= TE_LIGHTNING3)) if (self.walkframe >= 9)
{
self.walkframe = 0; self.walkframe = 0;
}
self.walkframe = (self.walkframe + WEAPON_SHOTGUN); self.walkframe = (self.walkframe + 1);
}; };
void () player_reload1 = [ 123, player_reload2 ] void () player_reload1 = [ 123, player_reload2 ]
{ {
sound (self, CHAN_WEAPON, "weapons/reload.wav", WEAPON_SHOTGUN, ATTN_NORM); if (self.current_slot == 1 && self.slot1 == 26)
sound (self, CHAN_WEAPON, "weapons/shell.wav", WEAPON_SHOTGUN, ATTN_NORM);
else if (self.current_slot == 2 && self.slot2 == 26)
sound (self, CHAN_WEAPON, "weapons/shell.wav", WEAPON_SHOTGUN, ATTN_NORM);
else
sound (self, CHAN_WEAPON, "misc/greload.wav", WEAPON_SHOTGUN, ATTN_NORM);
}; };
void () player_reload2 = [ 124, player_reload3 ] void () player_reload2 = [ 124, player_reload3 ]
@ -228,7 +268,7 @@ void () player_reload14 = [ 136, player_run ]
void () player_creload1 = [ 74, player_creload2 ] void () player_creload1 = [ 74, player_creload2 ]
{ {
sound (self, CHAN_WEAPON, "weapons/reload.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_WEAPON, "misc/greload.wav", WEAPON_SHOTGUN, ATTN_NORM);
}; };
void () player_creload2 = [ 75, player_creload3 ] void () player_creload2 = [ 75, player_creload3 ]
@ -432,6 +472,27 @@ void () player_jump9 = [ 48, player_run ]
{ {
}; };
void () player_single1_left = [ 88, player_single2_left ]
{
self.weaponframe = 4;
muzzleflash ();
};
void () player_single2_left = [ 89, player_run ]
{
self.weaponframe = 5;
};
void () player_single1s_left = [ 183, player_single2_s ]
{
self.weaponframe = 4;
muzzleflash ();
};
void () player_single2s_left = [ 184, player_run ]
{
self.weaponframe = 5;
};
void () player_singlea = [ 88, player_run ] void () player_singlea = [ 88, player_run ]
{ {
@ -516,152 +577,151 @@ void () player_pull5 = [ 157, player_pull6 ]
void () player_pull6 = [ 156, player_pull7 ] void () player_pull6 = [ 156, player_pull7 ]
{ {
self.weaponframe = 6; self.weaponframe = TE_LIGHTNING2;
sound (self, CHAN_WEAPON, "weapons/gpull.wav", WEAPON_SHOTGUN, ATTN_IDLE); sound (self, CHAN_WEAPON, "weapons/gpull.wav", WEAPON_SHOTGUN, ATTN_IDLE);
}; };
void () player_pull7 = [ 155, player_pull8 ] void () player_pull7 = [ 155, player_pull8 ]
{ {
self.weaponframe = 7; self.weaponframe = TE_WIZSPIKE;
}; };
void () player_pull8 = [ 155, player_pull9 ] void () player_pull8 = [ 155, player_pull9 ]
{ {
self.weaponframe = WEAPON_BIG; self.weaponframe = 8;
self.grenade_hold = WEAPON_SHOTGUN; self.grenadetoggle = 1;
}; };
void () player_pull9 = [ 155, player_pull10 ] void () player_pull9 = [ 155, player_pull10 ]
{ {
self.weaponframe = TE_LIGHTNING3; self.weaponframe = 9;
}; };
void () player_pull10 = [ 155, player_pull11 ] void () player_pull10 = [ 155, player_pull11 ]
{ {
self.weaponframe = TE_LAVASPLASH; self.weaponframe = 10;
}; };
void () player_pull11 = [ 155, player_run ] void () player_pull11 = [ 155, player_run ]
{ {
self.weaponframe = TE_TELEPORT; self.weaponframe = 11;
}; };
void () player_throw1 = [ 155, player_throw2 ] void () player_throw1 = [ 155, player_throw2 ]
{ {
self.weaponframe = TE_BLOOD; self.weaponframe = 12;
if (((random () * WEAPON_BIG) <= WEAPON_SPIKES)) if (((random () * WEAPON_BIG) <= WEAPON_SPIKES))
{
sound (self, CHAN_VOICE, "radio/grenade.wav", 0.7, ATTN_NORM); sound (self, CHAN_VOICE, "radio/grenade.wav", 0.7, ATTN_NORM);
}
else else
{
sound (self, CHAN_VOICE, "radio/lookout.wav", 0.7, ATTN_NORM); sound (self, CHAN_VOICE, "radio/lookout.wav", 0.7, ATTN_NORM);
}
}; };
void () player_throw2 = [ 156, player_throw3 ] void () player_throw2 = [ 156, player_throw3 ]
{ {
self.weaponframe = TE_LIGHTNINGBLOOD; self.weaponframe = TE_LIGHTNINGBLOOD;
FireHandGrenade (); //FireHandGrenade ();
}; };
void () player_throw3 = [ 157, player_throw4 ] void () player_throw3 = [ 157, player_throw4 ]
{ {
self.weaponframe = 14; self.weaponframe = IDLE2A;
}; };
void () player_throw4 = [ 158, player_throw5 ] void () player_throw4 = [ 158, player_throw5 ]
{ {
self.weaponframe = 15; self.weaponframe = IDLE3A;
}; };
void () player_throw5 = [ 157, player_throw6 ] void () player_throw5 = [ 157, player_throw6 ]
{ {
self.weaponframe = 16; self.weaponframe = EF_FLAG1;
}; };
void () player_throw6 = [ 156, player_throw7 ] void () player_throw6 = [ 156, player_throw7 ]
{ {
self.weaponframe = 17; self.weaponframe = IDLE5A;
}; };
void () player_throw7 = [ 155, player_throw8 ] void () player_throw7 = [ 155, player_throw8 ]
{ {
self.weaponframe = 18; self.weaponframe = IDLE6A;
if (self.handgrenade <= 0) if (self.handgrenade <= 0)
stuffcmd (self, "impulse 1\n"); stuffcmd (self, "impulse 1\n");
else else
stuffcmd (self, "impulse 3\n"); stuffcmd (self, "impulse 3\n");
}; };
void () player_throw8 = [ 159, player_throw9 ] void () player_throw8 = [ 159, player_throw9 ]
{ {
self.weaponframe = 19; self.weaponframe = IDLE7A;
}; };
void () player_throw9 = [ 160, player_throw10 ] void () player_throw9 = [ 160, player_throw10 ]
{ {
self.weaponframe = 20; self.weaponframe = IDLE8A;
}; };
void () player_throw10 = [ 161, player_throw11 ] void () player_throw10 = [ 161, player_throw11 ]
{ {
self.weaponframe = 21; self.weaponframe = IDLE9A;
}; };
void () player_throw11 = [ 162, player_run ] void () player_throw11 = [ 162, player_run ]
{ {
self.weaponframe = 22; self.weaponframe = IDLE10A;
}; };
void () player_shotty1b = [ 183, player_shotty2b ] void () player_shotty1b = [ 183, player_shotty2b ]
{ {
self.weaponframe = 1; self.weaponframe = WEAPON_SHOTGUN;
}; };
void () player_shotty2b = [ 183, player_shotty3b ] void () player_shotty2b = [ 183, player_shotty3b ]
{ {
self.weaponframe = 2; self.weaponframe = WEAPON_ROCKET;
}; };
void () player_shotty3b = [ 184, player_shotty4b ] void () player_shotty3b = [ 184, player_shotty4b ]
{ {
self.weaponframe = 3; self.weaponframe = AS_MELEE;
}; };
void () player_shotty4b = [ 184, player_run ] void () player_shotty4b = [ 184, player_run ]
{ {
self.weaponframe = 4; self.weaponframe = WEAPON_ROCKET;
}; };
void () player_knife1 = [ 155, player_knife2 ] void () player_knife1 = [ 155, player_knife2 ]
{ {
self.weaponframe = 1; self.weaponframe = WEAPON_SHOTGUN;
}; };
void () player_knife2 = [ 156, player_knife3 ] void () player_knife2 = [ 156, player_knife3 ]
{ {
self.weaponframe = 2; self.weaponframe = WEAPON_ROCKET;
FireMelee ();
}; };
void () player_knife3 = [ 157, player_run ] void () player_knife3 = [ 157, player_run ]
{ {
self.weaponframe = 3; self.weaponframe = AS_MELEE;
}; };
void () player_knifea = [ 155, player_knifeb ] void () player_knifea = [ 155, player_knifeb ]
{ {
self.weaponframe = 4; self.weaponframe = WEAPON_SPIKES;
}; };
void () player_knifeb = [ 156, player_knifec ] void () player_knifeb = [ 156, player_knifec ]
{ {
self.weaponframe = 5; self.weaponframe = MULTICAST_PVS_R;
FireMelee ();
}; };
void () player_knifec = [ 157, player_run ] void () player_knifec = [ 157, player_run ]
{ {
self.weaponframe = 6; self.weaponframe = TE_LIGHTNING2;
}; };
void () player_nail1 = [ 88, player_nail2 ] void () player_nail1 = [ 88, player_nail2 ]
@ -743,7 +803,7 @@ void () player_auto4 = [ 89, player_auto3 ]
player_run (); player_run ();
return; return;
} }
self.weaponframe = 0; self.weaponframe = MULTICAST_ALL;
}; };
void (float num_bubbles) DeathBubbles; void (float num_bubbles) DeathBubbles;
@ -751,9 +811,18 @@ void () PainSound =
{ {
local float rs; local float rs;
if (self.health <= 0) if ((self.equipment == 8))
return; return;
if ((self.health <= 0))
return;
if (self.air_finished < time)
{
sound (self, CHAN_VOICE, "player/drown2.wav", 1, ATTN_NORM);
return;
}
if ((damage_attacker.classname == "teledeath")) if ((damage_attacker.classname == "teledeath"))
{ {
sound (self, CHAN_VOICE, "player/teledth1.wav", WEAPON_SHOTGUN, ATTN_NONE); sound (self, CHAN_VOICE, "player/teledth1.wav", WEAPON_SHOTGUN, ATTN_NONE);
@ -768,30 +837,22 @@ void () PainSound =
if ((self.watertype == CONTENT_SLIME)) if ((self.watertype == CONTENT_SLIME))
{ {
if ((random () > 0.5)) if ((random () > 0.5))
{
sound (self, CHAN_VOICE, "player/slimbrn2.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_VOICE, "player/slimbrn2.wav", WEAPON_SHOTGUN, ATTN_NORM);
}
else else
{
sound (self, CHAN_VOICE, "player/lburn2.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_VOICE, "player/lburn2.wav", WEAPON_SHOTGUN, ATTN_NORM);
}
return; return;
} }
if ((self.watertype == CONTENT_LAVA)) if ((self.watertype == CONTENT_LAVA))
{ {
if ((random () > 0.5)) if ((random () > 0.5))
{
sound (self, CHAN_VOICE, "player/lburn1.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_VOICE, "player/lburn1.wav", WEAPON_SHOTGUN, ATTN_NORM);
}
else else
{
sound (self, CHAN_VOICE, "player/lburn2.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_VOICE, "player/lburn2.wav", WEAPON_SHOTGUN, ATTN_NORM);
}
return; return;
} }
if ((self.pain_finished > time)) if ((self.pain_finished > time))
{ {
self.axhitme = 0; self.axhitme = MULTICAST_ALL;
return; return;
} }
self.pain_finished = (time + 1.5); self.pain_finished = (time + 1.5);
@ -832,26 +893,27 @@ void () player_pain6 = [ 19, player_run ]
void () player_pain = void () player_pain =
{ {
if (self.pain_finished > time)
{
sound (self, CHAN_VOICE, self.armornoise, 1, ATTN_NORM);
return;
}
self.pain_finished = time + 0.5;
if (self.weaponframe) if (self.weaponframe)
{
return; return;
}
if (((random () * WEAPON_BIG) < WEAPON_SPIKES)) if (random () * WEAPON_BIG < WEAPON_SPIKES)
{
sound (self, CHAN_VOICE, "player/paina.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_VOICE, "player/paina.wav", WEAPON_SHOTGUN, ATTN_NORM);
}
else else
{
sound (self, CHAN_VOICE, "player/painb.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_VOICE, "player/painb.wav", WEAPON_SHOTGUN, ATTN_NORM);
} if (random () * WEAPON_BIG < TE_LIGHTNING2)
if (((random () * WEAPON_BIG) < 6))
{
sound (self, CHAN_BODY, "player/hit1.wav", WEAPON_SHOTGUN, ATTN_NORM); sound (self, CHAN_BODY, "player/hit1.wav", WEAPON_SHOTGUN, ATTN_NORM);
} if (self.invisible_finished > time)
if ((self.invisible_finished > time))
{
return; return;
}
self.maxspeed = (self.maxspeed * 0.6);
player_pain1 (); player_pain1 ();
}; };
void () player_dieb1; void () player_dieb1;
@ -874,12 +936,12 @@ void () DeathBubblesSpawn =
bubble.nextthink = (time + 0.5); bubble.nextthink = (time + 0.5);
bubble.think = bubble_bob; bubble.think = bubble_bob;
bubble.classname = "bubble"; bubble.classname = "bubble";
bubble.frame = 0; bubble.frame = MULTICAST_ALL;
bubble.cnt = 0; bubble.cnt = MULTICAST_ALL;
setsize (bubble, '-8 -8 -8', '8 8 8'); setsize (bubble, '-8 -8 -8', '8 8 8');
self.nextthink = (time + 0.1); self.nextthink = (time + 0.1);
self.think = DeathBubblesSpawn; self.think = DeathBubblesSpawn;
self.air_finished = (self.air_finished + WEAPON_SHOTGUN); self.air_finished = (self.air_finished + 1);
if ((self.air_finished >= self.bubble_count)) if ((self.air_finished >= self.bubble_count))
{ {
remove (self); remove (self);
@ -896,7 +958,7 @@ void (float num_bubbles) DeathBubbles =
bubble_spawner.solid = SOLID_NOT; bubble_spawner.solid = SOLID_NOT;
bubble_spawner.nextthink = (time + 0.1); bubble_spawner.nextthink = (time + 0.1);
bubble_spawner.think = DeathBubblesSpawn; bubble_spawner.think = DeathBubblesSpawn;
bubble_spawner.air_finished = 0; bubble_spawner.air_finished = MULTICAST_ALL;
bubble_spawner.owner = self; bubble_spawner.owner = self;
bubble_spawner.bubble_count = num_bubbles; bubble_spawner.bubble_count = num_bubbles;
return; return;
@ -907,6 +969,10 @@ void () DeathSound =
local float rs; local float rs;
local float r; local float r;
if ((self.equipment == 8))
{
return;
}
if ((self.waterlevel == AS_MELEE)) if ((self.waterlevel == AS_MELEE))
{ {
sound (self, CHAN_VOICE, "player/drown2.wav", WEAPON_SHOTGUN, ATTN_NONE); sound (self, CHAN_VOICE, "player/drown2.wav", WEAPON_SHOTGUN, ATTN_NONE);
@ -914,59 +980,14 @@ void () DeathSound =
} }
r = random (); r = random ();
self.noise = "player/agdie4.wav"; self.noise = "player/agdie4.wav";
if ((self.deathsound == ""))
{
if ((r < 0.3))
{
self.noise = "player/agdie1.wav";
}
else
{
if ((r < 0.6))
{
self.noise = "player/agdie3.wav";
}
else
{
self.noise = "player/agdie4.wav";
}
}
}
if ((self.deathsound == ""))
{
if ((r < 0.5))
{
self.noise = "player/teledth1.wav";
}
else
{
self.noise = "player/agdie4.wav";
}
}
if ((self.deathsound ==""))
{
if ((r < 0.3))
{
self.noise = "player/udeath.wav";
}
else
{
if ((r < 0.6))
{
self.noise = "player/agdie3.wav";
}
else
{
self.noise = "player/gib1.wav";
}
}
}
sound (self, CHAN_VOICE, self.noise, 0.9, ATTN_NORM); sound (self, CHAN_VOICE, self.noise, 0.9, ATTN_NORM);
return; return;
}; };
void () PlayerDead = void () PlayerDead =
{ {
setmodel(self, "progs/dead.mdl");
setsize(self, '-16 -16 -24', '16 16 0');
self.nextthink = CONTENT_EMPTY; self.nextthink = CONTENT_EMPTY;
self.deadflag = DEAD_DEAD; self.deadflag = DEAD_DEAD;
}; };
@ -1068,8 +1089,8 @@ void () SmokeBob2 =
{ {
remove (self); remove (self);
} }
rnd1 = (self.velocity_x + (-10 + (random () * 20))); rnd1 = (self.velocity_x + (-10 + (random () * IDLE8A)));
rnd2 = (self.velocity_y + (-10 + (random () * 20))); rnd2 = (self.velocity_y + (-10 + (random () * IDLE8A)));
rnd3 = ((self.velocity_z + TE_LAVASPLASH) + (random () * TE_LAVASPLASH)); rnd3 = ((self.velocity_z + TE_LAVASPLASH) + (random () * TE_LAVASPLASH));
if ((rnd1 > MULTICAST_PVS_R)) if ((rnd1 > MULTICAST_PVS_R))
{ {
@ -1089,11 +1110,11 @@ void () SmokeBob2 =
} }
if ((rnd3 < TE_LAVASPLASH)) if ((rnd3 < TE_LAVASPLASH))
{ {
rnd3 = 15; rnd3 = IDLE3A;
} }
if ((rnd3 > SVC_INTERMISSION)) if ((rnd3 > SVC_INTERMISSION))
{ {
rnd3 = 25; rnd3 = DRAW3;
} }
self.velocity_x = rnd1; self.velocity_x = rnd1;
self.velocity_y = rnd2; self.velocity_y = rnd2;
@ -1105,15 +1126,11 @@ void () SmokeBob2 =
void (string gibname, float dm) ThrowPlayerHead = void (string gibname, float dm) ThrowPlayerHead =
{ {
setmodel (self, gibname); setmodel (self, gibname);
self.frame = 0; self.frame = MULTICAST_ALL;
if ((self.team == WEAPON_ROCKET)) if (self.team == 1)
{
self.skin = 0; self.skin = 0;
} if (self.team == 2)
if ((self.team == WEAPON_SHOTGUN)) self.skin = 1;
{
self.skin = WEAPON_SHOTGUN;
}
self.nextthink = (time + WEAPON_SHOTGUN); self.nextthink = (time + WEAPON_SHOTGUN);
self.think = SUB_Null; self.think = SUB_Null;
self.movetype = MOVETYPE_BOUNCE; self.movetype = MOVETYPE_BOUNCE;
@ -1121,7 +1138,7 @@ void (string gibname, float dm) ThrowPlayerHead =
self.view_ofs = '0 0 8'; self.view_ofs = '0 0 8';
setsize (self, '-8 -8 -8', '8 8 8'); setsize (self, '-8 -8 -8', '8 8 8');
self.velocity = VelocityForDamage (dm); self.velocity = VelocityForDamage (dm);
self.origin_z = (self.origin_z + 24); self.origin_z = (self.origin_z + DRAW2);
self.flags = (self.flags - (self.flags & FL_ONGROUND)); self.flags = (self.flags - (self.flags & FL_ONGROUND));
self.avelocity = (crandom () * '0 600 0'); self.avelocity = (crandom () * '0 600 0');
}; };
@ -1146,79 +1163,27 @@ void () PlayerDie =
local float i; local float i;
local float r; local float r;
self.solid = 0; //self.solid = SOLID_NOT;
self.dead = self.dead + 1;
if ((self.deathtype == "fall")) if ((self.deathtype == "fall"))
{ {
sound (self, CHAN_VOICE, "player/agdie4.wav", WEAPON_SHOTGUN, ATTN_NONE); sound (self, CHAN_VOICE, "player/agdie4.wav", WEAPON_SHOTGUN, ATTN_NONE);
self.deathsound = "";
self.deathtype = ""; self.deathtype = "";
} }
if ((self.waterlevel == AS_MELEE)) if ((self.waterlevel == AS_MELEE))
{ {
DeathBubbles (20); DeathBubbles (IDLE8A);
sound (self, CHAN_VOICE, "player/drown2.wav", WEAPON_SHOTGUN, ATTN_NONE); sound (self, CHAN_VOICE, "player/drown2.wav", WEAPON_SHOTGUN, ATTN_NONE);
self.deathsound = "";
} }
r = random (); r = random ();
self.noise = "player/agdie2.wav"; self.noise = "player/agdie2.wav";
if ((self.deathsound == ""))
{ sound (self, CHAN_VOICE, self.noise, 1, ATTN_NORM);
if ((r < 0.3))
{
self.noise = "player/agdie1.wav";
}
else
{
if ((r < 0.6))
{
self.noise = "player/agdie3.wav";
}
else
{
self.noise = "player/agdie4.wav";
}
}
}
if ((self.deathsound == ""))
{
if ((r < 0.5))
{
self.noise = "player/teledth1.wav";
}
else
{
self.noise = "player/agdie4.wav";
}
}
if ((self.deathsound == ""))
{
if ((r < 0.3))
{
self.noise = "player/udeath.wav";
}
else
{
if ((r < 0.6))
{
self.noise = "player/agdie3.wav";
}
else
{
self.noise = "player/teledth1.wav";
}
}
}
if ((self.deathsound == ""))
{
self.noise = "player/vaporized.wav";
}
sound (self, CHAN_VOICE, self.noise, WEAPON_SHOTGUN, ATTN_NORM);
self.items = (self.items - (self.items & IT_INVISIBILITY)); self.items = (self.items - (self.items & IT_INVISIBILITY));
self.invisible_finished = 0; self.invisible_finished = MULTICAST_ALL;
self.invincible_finished = 0; self.invincible_finished = MULTICAST_ALL;
self.super_damage_finished = 0; self.super_damage_finished = MULTICAST_ALL;
self.radsuit_finished = 0; self.radsuit_finished = MULTICAST_ALL;
self.modelindex = modelindex_player; self.modelindex = modelindex_player;
self.weaponmodel = ""; self.weaponmodel = "";
self.view_ofs = '0 0 -8'; self.view_ofs = '0 0 -8';
@ -1233,21 +1198,15 @@ void () PlayerDie =
self.angles_y = 0; self.angles_y = 0;
self.angles_z = 0; self.angles_z = 0;
i = (WEAPON_SHOTGUN + floor ((random () * WEAPON_ROCKET))); i = (WEAPON_SHOTGUN + floor ((random () * WEAPON_ROCKET)));
self.angles_z = 0; self.angles_z = MULTICAST_ALL;
if (((self.position == WEAPON_SHOTGUN) || (self.position == WEAPON_SHOTGUN))) if (self.position == 1 || self.position == 2)
{
player_diec1 (); player_diec1 ();
}
else else
{ {
if ((self.health <= -40)) if (self.health <= -40)
{
player_dieb1 (); player_dieb1 ();
}
else else
{
player_diea1 (); player_diea1 ();
}
} }
}; };

View File

@ -1,4 +1,4 @@
../qwprogs.dat ../quake/turn/qwprogs.dat
defs.qc defs.qc
subs.qc subs.qc
@ -7,6 +7,7 @@ fight.qc
ai.qc ai.qc
combat.qc combat.qc
items.qc items.qc
name.qc
menus.qc menus.qc
weapons.qc weapons.qc
world.qc world.qc
@ -29,4 +30,4 @@ wizard.qc
dog.qc dog.qc
ogre.qc ogre.qc
misc.qc misc.qc
modbuy.qc mod_buy.qc

View File

@ -1340,6 +1340,7 @@ void () monster_army =
self.th_pain = enf_pain; self.th_pain = enf_pain;
self.th_die = enf_die; self.th_die = enf_die;
self.th_missile = enf_atk1; self.th_missile = enf_atk1;
self.armornoise = "misc/thud.wav";
walkmonster_start(); walkmonster_start();
if (random()*4 <= 2) if (random()*4 <= 2)
@ -1375,6 +1376,7 @@ void () monster_army =
self.team = 3; self.team = 3;
self.armor = 2; self.armor = 2;
self.armortype = 0.2; self.armortype = 0.2;
self.armornoise = "misc/thud.wav";
self.th_stand = army_stand1; self.th_stand = army_stand1;
self.th_walk = army_walk1; self.th_walk = army_walk1;
self.th_run = army_run1; self.th_run = army_run1;

View File

@ -410,7 +410,11 @@ local vector org;
spawn_tfog (org); spawn_tfog (org);
spawn_tdeath(t.origin, other); spawn_tdeath(t.origin, other);
if (self.classname == "player")
{
self.solid = SOLID_NOT;
self.materialize = 200;
}
// move the player and lock him down for a little while // move the player and lock him down for a little while
if (!other.health) if (!other.health)
{ {

File diff suppressed because it is too large Load Diff

View File

@ -398,6 +398,7 @@ void() monster_wizard =
self.th_missile = Wiz_Missile; self.th_missile = Wiz_Missile;
self.th_pain = Wiz_Pain; self.th_pain = Wiz_Pain;
self.th_die = wiz_die; self.th_die = wiz_die;
self.armornoise = "misc/thud.wav";
flymonster_start (); flymonster_start ();
}; };

View File

@ -387,17 +387,113 @@ void() worldspawn =
precache_model ("progs/v_fist.mdl"); precache_model ("progs/v_fist.mdl");
precache_model ("progs/v_knife.mdl"); precache_model ("progs/v_knife.mdl");
precache_model ("progs/v_1911.mdl"); precache_model ("progs/v_1911.mdl");
precache_model ("progs/v_mp5.mdl");
precache_model ("progs/v_ak47.mdl"); precache_model ("progs/v_ak47.mdl");
precache_model ("progs/v_mp7.mdl");
precache_model ("progs/v_rangem.mdl");
precache_model ("progs/v_pipe.mdl");
precache_model ("progs/v_shotgun.mdl");
precache_model ("progs/v_double.mdl");
precache_model ("progs/v_mp9.mdl");
precache_model ("progs/v_sa80.mdl");
precache_model ("progs/v_deagle.mdl");
precache_model ("progs/v_alien.mdl");
precache_model ("progs/v_srifle.mdl");
precache_model ("progs/v_night.mdl"); precache_model ("progs/v_night.mdl");
precache_model ("progs/sneak.mdl"); precache_model ("progs/sneak.mdl");
precache_model ("progs/dead.mdl"); precache_model ("progs/dead.mdl");
precache_model ("progs/hbar.spr");
precache_model ("progs/w_knife.mdl");
precache_model ("progs/w_pipe.mdl");
precache_model ("progs/w_shotgun.mdl");
precache_model ("progs/w_axe.mdl");
precache_model ("progs/w_1911.mdl");
precache_model ("progs/w_deagle.mdl");
precache_model ("progs/w_alien.mdl");
precache_model ("progs/w_mp7.mdl");
precache_model ("progs/w_mp9.mdl");
precache_model ("progs/w_jackhammer.mdl");
precache_model ("progs/w_rangem.mdl");
precache_model ("progs/w_sa80.mdl");
precache_model ("progs/w_ak47.mdl");
precache_model ("progs/w_night.mdl");
precache_model ("progs/w_srifle.mdl");
precache_model ("progs/w_gauss.mdl");
precache_model ("progs/w_carbine.mdl");
precache_model ("progs/w_laser.mdl");
precache_sound ("player/step1.wav");
precache_sound ("player/step2.wav");
precache_sound ("player/step3.wav");
precache_sound ("player/step4.wav");
precache_sound ("player/step1a.wav");
precache_sound ("player/step2a.wav");
precache_sound ("player/step3a.wav");
precache_sound ("player/step4a.wav");
precache_sound ("dog/dattack1.wav");
precache_sound ("dog/ddeath.wav");
precache_sound ("dog/dpain1.wav");
precache_sound ("dog/dsight.wav");
precache_sound ("dog/idle.wav");
precache_sound ("weapons/1911.wav"); precache_sound ("weapons/1911.wav");
precache_sound ("weapons/auto.wav");
precache_sound ("weapons/auto2.wav");
precache_sound ("weapons/ak112.wav");
precache_sound ("weapons/ak47.wav"); precache_sound ("weapons/ak47.wav");
precache_sound ("weapons/reload.wav"); precache_sound ("weapons/amr.wav");
precache_sound ("weapons/blaster.wav");
precache_sound ("weapons/blaster2.wav");
precache_sound ("weapons/blowoff.wav");
precache_sound ("weapons/bounce.wav");
precache_sound ("weapons/burst.wav");
precache_sound ("weapons/caws.wav");
precache_sound ("weapons/click.wav"); precache_sound ("weapons/click.wav");
precache_sound ("weapons/deagle.wav");
precache_sound ("weapons/dks-1.wav");
precache_sound ("weapons/energy1.wav");
precache_sound ("weapons/energy2.wav");
precache_sound ("weapons/energy3.wav");
precache_sound ("weapons/energy4.wav");
precache_sound ("weapons/flamer.wav");
precache_sound ("weapons/fnfal.wav");
precache_sound ("weapons/g11.wav");
precache_sound ("weapons/gauss.wav");
precache_sound ("weapons/gl-1.wav");
precache_sound ("weapons/gpull.wav");
precache_sound ("weapons/helmet.wav");
precache_sound ("weapons/jackhammer.wav");
precache_sound ("weapons/laser.wav");
precache_sound ("weapons/m249.wav");
precache_sound ("weapons/m4-nw.wav");
precache_sound ("weapons/needler.wav");
precache_sound ("weapons/shotgun1.wav");
precache_sound ("weapons/shotgun2.wav");
precache_sound ("weapons/mp5.wav");
precache_sound ("weapons/mp7.wav");
precache_sound ("weapons/rangem.wav");
precache_sound ("weapons/ric1.wav");
precache_sound ("weapons/ric2.wav");
precache_sound ("weapons/ric3.wav");
precache_sound ("weapons/ric4.wav");
precache_sound ("weapons/ric5.wav");
precache_sound ("weapons/tink1.wav");
precache_sound ("weapons/sa80-1.wav");
precache_sound ("weapons/shell.wav");
precache_sound ("misc/build1.wav");
precache_sound ("misc/build2.wav");
precache_sound ("misc/build3.wav");
precache_sound ("player/agdie1.wav");
precache_sound ("player/agdie2.wav");
precache_sound ("player/agdie3.wav");
precache_sound ("player/agdie4.wav");
precache_sound ("player/agdie5.wav");
precache_sound ("player/berserk.wav");
precache_sound ("player/breathe.wav");
precache_sound ("player/headshot.wav");
precache_sound ("player/hit1.wav");
precache_sound ("player/paina.wav");
precache_sound ("player/painb.wav");
precache_model ("progs/bolt.mdl"); // for lightning gun precache_model ("progs/bolt.mdl"); // for lightning gun
precache_model ("progs/bolt2.mdl"); // for lightning gun precache_model ("progs/bolt2.mdl"); // for lightning gun
precache_model ("progs/bolt3.mdl"); // for boss shock precache_model ("progs/bolt3.mdl"); // for boss shock