From b9c108dabffbea4f341fbd13dda70cc2bfd269b0 Mon Sep 17 00:00:00 2001 From: kadaverjack Date: Sun, 19 Feb 2006 00:50:01 +0000 Subject: [PATCH] some more keys in options->controls and squished some bugs with team select menu git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1089 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/default.cfg | 2 +- data/menu/data/key.menu | 27 +++++++++++++++++++++++- data/menu/options/key.menu | 26 ++++++++++++++++++++++- data/qcsrc/server/gamec/cl_player.c | 15 +++++++------ data/qcsrc/server/gamec/clientcommands.c | 14 ++++++------ data/qcsrc/server/gamec/teamplay.c | 4 ++-- 6 files changed, 71 insertions(+), 17 deletions(-) diff --git a/data/default.cfg b/data/default.cfg index 61c898c9f..6fa9ee195 100644 --- a/data/default.cfg +++ b/data/default.cfg @@ -29,7 +29,7 @@ alias "cc" "cmd ccmd $*" alias "dropweapon" "impulse 17" alias "+show_info" "impulse 18" -alias "-show_info" "impulse 19" +alias "-show_info" "impulse 100" alias "team_red" "cmd selectteam red" alias "team_blue" "cmd selectteam blue" diff --git a/data/menu/data/key.menu b/data/menu/data/key.menu index 669012e88..1a795ee29 100644 --- a/data/menu/data/key.menu +++ b/data/menu/data/key.menu @@ -60,6 +60,11 @@ Item DataContainer Key target "dropweapon" defValue "'BACKSPACE'" } + Item Data_Nex_Key WeapLast + { + target "weaplast" + defValue "'MOUSE4'" + } Item Data_Nex_Key Zoom { target "+zoom" @@ -68,7 +73,7 @@ Item DataContainer Key Item Data_Nex_Key Hook { target "+hook" - defValue "''" + defValue "'e'" } Item DataContainer Weapon { @@ -168,4 +173,24 @@ Item DataContainer Key target "+show_info" defValue "'i'" } + Item Data_Nex_Key Spec + { + target "spec" + defValue "'F3'" + } + Item Data_Nex_Key TeamSelect + { + target "menu_showteamselect" + defValue "'F5'" + } + Item Data_Nex_Key VoteYes + { + target "vyes" + defValue "'F5'" + } + Item Data_Nex_Key VoteNo + { + target "vno" + defValue "'F5'" + } } diff --git a/data/menu/options/key.menu b/data/menu/options/key.menu index 16e9f18fe..b4d41f5ed 100644 --- a/data/menu/options/key.menu +++ b/data/menu/options/key.menu @@ -208,6 +208,11 @@ Item Window KeyControl text "Drop Weapon" target "Data::Key::DropWeapon" } + Derive Nex_Key_Template WeapLast + { + text "Last Used Weapon" + target "Data::Key::WeapLast" + } Derive Nex_Void Seperator2 {} Derive Title Weapons @@ -316,7 +321,26 @@ Item Window KeyControl text "Display Serverinfo" target "Data::Key::ShowInfo" } - + Derive Nex_Key_Template Spec + { + text "Become Spectator" + target "Data::Key::Spec" + } + Derive Nex_Key_Template TeamSelect + { + text "Show Teammenu" + target "Data::Key::TeamSelect" + } + Derive Nex_Key_Template VoteYes + { + text "Vote Yes" + target "Data::Key::VoteYes" + } + Derive Nex_Key_Template VoteNo + { + text "Vote No" + target "Data::Key::VoteNo" + } } } Item VScrollBar Scroller diff --git a/data/qcsrc/server/gamec/cl_player.c b/data/qcsrc/server/gamec/cl_player.c index c59e9c92b..0fd3bc3d8 100644 --- a/data/qcsrc/server/gamec/cl_player.c +++ b/data/qcsrc/server/gamec/cl_player.c @@ -351,12 +351,15 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht self.event_damage(inflictor, attacker, 0, deathtype, hitloc, force); // set up to fade out later SUB_SetFade (self, time + 12 + random () * 4, 1); - - msg_entity = self; - WriteByte (MSG_ONE, SVC_SETANGLE); - WriteAngle (MSG_ONE, self.v_angle_x); - WriteAngle (MSG_ONE, self.v_angle_y); - WriteAngle (MSG_ONE, 80); + + if(clienttype(self) != CLIENTTYPE_BOT) + { + msg_entity = self; + WriteByte (MSG_ONE, SVC_SETANGLE); + WriteAngle (MSG_ONE, self.v_angle_x); + WriteAngle (MSG_ONE, self.v_angle_y); + WriteAngle (MSG_ONE, 80); + } } } diff --git a/data/qcsrc/server/gamec/clientcommands.c b/data/qcsrc/server/gamec/clientcommands.c index f0dbe9cbd..949c7ed3e 100644 --- a/data/qcsrc/server/gamec/clientcommands.c +++ b/data/qcsrc/server/gamec/clientcommands.c @@ -194,15 +194,17 @@ void SV_ParseClientCommand(string s) { PutClientInServer(); } } else if(argv(0) == "join") { - self.classname = "player"; - self.frags = 0; - // TODO: I have no idea whether this is needed or not - if(!cvar("g_lms")) { + if (self.classname != "player") + { + self.classname = "player"; + self.frags = 0; bprint (strcat("^4", self.netname, "^4 is playing now\n")); + PutClientInServer(); } - PutClientInServer(); } else if( argv(0) == "selectteam" ) { - if( argv(1) == "none" ) { + if( !cvar("teamplay") ) { + sprint( self, "selecteam can only be used in teamgames\n"); + } else if( argv(1) == "none" ) { SV_ChangeTeam( 0 ); } else if( argv(1) == "red" ) { SV_ChangeTeam( COLOR_TEAM1 - 1 ); diff --git a/data/qcsrc/server/gamec/teamplay.c b/data/qcsrc/server/gamec/teamplay.c index ea838cabe..4895279f8 100644 --- a/data/qcsrc/server/gamec/teamplay.c +++ b/data/qcsrc/server/gamec/teamplay.c @@ -666,6 +666,8 @@ float JoinBestTeam(entity pl, float only_return_best) { error("smallest team: invalid team\n"); } + if(pl.deadflag == DEAD_NO) + Damage(pl, pl, pl, 100000, DEATH_TEAMCHANGE, pl.origin, '0 0 0'); } return smallest; @@ -802,8 +804,6 @@ void SV_ChangeTeam(float _color) { // kill player when changing teams if(self.deadflag == DEAD_NO) -// self.event_damage(self, self, 10000, DEATH_TEAMCHANGE, self.origin, '0 0 0'); - Damage(self, self, self, 100000, DEATH_TEAMCHANGE, self.origin, '0 0 0'); // reduce frags during a team change self.frags = floor(self.frags * (cvar("g_changeteam_fragtransfer") / 100)); -- 2.39.2