From 0cc090ca3b6a88e71531417a973b5c4547ee9af3 Mon Sep 17 00:00:00 2001 From: kadaverjack Date: Fri, 17 Feb 2006 01:36:27 +0000 Subject: [PATCH] - return flag when it's in trigger_hurt - cvars for lms starting armor/health and to enable/disable regeneration in lms - allow spectators to join by pressing jump (just as observers) - reduced nexbeam width to 16px so it isn't wider than the gun git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1067 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/default.cfg | 3 +++ data/particles/nexbeam.tga | Bin 6956 -> 7168 bytes data/qcsrc/server/gamec/cl_client.c | 35 +++++++++++++++++++++------ data/qcsrc/server/gamec/cl_impulse.c | 20 ++++++--------- data/qcsrc/server/gamec/ctf.c | 10 +++++--- data/qcsrc/server/gamec/g_triggers.c | 4 +++ 6 files changed, 49 insertions(+), 23 deletions(-) diff --git a/data/default.cfg b/data/default.cfg index 4acf6bc67..764cbbe40 100644 --- a/data/default.cfg +++ b/data/default.cfg @@ -248,10 +248,13 @@ set g_domination_point_glow 0 // domination point glow (warning, slow) // last man standing set g_lms 0 set g_lms_lives_override -1 +set g_lms_start_health 150 +set g_lms_start_armor 100 set g_lms_start_ammo_shells 30 set g_lms_start_ammo_nails 100 set g_lms_start_ammo_rockets 30 set g_lms_start_ammo_cells 30 +set g_lms_regenerate 0 set g_lms_last_join 3 // if g_lms_join_anytime is false, new players can only join if the worst active player has more than (fraglimit - g_lms_last_join) lives set g_lms_join_anytime 1 // if true, new players can join, but get same amount of lives as the worst player diff --git a/data/particles/nexbeam.tga b/data/particles/nexbeam.tga index b1aabc57a897d49a44118435cdd6164e224873bf..824023fcd821a8c1c4e932a181e78655f6fc9048 100644 GIT binary patch literal 7168 zcmZWucU+Zcnx*&Nr1uLKE|=b`R6$h07E7Wib|Y%U*rH3ew72VamqY!W27mV{v!q0^rV7JUY{eIa$$&cCo~Wa3!LR4Y2>!96bB`DQV`) zrq@w9I05P2jv6x>k8F$#kmc!s=CL_w-@6(w{`V3d)6~q=Fhn_+AtyKxf%It4uw*>@ z>oIhHbsAUJl%Y)J3rBM^ZI68Itx;E)h~GEQ!i(R2rbi7Jqw;~hz8-wNy%K~r%m?lmq2ZePWdb9*o~Sp|ia34(mQq&MpaC*tW} zkE830Q@FZjGNvfKVNdfiHJbeBGuJ_O)@UA@ga-{vfVN+7|G*|hx;ntnzyQJi{%|tV zNAtu&bP12XyMSNomSIiFKoo>{Yn!rU9x~nSad7ew+-aa!f3)J!$=w*LaD$nV5q!M7 zAYQjAKLOAFc7jzqi)&k6$HJ5lcv|(Py3Z@7a)7lZmZz%m$F_3z(T{j~wh?1!%FWOa zS)sx3GciEz$aHjmc^c2ZK7$)?(^R4oZsvV?(wLG#IM`s<&}6jNu_bSPk0&%WIW7o( zriO?L41gJ5SIY!EW1hNc>euQDEKX4(!ogfSKm+DufRzO*Ga}Ho^9{UUfPWsV#e|q3 zgxQ%QLlq2LKGXP0CZ2tD2ECU)W3HCst?X!oIa+9&(&rm}nf59+!o9kMGQdBN*P<*o z2nnv%D2NI{h=CsV&}&h>=ii*ejji*rBqIzSmO23%(^Mn_+{;|t*}YiK+{2Ugn3Efi ztY9yc=B6Rp$rA6D6=*7W@dB=Gdjm@chRauJHG>u3n9linXG|6zv{a(!*B{Ywt{LM) zz2L&?szX9#U%fpnm2-CzJ^wg|Tdd$4^m>4)v37ulEOe-i74}WY$Ag3GWivcHxeGKBgiD-7Psq|Yl2sCe62V@p;f?(AC3;MfQZZe>n5M*CS~ zW==8&2YKMojN$0`@(j~{99JqQV!Fx?j=CO+MsT;alGSV5QH~eC)1z}OSUe;ZB}y+W zDon$~UZ<&LY`Ekhh)qy$_J{I9%i``7=9ntB({($>OwqkgIJM35v zl_C%VTGtX)#nAMA_c7uYH64beVao!f2lX@MPdaxDrAwjZi&2 z4bND;9?|7*&&I-p0C-yJ1ZP6WBW=yGZ}dRi-@67c2riFL@5YosHze8^V{ vIsPL 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 A1^@s6 diff --git a/data/qcsrc/server/gamec/cl_client.c b/data/qcsrc/server/gamec/cl_client.c index 30257dcd5..0795ad699 100644 --- a/data/qcsrc/server/gamec/cl_client.c +++ b/data/qcsrc/server/gamec/cl_client.c @@ -176,7 +176,7 @@ void PutObserverInServer (void) spot = SelectSpawnPoint (FALSE); RemoveGrapplingHook(self); // Wazat's Grappling Hook - if(self.frags == 0 && cvar("g_lms")) + if(self.frags == 0 && cvar("g_lms") && self.killcount != -666) bprint (strcat("^4", self.netname, "^4 has no more lives left\n")); else if(self.killcount != -666) bprint (strcat("^4", self.netname, "^4 is spectating now\n")); @@ -336,6 +336,8 @@ void PutClientInServer (void) self.ammo_nails = cvar("g_lms_start_ammo_nails"); self.ammo_rockets = cvar("g_lms_start_ammo_rockets"); self.ammo_cells = cvar("g_lms_start_ammo_cells"); + self.health = cvar("g_lms_start_health"); + self.armorvalue = cvar("g_lms_start_armor"); } else if (cvar("g_use_ammunition")) { self.ammo_shells = cvar("g_start_ammo_shells"); @@ -889,12 +891,8 @@ void player_regen (void) maxh = cvar("g_balance_health_stable"); maxa = cvar("g_balance_armor_stable"); - if (cvar("g_minstagib")) - { - maxh = 100; - maxa = 0; + if (cvar("g_minstagib") || (cvar("g_lms") && !cvar("g_lms_regenerate"))) return; - } if(cvar("g_runematch")) { @@ -1022,6 +1020,9 @@ Called every frame for each client before the physics are run */ void PlayerPreThink (void) { + if (gameover) + return; + if(self.classname == "player") { local vector m1, m2; @@ -1197,7 +1198,25 @@ void PlayerPreThink (void) } else if(self.classname == "spectator") { if (self.flags & FL_JUMPRELEASED) { - if(self.button0) { + if (self.button2 && self.version == cvar("g_nexuizversion_major")) { + if(!cvar("teamplay")) { + self.flags = self.flags & !FL_JUMPRELEASED; + self.classname = "player"; + if(!cvar("g_lms")) + bprint (strcat("^4", self.netname, "^4 is playing now\n")); + + msg_entity = self; + WriteByte(MSG_ONE, SVC_SETVIEW); + WriteEntity(MSG_ONE, self); + PutClientInServer(); + centerprint(self,""); + return; + } else { + self.flags = self.flags & !FL_JUMPRELEASED; + stuffcmd(self,"menu_showteamselect\n"); + return; + } + } else if(self.button0) { self.flags = self.flags & !FL_JUMPRELEASED; if(SpectateNext() == 1) { self.classname = "spectator"; @@ -1223,7 +1242,7 @@ void PlayerPreThink (void) self.flags = self.flags | FL_JUMPRELEASED; } } - centerprint(self, strcat("spectating ", self.enemy.netname, "\n\n\n^7press attack for next player\npress attack2 for free fly mode")); + centerprint(self, strcat("spectating ", self.enemy.netname, "\n\n\n^7press jump to play\n^7press attack for next player\npress attack2 for free fly mode")); } } diff --git a/data/qcsrc/server/gamec/cl_impulse.c b/data/qcsrc/server/gamec/cl_impulse.c index 582707a51..b4fcfd00d 100644 --- a/data/qcsrc/server/gamec/cl_impulse.c +++ b/data/qcsrc/server/gamec/cl_impulse.c @@ -27,18 +27,14 @@ void ImpulseCommands (void) if (imp >= 1 && imp <= 12) { // weapon switching impulses - // FIXME: why a g_minstagib check? doesn't that have only one weapon? - if (!cvar("g_minstagib")) - { - if (imp <= 9) - W_SwitchWeapon (imp); - else if (imp == 10) - W_NextWeapon (); - else if (imp == 12) - W_PreviousWeapon (); - else if (imp == 11) // last weapon - W_SwitchWeapon (self.cnt); - } + if (imp <= 9) + W_SwitchWeapon (imp); + else if (imp == 10) + W_NextWeapon (); + else if (imp == 12) + W_PreviousWeapon (); + else if (imp == 11) // last weapon + W_SwitchWeapon (self.cnt); } else if (imp >= 13 && imp <= 16) { diff --git a/data/qcsrc/server/gamec/ctf.c b/data/qcsrc/server/gamec/ctf.c index 900ae548c..0a262da25 100644 --- a/data/qcsrc/server/gamec/ctf.c +++ b/data/qcsrc/server/gamec/ctf.c @@ -55,6 +55,8 @@ void(entity e) RegenFlag = e.cnt = FLAG_BASE; e.owner = world; e.flags = FL_ITEM; // clear FL_ONGROUND and any other junk + + e.health = 1; }; void(entity e) ReturnFlag = @@ -120,15 +122,15 @@ void() FlagThink = local float f; self.nextthink = time + 0.1; - + AnimateFlag(); if (self.cnt == FLAG_BASE) return; - if (self.cnt == FLAG_DROPPED) + if (self.cnt == FLAG_DROPPED || !self.health) { - if (time > self.pain_finished) + if (time > self.pain_finished || !self.health) { if (self.team == 5) bprint("The RED flag has returned to base\n"); @@ -450,6 +452,7 @@ void() item_flag_team1 = // self.glow_size = 50; self.effects = self.effects | EF_FULLBRIGHT | EF_LOWPRECISION; + self.health = 1; }; /*QUAKED item_flag_team2 (0 0.5 0.8) (-48 -48 -24) (48 48 64) @@ -500,6 +503,7 @@ void() item_flag_team2 = // self.glow_size = 50; self.effects = self.effects | EF_FULLBRIGHT | EF_LOWPRECISION; + self.health = 1; }; diff --git a/data/qcsrc/server/gamec/g_triggers.c b/data/qcsrc/server/gamec/g_triggers.c index ba9cb0fea..4c3905ec6 100644 --- a/data/qcsrc/server/gamec/g_triggers.c +++ b/data/qcsrc/server/gamec/g_triggers.c @@ -344,6 +344,10 @@ void() trigger_counter = .float triggerhurttime; void() hurt_touch = { + if (!other.owner) + if (other.items & IT_KEY1 || other.items & IT_KEY2) + other.health = 0; + if (other.takedamage) if (other.triggerhurttime < time) { -- 2.39.2