From 448bbd0b283c315da059244a26d27277f5516f89 Mon Sep 17 00:00:00 2001 From: div0 Date: Tue, 22 Jan 2008 20:41:53 +0000 Subject: [PATCH] minor fixed for Onslaught + sprites git-svn-id: svn://svn.icculus.org/nexuiz/trunk@3223 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/models/sprites/make-sprites.sh | 6 + data/models/sprites/ons-cp-blue.sp2 | Bin 0 -> 65592 bytes data/models/sprites/ons-cp-neut.sp2 | Bin 0 -> 65592 bytes data/models/sprites/ons-cp-red.sp2 | Bin 0 -> 65592 bytes data/models/sprites/ons-gen-blue.sp2 | Bin 0 -> 65592 bytes data/models/sprites/ons-gen-red.sp2 | Bin 0 -> 65592 bytes data/models/sprites/ons-gen-shielded.sp2 | Bin 0 -> 65592 bytes data/qcsrc/server/ctf.qc | 4 +- data/qcsrc/server/g_world.qc | 1 + data/qcsrc/server/mode_onslaught.qc | 228 +++++++++++++++++------ data/qcsrc/server/waypointsprites.qc | 6 +- 11 files changed, 180 insertions(+), 65 deletions(-) create mode 100644 data/models/sprites/ons-cp-blue.sp2 create mode 100644 data/models/sprites/ons-cp-neut.sp2 create mode 100644 data/models/sprites/ons-cp-red.sp2 create mode 100644 data/models/sprites/ons-gen-blue.sp2 create mode 100644 data/models/sprites/ons-gen-red.sp2 create mode 100644 data/models/sprites/ons-gen-shielded.sp2 diff --git a/data/models/sprites/make-sprites.sh b/data/models/sprites/make-sprites.sh index bf4b4f2cc..dae35c3bb 100644 --- a/data/models/sprites/make-sprites.sh +++ b/data/models/sprites/make-sprites.sh @@ -125,3 +125,9 @@ sprite keycarrier-red ff0000 000000 "KEY CARRIER" sprite keycarrier-yellow ffff00 000000 "KEY CARRIER" sprite redbase ff0000 000000 "RED BASE" sprite waypoint 008080 000000 "WAYPOINT" +sprite ons-gen-red ff0000 000000 "GENERATOR" +sprite ons-gen-blue 0000ff 000000 "GENERATOR" +sprite ons-gen-shielded 808080 000000 "GENERATOR" +sprite ons-cp-neut ffff00 000000 "CONTROL POINT" +sprite ons-cp-red ff0000 000000 "CONTROL POINT" +sprite ons-cp-blue 0000ff 000000 "CONTROL POINT" diff --git a/data/models/sprites/ons-cp-blue.sp2 b/data/models/sprites/ons-cp-blue.sp2 new file mode 100644 index 0000000000000000000000000000000000000000..089c2c3cb439e0c7469ebb70a3bcef058e691e12 GIT binary patch literal 65592 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 Uz_E(}efh0F|FPSDRj&E}1Gt4^&Hw-a literal 0 HcmV?d00001 diff --git a/data/models/sprites/ons-cp-red.sp2 b/data/models/sprites/ons-cp-red.sp2 new file mode 100644 index 0000000000000000000000000000000000000000..5afd480bbe84283de503b8bd24ed453156df6bbd GIT binary patch literal 65592 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 literal 0 HcmV?d00001 diff --git a/data/models/sprites/ons-gen-red.sp2 b/data/models/sprites/ons-gen-red.sp2 new file mode 100644 index 0000000000000000000000000000000000000000..6f8a6dedb8487d506aa305014146ea7bf2d1fe6a GIT binary patch literal 65592 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 literal 0 HcmV?d00001 diff --git a/data/models/sprites/ons-gen-shielded.sp2 b/data/models/sprites/ons-gen-shielded.sp2 new file mode 100644 index 0000000000000000000000000000000000000000..08cdb2f97e9f02175b2508dbb87e7c2e906adfa7 GIT binary patch literal 65592 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 xP! 0) - bprint(ColoredTeamName(self.team), " generator has ", ftos(floor(self.health)), " health remaining\n"); + { + float h, lh; + lh = ceil(self.lasthealth / 100) * 100; + h = ceil(self.health / 100) * 100; + if(lh != h) + bprint(ColoredTeamName(self.team), " generator has less than ", ftos(h), " health remaining\n"); + self.lasthealth = self.health; + } else { if (attacker == self) @@ -256,6 +343,53 @@ void() onslaught_generator_delayed = self.nextthink = time; }; +float onslaught_generator_waypointsprite_for_player(entity e) +{ + if(e.classname == "player") + if(e.team == self.owner.team) + { + if(self.owner.team == COLOR_TEAM1) + return ons_sprite_gen_red; + else if(self.owner.team == COLOR_TEAM2) + return ons_sprite_gen_blue; + } + if(self.owner.isshielded) + return ons_sprite_gen_shielded; + if(self.owner.team == COLOR_TEAM1) + return ons_sprite_gen_red; + else if(self.owner.team == COLOR_TEAM2) + return ons_sprite_gen_blue; + return 0; +} + +float onslaught_controlpoint_waypointsprite_for_player(entity e) +{ + float a; + if(e.classname == "player") + { + a = onslaught_controlpoint_attackable(self.owner, e.team); + if(a == -1 || a == 1) // own point, or fire at it + { + if(self.owner.team == COLOR_TEAM1) + return ons_sprite_cp_red; + else if(self.owner.team == COLOR_TEAM2) + return ons_sprite_cp_blue; + } + else if(a == 2) // touch it + return ons_sprite_cp_neut; + } + else + { + if(self.owner.team == COLOR_TEAM1) + return ons_sprite_cp_red; + else if(self.owner.team == COLOR_TEAM2) + return ons_sprite_cp_blue; + else + return ons_sprite_cp_neut; + } + return 0; +} + /*QUAKED onslaught_generator (0 .5 .8) (-32 -32 -24) (32 32 64) Base generator. @@ -272,6 +406,29 @@ void() onslaught_generator = remove(self); return; } + + if(!ons_sprite_cp_blue) + { + precache_model("models/sprites/ons-cp-blue.sp2"); + setmodel(self, "models/sprites/ons-cp-blue.sp2"); + ons_sprite_cp_blue = self.modelindex; + precache_model("models/sprites/ons-cp-red.sp2"); + setmodel(self, "models/sprites/ons-cp-red.sp2"); + ons_sprite_cp_red = self.modelindex; + precache_model("models/sprites/ons-cp-neut.sp2"); + setmodel(self, "models/sprites/ons-cp-neut.sp2"); + ons_sprite_cp_neut = self.modelindex; + precache_model("models/sprites/ons-gen-blue.sp2"); + setmodel(self, "models/sprites/ons-gen-blue.sp2"); + ons_sprite_gen_blue = self.modelindex; + precache_model("models/sprites/ons-gen-red.sp2"); + setmodel(self, "models/sprites/ons-gen-red.sp2"); + ons_sprite_gen_red = self.modelindex; + precache_model("models/sprites/ons-gen-shielded.sp2"); + setmodel(self, "models/sprites/ons-gen-shielded.sp2"); + ons_sprite_gen_shielded = self.modelindex; + } + local entity e; precache_model("models/onslaught/generator.md3"); precache_model("models/onslaught/generator_shield.md3"); @@ -284,7 +441,7 @@ void() onslaught_generator = self.colormap = 1024 + (self.team - 1) * 17; self.solid = SOLID_BSP; self.movetype = MOVETYPE_NONE; - self.max_health = self.health = 3000; + self.lasthealth = self.max_health = self.health = 3000; setmodel(self, "models/onslaught/generator.md3"); //setsize(self, '-32 -32 -24', '32 32 64'); setorigin(self, self.origin); @@ -306,6 +463,9 @@ void() onslaught_generator = e.team = self.team; self.think = onslaught_generator_delayed; self.nextthink = time + 0.2; + + WaypointSprite_SpawnFixed(string_null, e.origin + '0 0 1' * e.maxs_z, self, sprite); + self.sprite.waypointsprite_for_player = onslaught_generator_waypointsprite_for_player; }; void(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) onslaught_controlpoint_icon_damage = @@ -405,65 +565,8 @@ void() onslaught_controlpoint_touch = local entity e; if (other.classname != "player") return; - // if there's already an icon built, nothing happens - if (self.goalentity) - { - dprint("a\n"); - return; - } - // shielded points are definitely off-limits - if (self.isshielded) - { - dprint("b\n"); - return; - } - // check to see if this player has a legitimate claim to capture this - // control point - more specifically that there is a captured path of - // points leading back to the team generator - e = findchain(classname, "onslaught_link"); - while (e) - { - if (e.goalentity == self) - { - dprint(etos(e), " (link) connects to ", etos(e.enemy), " (point)"); - if (e.enemy.islinked) - { - dprint(" which is linked"); - if (e.enemy.team == other.team) - { - dprint(" and has the correct team!\n"); - break; - } - else - dprint(" but has the wrong team\n"); - } - else - dprint("\n"); - } - else if (e.enemy == self) - { - dprint(etos(e), " (link) connects to ", etos(e.goalentity), " (point)"); - if (e.goalentity.islinked) - { - dprint(" which is linked"); - if (e.goalentity.team == other.team) - { - dprint(" and has a team!\n"); - break; - } - else - dprint(" but has the wrong team\n"); - } - else - dprint("\n"); - } - e = e.chain; - } - if (!e) - { - dprint("c\n"); + if(onslaught_controlpoint_attackable(self, other.team) != 2) return; - } // we've verified that this player has a legitimate claim to this point, // so start building the captured point icon (which only captures this // point if it successfully builds without being destroyed first) @@ -537,6 +640,9 @@ void() onslaught_controlpoint = setorigin(e, self.origin); e.colormap = self.colormap; onslaught_updatelinks(); + + WaypointSprite_SpawnFixed(string_null, e.origin + '0 0 1' * e.maxs_z, self, sprite); + self.sprite.waypointsprite_for_player = onslaught_controlpoint_waypointsprite_for_player; }; void() onslaught_link_delayed = diff --git a/data/qcsrc/server/waypointsprites.qc b/data/qcsrc/server/waypointsprites.qc index 9abefb588..6a8bdfddf 100644 --- a/data/qcsrc/server/waypointsprites.qc +++ b/data/qcsrc/server/waypointsprites.qc @@ -256,10 +256,12 @@ entity WaypointSprite_Spawn( entity WaypointSprite_SpawnFixed( string spr, - vector ofs + vector ofs, + entity own, + .entity ownfield ) { - return WaypointSprite_Spawn(spr, 0, 0, world, ofs, world, 0, world, enemy, TRUE); + return WaypointSprite_Spawn(spr, 0, 0, world, ofs, world, 0, own, ownfield, TRUE); } .entity waypointsprite_deployed_fixed; -- 2.39.2