r3753 - in branches/nexuiz-2.0: . data data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Wed Jul 2 05:47:25 EDT 2008
Author: div0
Date: 2008-07-02 05:47:14 -0400 (Wed, 02 Jul 2008)
New Revision: 3753
Modified:
branches/nexuiz-2.0/.patchsets
branches/nexuiz-2.0/data/effectinfo.txt
branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc
branches/nexuiz-2.0/data/qcsrc/server/defs.qh
branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc
branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
Log:
merge 3733-3736 (sv_gentle)
Modified: branches/nexuiz-2.0/.patchsets
===================================================================
--- branches/nexuiz-2.0/.patchsets 2008-07-02 00:03:00 UTC (rev 3752)
+++ branches/nexuiz-2.0/.patchsets 2008-07-02 09:47:14 UTC (rev 3753)
@@ -1,2 +1,2 @@
master = svn://svn.icculus.org/nexuiz/trunk
-revisions_applied = 1-3730,3737-3742
+revisions_applied = 1-3730,3733-3742
Modified: branches/nexuiz-2.0/data/effectinfo.txt
===================================================================
--- branches/nexuiz-2.0/data/effectinfo.txt 2008-07-02 00:03:00 UTC (rev 3752)
+++ branches/nexuiz-2.0/data/effectinfo.txt 2008-07-02 09:47:14 UTC (rev 3753)
@@ -2236,3 +2236,56 @@
size 16 16
alpha 256 256 1024
velocityjitter 256 256 256
+
+// Zero-violence effects
+
+// impact effect indicating damage
+effect damage_hit
+count 1
+type static
+color 0x20FF30 0x80FFC0
+size 1 1
+alpha 256 256 256
+gravity -0.4
+bounce 1.5
+airfriction 8
+liquidfriction 16
+//velocityoffset 0 0 120
+velocityjitter 16 16 16
+
+// effect for removing player model
+// "teleport"
+effect damage_dissolve
+count 96
+type static
+color 0x66FF66 0xFFFFFF
+size 10 10
+alpha 64 128 128
+airfriction 1
+liquidfriction 4
+originoffset 0 0 28
+originjitter 16 16 28
+velocityjitter 0 0 256
+// flare
+effect damage_dissolve
+countabsolute 1
+type static
+tex 38 38
+color 0x00FF00 0x99FF99
+size 32 32
+alpha 256 256 196
+// large sparks
+effect damage_dissolve
+count 20
+type static
+color 0x00FF00 0x99FF99
+size 16 16
+alpha 256 256 256
+//gravity 1
+bounce 1.5
+airfriction 4
+liquidfriction 16
+//velocityoffset 0 0 120
+velocityjitter 512 512 512
+
+
Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc 2008-07-02 00:03:00 UTC (rev 3752)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc 2008-07-02 09:47:14 UTC (rev 3753)
@@ -258,7 +258,8 @@
void PlayerCorpseDamage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
{
local float take, save;
- pointparticles(particleeffectnum("blood"), hitloc, force, bound(0, damage, 200));
+ if(sv_gentle < 1)
+ pointparticles(particleeffectnum("blood"), hitloc, force, bound(0, damage, 200));
// damage resistance (ignore most of the damage from a bullet or similar)
damage = max(damage - 5, 1);
@@ -272,10 +273,12 @@
else if (take > 10)
sound (self, CHAN_IMPACT, "misc/bodyimpact1.wav", 1, ATTN_NORM);
- if (take > 50)
- TossGib (world, "models/gibs/chunk.mdl", hitloc, force * -0.1,1);
- if (take > 100)
- TossGib (world, "models/gibs/chunk.mdl", hitloc, force * -0.2,1);
+ if(sv_gentle < 1) {
+ if (take > 50)
+ TossGib (world, "models/gibs/chunk.mdl", hitloc, force * -0.1,1);
+ if (take > 100)
+ TossGib (world, "models/gibs/chunk.mdl", hitloc, force * -0.2,1);
+ }
if (!(self.flags & FL_GODMODE))
{
@@ -301,44 +304,48 @@
multiplier = 1;
if (cvar("ekg"))
multiplier = 5;
- te_bloodshower (self.origin + self.mins, self.origin + self.maxs, 1200 * multiplier, 1000);
+
// make a meaty mess
TossGib (self, "models/gibs/eye.md3", self.origin + self.view_ofs, self.velocity + randomvec() * 150,0);
- TossGib (world, "models/gibs/bloodyskull.md3", self.origin + self.view_ofs, self.velocity,0);
+
+ if(sv_gentle < 1) {
+ te_bloodshower (self.origin + self.mins, self.origin + self.maxs, 1200 * multiplier, 1000);
+ TossGib (world, "models/gibs/bloodyskull.md3", self.origin + self.view_ofs, self.velocity,0);
- local float c;
- c = 0;
- while (c < multiplier)
- {
- c = c + 1;
- //TossGib (world, "models/gibs/gib1.md3", self.origin, self.velocity + randomvec() * 450,0);
- //TossGib (world, "models/gibs/gib2.md3", self.origin, self.velocity + randomvec() * 450,0);
- //TossGib (world, "models/gibs/gib3.md3", self.origin, self.velocity + randomvec() * 450,0);
- //TossGib (world, "models/gibs/gib4.md3", self.origin, self.velocity + randomvec() * 450,0);
- //TossGib (world, "models/gibs/gib5.md3", self.origin, self.velocity + randomvec() * 450,0);
- //TossGib (world, "models/gibs/gib6.md3", self.origin, self.velocity + randomvec() * 450,0);
+ local float c;
+ c = 0;
- TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * (random() * 120 + 90),0);
- TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * (random() * 120 + 90),0);
- //TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * 150,0);
- //TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * 150,0);
- TossGib (world, "models/gibs/chest.md3", self.origin + self.view_ofs * 0.5, self.velocity + randomvec() * (random() * 120 + 80),0);
- //TossGib (world, "models/gibs/smallchest.md3", self.origin + self.view_ofs, self.velocity + randomvec() * 150,0);
- TossGib (world, "models/gibs/smallchest.md3", self.origin + self.view_ofs, self.velocity + randomvec() * (random() * 120 + 80),0);
- TossGib (world, "models/gibs/leg1.md3", self.origin + self.view_ofs * -0.2, self.velocity + randomvec() * (random() * 120 + 85),0);
- TossGib (world, "models/gibs/leg2.md3", self.origin + self.view_ofs * -0.4, self.velocity + randomvec() * (random() * 120 + 85),0);
- //TossGib (world, "models/gibs/leg1.md3", self.origin + self.view_ofs * -0.2, self.velocity + randomvec() * 150,0);
- //TossGib (world, "models/gibs/leg2.md3", self.origin + self.view_ofs * -0.4, self.velocity + randomvec() * 150,0);
+ while (c < multiplier)
+ {
+ c = c + 1;
+ //TossGib (world, "models/gibs/gib1.md3", self.origin, self.velocity + randomvec() * 450,0);
+ //TossGib (world, "models/gibs/gib2.md3", self.origin, self.velocity + randomvec() * 450,0);
+ //TossGib (world, "models/gibs/gib3.md3", self.origin, self.velocity + randomvec() * 450,0);
+ //TossGib (world, "models/gibs/gib4.md3", self.origin, self.velocity + randomvec() * 450,0);
+ //TossGib (world, "models/gibs/gib5.md3", self.origin, self.velocity + randomvec() * 450,0);
+ //TossGib (world, "models/gibs/gib6.md3", self.origin, self.velocity + randomvec() * 450,0);
- // these splat on impact
- TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
- TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
- TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
- TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
+ TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * (random() * 120 + 90),0);
+ TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * (random() * 120 + 90),0);
+ //TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * 150,0);
+ //TossGib (world, "models/gibs/arm.md3", self.origin + self.view_ofs, self.velocity + randomvec() * 150,0);
+ TossGib (world, "models/gibs/chest.md3", self.origin + self.view_ofs * 0.5, self.velocity + randomvec() * (random() * 120 + 80),0);
+ //TossGib (world, "models/gibs/smallchest.md3", self.origin + self.view_ofs, self.velocity + randomvec() * 150,0);
+ TossGib (world, "models/gibs/smallchest.md3", self.origin + self.view_ofs, self.velocity + randomvec() * (random() * 120 + 80),0);
+ TossGib (world, "models/gibs/leg1.md3", self.origin + self.view_ofs * -0.2, self.velocity + randomvec() * (random() * 120 + 85),0);
+ TossGib (world, "models/gibs/leg2.md3", self.origin + self.view_ofs * -0.4, self.velocity + randomvec() * (random() * 120 + 85),0);
+ //TossGib (world, "models/gibs/leg1.md3", self.origin + self.view_ofs * -0.2, self.velocity + randomvec() * 150,0);
+ //TossGib (world, "models/gibs/leg2.md3", self.origin + self.view_ofs * -0.4, self.velocity + randomvec() * 150,0);
+
+ // these splat on impact
+ TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
+ TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
+ TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
+ TossGib (world, "models/gibs/chunk.mdl", self.origin, self.velocity + randomvec() * 450,1);
+ }
+ sound (self, CHAN_VOICE, "misc/gib.wav", 1, ATTN_NORM);
}
-
- sound (self, CHAN_VOICE, "misc/gib.wav", 1, ATTN_NORM);
}
}
@@ -349,14 +356,20 @@
local float take, save, waves, sdelay;
damage = damage * bound(1.0, self.cvar_cl_handicap, 100.0);
+ if(sv_gentle > 0) {
+ pointparticles(particleeffectnum("damage_hit"), hitloc, force, bound(0, damage, 200));
+ } else {
+ pointparticles(particleeffectnum("blood"), hitloc, force, bound(0, damage, 200));
+ }
- pointparticles(particleeffectnum("blood"), hitloc, force, bound(0, damage, 200));
if (self.pain_finished < time) //Don't switch pain sequences like crazy
{
- if (random() > 0.5)
- player_setanim(self.anim_pain1, FALSE, TRUE, TRUE);
- else
- player_setanim(self.anim_pain2, FALSE, TRUE, TRUE);
+ if(sv_gentle < 1) {
+ if (random() > 0.5)
+ player_setanim(self.anim_pain1, FALSE, TRUE, TRUE);
+ else
+ player_setanim(self.anim_pain2, FALSE, TRUE, TRUE);
+ }
self.pain_finished = time + 0.5; //Supajoe
// throw off bot aim temporarily
@@ -546,6 +559,12 @@
if(defer_ClientKill_Now_TeamChange)
ClientKill_Now_TeamChange();
+
+ if(sv_gentle > 0) {
+ // remove corpse
+ PlayerCorpseDamage (inflictor, attacker, 100.0, deathtype, hitloc, force);
+ pointparticles(particleeffectnum("damage_dissolve"), self.origin, force, 1);
+ }
}
}
Modified: branches/nexuiz-2.0/data/qcsrc/server/defs.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/defs.qh 2008-07-02 00:03:00 UTC (rev 3752)
+++ branches/nexuiz-2.0/data/qcsrc/server/defs.qh 2008-07-02 09:47:14 UTC (rev 3753)
@@ -19,6 +19,7 @@
float tourneyInMatchStage;
float sv_cheats;
+float sv_gentle;
float sv_foginterval;
entity activator;
Modified: branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc 2008-07-02 00:03:00 UTC (rev 3752)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc 2008-07-02 09:47:14 UTC (rev 3753)
@@ -148,67 +148,110 @@
if (targ == attacker)
{
- if (deathtype == DEATH_TEAMCHANGE)
- {
+ if (deathtype == DEATH_TEAMCHANGE) {
centerprint(targ, strcat("You are now on: ", ColoredTeamName(targ.team)));
- }
- else if (deathtype == DEATH_AUTOTEAMCHANGE)
- {
+ } else if (deathtype == DEATH_AUTOTEAMCHANGE) {
centerprint(targ, strcat("You have been moved into a different team to improve team balance\nYou are now on: ", ColoredTeamName(targ.team)));
return;
+ } else if (deathtype == DEATH_CAMP) {
+ if(sv_gentle)
+ centerprint(targ, "^1Reconsider your tactics, camper!\n\n\n");
+ else
+ centerprint(targ, "^1Die camper!\n\n\n");
+ } else if (deathtype == DEATH_NOAMMO) {
+ if(sv_gentle)
+ centerprint(targ, "^1You are reinserted into the game for running out of ammo...\n\n\n");
+ else
+ centerprint(targ, "^1You were killed for running out of ammo...\n\n\n");
+ } else if (deathtype == DEATH_ROT) {
+ if(sv_gentle)
+ centerprint(targ, "^1You need to preserve your health\n\n\n");
+ else
+ centerprint(targ, "^1You grew too old without taking your medicine\n\n\n");
+ } else if (deathtype == DEATH_MIRRORDAMAGE) {
+ if(sv_gentle)
+ centerprint(targ, "^1Don't go against team mates!\n\n\n");
+ else
+ centerprint(targ, "^1Don't shoot your team mates!\n\n\n");
+ } else {
+ if(sv_gentle)
+ centerprint(targ, "^1You need to be more careful!\n\n\n");
+ else
+ centerprint(targ, "^1You killed your own dumb self!\n\n\n");
}
- else if (deathtype == DEATH_CAMP)
- centerprint(targ, "^1Die camper!\n\n\n");
- else if (deathtype == DEATH_NOAMMO)
- centerprint(targ, "^1You were killed for running out of ammo...\n\n\n");
- else if (deathtype == DEATH_ROT)
- centerprint(targ, "^1You grew too old without taking your medicine\n\n\n");
- else if (deathtype == DEATH_MIRRORDAMAGE)
- centerprint(targ, "^1Don't shoot your team mates!\n\n\n");
- else
- centerprint(targ, "^1You killed your own dumb self!\n\n\n");
- if (deathtype == IT_GRENADE_LAUNCHER)
- bprint ("^1",s, "^1 detonated\n");
- else if (deathtype == IT_ELECTRO)
- bprint ("^1",s, "^1 played with plasma\n");
- else if (deathtype == IT_ROCKET_LAUNCHER)
- bprint ("^1",s, "^1 exploded\n");
- else if (deathtype == DEATH_KILL)
- bprint ("^1",s, "^1 couldn't take it anymore\n");
- else if (deathtype == DEATH_ROT)
- bprint ("^1",s, "^1 died\n");
- else if (deathtype == DEATH_NOAMMO)
- {
- bprint ("^7",s, " ^7committed suicide. What's the point of living without ammo?\n");
- //sound (self, CHAN_BODY, "minstagib/mockery.wav", 1, ATTN_NONE);
- }
- else if (deathtype == DEATH_CAMP)
- bprint ("^1",s, "^1 thought he found a nice camping ground\n");
- else if (deathtype == DEATH_MIRRORDAMAGE)
- bprint ("^1",s, "^1 didn't become friends with the Lord of Teamplay\n");
- else if (deathtype != DEATH_TEAMCHANGE)
- bprint ("^1",s, "^1 couldn't resist the urge to self-destruct\n");
+ if(sv_gentle) {
+ if (deathtype == DEATH_CAMP)
+ bprint ("^1",s, "^1 thought he found a nice camping ground\n");
+ else if (deathtype == DEATH_MIRRORDAMAGE)
+ bprint ("^1",s, "^1 didn't become friends with the Lord of Teamplay\n");
+ else
+ bprint ("^1",s, "^1 will be reinserted into the game due to his own actions\n");
+
+ if(deathtype != DEATH_TEAMCHANGE)
+ {
+ LogDeath("suicide", deathtype, targ, targ);
+ GiveFrags(attacker, targ, -1);
+ }
+ if (targ.killcount > 2)
+ bprint ("^1",s,"^1 ended it all with a ",ftos(targ.killcount)," scoring spree\n");
+ } else {
- if(deathtype != DEATH_TEAMCHANGE)
- {
- LogDeath("suicide", deathtype, targ, targ);
- GiveFrags(attacker, targ, -1);
+ if (deathtype == IT_GRENADE_LAUNCHER)
+ bprint ("^1",s, "^1 detonated\n");
+ else if (deathtype == IT_ELECTRO)
+ bprint ("^1",s, "^1 played with plasma\n");
+ else if (deathtype == IT_ROCKET_LAUNCHER)
+ bprint ("^1",s, "^1 exploded\n");
+ else if (deathtype == DEATH_KILL)
+ bprint ("^1",s, "^1 couldn't take it anymore\n");
+ else if (deathtype == DEATH_ROT)
+ bprint ("^1",s, "^1 died\n");
+ else if (deathtype == DEATH_NOAMMO)
+ {
+ bprint ("^7",s, " ^7committed suicide. What's the point of living without ammo?\n");
+ //sound (self, CHAN_BODY, "minstagib/mockery.wav", 1, ATTN_NONE);
+ }
+ else if (deathtype == DEATH_CAMP)
+ bprint ("^1",s, "^1 thought he found a nice camping ground\n");
+ else if (deathtype == DEATH_MIRRORDAMAGE)
+ bprint ("^1",s, "^1 didn't become friends with the Lord of Teamplay\n");
+ else if (deathtype != DEATH_TEAMCHANGE)
+ bprint ("^1",s, "^1 couldn't resist the urge to self-destruct\n");
+
+ if(deathtype != DEATH_TEAMCHANGE)
+ {
+ LogDeath("suicide", deathtype, targ, targ);
+ GiveFrags(attacker, targ, -1);
+ }
+ if (targ.killcount > 2)
+ bprint ("^1",s,"^1 ended it all with a ",ftos(targ.killcount)," kill spree\n");
}
- if (targ.killcount > 2)
- bprint ("^1",s,"^1 ended it all with a ",ftos(targ.killcount)," kill spree\n");
}
else if (attacker.classname == "player" || attacker.classname == "gib")
{
if(teamplay && attacker.team == targ.team)
{
- centerprint(attacker, "^1Moron! You fragged a teammate!\n\n\n");
- bprint ("^1", a, "^1 mows down a teammate\n");
+ if(sv_gentle) {
+ centerprint(attacker, "^1Moron! You went against a teammate!\n\n\n");
+ bprint ("^1", a, "^1 took action against a teammate\n");
+ } else {
+ centerprint(attacker, "^1Moron! You fragged a teammate!\n\n\n");
+ bprint ("^1", a, "^1 mows down a teammate\n");
+ }
GiveFrags(attacker, targ, -1);
- if (targ.killcount > 2)
- bprint ("^1",s,"'s ^1",ftos(targ.killcount)," kill spree was ended by a teammate!\n");
- if (attacker.killcount > 2)
- bprint ("^1",a,"^1 ended a ",ftos(attacker.killcount)," kill spree by killing a teammate\n");
+ if (targ.killcount > 2) {
+ if(sv_gentle)
+ bprint ("^1",s,"'s ^1",ftos(targ.killcount)," scoring spree was ended by a teammate!\n");
+ else
+ bprint ("^1",s,"'s ^1",ftos(targ.killcount)," kill spree was ended by a teammate!\n");
+ }
+ if (attacker.killcount > 2) {
+ if(sv_gentle)
+ bprint ("^1",a,"^1 ended a ",ftos(attacker.killcount)," scoring spree by going against a teammate\n");
+ else
+ bprint ("^1",a,"^1 ended a ",ftos(attacker.killcount)," kill spree by killing a teammate\n");
+ }
attacker.killcount = 0;
LogDeath("tk", deathtype, attacker, targ);
@@ -221,92 +264,140 @@
//sound(world, CHAN_AUTO, "announcer/firstblood.wav", 1, ATTN_NONE);
//if (g_minstagib)
//sound(world, CHAN_AUTO, "announce/male/mapkill1.wav", 1, ATTN_NONE);
- bprint("^1",a, "^1 drew first blood", "\n");
+ if(sv_gentle)
+ bprint("^1",a, "^1 was the first to score", "\n");
+ else
+ bprint("^1",a, "^1 drew first blood", "\n");
}
- centerprint(attacker, strcat("^4You fragged ^7", s, "\n\n\n"));
- centerprint(targ, strcat("^1You were fragged by ^7", a, "\n\n\n"));
+ if(sv_gentle > 0) {
+ centerprint(attacker, strcat("^4You scored against ^7", s, "\n\n\n"));
+ centerprint(targ, strcat(a,"^1 scored against you ^7\n\n\n"));
+ } else {
+ centerprint(attacker, strcat("^4You fragged ^7", s, "\n\n\n"));
+ centerprint(targ, strcat("^1You were fragged by ^7", a, "\n\n\n"));
+ }
- if (deathtype == IT_LASER)
- bprint ("^1",s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_UZI)
- bprint ("^1",s, "^1 was riddled full of holes by ", a, "\n");
- else if (deathtype == IT_SHOTGUN)
- bprint ("^1",s, "^1 was gunned by ", a, "\n");
- else if (deathtype == IT_GRENADE_LAUNCHER)
- bprint ("^1", s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_ELECTRO)
- bprint ("^1",s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_CRYLINK)
- bprint ("^1",s, "^1 was blasted by ", a, "\n");
- else if (deathtype == IT_NEX)
- bprint ("^1",s, "^1 has been vaporized by ", a, "\n");
- else if (deathtype == IT_HAGAR)
- bprint ("^1",s, "^1 was pummeled by ", a, "\n");
- else if (deathtype == IT_ROCKET_LAUNCHER)
- bprint ("^1",s, "^1 was blasted by ", a, "\n");
- else if (deathtype == DEATH_TELEFRAG)
- bprint ("^1",s, "^1 was telefragged by ", a, "\n");
- else if (deathtype == DEATH_DROWN)
- bprint ("^1",s, "^1 was drowned by ", a, "\n");
- else if (deathtype == DEATH_SLIME)
- bprint ("^1",s, "^1 was slimed by ", a, "\n");
- else if (deathtype == DEATH_LAVA)
- bprint ("^1",s, "^1 was cooked by ", a, "\n");
- else if (deathtype == DEATH_FALL)
- bprint ("^1",s, "^1 was grounded by ", a, "\n");
- else if (deathtype == DEATH_SHOOTING_STAR)
- bprint ("^1",s, "^1 was shot into space by ", a, "\n");
- else if (deathtype == DEATH_SWAMP)
- bprint ("^1",s, "^1 was conserved by ", a, "\n");
- else if (deathtype == DEATH_HURTTRIGGER)
- bprint ("^1",s, "^1 was thrown into a world of hurt by ", a, "\n");
- else
- bprint ("^1",s, "^1 was fragged by ", a, "\n");
+ if(sv_gentle) {
+ bprint ("^1",s, "^1 needs a restart thanks to ", a, "\n");
+ } else {
+ if (deathtype == IT_LASER)
+ bprint ("^1",s, "^1 was blasted by ", a, "\n");
+ else if (deathtype == IT_UZI)
+ bprint ("^1",s, "^1 was riddled full of holes by ", a, "\n");
+ else if (deathtype == IT_SHOTGUN)
+ bprint ("^1",s, "^1 was gunned by ", a, "\n");
+ else if (deathtype == IT_GRENADE_LAUNCHER)
+ bprint ("^1", s, "^1 was blasted by ", a, "\n");
+ else if (deathtype == IT_ELECTRO)
+ bprint ("^1",s, "^1 was blasted by ", a, "\n");
+ else if (deathtype == IT_CRYLINK)
+ bprint ("^1",s, "^1 was blasted by ", a, "\n");
+ else if (deathtype == IT_NEX)
+ bprint ("^1",s, "^1 has been vaporized by ", a, "\n");
+ else if (deathtype == IT_HAGAR)
+ bprint ("^1",s, "^1 was pummeled by ", a, "\n");
+ else if (deathtype == IT_ROCKET_LAUNCHER)
+ bprint ("^1",s, "^1 was blasted by ", a, "\n");
+ else if (deathtype == DEATH_TELEFRAG)
+ bprint ("^1",s, "^1 was telefragged by ", a, "\n");
+ else if (deathtype == DEATH_DROWN)
+ bprint ("^1",s, "^1 was drowned by ", a, "\n");
+ else if (deathtype == DEATH_SLIME)
+ bprint ("^1",s, "^1 was slimed by ", a, "\n");
+ else if (deathtype == DEATH_LAVA)
+ bprint ("^1",s, "^1 was cooked by ", a, "\n");
+ else if (deathtype == DEATH_FALL)
+ bprint ("^1",s, "^1 was grounded by ", a, "\n");
+ else if (deathtype == DEATH_SHOOTING_STAR)
+ bprint ("^1",s, "^1 was shot into space by ", a, "\n");
+ else if (deathtype == DEATH_SWAMP)
+ bprint ("^1",s, "^1 was conserved by ", a, "\n");
+ else if (deathtype == DEATH_HURTTRIGGER)
+ bprint ("^1",s, "^1 was thrown into a world of hurt by ", a, "\n");
+ else
+ bprint ("^1",s, "^1 was fragged by ", a, "\n");
+ }
GiveFrags(attacker, targ, 1);
- if (targ.killcount > 2)
- bprint ("^1",s,"'s ^1", ftos(targ.killcount), " kill spree was ended by ", a, "\n");
+ if (targ.killcount > 2) {
+ if(sv_gentle)
+ bprint ("^1",s,"'s ^1", ftos(targ.killcount), " scoring spree was ended by ", a, "\n");
+ else
+ bprint ("^1",s,"'s ^1", ftos(targ.killcount), " kill spree was ended by ", a, "\n");
+ }
attacker.killcount = attacker.killcount + 1;
- if (attacker.killcount > 2)
- bprint ("^1",a,"^1 has ",ftos(attacker.killcount)," frags in a row\n");
+ if (attacker.killcount > 2) {
+ if(sv_gentle)
+ bprint ("^1",a,"^1 made ",ftos(attacker.killcount)," scores in a row\n");
+ else
+ bprint ("^1",a,"^1 has ",ftos(attacker.killcount)," frags in a row\n");
+ }
LogDeath("frag", deathtype, attacker, targ);
if (attacker.killcount == 3)
{
- bprint (a,"^7 made a ^1TRIPLE FRAG\n");
- announce(attacker, "announcer/male/03kills.ogg");
+ if(sv_gentle) {
+ bprint (a,"^7 made a ^1TRIPLE SCORE\n");
+ } else {
+ bprint (a,"^7 made a ^1TRIPLE FRAG\n");
+ announce(attacker, "announcer/male/03kills.ogg");
+ }
}
else if (attacker.killcount == 5)
{
- bprint (a,"^7 unleashes ^1RAGE\n");
- announce(attacker, "announcer/male/05kills.ogg");
+ if(sv_gentle) {
+ bprint (a,"^7 unleashes ^1SCORING RAGE\n");
+ } else {
+ bprint (a,"^7 unleashes ^1RAGE\n");
+ announce(attacker, "announcer/male/05kills.ogg");
+ }
}
else if (attacker.killcount == 10)
{
- bprint (a,"^7 starts the ^1MASSACRE!\n");
- announce(attacker, "announcer/male/10kills.ogg");
+ if(sv_gentle) {
+ bprint (a,"^7 made ^1TEN SCORES IN A ROW!\n");
+ } else {
+ bprint (a,"^7 starts the ^1MASSACRE!\n");
+ announce(attacker, "announcer/male/10kills.ogg");
+ }
}
else if (attacker.killcount == 15)
{
- bprint (a,"^7 executes ^1MAYHEM!\n");
- announce(attacker, "announcer/male/15kills.ogg");
+ if(sv_gentle) {
+ bprint (a,"^7 made ^1FIFTEEN SCORES IN A ROW!\n");
+ } else {
+ bprint (a,"^7 executes ^1MAYHEM!\n");
+ announce(attacker, "announcer/male/15kills.ogg");
+ }
}
else if (attacker.killcount == 20)
{
- bprint (a,"^7 is a ^1BERSERKER!\n");
- announce(attacker, "announcer/male/20kills.ogg");
+ if(sv_gentle) {
+ bprint (a,"^7 made ^1TWENTY SCORES IN A ROW!\n");
+ } else {
+ bprint (a,"^7 is a ^1BERSERKER!\n");
+ announce(attacker, "announcer/male/20kills.ogg");
+ }
}
else if (attacker.killcount == 25)
{
- bprint (a,"^7 inflicts ^1CARNAGE!\n");
- announce(attacker, "announcer/male/25kills.ogg");
+ if(sv_gentle) {
+ bprint (a,"^7 made ^1TWENTY FIFE SCORES IN A ROW!\n");
+ } else {
+ bprint (a,"^7 inflicts ^1CARNAGE!\n");
+ announce(attacker, "announcer/male/25kills.ogg");
+ }
}
else if (attacker.killcount == 30)
{
- bprint (a,"^7 unleashes ^1ARMAGEDDON!\n");
- announce(attacker, "announcer/male/30kills.ogg");
+ if(sv_gentle) {
+ bprint (a,"^7 made ^1THIRTY SCORES IN A ROW!\n");
+ } else {
+ bprint (a,"^7 unleashes ^1ARMAGEDDON!\n");
+ announce(attacker, "announcer/male/30kills.ogg");
+ }
}
}
}
@@ -316,26 +407,44 @@
if (deathtype == DEATH_HURTTRIGGER && attacker.message != "")
bprint ("^1",s, "^1 ", attacker.message, "\n");
else if (deathtype == DEATH_DROWN)
- bprint ("^1",s, "^1 drowned\n");
+ if(sv_gentle)
+ bprint ("^1",s, "^1 was in the water for too long\n");
+ else
+ bprint ("^1",s, "^1 drowned\n");
else if (deathtype == DEATH_SLIME)
bprint ("^1",s, "^1 was slimed\n");
else if (deathtype == DEATH_LAVA)
- bprint ("^1",s, "^1 turned into hot slag\n");
+ if(sv_gentle)
+ bprint ("^1",s, "^1 found a hot place\n");
+ else
+ bprint ("^1",s, "^1 turned into hot slag\n");
else if (deathtype == DEATH_FALL)
- bprint ("^1",s, "^1 hit the ground with a crunch\n");
+ if(sv_gentle)
+ bprint ("^1",s, "^1 tested gravity (and it worked)\n");
+ else
+ bprint ("^1",s, "^1 hit the ground with a crunch\n");
else if (deathtype == DEATH_SHOOTING_STAR)
bprint ("^1",s, "^1 became a shooting star\n");
else if (deathtype == DEATH_SWAMP)
- bprint ("^1",s, "^1 is now conserved for centuries to come\n");
+ if(sv_gentle)
+ bprint ("^1",s, "^1 discovered a swamp\n");
+ else
+ bprint ("^1",s, "^1 is now conserved for centuries to come\n");
else
- bprint ("^1",s, "^1 died\n");
+ if(sv_gentle)
+ bprint ("^1",s, "^1 needs a restart\n");
+ else
+ bprint ("^1",s, "^1 died\n");
GiveFrags(targ, targ, -1);
if(targ.frags == -5) {
announce(targ, "announcer/male/botlike.ogg");
}
if (targ.killcount > 2)
- bprint ("^1",s,"^1 died with a ",ftos(targ.killcount)," kill spree\n");
+ if(sv_gentle)
+ bprint ("^1",s,"^1 needs a restart after a ",ftos(targ.killcount)," scoring spree\n");
+ else
+ bprint ("^1",s,"^1 died with a ",ftos(targ.killcount)," kill spree\n");
LogDeath("accident", deathtype, targ, targ);
}
Modified: branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc 2008-07-02 00:03:00 UTC (rev 3752)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc 2008-07-02 09:47:14 UTC (rev 3753)
@@ -10,7 +10,9 @@
sound (self, CHAN_IMPACT, "misc/gib_splat03.wav", 1, ATTN_NORM);
else if (r < 0.75)
sound (self, CHAN_IMPACT, "misc/gib_splat04.wav", 1, ATTN_NORM);
- pointparticles(particleeffectnum("blood"), self.origin + '0 0 1', '0 0 30', 10);
+
+ if(sv_gentle < 1)
+ pointparticles(particleeffectnum("blood"), self.origin + '0 0 1', '0 0 30', 10);
self.health = self.health - damage;
if (self.health <= -1000)
{
@@ -37,6 +39,10 @@
{
if(self.classname == "player") // the eye
{
+ if(sv_gentle > 0) {
+ self.model = "";
+ return TRUE;
+ }
if(self.gibrandom > other.cvar_cl_nogibs)
self.model = self.mdl;
else
Modified: branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc 2008-07-02 00:03:00 UTC (rev 3752)
+++ branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc 2008-07-02 09:47:14 UTC (rev 3753)
@@ -752,6 +752,7 @@
void readlevelcvars(void)
{
sv_cheats = cvar("sv_cheats");
+ sv_gentle = cvar("sv_gentle");
sv_foginterval = cvar("sv_foginterval");
g_cloaked = cvar("g_cloaked");
g_footsteps = cvar("g_footsteps");
More information about the nexuiz-commits
mailing list