Fixed a T buying bug
Added the ability of the C4 Bomb to "explode"... Added a random-bombguy selection thingie for the Ts.
This commit is contained in:
parent
4f7defcb98
commit
604bdff844
6 changed files with 47 additions and 15 deletions
|
@ -96,6 +96,7 @@ string sCSPlayers[9] = {
|
|||
"models/player/gign/gign.mdl"
|
||||
};
|
||||
|
||||
void Rules_RoundOver( int iTeamWon );
|
||||
float Rules_BuyingPossible( void );
|
||||
void Timer_Begin( float fTime, float fMode);
|
||||
void Spawn_RespawnClient( float fTeam );
|
||||
|
|
|
@ -66,7 +66,7 @@ void Game_CreateBuyZones( void ) {
|
|||
entity eFind;
|
||||
|
||||
if ( iBuyRestriction == BUY_T || iBuyRestriction == BUY_BOTH ) {
|
||||
eFind = findchain( classname, "info_player_start" );
|
||||
eFind = findchain( classname, "info_player_deathmatch" );
|
||||
|
||||
while ( eFind ) {
|
||||
entity eBuyZoneT = spawn();
|
||||
|
|
|
@ -59,11 +59,11 @@ float Rules_BuyingPossible( void ) {
|
|||
// Loop through all players and respawn them
|
||||
void Rules_Restart( void ) {
|
||||
//localcmd( "restart_ents" );
|
||||
|
||||
entity eOldSelf;
|
||||
entity eFind = findchain( classname, "player" );
|
||||
|
||||
while ( eFind ) {
|
||||
entity eOldSelf = self;
|
||||
eOldSelf = self;
|
||||
self = eFind;
|
||||
|
||||
if ( self.health > 0 ) {
|
||||
|
@ -76,6 +76,30 @@ void Rules_Restart( void ) {
|
|||
eFind = eFind.chain;
|
||||
}
|
||||
|
||||
// Select a random Terrorist for the bomb thing
|
||||
if ( iBombZones > 0 ) {
|
||||
int iRandomT = ceil( random() * iAlivePlayers_T );
|
||||
int iPicked = 0;
|
||||
|
||||
eFind = findchain( classname, "player" );
|
||||
while ( eFind ) {
|
||||
|
||||
if ( eFind.classname == "player" && eFind.team == TEAM_T ) {
|
||||
iPicked++;
|
||||
|
||||
if ( iPicked == iRandomT ) {
|
||||
eOldSelf = self;
|
||||
self = eFind;
|
||||
Weapon_AddItem( WEAPON_C4BOMB );
|
||||
self = eOldSelf;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
eFind = eFind.chain;
|
||||
}
|
||||
}
|
||||
|
||||
Timer_Begin( cvar( "mp_freezetime" ), GAME_FREEZE );
|
||||
}
|
||||
|
||||
|
@ -116,5 +140,9 @@ Also allows people to set the bomb placing radius incase you want to use info_bo
|
|||
*/
|
||||
.float buying;
|
||||
void info_map_parameters( void ) {
|
||||
iBuyRestriction = self.buying;
|
||||
if ( !self.buying ) {
|
||||
self.buying = BUY_BOTH;
|
||||
} else {
|
||||
iBuyRestriction = self.buying;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ weaponinfo_t wptC4BOMB = {
|
|||
0.0, // Attack-Delay
|
||||
0.0, // Reload-Delay
|
||||
iAmmo_9MM, // Caliber Pointer
|
||||
iAmmo_9MM, // Clip Pointer
|
||||
iAmmo_9MM, // Clip Pointer
|
||||
1, // Accuracy Divisor
|
||||
1, // Accuracy Offset
|
||||
1 // Max Inaccuracy
|
||||
|
@ -57,9 +57,21 @@ enum {
|
|||
|
||||
#ifdef SSQC
|
||||
void WeaponC4BOMB_Drop( vector vBombPos ) {
|
||||
static void c4bomb_think( void ) {
|
||||
if ( self.fAttackFinished < time ) {
|
||||
Rules_RoundOver( TEAM_T );
|
||||
remove( self );
|
||||
return;
|
||||
}
|
||||
self.nextthink = time + 0.12;
|
||||
}
|
||||
|
||||
entity eBomb = spawn();
|
||||
setorigin( eBomb, vBombPos );
|
||||
setmodel( eBomb, "models/w_c4.mdl" );
|
||||
eBomb.think = c4bomb_think;
|
||||
eBomb.nextthink = time + 0.12;
|
||||
eBomb.fAttackFinished = time + 45;
|
||||
|
||||
sound( world, CHAN_VOICE, "radio/bombpl.wav", 1.0, ATTN_NONE );
|
||||
|
||||
|
@ -69,8 +81,6 @@ void WeaponC4BOMB_Drop( vector vBombPos ) {
|
|||
|
||||
void WeaponC4BOMB_Draw( void ) {
|
||||
#ifdef SSQC
|
||||
self.iCurrentClip = 0;
|
||||
self.iCurrentCaliber = 0;
|
||||
Client_SendEvent( self, EV_WEAPON_DRAW );
|
||||
#else
|
||||
View_PlayAnimation( ANIM_C4_DRAW );
|
||||
|
|
|
@ -124,6 +124,7 @@ void WeaponGLOCK18_Secondary( void ) {
|
|||
// Tell the client that we switched modes, too
|
||||
Client_SendEvent( self, EV_WEAPON_SECONDARYATTACK );
|
||||
|
||||
// TODO: Move to the clientside
|
||||
if ( self.iMode_GLOCK18 == TRUE ) {
|
||||
centerprint( self, "Switched to Burst-Fire mode" );
|
||||
} else {
|
||||
|
|
|
@ -18,14 +18,6 @@ along with this program; if not, write to the Free Software
|
|||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
.int iClip_GLOCK18;
|
||||
|
||||
#ifdef SSQC
|
||||
.int iMode_GLOCK18;
|
||||
#else
|
||||
int iWeaponMode_GLOCK18;
|
||||
#endif
|
||||
|
||||
// Weapon Info
|
||||
weaponinfo_t wptKNIFE = {
|
||||
WEAPON_KNIFE, // Identifier
|
||||
|
|
Loading…
Reference in a new issue