From c845f69f8a00f72332192f85c40d290ee20b47f9 Mon Sep 17 00:00:00 2001 From: kadaverjack Date: Mon, 20 Feb 2006 04:00:35 +0000 Subject: [PATCH] - added wisellama's advanced bash script (nexuiz-linux.sh can now be symlinked to $PATH) - anti camping system for LMS (player has to move a certain distance between 2 checks or he get's damage) - added more LMS map which were previsously not used due to hiding places git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1104 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/default.cfg | 6 +++++- data/maps/lms_nexdm03.mapcfg | 4 ++++ data/maps/lms_nexdm03.txt | 17 +++++++++++++++++ data/maps/lms_nexdm04.mapcfg | 4 ++++ data/maps/lms_nexdm04.txt | 17 +++++++++++++++++ data/maps/lms_nexdm08.mapcfg | 4 ++++ data/maps/lms_nexdm08.txt | 15 +++++++++++++++ data/maps/lms_nexdm11.mapcfg | 4 ++++ data/maps/lms_nexdm11.txt | 16 ++++++++++++++++ data/maps/lms_nexdm14.mapcfg | 4 ++++ data/maps/lms_nexdm14.txt | 15 +++++++++++++++ data/maps/lms_nexdmextra2.mapcfg | 4 ++++ data/maps/lms_nexdmextra2.txt | 18 ++++++++++++++++++ data/qcsrc/server/gamec/cl_client.c | 27 +++++++++++++++++++++++++++ data/qcsrc/server/gamec/constants.h | 1 + data/qcsrc/server/gamec/defs.h | 2 ++ data/qcsrc/server/gamec/g_damage.c | 4 ++++ nexuiz-linux.sh | 14 ++++++++++++-- 18 files changed, 173 insertions(+), 3 deletions(-) create mode 100644 data/maps/lms_nexdm03.mapcfg create mode 100644 data/maps/lms_nexdm03.txt create mode 100644 data/maps/lms_nexdm04.mapcfg create mode 100644 data/maps/lms_nexdm04.txt create mode 100644 data/maps/lms_nexdm08.mapcfg create mode 100644 data/maps/lms_nexdm08.txt create mode 100644 data/maps/lms_nexdm11.mapcfg create mode 100644 data/maps/lms_nexdm11.txt create mode 100644 data/maps/lms_nexdm14.mapcfg create mode 100644 data/maps/lms_nexdm14.txt create mode 100644 data/maps/lms_nexdmextra2.mapcfg create mode 100644 data/maps/lms_nexdmextra2.txt diff --git a/data/default.cfg b/data/default.cfg index 751b41096..08751d978 100644 --- a/data/default.cfg +++ b/data/default.cfg @@ -142,7 +142,7 @@ set g_forced_respawn 0 set g_fullbrightplayers 0 set g_fullbrightitems 0 set g_casings 0 -set g_maplist_defaultlist "dm_nexdm01 dm_nexdm02 dm_nexdm03 dm_nexdm04 dm_nexdm05 dm_nexdm06 dm_nexdm07 dm_nexdm08 dm_nexdm09 dm_nexdm10 dm_nexdm11 dm_nexdm12 dm_nexdm13 dm_nexdm14 dm_nexdm15 dm_nexdm16 dm_nexdm17 dm_nexdm18 dm_nexdm18_1on1remix dm_nexdmextra1 dm_nexdmextra2 dom_nexdm01 dom_nexdm02 dom_nexdm03 dom_nexdm04 dom_nexdm05 dom_nexdm06 dom_nexdm07 dom_nexdm08 dom_nexdm09 dom_nexdm10 dom_nexdm11 dom_nexdm12 dom_nexdm13 dom_nexdm14 dom_nexdm15 dom_nexdm16 dom_nexdm17 dom_nexdm18 dom_nexdm18_1on1remix dom_nexdmextra1 dom_nexdmextra2 rune_nexdm01 rune_nexdm02 rune_nexdm03 rune_nexdm04 rune_nexdm05 rune_nexdm06 rune_nexdm07 rune_nexdm08 rune_nexdm09 rune_nexdm10 rune_nexdm11 rune_nexdm12 rune_nexdm13 rune_nexdm14 rune_nexdm15 rune_nexdm16 rune_nexdm17 rune_nexdm18 rune_nexdm18_1on1remix rune_nexdmextra1 rune_nexdmextra2 tdm_nexdm01 tdm_nexdm02 tdm_nexdm03 tdm_nexdm04 tdm_nexdm05 tdm_nexdm06 tdm_nexdm07 tdm_nexdm08 tdm_nexdm09 tdm_nexdm10 tdm_nexdm11 tdm_nexdm12 tdm_nexdm13 tdm_nexdm14 tdm_nexdm15 tdm_nexdm16 tdm_nexdm17 tdm_nexdm18 tdm_nexdm18_1on1remix tdm_nexdmextra1 tdm_nexdmextra2 ctf_nexctf01 ctf_nexctf02 ctf_nexdm13 lms_nexdm01 lms_nexdm02 lms_nexdm05 lms_nexdm06 lms_nexdm07 lms_nexdm10 lms_nexdm12 lms_nexdm13 lms_nexdm18 lms_nexdm18_1on1remix" +set g_maplist_defaultlist "dm_nexdm01 dm_nexdm02 dm_nexdm03 dm_nexdm04 dm_nexdm05 dm_nexdm06 dm_nexdm07 dm_nexdm08 dm_nexdm09 dm_nexdm10 dm_nexdm11 dm_nexdm12 dm_nexdm13 dm_nexdm14 dm_nexdm15 dm_nexdm16 dm_nexdm17 dm_nexdm18 dm_nexdm18_1on1remix dm_nexdmextra1 dm_nexdmextra2 dom_nexdm01 dom_nexdm02 dom_nexdm03 dom_nexdm04 dom_nexdm05 dom_nexdm06 dom_nexdm07 dom_nexdm08 dom_nexdm09 dom_nexdm10 dom_nexdm11 dom_nexdm12 dom_nexdm13 dom_nexdm14 dom_nexdm15 dom_nexdm16 dom_nexdm17 dom_nexdm18 dom_nexdm18_1on1remix dom_nexdmextra1 dom_nexdmextra2 rune_nexdm01 rune_nexdm02 rune_nexdm03 rune_nexdm04 rune_nexdm05 rune_nexdm06 rune_nexdm07 rune_nexdm08 rune_nexdm09 rune_nexdm10 rune_nexdm11 rune_nexdm12 rune_nexdm13 rune_nexdm14 rune_nexdm15 rune_nexdm16 rune_nexdm17 rune_nexdm18 rune_nexdm18_1on1remix rune_nexdmextra1 rune_nexdmextra2 tdm_nexdm01 tdm_nexdm02 tdm_nexdm03 tdm_nexdm04 tdm_nexdm05 tdm_nexdm06 tdm_nexdm07 tdm_nexdm08 tdm_nexdm09 tdm_nexdm10 tdm_nexdm11 tdm_nexdm12 tdm_nexdm13 tdm_nexdm14 tdm_nexdm15 tdm_nexdm16 tdm_nexdm17 tdm_nexdm18 tdm_nexdm18_1on1remix tdm_nexdmextra1 tdm_nexdmextra2 ctf_nexctf01 ctf_nexctf02 ctf_nexdm13 lms_nexdm01 lms_nexdm02 lms_nexdm03 lms_nexdm04 lms_nexdm05 lms_nexdm06 lms_nexdm07 lms_nexdm08 lms_nexdm10 lms_nexdm11 lms_nexdm12 lms_nexdm13 lms_nexdm14 lms_nexdm18_1on1remix lms_nexdm18 lms_nexdmextra2" seta g_maplist $g_maplist_defaultlist seta g_maplist_index 0 // this is used internally for saving position in maplist cycle // timeout for kill credit when your damage knocks someone into a death trap @@ -257,6 +257,10 @@ 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_campcheck_interval 10 +set g_lms_campcheck_message "^1Don't camp!" +set g_lms_campcheck_damage 100 +set g_lms_campcheck_distance 1800 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/maps/lms_nexdm03.mapcfg b/data/maps/lms_nexdm03.mapcfg new file mode 100644 index 000000000..2f820c04f --- /dev/null +++ b/data/maps/lms_nexdm03.mapcfg @@ -0,0 +1,4 @@ +set g_lms 1 +set fraglimit 10 +set timelimit 30 +changelevel nexdm03 diff --git a/data/maps/lms_nexdm03.txt b/data/maps/lms_nexdm03.txt new file mode 100644 index 000000000..bec45e8b9 --- /dev/null +++ b/data/maps/lms_nexdm03.txt @@ -0,0 +1,17 @@ +The Slime Pit (lms_nexdm03) +maps/nexdm03 + +An industrial arena. + +Players: 3-5 + +Weapons: Machine Gun, Mortar, +Electro, Nex, Hagar, +Rocket Launcher + +Gametype: Last Man Standing + +Author: +Mattrew Rye +Garth Hendy +Maik Merten diff --git a/data/maps/lms_nexdm04.mapcfg b/data/maps/lms_nexdm04.mapcfg new file mode 100644 index 000000000..59f581312 --- /dev/null +++ b/data/maps/lms_nexdm04.mapcfg @@ -0,0 +1,4 @@ +set g_lms 1 +set fraglimit 10 +set timelimit 30 +changelevel nexdm04 diff --git a/data/maps/lms_nexdm04.txt b/data/maps/lms_nexdm04.txt new file mode 100644 index 000000000..35bedd5ac --- /dev/null +++ b/data/maps/lms_nexdm04.txt @@ -0,0 +1,17 @@ +Skyway (lms_nexdm04) +maps/nexdm04 + +Vertical arena. + +Players: 2-6 + +Weapons: Machine Gun, Mortar, +Electro, Nexgun, Rocket Launcher + +Powerups: Strength + +Gametype: Last Man Standing + +Author: +Mattrew Rye +Garth Hendy diff --git a/data/maps/lms_nexdm08.mapcfg b/data/maps/lms_nexdm08.mapcfg new file mode 100644 index 000000000..26619cc00 --- /dev/null +++ b/data/maps/lms_nexdm08.mapcfg @@ -0,0 +1,4 @@ +set g_lms 1 +set fraglimit 10 +set timelimit 30 +changelevel nexdm08 diff --git a/data/maps/lms_nexdm08.txt b/data/maps/lms_nexdm08.txt new file mode 100644 index 000000000..33807e037 --- /dev/null +++ b/data/maps/lms_nexdm08.txt @@ -0,0 +1,15 @@ +Glow Arena (lms_nexdm08) +maps/nexdm08 + +A small arena map. + +Players: 2-5 + +Weapons: Machine Gun, Mortar, +Electro, Crylink, +Rocket Launcher + +Gametype: Last Man Standing + +Author: +Garth Hendy diff --git a/data/maps/lms_nexdm11.mapcfg b/data/maps/lms_nexdm11.mapcfg new file mode 100644 index 000000000..41307d27e --- /dev/null +++ b/data/maps/lms_nexdm11.mapcfg @@ -0,0 +1,4 @@ +set g_lms 1 +set fraglimit 10 +set timelimit 30 +changelevel nexdm11 diff --git a/data/maps/lms_nexdm11.txt b/data/maps/lms_nexdm11.txt new file mode 100644 index 000000000..e5b92c430 --- /dev/null +++ b/data/maps/lms_nexdm11.txt @@ -0,0 +1,16 @@ +Ruins of Slaughter (lms_nexdm11) +maps/nexdm11 + +A ruined arena. + +Players: 3-6 + +Weapons: Mortar, Electro, +Crylink, Hagar, Rocket Launcher + +Powerups: Strength + +Gametype: Last Man Standing + +Author: +"HReaper" diff --git a/data/maps/lms_nexdm14.mapcfg b/data/maps/lms_nexdm14.mapcfg new file mode 100644 index 000000000..071f4f796 --- /dev/null +++ b/data/maps/lms_nexdm14.mapcfg @@ -0,0 +1,4 @@ +set g_lms 1 +set fraglimit 10 +set timelimit 30 +changelevel nexdm14 diff --git a/data/maps/lms_nexdm14.txt b/data/maps/lms_nexdm14.txt new file mode 100644 index 000000000..4c87c646b --- /dev/null +++ b/data/maps/lms_nexdm14.txt @@ -0,0 +1,15 @@ +Soylent Space (lms_nexdm14) +maps/nexdm14 + +Medium sized vertical Level + +Players: 2-6 + +Weapons: Mortar, Nexgun, +Rocket Launcher, Crylink, +Hagar, Machine Gun + +Gametype: Last Man Standing + +Author: +Paul Evers \ No newline at end of file diff --git a/data/maps/lms_nexdmextra2.mapcfg b/data/maps/lms_nexdmextra2.mapcfg new file mode 100644 index 000000000..d639d29be --- /dev/null +++ b/data/maps/lms_nexdmextra2.mapcfg @@ -0,0 +1,4 @@ +set g_lms 1 +set fraglimit 10 +set timelimit 30 +changelevel nexdmextra2 diff --git a/data/maps/lms_nexdmextra2.txt b/data/maps/lms_nexdmextra2.txt new file mode 100644 index 000000000..8771f83cd --- /dev/null +++ b/data/maps/lms_nexdmextra2.txt @@ -0,0 +1,18 @@ +Aggressor (lms_nexdmextra2) +maps/nexdmextra2 + +Small map with brutal fast +vertical action. + +Players: 2-4 + +Weapons: Electro, Machine Gun, +Mortar, Hagar, Rocket Launcher, +Nex + +Gametype: Last Man Standing + +Layout/Architecture: +Kevin "Tyrann" Shanahan +Texturing/Lighting: +Paul Evers diff --git a/data/qcsrc/server/gamec/cl_client.c b/data/qcsrc/server/gamec/cl_client.c index 1fc47fe0a..b7961b922 100644 --- a/data/qcsrc/server/gamec/cl_client.c +++ b/data/qcsrc/server/gamec/cl_client.c @@ -444,6 +444,9 @@ void PutClientInServer (void) self.alpha = 1; self.exteriorweaponentity.alpha = 1; + self.lms_nextcheck = time + cvar("g_lms_campcheck_interval"); + self.lms_traveled_distance = 0; + //stuffcmd(self, "chase_active 0"); //stuffcmd(self, "set viewsize $tmpviewsize \n"); } else if(self.classname == "observer") { @@ -1077,6 +1080,28 @@ void PlayerPreThink (void) return; } + if(cvar("g_lms") && !self.deadflag && cvar("g_lms_campcheck_interval")) + { + vector dist; + + // calculate player movement (in 2 dimensions only, so jumping on one spot doesn't count as movement) + dist = self.oldorigin - self.origin; + dist_z = 0; + self.lms_traveled_distance += fabs(vlen(dist)); + + if(time > self.lms_nextcheck) + { + //sprint(self, "distance: ", ftos(self.lms_traveled_distance), "\n"); + if(self.lms_traveled_distance < cvar("g_lms_campcheck_distance")) + { + centerprint(self, cvar_string("g_lms_campcheck_message")); + Damage(self, self, self, cvar("g_lms_campcheck_damage"), DEATH_CAMP, self.origin, '0 0 0'); + } + self.lms_nextcheck = time + cvar("g_lms_campcheck_interval"); + self.lms_traveled_distance = 0; + } + } + if (self.button5) { if (!self.crouch) @@ -1172,6 +1197,8 @@ void PlayerPreThink (void) //if (TetrisPreFrame()) return; } else if(gameover) { + if (intermission_running) + IntermissionThink (); // otherwise a button could be missed between return; } else if(self.classname == "observer") { diff --git a/data/qcsrc/server/gamec/constants.h b/data/qcsrc/server/gamec/constants.h index aa427596a..6710572ea 100644 --- a/data/qcsrc/server/gamec/constants.h +++ b/data/qcsrc/server/gamec/constants.h @@ -144,6 +144,7 @@ float DEATH_NOAMMO = 10007; float DEATH_SWAMP = 10008; float DEATH_TEAMCHANGE = 10009; float DEATH_AUTOTEAMCHANGE = 10010; +float DEATH_CAMP = 10011; float IT_LASER = 4096; float IT_SHOTGUN = 1; diff --git a/data/qcsrc/server/gamec/defs.h b/data/qcsrc/server/gamec/defs.h index ff4049175..f9cda15ee 100644 --- a/data/qcsrc/server/gamec/defs.h +++ b/data/qcsrc/server/gamec/defs.h @@ -239,3 +239,5 @@ float GRAPHOOK_RELEASE = 21; .float spawnshieldtime; +.float lms_nextcheck +.float lms_traveled_distance diff --git a/data/qcsrc/server/gamec/g_damage.c b/data/qcsrc/server/gamec/g_damage.c index f7be56ad4..0bc547f74 100644 --- a/data/qcsrc/server/gamec/g_damage.c +++ b/data/qcsrc/server/gamec/g_damage.c @@ -69,6 +69,8 @@ void Obituary (entity attacker, entity targ, float deathtype) centerprint(targ, m); return; } + else if (deathtype == DEATH_CAMP) + centerprint(targ, strcat("^1Die camper!\n\n\n")); else centerprint(targ, strcat("^1You killed your own dumb self!\n\n\n")); @@ -85,6 +87,8 @@ void Obituary (entity attacker, entity targ, float deathtype) bprint ("^7",s, " ^7committed suicide. What's the point of living without ammo?\n"); //sound (self, CHAN_BODY, "minstagib/mockery.ogg", 1, ATTN_NONE); } + else if (deathtype == DEATH_CAMP) + bprint ("^1",s, "^1 thought he found a nice camping ground\n"); else if (deathtype != DEATH_TEAMCHANGE) bprint ("^1",s, "^1 couldn't resist the urge to self-destruct\n"); GiveFrags(attacker, targ, -1); diff --git a/nexuiz-linux.sh b/nexuiz-linux.sh index 81b82c01e..a4b65e139 100755 --- a/nexuiz-linux.sh +++ b/nexuiz-linux.sh @@ -1,4 +1,14 @@ #!/bin/sh -cd "`dirname ${0}`" -./nexuiz-linux-686-sdl "${@}" +path=`dirname ${0}` +link=`readlink ${0}` + +[ -n "$link" ] && path=`dirname $link` +cd "$path" + +case "$(uname -m)" in + x86_64) nexuiz="nexuiz-linux-x86_64-sdl" ;; + *) nexuiz="nexuiz-linux-686-sdl" ;; +esac + +exec ./$nexuiz "${@}" -- 2.39.2