field names casing

This commit is contained in:
ineed bots 2023-12-23 00:01:15 -06:00
parent 2459a37a64
commit ca17899595
7 changed files with 15129 additions and 15129 deletions

View File

@ -15,7 +15,7 @@
*/ */
init() init()
{ {
level.bw_VERSION = "2.1.0"; level.bw_version = "2.1.0";
if ( getDvar( "bots_main" ) == "" ) if ( getDvar( "bots_main" ) == "" )
{ {
@ -220,27 +220,27 @@ init()
game[ "botWarfare" ] = true; game[ "botWarfare" ] = true;
} }
level.defuseObject = undefined; level.defuseobject = undefined;
level.bots_smokeList = List(); level.bots_smokelist = List();
level.bots_fragList = List(); level.bots_fraglist = List();
level.bots_minSprintDistance = 315; level.bots_minsprintdistance = 315;
level.bots_minSprintDistance *= level.bots_minSprintDistance; level.bots_minsprintdistance *= level.bots_minsprintdistance;
level.bots_minGrenadeDistance = 256; level.bots_mingrenadedistance = 256;
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance; level.bots_mingrenadedistance *= level.bots_mingrenadedistance;
level.bots_maxGrenadeDistance = 1024; level.bots_maxgrenadedistance = 1024;
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance; level.bots_maxgrenadedistance *= level.bots_maxgrenadedistance;
level.bots_maxKnifeDistance = 128; level.bots_maxknifedistance = 128;
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance; level.bots_maxknifedistance *= level.bots_maxknifedistance;
level.bots_goalDistance = 27.5; level.bots_goaldistance = 27.5;
level.bots_goalDistance *= level.bots_goalDistance; level.bots_goaldistance *= level.bots_goaldistance;
level.bots_noADSDistance = 200; level.bots_noadsdistance = 200;
level.bots_noADSDistance *= level.bots_noADSDistance; level.bots_noadsdistance *= level.bots_noadsdistance;
level.bots_maxShotgunDistance = 500; level.bots_maxshotgundistance = 500;
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance; level.bots_maxshotgundistance *= level.bots_maxshotgundistance;
level.bots_listenDist = 100; level.bots_listendist = 100;
level.smokeRadius = 255; level.smokeradius = 255;
level.bots = []; level.bots = [];
@ -327,7 +327,7 @@ onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon,
self maps\mp\bots\_bot_script::onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); self maps\mp\bots\_bot_script::onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
} }
self [[ level.prevCallbackPlayerDamage ]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); self [[ level.prevcallbackplayerdamage ]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
} }
/* /*
@ -341,7 +341,7 @@ onPlayerKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sH
self maps\mp\bots\_bot_script::onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration ); self maps\mp\bots\_bot_script::onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
} }
self [[ level.prevCallbackPlayerKilled ]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration ); self [[ level.prevcallbackplayerkilled ]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
} }
/* /*
@ -351,11 +351,11 @@ hook_callbacks()
{ {
level waittill( "prematch_over" ); // iw4madmin waits this long for some reason... level waittill( "prematch_over" ); // iw4madmin waits this long for some reason...
wait 0.05; // so we need to be one frame after it sets up its callbacks. wait 0.05; // so we need to be one frame after it sets up its callbacks.
level.prevCallbackPlayerDamage = level.callbackPlayerDamage; level.prevcallbackplayerdamage = level.callbackplayerdamage;
level.callbackPlayerDamage = ::onPlayerDamage; level.callbackplayerdamage = ::onPlayerDamage;
level.prevCallbackPlayerKilled = level.callbackPlayerKilled; level.prevcallbackplayerkilled = level.callbackplayerkilled;
level.callbackPlayerKilled = ::onPlayerKilled; level.callbackplayerkilled = ::onPlayerKilled;
} }
/* /*
@ -365,11 +365,11 @@ fixGamemodes()
{ {
for ( i = 0; i < 19; i++ ) for ( i = 0; i < 19; i++ )
{ {
if ( isDefined( level.bombZones ) && level.gametype == "sd" ) if ( isDefined( level.bombzones ) && level.gametype == "sd" )
{ {
for ( i = 0; i < level.bombZones.size; i++ ) for ( i = 0; i < level.bombzones.size; i++ )
{ {
level.bombZones[ i ].onUse = ::onUsePlantObjectFix; level.bombzones[ i ].onuse = ::onUsePlantObjectFix;
} }
break; break;
@ -382,7 +382,7 @@ fixGamemodes()
break; break;
} }
if ( isDefined( level.bombZones ) && level.gametype == "dd" ) if ( isDefined( level.bombzones ) && level.gametype == "dd" )
{ {
level thread fixDem(); level thread fixDem();
@ -400,18 +400,18 @@ fixDem()
{ {
for ( ;; ) for ( ;; )
{ {
level.bombAPlanted = level.aPlanted; level.bombaplanted = level.aplanted;
level.bombBPlanted = level.bPlanted; level.bombbplanted = level.bplanted;
for ( i = 0; i < level.bombZones.size; i++ ) for ( i = 0; i < level.bombzones.size; i++ )
{ {
if ( isDefined( level.bombZones[ i ].trigger.trigger_off ) ) if ( isDefined( level.bombzones[ i ].trigger.trigger_off ) )
{ {
level.bombZones[ i ].bombExploded = true; level.bombzones[ i ].bombexploded = true;
} }
else else
{ {
level.bombZones[ i ].bombExploded = undefined; level.bombzones[ i ].bombexploded = undefined;
} }
} }
@ -430,14 +430,14 @@ fixKoth()
{ {
wait 0.05; wait 0.05;
if ( !isDefined( level.radioObject ) ) if ( !isDefined( level.radioobject ) )
{ {
continue; continue;
} }
for ( i = level.radios.size - 1; i >= 0; i-- ) for ( i = level.radios.size - 1; i >= 0; i-- )
{ {
if ( level.radioObject != level.radios[ i ].gameobject ) if ( level.radioobject != level.radios[ i ].gameobject )
{ {
continue; continue;
} }
@ -446,7 +446,7 @@ fixKoth()
break; break;
} }
while ( isDefined( level.radioObject ) && level.radio.gameobject == level.radioObject ) while ( isDefined( level.radioobject ) && level.radio.gameobject == level.radioobject )
{ {
wait 0.05; wait 0.05;
} }
@ -507,12 +507,12 @@ watchRadar_loop()
for ( i = level.players.size - 1; i >= 0; i-- ) for ( i = level.players.size - 1; i >= 0; i-- )
{ {
player = level.players[ i ]; player = level.players[ i ];
player.bot_isInRadar = false; player.bot_isinradar = false;
} }
for ( i = level.players.size - 1; i >= 0; i-- ) for ( i = level.players.size - 1; i >= 0; i-- )
{ {
grenade = level.players[ i ].deployedPortableRadar; grenade = level.players[ i ].deployedportableradar;
if ( !isDefined( grenade ) ) if ( !isDefined( grenade ) )
{ {
@ -538,7 +538,7 @@ watchRadar_loop()
continue; continue;
} }
if ( level.teamBased && grenade.team == player.team ) if ( level.teambased && grenade.team == player.team )
{ {
continue; continue;
} }
@ -553,13 +553,13 @@ watchRadar_loop()
continue; continue;
} }
player.bot_isInRadar = true; player.bot_isinradar = true;
} }
} }
for ( i = level.players.size - 1; i >= 0; i-- ) for ( i = level.players.size - 1; i >= 0; i-- )
{ {
if ( !isDefined( level.players[ i ].personalRadar ) ) if ( !isDefined( level.players[ i ].personalradar ) )
{ {
continue; continue;
} }
@ -583,7 +583,7 @@ watchRadar_loop()
continue; continue;
} }
if ( level.teamBased && level.players[ i ].team == player.team ) if ( level.teambased && level.players[ i ].team == player.team )
{ {
continue; continue;
} }
@ -598,11 +598,11 @@ watchRadar_loop()
continue; continue;
} }
player.bot_isInRadar = true; player.bot_isinradar = true;
} }
} }
if ( isDefined( level.gameFlag ) && isDefined( level.gameFlag.carrier ) && isDefined( level.gameFlag.portable_radar ) ) if ( isDefined( level.gameflag ) && isDefined( level.gameflag.carrier ) && isDefined( level.gameflag.portable_radar ) )
{ {
for ( h = level.players.size - 1; h >= 0; h-- ) for ( h = level.players.size - 1; h >= 0; h-- )
{ {
@ -613,7 +613,7 @@ watchRadar_loop()
continue; continue;
} }
if ( level.teamBased && level.gameFlag.carrier.team != player.team ) if ( level.teambased && level.gameflag.carrier.team != player.team )
{ {
continue; continue;
} }
@ -623,12 +623,12 @@ watchRadar_loop()
continue; continue;
} }
if ( DistanceSquared( player.origin, level.gameFlag.carrier.origin ) > 256 * 256 ) if ( DistanceSquared( player.origin, level.gameflag.carrier.origin ) > 256 * 256 )
{ {
continue; continue;
} }
player.bot_isInRadar = true; player.bot_isinradar = true;
} }
} }
} }
@ -654,7 +654,7 @@ watchScrabler_loop()
for ( i = level.players.size - 1; i >= 0; i-- ) for ( i = level.players.size - 1; i >= 0; i-- )
{ {
player = level.players[ i ]; player = level.players[ i ];
player.bot_isScrambled = false; player.bot_isscrambled = false;
} }
for ( i = level.scramblers.size - 1; i >= 0; i-- ) for ( i = level.scramblers.size - 1; i >= 0; i-- )
@ -680,7 +680,7 @@ watchScrabler_loop()
continue; continue;
} }
if ( level.teamBased && scrambler.team == player.team ) if ( level.teambased && scrambler.team == player.team )
{ {
continue; continue;
} }
@ -695,7 +695,7 @@ watchScrabler_loop()
continue; continue;
} }
player.bot_isScrambled = true; player.bot_isscrambled = true;
} }
} }
@ -729,7 +729,7 @@ watchScrabler_loop()
continue; continue;
} }
if ( level.teamBased && drone.team == player.team ) if ( level.teambased && drone.team == player.team )
{ {
continue; continue;
} }
@ -744,7 +744,7 @@ watchScrabler_loop()
continue; continue;
} }
player.bot_isScrambled = true; player.bot_isscrambled = true;
} }
} }
} }
@ -773,12 +773,12 @@ addNotifyOnAirdrops_loop()
{ {
airdrop = dropCrates[ i ]; airdrop = dropCrates[ i ];
if ( isDefined( airdrop.doingPhysics ) ) if ( isDefined( airdrop.doingphysics ) )
{ {
continue; continue;
} }
airdrop.doingPhysics = true; airdrop.doingphysics = true;
airdrop thread doNotifyOnAirdrop(); airdrop thread doNotifyOnAirdrop();
} }
} }
@ -803,7 +803,7 @@ doNotifyOnAirdrop()
self endon( "death" ); self endon( "death" );
self waittill( "physics_finished" ); self waittill( "physics_finished" );
self.doingPhysics = false; self.doingphysics = false;
if ( isDefined( self.owner ) ) if ( isDefined( self.owner ) )
{ {
@ -837,8 +837,8 @@ onPlayerConnect()
{ {
level waittill( "connected", player ); level waittill( "connected", player );
player.bot_isScrambled = false; player.bot_isscrambled = false;
player.bot_isInRadar = false; player.bot_isinradar = false;
player thread onGrenadeFire(); player thread onGrenadeFire();
player thread onWeaponFired(); player thread onWeaponFired();
@ -1473,7 +1473,7 @@ AddToFragList( who )
grenade thread thinkFrag(); grenade thread thinkFrag();
level.bots_fragList ListAdd( grenade ); level.bots_fraglist ListAdd( grenade );
} }
/* /*
@ -1490,7 +1490,7 @@ thinkFrag()
wait 0.05; wait 0.05;
} }
level.bots_fragList ListRemove( self ); level.bots_fraglist ListRemove( self );
} }
/* /*
@ -1505,7 +1505,7 @@ AddToSmokeList()
grenade thread thinkSmoke(); grenade thread thinkSmoke();
level.bots_smokeList ListAdd( grenade ); level.bots_smokelist ListAdd( grenade );
} }
/* /*
@ -1523,7 +1523,7 @@ thinkSmoke()
self.state = "smoking"; self.state = "smoking";
wait 11.5; wait 11.5;
level.bots_smokeList ListRemove( self ); level.bots_smokelist ListRemove( self );
} }
/* /*

View File

@ -87,14 +87,14 @@ start_onnuke_call()
for ( ;; ) for ( ;; )
{ {
while ( !isDefined( level.nukeIncoming ) && !isDefined( level.moabIncoming ) ) while ( !isDefined( level.nukeincoming ) && !isDefined( level.moabincoming ) )
{ {
wait 0.05 + randomInt( 4 ); wait 0.05 + randomInt( 4 );
} }
self thread bot_onnukecall_watch(); self thread bot_onnukecall_watch();
wait level.nukeTimer + 5; wait level.nuketimer + 5;
} }
} }
@ -109,9 +109,9 @@ start_death_watch()
{ {
self waittill( "death" ); self waittill( "death" );
self thread bot_chat_death_watch( self.lastAttacker, self.bots_lastKS ); self thread bot_chat_death_watch( self.lastattacker, self.bots_lastks );
self.bots_lastKS = 0; self.bots_lastks = 0;
} }
} }
@ -155,23 +155,23 @@ start_killed_watch()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self.bots_lastKS = 0; self.bots_lastks = 0;
for ( ;; ) for ( ;; )
{ {
self waittill( "killed_enemy" ); self waittill( "killed_enemy" );
if ( self.bots_lastKS < self.pers[ "cur_kill_streak" ] ) if ( self.bots_lastks < self.pers[ "cur_kill_streak" ] )
{ {
for ( i = self.bots_lastKS + 1; i <= self.pers[ "cur_kill_streak" ]; i++ ) for ( i = self.bots_lastks + 1; i <= self.pers[ "cur_kill_streak" ]; i++ )
{ {
self thread bot_chat_streak( i ); self thread bot_chat_streak( i );
} }
} }
self.bots_lastKS = self.pers[ "cur_kill_streak" ]; self.bots_lastks = self.pers[ "cur_kill_streak" ];
self thread bot_chat_killed_watch( self.lastKilledPlayer ); self thread bot_chat_killed_watch( self.lastkilledplayer );
} }
} }
@ -574,7 +574,7 @@ endgame_chat()
} }
} }
if ( level.teamBased ) if ( level.teambased )
{ {
winningteam = maps\mp\gametypes\_gamescore::getWinningTeam(); winningteam = maps\mp\gametypes\_gamescore::getWinningTeam();
@ -1006,7 +1006,7 @@ bot_onnukecall_watch()
switch ( randomint( 4 ) ) switch ( randomint( 4 ) )
{ {
case 0: case 0:
if ( level.nukeInfo.player != self ) if ( level.nukeinfo.player != self )
{ {
self BotDoChat( 30, "Wow who got a nuke?" ); self BotDoChat( 30, "Wow who got a nuke?" );
} }
@ -1018,9 +1018,9 @@ bot_onnukecall_watch()
break; break;
case 1: case 1:
if ( level.nukeInfo.player != self ) if ( level.nukeinfo.player != self )
{ {
self BotDoChat( 30, "lol " + level.nukeInfo.player.name + " is a hacker" ); self BotDoChat( 30, "lol " + level.nukeinfo.player.name + " is a hacker" );
} }
else else
{ {
@ -1034,7 +1034,7 @@ bot_onnukecall_watch()
break; break;
case 3: case 3:
if ( level.nukeInfo.team != self.team ) if ( level.nukeinfo.team != self.team )
{ {
self BotDoChat( 30, "man my team sucks ):" ); self BotDoChat( 30, "man my team sucks ):" );
} }
@ -1261,9 +1261,9 @@ bot_chat_killed_watch( victim )
break; break;
case 40: case 40:
if ( isDefined( victim.attackerData ) && isDefined( victim.attackerData[ self.guid ] ) && isDefined( victim.attackerData[ self.guid ].weapon ) ) if ( isDefined( victim.attackerdata ) && isDefined( victim.attackerdata[ self.guid ] ) && isDefined( victim.attackerdata[ self.guid ].weapon ) )
{ {
message = ( "Man, I sure love my " + getBaseWeaponName( victim.attackerData[ self.guid ].weapon ) + "!" ); message = ( "Man, I sure love my " + getBaseWeaponName( victim.attackerdata[ self.guid ].weapon ) + "!" );
} }
break; break;
@ -1542,9 +1542,9 @@ bot_chat_death_watch( killer, last_ks )
break; break;
case 60: case 60:
if ( isDefined( self.attackerData ) && isDefined( self.attackerData[ killer.guid ] ) && isDefined( self.attackerData[ killer.guid ].weapon ) ) if ( isDefined( self.attackerdata ) && isDefined( self.attackerdata[ killer.guid ] ) && isDefined( self.attackerdata[ killer.guid ].weapon ) )
{ {
message = "Wow! Nice " + getBaseWeaponName( self.attackerData[ killer.guid ].weapon ) + " you got there, " + killer.name + "!"; message = "Wow! Nice " + getBaseWeaponName( self.attackerdata[ killer.guid ].weapon ) + " you got there, " + killer.name + "!";
} }
break; break;
@ -1977,9 +1977,9 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
break; break;
case 5: case 5:
if ( isDefined( aircare.crateType ) ) if ( isDefined( aircare.cratetype ) )
{ {
self BotDoChat( 10, ":3 i got my " + aircare.crateType ); self BotDoChat( 10, ":3 i got my " + aircare.cratetype );
} }
break; break;
@ -2006,9 +2006,9 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
break; break;
case 4: case 4:
if ( isDefined( aircare.crateType ) ) if ( isDefined( aircare.cratetype ) )
{ {
self BotDoChat( 10, "hahaah jajaja i took your " + aircare.crateType ); self BotDoChat( 10, "hahaah jajaja i took your " + aircare.cratetype );
} }
break; break;
@ -2037,9 +2037,9 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
break; break;
case 4: case 4:
if ( isDefined( aircare.crateType ) ) if ( isDefined( aircare.cratetype ) )
{ {
self BotDoChat( 10, "Wow! there goes my " + aircare.crateType + "!" ); self BotDoChat( 10, "Wow! there goes my " + aircare.cratetype + "!" );
} }
break; break;

View File

@ -112,8 +112,8 @@ resetBotVars()
self.bot.second_next_wp = -1; self.bot.second_next_wp = -1;
self.bot.towards_goal = undefined; self.bot.towards_goal = undefined;
self.bot.astar = []; self.bot.astar = [];
self.bot.moveTo = self.origin; self.bot.moveto = self.origin;
self.bot.moveOrigin = self.origin; self.bot.moveorigin = self.origin;
self.bot.stop_move = false; self.bot.stop_move = false;
self.bot.greedy_path = false; self.bot.greedy_path = false;
self.bot.climbing = false; self.bot.climbing = false;
@ -347,7 +347,7 @@ watchUsingRemote()
self watchUsingMinigun(); self watchUsingMinigun();
} }
if ( isDefined( level.ac130Player ) && level.ac130player == self ) if ( isDefined( level.ac130player ) && level.ac130player == self )
{ {
self thread watchAc130Weapon(); self thread watchAc130Weapon();
self watchUsingAc130(); self watchUsingAc130();
@ -362,10 +362,10 @@ watchUsingRemote()
{ {
self watchUsingTank(); self watchUsingTank();
self.remoteTank = undefined; self.remotetank = undefined;
} }
if ( isDefined( self.remoteUAV ) ) if ( isDefined( self.remoteuav ) )
{ {
self watchUsingUav(); self watchUsingUav();
} }
@ -385,12 +385,12 @@ watchUsingRemote()
*/ */
watchUsingTurret() watchUsingTurret()
{ {
if ( !isDefined( self.remoteTurretList ) || !isDefined( self.remoteTurretList[ 0 ] ) ) if ( !isDefined( self.remoteturretlist ) || !isDefined( self.remoteturretlist[ 0 ] ) )
{ {
return; return;
} }
turret = self.remoteTurretList[ 0 ]; turret = self.remoteturretlist[ 0 ];
turret endon( "death" ); turret endon( "death" );
@ -446,7 +446,7 @@ watchUsingTank()
return; return;
} }
self.remoteTank = tank; self.remotetank = tank;
self thread useTankRocket( tank ); self thread useTankRocket( tank );
@ -493,16 +493,16 @@ useTankRocket( tank )
*/ */
watchUsingUav() watchUsingUav()
{ {
self.remoteUAV endon( "end_remote" ); self.remoteuav endon( "end_remote" );
while ( isDefined( self.remoteUAV ) ) while ( isDefined( self.remoteuav ) )
{ {
if ( self getCurrentWeapon() != "uav_remote_mp" ) if ( self getCurrentWeapon() != "uav_remote_mp" )
{ {
self switchToWeapon( "uav_remote_mp" ); self switchToWeapon( "uav_remote_mp" );
} }
if ( isDefined( self.lockedTarget ) ) if ( isDefined( self.lockedtarget ) )
{ {
self notify( "remoteUAV_tag" ); self notify( "remoteUAV_tag" );
} }
@ -566,7 +566,7 @@ watchAc130Weapon()
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "spawned_player" ); self endon( "spawned_player" );
while ( isDefined( level.ac130Player ) && level.ac130player == self ) while ( isDefined( level.ac130player ) && level.ac130player == self )
{ {
curWeap = self GetCurrentWeapon(); curWeap = self GetCurrentWeapon();
@ -591,7 +591,7 @@ watchUsingAc130()
{ {
self endon( "ac130player_removed" ); self endon( "ac130player_removed" );
while ( isDefined( level.ac130Player ) && level.ac130player == self ) while ( isDefined( level.ac130player ) && level.ac130player == self )
{ {
self switchToWeapon( "ac130_105mm_mp" ); self switchToWeapon( "ac130_105mm_mp" );
wait 1 + randomInt( 2 ); wait 1 + randomInt( 2 );
@ -706,7 +706,7 @@ watchC4Thrown( c4 )
continue; continue;
} }
if ( ( level.teamBased && self.team == player.team ) || player.sessionstate != "playing" || !isReallyAlive( player ) ) if ( ( level.teambased && self.team == player.team ) || player.sessionstate != "playing" || !isReallyAlive( player ) )
{ {
continue; continue;
} }
@ -747,31 +747,31 @@ watchC4Thrown( c4 )
*/ */
doBotMovement_loop( data ) doBotMovement_loop( data )
{ {
if ( isDefined( self.remoteUAV ) ) if ( isDefined( self.remoteuav ) )
{ {
self.bot.moveOrigin = self.remoteUAV.origin - ( 0, 0, 50 ); self.bot.moveorigin = self.remoteuav.origin - ( 0, 0, 50 );
} }
else if ( isDefined( self.remoteTank ) ) else if ( isDefined( self.remotetank ) )
{ {
self.bot.moveOrigin = self.remoteTank.origin; self.bot.moveorigin = self.remotetank.origin;
} }
else else
{ {
self.bot.moveOrigin = self.origin; self.bot.moveorigin = self.origin;
} }
waittillframeend; waittillframeend;
move_To = self.bot.moveTo; move_To = self.bot.moveto;
angles = self GetPlayerAngles(); angles = self GetPlayerAngles();
dir = ( 0, 0, 0 ); dir = ( 0, 0, 0 );
if ( DistanceSquared( self.bot.moveOrigin, move_To ) >= 49 ) if ( DistanceSquared( self.bot.moveorigin, move_To ) >= 49 )
{ {
cosa = cos( 0 - angles[ 1 ] ); cosa = cos( 0 - angles[ 1 ] );
sina = sin( 0 - angles[ 1 ] ); sina = sin( 0 - angles[ 1 ] );
// get the direction // get the direction
dir = move_To - self.bot.moveOrigin; dir = move_To - self.bot.moveorigin;
// rotate our direction according to our angles // rotate our direction according to our angles
dir = ( dir[ 0 ] * cosa - dir[ 1 ] * sina, dir = ( dir[ 0 ] * cosa - dir[ 1 ] * sina,
@ -788,12 +788,12 @@ doBotMovement_loop( data )
// climb through windows // climb through windows
if ( self isMantling() ) if ( self isMantling() )
{ {
data.wasMantling = true; data.wasmantling = true;
self crouch(); self crouch();
} }
else if ( data.wasMantling ) else if ( data.wasmantling )
{ {
data.wasMantling = false; data.wasmantling = false;
self stand(); self stand();
} }
@ -838,11 +838,11 @@ doBotMovement_loop( data )
self BotBuiltinBotMovement( int( dir[ 0 ] ), int( dir[ 1 ] ) ); self BotBuiltinBotMovement( int( dir[ 0 ] ), int( dir[ 1 ] ) );
if ( isDefined( self.remoteUAV ) ) if ( isDefined( self.remoteuav ) )
{ {
if ( abs( move_To[ 2 ] - self.bot.moveOrigin[ 2 ] ) > 12 ) if ( abs( move_To[ 2 ] - self.bot.moveorigin[ 2 ] ) > 12 )
{ {
if ( move_To[ 2 ] > self.bot.moveOrigin[ 2 ] ) if ( move_To[ 2 ] > self.bot.moveorigin[ 2 ] )
{ {
self thread gostand(); self thread gostand();
} }
@ -863,7 +863,7 @@ doBotMovement()
self endon( "spawned_player" ); self endon( "spawned_player" );
data = spawnStruct(); data = spawnStruct();
data.wasMantling = false; data.wasmantling = false;
for ( data.i = 0;; data.i += 0.05 ) for ( data.i = 0;; data.i += 0.05 )
{ {
@ -906,11 +906,11 @@ grenade_danager_loop()
{ {
myEye = self getEye(); myEye = self getEye();
for ( i = level.bots_fragList.count - 1; i >= 0; i-- ) for ( i = level.bots_fraglist.count - 1; i >= 0; i-- )
{ {
frag = level.bots_fragList.data[ i ]; frag = level.bots_fraglist.data[ i ];
if ( level.teamBased && frag.team == self.team ) if ( level.teambased && frag.team == self.team )
{ {
continue; continue;
} }
@ -953,7 +953,7 @@ grenade_danager()
continue; continue;
} }
if ( self.bot.isfrozen || level.gameEnded || !gameFlag( "prematch_done" ) ) if ( self.bot.isfrozen || level.gameended || !gameFlag( "prematch_done" ) )
{ {
continue; continue;
} }
@ -999,7 +999,7 @@ stance_loop()
toStance = "crouch"; toStance = "crouch";
} }
if ( self.hasRiotShieldEquipped && isDefined( self.bot.target ) && isDefined( self.bot.target.entity ) && isPlayer( self.bot.target.entity ) ) if ( self.hasriotshieldequipped && isDefined( self.bot.target ) && isDefined( self.bot.target.entity ) && isPlayer( self.bot.target.entity ) )
{ {
toStance = "crouch"; toStance = "crouch";
} }
@ -1032,7 +1032,7 @@ stance_loop()
time = getTime(); time = getTime();
chance = self.pers[ "bots" ][ "behavior" ][ "sprint" ]; chance = self.pers[ "bots" ][ "behavior" ][ "sprint" ];
if ( time - self.lastSpawnTime < 5000 ) if ( time - self.lastspawntime < 5000 )
{ {
chance *= 2; chance *= 2;
} }
@ -1062,7 +1062,7 @@ stance_loop()
return; return;
} }
if ( !isDefined( self.bot.towards_goal ) || DistanceSquared( self.origin, physicsTrace( self getEye(), self getEye() + anglesToForward( self getPlayerAngles() ) * 1024, false, undefined ) ) < level.bots_minSprintDistance || getConeDot( self.bot.towards_goal, self.origin, self GetPlayerAngles() ) < 0.75 ) if ( !isDefined( self.bot.towards_goal ) || DistanceSquared( self.origin, physicsTrace( self getEye(), self getEye() + anglesToForward( self getPlayerAngles() ) * 1024, false, undefined ) ) < level.bots_minsprintdistance || getConeDot( self.bot.towards_goal, self.origin, self GetPlayerAngles() ) < 0.75 )
{ {
return; return;
} }
@ -1138,7 +1138,7 @@ reload_thread()
wait 2.5; wait 2.5;
if ( self.bot.isfrozen || level.gameEnded || !gameFlag( "prematch_done" ) ) if ( self.bot.isfrozen || level.gameended || !gameFlag( "prematch_done" ) )
{ {
return; return;
} }
@ -1310,9 +1310,9 @@ target_loop()
{ {
myEye = self GetEye(); myEye = self GetEye();
if ( isDefined( self.remoteUAV ) ) if ( isDefined( self.remoteuav ) )
{ {
myEye = self.remoteUAV getTagOrigin( "tag_origin" ); myEye = self.remoteuav getTagOrigin( "tag_origin" );
} }
theTime = getTime(); theTime = getTime();
@ -1333,7 +1333,7 @@ target_loop()
{ {
if ( isDefined( level.ac130player ) && level.ac130player == self ) if ( isDefined( level.ac130player ) && level.ac130player == self )
{ {
vehEnt = level.ac130.planeModel; vehEnt = level.ac130.planemodel;
} }
if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && level.chopper.gunner == self ) if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && level.chopper.gunner == self )
@ -1379,7 +1379,7 @@ target_loop()
entOrigin += self.bot.script_target_offset; entOrigin += self.bot.script_target_offset;
} }
if ( ignoreSmoke || ( SmokeTrace( myEye, entOrigin, level.smokeRadius ) ) && bulletTracePassed( myEye, entOrigin, false, ent ) ) if ( ignoreSmoke || ( SmokeTrace( myEye, entOrigin, level.smokeradius ) ) && bulletTracePassed( myEye, entOrigin, false, ent ) )
{ {
if ( !isObjDef ) if ( !isObjDef )
{ {
@ -1428,7 +1428,7 @@ target_loop()
isObjDef = isDefined( obj ); isObjDef = isDefined( obj );
if ( ( level.teamBased && self.team == player.team ) || player.sessionstate != "playing" || !isReallyAlive( player ) ) if ( ( level.teambased && self.team == player.team ) || player.sessionstate != "playing" || !isReallyAlive( player ) )
{ {
if ( isObjDef ) if ( isObjDef )
{ {
@ -1464,8 +1464,8 @@ target_loop()
( traceAnkleRight[ "fraction" ] >= 1.0 || traceAnkleRight[ "surfacetype" ] == "glass" ) ) ( traceAnkleRight[ "fraction" ] >= 1.0 || traceAnkleRight[ "surfacetype" ] == "glass" ) )
&& ( ignoreSmoke || && ( ignoreSmoke ||
SmokeTrace( myEye, player.origin, level.smokeRadius ) || SmokeTrace( myEye, player.origin, level.smokeradius ) ||
daDist < level.bots_maxKnifeDistance * 4 ) daDist < level.bots_maxknifedistance * 4 )
&& ( getConeDot( player.origin, self.origin, myAngles ) >= myFov || && ( getConeDot( player.origin, self.origin, myAngles ) >= myFov ||
( isObjDef && obj.trace_time ) ) ); ( isObjDef && obj.trace_time ) ) );
@ -1478,7 +1478,7 @@ target_loop()
canTargetPlayer = true; canTargetPlayer = true;
} }
if ( isDefined( self.remoteUAV ) && isDefined( player.UAVRemoteMarkedBy ) ) if ( isDefined( self.remoteuav ) && isDefined( player.uavremotemarkedby ) )
{ {
canTargetPlayer = false; canTargetPlayer = false;
} }
@ -1668,12 +1668,12 @@ watchToLook()
continue; continue;
} }
if ( self.bot.target.dist > level.bots_maxShotgunDistance * 2 ) if ( self.bot.target.dist > level.bots_maxshotgundistance * 2 )
{ {
continue; continue;
} }
if ( self.bot.target.dist <= level.bots_maxKnifeDistance ) if ( self.bot.target.dist <= level.bots_maxknifedistance )
{ {
continue; continue;
} }
@ -1720,7 +1720,7 @@ watchToLook()
} }
else else
{ {
if ( getConeDot( self.bot.target.last_seen_pos, self.origin, self getPlayerAngles() ) < 0.8 || self.bot.target.dist <= level.bots_noADSDistance ) if ( getConeDot( self.bot.target.last_seen_pos, self.origin, self getPlayerAngles() ) < 0.8 || self.bot.target.dist <= level.bots_noadsdistance )
{ {
continue; continue;
} }
@ -1779,9 +1779,9 @@ aim_loop()
eyePos = self getEye(); eyePos = self getEye();
if ( isDefined( self.remoteUAV ) ) if ( isDefined( self.remoteuav ) )
{ {
eyePos = self.remoteUAV getTagOrigin( "tag_origin" ); eyePos = self.remoteuav getTagOrigin( "tag_origin" );
} }
angles = self GetPlayerAngles(); angles = self GetPlayerAngles();
@ -1876,7 +1876,7 @@ aim_loop()
{ {
nade = self getValidGrenade(); nade = self getValidGrenade();
if ( isDefined( nade ) && rand <= self.pers[ "bots" ][ "behavior" ][ "nade" ] && bulletTracePassed( eyePos, eyePos + ( 0, 0, 75 ), false, self ) && bulletTracePassed( last_pos, last_pos + ( 0, 0, 100 ), false, target ) && dist > level.bots_minGrenadeDistance && dist < level.bots_maxGrenadeDistance ) if ( isDefined( nade ) && rand <= self.pers[ "bots" ][ "behavior" ][ "nade" ] && bulletTracePassed( eyePos, eyePos + ( 0, 0, 75 ), false, self ) && bulletTracePassed( last_pos, last_pos + ( 0, 0, 100 ), false, target ) && dist > level.bots_mingrenadedistance && dist < level.bots_maxgrenadedistance )
{ {
time = 0.5; time = 0.5;
@ -1965,7 +1965,7 @@ aim_loop()
} }
} }
knifeDist = level.bots_maxKnifeDistance; knifeDist = level.bots_maxknifedistance;
if ( ( isplay || target.classname == "misc_turret" ) && !self.bot.isknifingafter && conedot > 0.9 && dist < knifeDist && trace_time > reaction_time && !usingRemote && getDvarInt( "bots_play_knife" ) ) if ( ( isplay || target.classname == "misc_turret" ) && !self.bot.isknifingafter && conedot > 0.9 && dist < knifeDist && trace_time > reaction_time && !usingRemote && getDvarInt( "bots_play_knife" ) )
{ {
@ -2003,14 +2003,14 @@ aim_loop()
} }
} }
if ( curweap == "iw5_smaw_mp" && entIsVehicle( self.bot.target.entity ) && ( !IsDefined( self.stingerStage ) || self.stingerStage != 2 ) ) if ( curweap == "iw5_smaw_mp" && entIsVehicle( self.bot.target.entity ) && ( !IsDefined( self.stingerstage ) || self.stingerstage != 2 ) )
{ {
return; return;
} }
if ( trace_time > reaction_time ) if ( trace_time > reaction_time )
{ {
if ( ( !canADS || adsAmount >= 1.0 || self InLastStand() || self GetStance() == "prone" ) && ( conedot > 0.99 || dist < level.bots_maxKnifeDistance ) && getDvarInt( "bots_play_fire" ) ) if ( ( !canADS || adsAmount >= 1.0 || self InLastStand() || self GetStance() == "prone" ) && ( conedot > 0.99 || dist < level.bots_maxknifedistance ) && getDvarInt( "bots_play_fire" ) )
{ {
self botFire( curweap ); self botFire( curweap );
} }
@ -2088,7 +2088,7 @@ aim_loop()
} }
} }
if ( ( !canADS || adsAmount >= 1.0 || self InLastStand() || self GetStance() == "prone" ) && ( conedot > 0.95 || dist < level.bots_maxKnifeDistance ) && getDvarInt( "bots_play_fire" ) ) if ( ( !canADS || adsAmount >= 1.0 || self InLastStand() || self GetStance() == "prone" ) && ( conedot > 0.95 || dist < level.bots_maxknifedistance ) && getDvarInt( "bots_play_fire" ) )
{ {
self botFire( curweap ); self botFire( curweap );
} }
@ -2106,7 +2106,7 @@ aim_loop()
{ {
self thread bot_lookat( self.bot.script_aimpos, aimspeed ); self thread bot_lookat( self.bot.script_aimpos, aimspeed );
} }
else if ( !usingRemote || isDefined( self.remoteUAV ) || isDefined( self.remoteTank ) ) else if ( !usingRemote || isDefined( self.remoteuav ) || isDefined( self.remotetank ) )
{ {
lookat = undefined; lookat = undefined;
@ -2143,7 +2143,7 @@ aim()
return; return;
} }
if ( !gameFlag( "prematch_done" ) || level.gameEnded || self.bot.isfrozen || self maps\mp\_flashgrenades::isFlashbanged() ) if ( !gameFlag( "prematch_done" ) || level.gameended || self.bot.isfrozen || self maps\mp\_flashgrenades::isFlashbanged() )
{ {
continue; continue;
} }
@ -2249,7 +2249,7 @@ canAds( dist, curweap )
return false; return false;
} }
far = level.bots_noADSDistance; far = level.bots_noadsdistance;
if ( self _hasPerk( "specialty_bulletaccuracy" ) ) if ( self _hasPerk( "specialty_bulletaccuracy" ) )
{ {
@ -2298,12 +2298,12 @@ isInRange( dist, curweap )
return true; return true;
} }
if ( ( weapclass == "spread" || self.bot.is_cur_akimbo || curweap == "c4death_mp" ) && dist > level.bots_maxShotgunDistance ) if ( ( weapclass == "spread" || self.bot.is_cur_akimbo || curweap == "c4death_mp" ) && dist > level.bots_maxshotgundistance )
{ {
return false; return false;
} }
if ( curweap == "riotshield_mp" && dist > level.bots_maxKnifeDistance ) if ( curweap == "riotshield_mp" && dist > level.bots_maxknifedistance )
{ {
return false; return false;
} }
@ -2372,9 +2372,9 @@ walk_loop()
dist = 16; dist = 16;
if ( level.waypointCount ) if ( level.waypointcount )
{ {
goal = level.waypoints[ randomInt( level.waypointCount ) ].origin; goal = level.waypoints[ randomInt( level.waypointcount ) ].origin;
} }
else else
{ {
@ -2382,7 +2382,7 @@ walk_loop()
stepDist = 64; stepDist = 64;
forward = AnglesToForward( self GetPlayerAngles() ) * stepDist; forward = AnglesToForward( self GetPlayerAngles() ) * stepDist;
forward = ( forward[ 0 ], forward[ 1 ], 0 ); forward = ( forward[ 0 ], forward[ 1 ], 0 );
myOrg = self.bot.moveOrigin + ( 0, 0, 32 ); myOrg = self.bot.moveorigin + ( 0, 0, 32 );
goal = playerPhysicsTrace( myOrg, myOrg + forward, false, self ); goal = playerPhysicsTrace( myOrg, myOrg + forward, false, self );
goal = PhysicsTrace( goal + ( 0, 0, 50 ), goal + ( 0, 0, -40 ), false, self ); goal = PhysicsTrace( goal + ( 0, 0, 50 ), goal + ( 0, 0, -40 ), false, self );
@ -2456,14 +2456,14 @@ walk()
return; return;
} }
self botSetMoveTo( self.bot.moveOrigin ); self botSetMoveTo( self.bot.moveorigin );
if ( !getDVarINt( "bots_play_move" ) ) if ( !getDVarINt( "bots_play_move" ) )
{ {
continue; continue;
} }
if ( level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen || self.bot.stop_move ) if ( level.gameended || !gameFlag( "prematch_done" ) || self.bot.isfrozen || self.bot.stop_move )
{ {
continue; continue;
} }
@ -2472,7 +2472,7 @@ walk()
{ {
self.bot.last_next_wp = -1; self.bot.last_next_wp = -1;
self.bot.last_second_next_wp = -1; self.bot.last_second_next_wp = -1;
self botSetMoveTo( self.bot.moveOrigin + self GetVelocity() * 500 ); self botSetMoveTo( self.bot.moveorigin + self GetVelocity() * 500 );
continue; continue;
} }
@ -2488,11 +2488,11 @@ strafe( target )
self endon( "kill_goal" ); self endon( "kill_goal" );
self thread killWalkOnEvents(); self thread killWalkOnEvents();
angles = VectorToAngles( vectorNormalize( target.origin - self.bot.moveOrigin ) ); angles = VectorToAngles( vectorNormalize( target.origin - self.bot.moveorigin ) );
anglesLeft = ( 0, angles[ 1 ] + 90, 0 ); anglesLeft = ( 0, angles[ 1 ] + 90, 0 );
anglesRight = ( 0, angles[ 1 ] - 90, 0 ); anglesRight = ( 0, angles[ 1 ] - 90, 0 );
myOrg = self.bot.moveOrigin + ( 0, 0, 16 ); myOrg = self.bot.moveorigin + ( 0, 0, 16 );
left = myOrg + anglestoforward( anglesLeft ) * 500; left = myOrg + anglestoforward( anglesLeft ) * 500;
right = myOrg + anglestoforward( anglesRight ) * 500; right = myOrg + anglestoforward( anglesRight ) * 500;
@ -2522,7 +2522,7 @@ watchOnGoal( goal, dis )
self endon( "spawned_player" ); self endon( "spawned_player" );
self endon( "kill_goal" ); self endon( "kill_goal" );
while ( DistanceSquared( self.bot.moveOrigin, goal ) > dis ) while ( DistanceSquared( self.bot.moveorigin, goal ) > dis )
{ {
wait 0.05; wait 0.05;
} }
@ -2550,12 +2550,12 @@ initAStar( goal )
{ {
team = undefined; team = undefined;
if ( level.teamBased ) if ( level.teambased )
{ {
team = self.team; team = self.team;
} }
self.bot.astar = AStarSearch( self.bot.moveOrigin, goal, team, self.bot.greedy_path ); self.bot.astar = AStarSearch( self.bot.moveorigin, goal, team, self.bot.greedy_path );
if ( isDefined( team ) ) if ( isDefined( team ) )
{ {
@ -2572,7 +2572,7 @@ removeAStar()
{ {
remove = self.bot.astar.size - 1; remove = self.bot.astar.size - 1;
if ( level.teamBased ) if ( level.teambased )
{ {
RemoveWaypointUsage( self.bot.astar[ remove ], self.team ); RemoveWaypointUsage( self.bot.astar[ remove ], self.team );
} }
@ -2647,7 +2647,7 @@ doWalk( goal, dist, isScriptGoal )
if ( current >= 0 ) if ( current >= 0 )
{ {
// check if a waypoint is closer than the goal // check if a waypoint is closer than the goal
if ( DistanceSquared( self.bot.moveOrigin, level.waypoints[ self.bot.astar[ current ] ].origin ) < DistanceSquared( self.bot.moveOrigin, goal ) || DistanceSquared( level.waypoints[ self.bot.astar[ current ] ].origin, PlayerPhysicsTrace( self.bot.moveOrigin + ( 0, 0, 32 ), level.waypoints[ self.bot.astar[ current ] ].origin, false, self ) ) > 1.0 ) if ( DistanceSquared( self.bot.moveorigin, level.waypoints[ self.bot.astar[ current ] ].origin ) < DistanceSquared( self.bot.moveorigin, goal ) || DistanceSquared( level.waypoints[ self.bot.astar[ current ] ].origin, PlayerPhysicsTrace( self.bot.moveorigin + ( 0, 0, 32 ), level.waypoints[ self.bot.astar[ current ] ].origin, false, self ) ) > 1.0 )
{ {
while ( current >= 0 ) while ( current >= 0 )
{ {
@ -2674,7 +2674,7 @@ doWalk( goal, dist, isScriptGoal )
self.bot.second_next_wp = -1; self.bot.second_next_wp = -1;
self notify( "finished_static_waypoints" ); self notify( "finished_static_waypoints" );
if ( DistanceSquared( self.bot.moveOrigin, goal ) > dist ) if ( DistanceSquared( self.bot.moveorigin, goal ) > dist )
{ {
self.bot.last_next_wp = -1; self.bot.last_next_wp = -1;
self.bot.last_second_next_wp = -1; self.bot.last_second_next_wp = -1;
@ -2685,7 +2685,7 @@ doWalk( goal, dist, isScriptGoal )
wait 1; wait 1;
if ( DistanceSquared( self.bot.moveOrigin, goal ) > dist ) if ( DistanceSquared( self.bot.moveorigin, goal ) > dist )
{ {
self notify( "bad_path_internal" ); self notify( "bad_path_internal" );
} }
@ -2703,21 +2703,21 @@ movetowards( goal )
self.bot.towards_goal = goal; self.bot.towards_goal = goal;
lastOri = self.bot.moveOrigin; lastOri = self.bot.moveorigin;
stucks = 0; stucks = 0;
timeslow = 0; timeslow = 0;
time = 0; time = 0;
if ( self.bot.issprinting ) if ( self.bot.issprinting )
{ {
tempGoalDist = level.bots_goalDistance * 2; tempGoalDist = level.bots_goaldistance * 2;
} }
else else
{ {
tempGoalDist = level.bots_goalDistance; tempGoalDist = level.bots_goaldistance;
} }
while ( distanceSquared( self.bot.moveOrigin, goal ) > tempGoalDist ) while ( distanceSquared( self.bot.moveorigin, goal ) > tempGoalDist )
{ {
self botSetMoveTo( goal ); self botSetMoveTo( goal );
@ -2725,7 +2725,7 @@ movetowards( goal )
{ {
time = 0; time = 0;
if ( distanceSquared( self.bot.moveOrigin, lastOri ) < 32 * 32 ) if ( distanceSquared( self.bot.moveorigin, lastOri ) < 32 * 32 )
{ {
self thread knife(); self thread knife();
wait 0.5; wait 0.5;
@ -2744,7 +2744,7 @@ movetowards( goal )
self.bot.last_second_next_wp = -1; self.bot.last_second_next_wp = -1;
} }
lastOri = self.bot.moveOrigin; lastOri = self.bot.moveorigin;
} }
else if ( timeslow > 0 && ( timeslow % 1000 ) == 0 ) else if ( timeslow > 0 && ( timeslow % 1000 ) == 0 )
{ {
@ -2752,7 +2752,7 @@ movetowards( goal )
} }
else if ( time == 2000 ) else if ( time == 2000 )
{ {
if ( distanceSquared( self.bot.moveOrigin, lastOri ) < 32 * 32 ) if ( distanceSquared( self.bot.moveorigin, lastOri ) < 32 * 32 )
{ {
self crouch(); self crouch();
} }
@ -2783,11 +2783,11 @@ movetowards( goal )
if ( self.bot.issprinting ) if ( self.bot.issprinting )
{ {
tempGoalDist = level.bots_goalDistance * 2; tempGoalDist = level.bots_goaldistance * 2;
} }
else else
{ {
tempGoalDist = level.bots_goalDistance; tempGoalDist = level.bots_goaldistance;
} }
if ( stucks >= 2 ) if ( stucks >= 2 )
@ -2823,7 +2823,7 @@ getRandomLargestStafe( dist )
{ {
// find a better algo? // find a better algo?
traces = NewHeap( ::HeapTraceFraction ); traces = NewHeap( ::HeapTraceFraction );
myOrg = self.bot.moveOrigin + ( 0, 0, 16 ); myOrg = self.bot.moveorigin + ( 0, 0, 16 );
traces HeapInsert( bulletTrace( myOrg, myOrg + ( -100 * dist, 0, 0 ), false, self ) ); traces HeapInsert( bulletTrace( myOrg, myOrg + ( -100 * dist, 0, 0 ), false, self ) );
traces HeapInsert( bulletTrace( myOrg, myOrg + ( 100 * dist, 0, 0 ), false, self ) ); traces HeapInsert( bulletTrace( myOrg, myOrg + ( 100 * dist, 0, 0 ), false, self ) );
@ -3222,7 +3222,7 @@ crouch()
*/ */
prone() prone()
{ {
if ( self IsUsingRemote() || self.hasRiotShieldEquipped ) if ( self IsUsingRemote() || self.hasriotshieldequipped )
{ {
return; return;
} }
@ -3236,7 +3236,7 @@ prone()
*/ */
botSetMoveTo( where ) botSetMoveTo( where )
{ {
self.bot.moveTo = where; self.bot.moveto = where;
} }
/* /*
@ -3289,7 +3289,7 @@ bot_lookat( pos, time, vel, doAimPredict )
self endon( "spawned_player" ); self endon( "spawned_player" );
level endon ( "game_ended" ); level endon ( "game_ended" );
if ( level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen || !getDvarInt( "bots_play_aim" ) ) if ( level.gameended || !gameFlag( "prematch_done" ) || self.bot.isfrozen || !getDvarInt( "bots_play_aim" ) )
{ {
return; return;
} }
@ -3325,9 +3325,9 @@ bot_lookat( pos, time, vel, doAimPredict )
myEye = self GetEye(); // get our eye pos myEye = self GetEye(); // get our eye pos
if ( isDefined( self.remoteUAV ) ) if ( isDefined( self.remoteuav ) )
{ {
myEye = self.remoteUAV getTagOrigin( "tag_origin" ); // fix for iw5 kekware myEye = self.remoteuav getTagOrigin( "tag_origin" ); // fix for iw5 kekware
} }
myEye += self botGetThirdPersonOffset( myAngle ); // account for third person myEye += self botGetThirdPersonOffset( myAngle ); // account for third person

File diff suppressed because it is too large Load Diff

View File

@ -548,7 +548,7 @@ HasThreat()
*/ */
IsDefusing() IsDefusing()
{ {
return ( isDefined( self.isDefusing ) && self.isDefusing ); return ( isDefined( self.isdefusing ) && self.isdefusing );
} }
/* /*
@ -556,7 +556,7 @@ IsDefusing()
*/ */
isPlanting() isPlanting()
{ {
return ( isDefined( self.isPlanting ) && self.isPlanting ); return ( isDefined( self.isplanting ) && self.isplanting );
} }
/* /*
@ -564,7 +564,7 @@ isPlanting()
*/ */
isBombCarrier() isBombCarrier()
{ {
return ( isDefined( self.isBombCarrier ) && self.isBombCarrier ); return ( isDefined( self.isbombcarrier ) && self.isbombcarrier );
} }
/* /*
@ -572,7 +572,7 @@ isBombCarrier()
*/ */
isInUse() isInUse()
{ {
return ( isDefined( self.inUse ) && self.inUse ); return ( isDefined( self.inuse ) && self.inuse );
} }
/* /*
@ -580,7 +580,7 @@ isInUse()
*/ */
inLastStand() inLastStand()
{ {
return ( isDefined( self.lastStand ) && self.lastStand ); return ( isDefined( self.laststand ) && self.laststand );
} }
/* /*
@ -588,7 +588,7 @@ inLastStand()
*/ */
isBeingRevived() isBeingRevived()
{ {
return ( isDefined( self.beingRevived ) && self.beingRevived ); return ( isDefined( self.beingrevived ) && self.beingrevived );
} }
/* /*
@ -596,7 +596,7 @@ isBeingRevived()
*/ */
inFinalStand() inFinalStand()
{ {
return ( isDefined( self.inFinalStand ) && self.inFinalStand ); return ( isDefined( self.infinalstand ) && self.infinalstand );
} }
/* /*
@ -604,7 +604,7 @@ inFinalStand()
*/ */
isFlagCarrier() isFlagCarrier()
{ {
return ( isDefined( self.carryFlag ) && self.carryFlag ); return ( isDefined( self.carryflag ) && self.carryflag );
} }
/* /*
@ -612,7 +612,7 @@ isFlagCarrier()
*/ */
IsStunned() IsStunned()
{ {
return ( isdefined( self.concussionEndTime ) && self.concussionEndTime > gettime() ); return ( isdefined( self.concussionendtime ) && self.concussionendtime > gettime() );
} }
/* /*
@ -620,7 +620,7 @@ IsStunned()
*/ */
isArtShocked() isArtShocked()
{ {
return ( isDefined( self.beingArtilleryShellshocked ) && self.beingArtilleryShellshocked ); return ( isDefined( self.beingartilleryshellshocked ) && self.beingartilleryshellshocked );
} }
/* /*
@ -1021,9 +1021,9 @@ RaySphereIntersect( start, end, spherePos, radius )
*/ */
SmokeTrace( start, end, rad ) SmokeTrace( start, end, rad )
{ {
for ( i = level.bots_smokeList.count - 1; i >= 0; i-- ) for ( i = level.bots_smokelist.count - 1; i >= 0; i-- )
{ {
nade = level.bots_smokeList.data[ i ]; nade = level.bots_smokelist.data[ i ];
if ( nade.state != "smoking" ) if ( nade.state != "smoking" )
{ {
@ -1252,10 +1252,10 @@ readWpsFromFile( mapname )
*/ */
load_waypoints() load_waypoints()
{ {
level.waypointCount = 0; level.waypointcount = 0;
level.waypointUsage = []; level.waypointusage = [];
level.waypointUsage[ "allies" ] = []; level.waypointusage[ "allies" ] = [];
level.waypointUsage[ "axis" ] = []; level.waypointusage[ "axis" ] = [];
if ( !isDefined( level.waypoints ) ) if ( !isDefined( level.waypoints ) )
{ {
@ -1291,9 +1291,9 @@ load_waypoints()
BotBuiltinPrintConsole( "No waypoints loaded!" ); BotBuiltinPrintConsole( "No waypoints loaded!" );
} }
level.waypointCount = level.waypoints.size; level.waypointcount = level.waypoints.size;
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
if ( !isDefined( level.waypoints[ i ].children ) || !isDefined( level.waypoints[ i ].children.size ) ) if ( !isDefined( level.waypoints[ i ].children ) || !isDefined( level.waypoints[ i ].children.size ) )
{ {
@ -1390,7 +1390,7 @@ getWaypointsOfType( type )
{ {
answer = []; answer = [];
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
wp = level.waypoints[ i ]; wp = level.waypoints[ i ];
@ -2102,21 +2102,21 @@ ReverseHeapAStar( item, item2 )
*/ */
RemoveWaypointUsage( wp, team ) RemoveWaypointUsage( wp, team )
{ {
if ( !isDefined( level.waypointUsage ) ) if ( !isDefined( level.waypointusage ) )
{ {
return; return;
} }
if ( !isDefined( level.waypointUsage[ team ][ wp + "" ] ) ) if ( !isDefined( level.waypointusage[ team ][ wp + "" ] ) )
{ {
return; return;
} }
level.waypointUsage[ team ][ wp + "" ]--; level.waypointusage[ team ][ wp + "" ]--;
if ( level.waypointUsage[ team ][ wp + "" ] <= 0 ) if ( level.waypointusage[ team ][ wp + "" ] <= 0 )
{ {
level.waypointUsage[ team ][ wp + "" ] = undefined; level.waypointusage[ team ][ wp + "" ] = undefined;
} }
} }
@ -2128,7 +2128,7 @@ GetNearestWaypointWithSight( pos )
candidate = undefined; candidate = undefined;
dist = 2147483647; dist = 2147483647;
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
if ( !bulletTracePassed( pos + ( 0, 0, 15 ), level.waypoints[ i ].origin + ( 0, 0, 15 ), false, undefined ) ) if ( !bulletTracePassed( pos + ( 0, 0, 15 ), level.waypoints[ i ].origin + ( 0, 0, 15 ), false, undefined ) )
{ {
@ -2157,7 +2157,7 @@ GetNearestWaypoint( pos )
candidate = undefined; candidate = undefined;
dist = 2147483647; dist = 2147483647;
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
curdis = DistanceSquared( level.waypoints[ i ].origin, pos ); curdis = DistanceSquared( level.waypoints[ i ].origin, pos );
@ -2252,14 +2252,14 @@ AStarSearch( start, goal, team, greedy_path )
while ( isDefined( bestNode ) ) while ( isDefined( bestNode ) )
{ {
if ( isdefined( team ) && isDefined( level.waypointUsage ) ) if ( isdefined( team ) && isDefined( level.waypointusage ) )
{ {
if ( !isDefined( level.waypointUsage[ team ][ bestNode.index + "" ] ) ) if ( !isDefined( level.waypointusage[ team ][ bestNode.index + "" ] ) )
{ {
level.waypointUsage[ team ][ bestNode.index + "" ] = 0; level.waypointusage[ team ][ bestNode.index + "" ] = 0;
} }
level.waypointUsage[ team ][ bestNode.index + "" ]++; level.waypointusage[ team ][ bestNode.index + "" ]++;
} }
// construct path // construct path
@ -2279,13 +2279,13 @@ AStarSearch( start, goal, team, greedy_path )
penalty = 1; penalty = 1;
if ( !greedy_path && isdefined( team ) && isDefined( level.waypointUsage ) ) if ( !greedy_path && isdefined( team ) && isDefined( level.waypointusage ) )
{ {
temppen = 1; temppen = 1;
if ( isDefined( level.waypointUsage[ team ][ child + "" ] ) ) if ( isDefined( level.waypointusage[ team ][ child + "" ] ) )
{ {
temppen = level.waypointUsage[ team ][ child + "" ]; // consider how many bots are taking this path temppen = level.waypointusage[ team ][ child + "" ]; // consider how many bots are taking this path
} }
if ( temppen > 1 ) if ( temppen > 1 )
@ -2445,14 +2445,14 @@ onUsePlantObjectFix( player )
{ {
level thread bombPlantedFix( self, player ); level thread bombPlantedFix( self, player );
for ( i = 0; i < level.bombZones.size; i++ ) for ( i = 0; i < level.bombzones.size; i++ )
{ {
if ( level.bombZones[ i ] == self ) if ( level.bombzones[ i ] == self )
{ {
continue; continue;
} }
level.bombZones[ i ] maps\mp\gametypes\_gameobjects::disableObject(); level.bombzones[ i ] maps\mp\gametypes\_gameobjects::disableObject();
} }
player playsound( "mp_bomb_plant" ); player playsound( "mp_bomb_plant" );
@ -2468,10 +2468,10 @@ onUsePlantObjectFix( player )
maps\mp\_utility::leaderDialog( "bomb_planted" ); maps\mp\_utility::leaderDialog( "bomb_planted" );
level thread maps\mp\_utility::teamPlayerCardSplash( "callout_bombplanted", player ); level thread maps\mp\_utility::teamPlayerCardSplash( "callout_bombplanted", player );
level.bombOwner = player; level.bombowner = player;
player thread maps\mp\gametypes\_hud_message::splashNotify( "plant", maps\mp\gametypes\_rank::getScoreInfoValue( "plant" ) ); player thread maps\mp\gametypes\_hud_message::splashNotify( "plant", maps\mp\gametypes\_rank::getScoreInfoValue( "plant" ) );
player thread maps\mp\gametypes\_rank::giveRankXP( "plant" ); player thread maps\mp\gametypes\_rank::giveRankXP( "plant" );
player.bombPlantedTime = gettime(); player.bombplantedtime = gettime();
maps\mp\gametypes\_gamescore::givePlayerScore( "plant", player ); maps\mp\gametypes\_gamescore::givePlayerScore( "plant", player );
player thread maps\mp\_matchdata::logGameEvent( "plant", player.origin ); player thread maps\mp\_matchdata::logGameEvent( "plant", player.origin );
} }
@ -2483,27 +2483,27 @@ onUsePlantObjectFix( player )
bombPlantedFix( var_0, var_1 ) bombPlantedFix( var_0, var_1 )
{ {
maps\mp\gametypes\_gamelogic::pauseTimer(); maps\mp\gametypes\_gamelogic::pauseTimer();
level.bombPlanted = 1; level.bombplanted = 1;
var_0.visuals[ 0 ] thread maps\mp\gametypes\_gamelogic::playTickingSound(); var_0.visuals[ 0 ] thread maps\mp\gametypes\_gamelogic::playTickingSound();
level.tickingObject = var_0.visuals[ 0 ]; level.tickingobject = var_0.visuals[ 0 ];
level.timeLimitOverride = 1; level.timelimitoverride = 1;
setgameendtime( int( gettime() + level.bombTimer * 1000 ) ); setgameendtime( int( gettime() + level.bombtimer * 1000 ) );
setdvar( "ui_bomb_timer", 1 ); setdvar( "ui_bomb_timer", 1 );
if ( !level.multiBomb ) if ( !level.multibomb )
{ {
level.sdBomb maps\mp\gametypes\_gameobjects::allowCarry( "none" ); level.sdbomb maps\mp\gametypes\_gameobjects::allowCarry( "none" );
level.sdBomb maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" ); level.sdbomb maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
level.sdBomb maps\mp\gametypes\_gameobjects::setDropped(); level.sdbomb maps\mp\gametypes\_gameobjects::setDropped();
level.sdBombModel = level.sdBomb.visuals[ 0 ]; level.sdbombmodel = level.sdbomb.visuals[ 0 ];
} }
else else
{ {
for ( var_2 = 0; var_2 < level.players.size; var_2++ ) for ( var_2 = 0; var_2 < level.players.size; var_2++ )
{ {
if ( isdefined( level.players[ var_2 ].carryIcon ) ) if ( isdefined( level.players[ var_2 ].carryicon ) )
{ {
level.players[ var_2 ].carryIcon maps\mp\gametypes\_hud_util::destroyElem(); level.players[ var_2 ].carryicon maps\mp\gametypes\_hud_util::destroyElem();
} }
} }
@ -2512,20 +2512,20 @@ bombPlantedFix( var_0, var_1 )
var_5 = ( cos( var_4 ), sin( var_4 ), 0 ); var_5 = ( cos( var_4 ), sin( var_4 ), 0 );
var_5 = vectornormalize( var_5 - var_3[ "normal" ] * vectordot( var_5, var_3[ "normal" ] ) ); var_5 = vectornormalize( var_5 - var_3[ "normal" ] * vectordot( var_5, var_3[ "normal" ] ) );
var_6 = vectortoangles( var_5 ); var_6 = vectortoangles( var_5 );
level.sdBombModel = spawn( "script_model", var_3[ "position" ] ); level.sdbombmodel = spawn( "script_model", var_3[ "position" ] );
level.sdBombModel.angles = var_6; level.sdbombmodel.angles = var_6;
level.sdBombModel setmodel( "prop_suitcase_bomb" ); level.sdbombmodel setmodel( "prop_suitcase_bomb" );
} }
var_0 maps\mp\gametypes\_gameobjects::allowUse( "none" ); var_0 maps\mp\gametypes\_gameobjects::allowUse( "none" );
var_0 maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" ); var_0 maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
var_7 = var_0 maps\mp\gametypes\_gameobjects::getLabel(); var_7 = var_0 maps\mp\gametypes\_gameobjects::getLabel();
var_8 = var_0.bombDefuseTrig; var_8 = var_0.bombdefusetrig;
var_8.origin = level.sdBombModel.origin; var_8.origin = level.sdbombmodel.origin;
var_9 = []; var_9 = [];
defuseObject = maps\mp\gametypes\_gameobjects::createUseObject( game[ "defenders" ], var_8, var_9, ( 0, 0, 32 ) ); defuseObject = maps\mp\gametypes\_gameobjects::createUseObject( game[ "defenders" ], var_8, var_9, ( 0, 0, 32 ) );
defuseObject maps\mp\gametypes\_gameobjects::allowUse( "friendly" ); defuseObject maps\mp\gametypes\_gameobjects::allowUse( "friendly" );
defuseObject maps\mp\gametypes\_gameobjects::setUseTime( level.defuseTime ); defuseObject maps\mp\gametypes\_gameobjects::setUseTime( level.defusetime );
defuseObject maps\mp\gametypes\_gameobjects::setUseText( &"MP_DEFUSING_EXPLOSIVE" ); defuseObject maps\mp\gametypes\_gameobjects::setUseText( &"MP_DEFUSING_EXPLOSIVE" );
defuseObject maps\mp\gametypes\_gameobjects::setUseHintText( &"PLATFORM_HOLD_TO_DEFUSE_EXPLOSIVES" ); defuseObject maps\mp\gametypes\_gameobjects::setUseHintText( &"PLATFORM_HOLD_TO_DEFUSE_EXPLOSIVES" );
defuseObject maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" ); defuseObject maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" );
@ -2534,25 +2534,25 @@ bombPlantedFix( var_0, var_1 )
defuseObject maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_defuse" + var_7 ); defuseObject maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_defuse" + var_7 );
defuseObject maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_defend" + var_7 ); defuseObject maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_defend" + var_7 );
defuseObject.label = var_7; defuseObject.label = var_7;
defuseObject.onBeginUse = maps\mp\gametypes\sd::onBeginUse; defuseObject.onbeginuse = maps\mp\gametypes\sd::onBeginUse;
defuseObject.onEndUse = maps\mp\gametypes\sd::onEndUse; defuseObject.onenduse = maps\mp\gametypes\sd::onEndUse;
defuseObject.onUse = maps\mp\gametypes\sd::onUseDefuseObject; defuseObject.onuse = maps\mp\gametypes\sd::onUseDefuseObject;
defuseObject.useWeapon = "briefcase_bomb_defuse_mp"; defuseObject.useweapon = "briefcase_bomb_defuse_mp";
level.defuseObject = defuseObject; level.defuseobject = defuseObject;
maps\mp\gametypes\sd::BombTimerWait(); maps\mp\gametypes\sd::BombTimerWait();
setdvar( "ui_bomb_timer", 0 ); setdvar( "ui_bomb_timer", 0 );
var_0.visuals[ 0 ] maps\mp\gametypes\_gamelogic::stopTickingSound(); var_0.visuals[ 0 ] maps\mp\gametypes\_gamelogic::stopTickingSound();
if ( level.gameEnded || level.bombDefused ) if ( level.gameended || level.bombdefused )
{ {
return; return;
} }
level.bombexploded = 1; level.bombexploded = 1;
var_11 = level.sdBombModel.origin; var_11 = level.sdbombmodel.origin;
level.sdBombModel hide(); level.sdbombmodel hide();
if ( isdefined( var_1 ) ) if ( isdefined( var_1 ) )
{ {
@ -2572,14 +2572,14 @@ bombPlantedFix( var_0, var_1 )
earthquake( 0.75, 2.0, var_11, 2000 ); earthquake( 0.75, 2.0, var_11, 2000 );
thread maps\mp\_utility::playSoundinSpace( "exp_suitcase_bomb_main", var_11 ); thread maps\mp\_utility::playSoundinSpace( "exp_suitcase_bomb_main", var_11 );
if ( isdefined( var_0.exploderIndex ) ) if ( isdefined( var_0.exploderindex ) )
{ {
common_scripts\utility::exploder( var_0.exploderIndex ); common_scripts\utility::exploder( var_0.exploderindex );
} }
for ( var_2 = 0; var_2 < level.bombZones.size; var_2++ ) for ( var_2 = 0; var_2 < level.bombzones.size; var_2++ )
{ {
level.bombZones[ var_2 ] maps\mp\gametypes\_gameobjects::disableObject(); level.bombzones[ var_2 ] maps\mp\gametypes\_gameobjects::disableObject();
} }
defuseObject maps\mp\gametypes\_gameobjects::disableObject(); defuseObject maps\mp\gametypes\_gameobjects::disableObject();
@ -2596,7 +2596,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
self endon( "death" ); self endon( "death" );
self takeallweapons(); self takeallweapons();
self.changingWeapon = undefined; self.changingweapon = undefined;
teamName = "none"; teamName = "none";
if ( !isdefined( setPrimarySpawnWeapon ) ) if ( !isdefined( setPrimarySpawnWeapon ) )
@ -2706,7 +2706,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
if ( loadoutSecondary != "none" && !maps\mp\gametypes\_class::isValidSecondary( loadoutSecondary, loadoutPerk2, 0 ) ) if ( loadoutSecondary != "none" && !maps\mp\gametypes\_class::isValidSecondary( loadoutSecondary, loadoutPerk2, 0 ) )
{ {
loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classTableName, 10, 1 ); loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classtablename, 10, 1 );
loadoutSecondaryAttachment = "none"; loadoutSecondaryAttachment = "none";
loadoutSecondaryAttachment2 = "none"; loadoutSecondaryAttachment2 = "none";
loadoutSecondaryBuff = "specialty_null"; loadoutSecondaryBuff = "specialty_null";
@ -2741,14 +2741,14 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
if ( getmatchrulesdata( "defaultClasses", teamName, classIndex, "juggernaut" ) ) if ( getmatchrulesdata( "defaultClasses", teamName, classIndex, "juggernaut" ) )
{ {
self thread recipeClassApplyJuggernaut( isJuggernaut() ); self thread recipeClassApplyJuggernaut( isJuggernaut() );
self.isJuggernaut = true; self.isjuggernaut = true;
self.juggmovespeedscaler = 0.7; self.juggmovespeedscaler = 0.7;
} }
else if ( isJuggernaut() ) else if ( isJuggernaut() )
{ {
self notify( "lost_juggernaut" ); self notify( "lost_juggernaut" );
self.isJuggernaut = false; self.isjuggernaut = false;
self.moveSpeedScaler = 1; self.movespeedscaler = 1;
} }
} }
else if ( issubstr( class, "custom" ) ) else if ( issubstr( class, "custom" ) )
@ -2827,7 +2827,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
if ( loadoutSecondary != "none" && !maps\mp\gametypes\_class::isValidSecondary( loadoutSecondary, loadoutPerk2, 0 ) ) if ( loadoutSecondary != "none" && !maps\mp\gametypes\_class::isValidSecondary( loadoutSecondary, loadoutPerk2, 0 ) )
{ {
loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classTableName, 10, 1 ); loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classtablename, 10, 1 );
loadoutSecondaryAttachment = "none"; loadoutSecondaryAttachment = "none";
loadoutSecondaryAttachment2 = "none"; loadoutSecondaryAttachment2 = "none";
loadoutSecondaryBuff = "specialty_null"; loadoutSecondaryBuff = "specialty_null";
@ -2835,16 +2835,16 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
loadoutSecondaryReticle = "none"; loadoutSecondaryReticle = "none";
} }
if ( level.killstreakRewards && isdefined( gamemodeLoadout[ "loadoutStreakType" ] ) && gamemodeLoadout[ "loadoutStreakType" ] != "specialty_null" ) if ( level.killstreakrewards && isdefined( gamemodeLoadout[ "loadoutStreakType" ] ) && gamemodeLoadout[ "loadoutStreakType" ] != "specialty_null" )
{ {
loadoutStreakType = gamemodeLoadout[ "loadoutStreakType" ]; loadoutStreakType = gamemodeLoadout[ "loadoutStreakType" ];
loadoutKillstreak1 = gamemodeLoadout[ "loadoutKillstreak1" ]; loadoutKillstreak1 = gamemodeLoadout[ "loadoutKillstreak1" ];
loadoutKillstreak2 = gamemodeLoadout[ "loadoutKillstreak2" ]; loadoutKillstreak2 = gamemodeLoadout[ "loadoutKillstreak2" ];
loadoutKillstreak3 = gamemodeLoadout[ "loadoutKillstreak3" ]; loadoutKillstreak3 = gamemodeLoadout[ "loadoutKillstreak3" ];
} }
else if ( level.killstreakRewards && isdefined( self.streakType ) ) else if ( level.killstreakrewards && isdefined( self.streaktype ) )
{ {
loadoutStreakType = maps\mp\gametypes\_class::getLoadoutStreakTypeFromStreakType( self.streakType ); loadoutStreakType = maps\mp\gametypes\_class::getLoadoutStreakTypeFromStreakType( self.streaktype );
} }
else else
{ {
@ -2858,16 +2858,16 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
if ( gamemodeLoadout[ "loadoutJuggernaut" ] ) if ( gamemodeLoadout[ "loadoutJuggernaut" ] )
{ {
self.health = self.maxHealth; self.health = self.maxhealth;
self thread recipeClassApplyJuggernaut( isJuggernaut() ); self thread recipeClassApplyJuggernaut( isJuggernaut() );
self.isJuggernaut = true; self.isjuggernaut = true;
self.juggmovespeedscaler = 0.7; self.juggmovespeedscaler = 0.7;
} }
else if ( isJuggernaut() ) else if ( isJuggernaut() )
{ {
self notify( "lost_juggernaut" ); self notify( "lost_juggernaut" );
self.isJuggernaut = false; self.isjuggernaut = false;
self.moveSpeedScaler = 1; self.movespeedscaler = 1;
} }
} }
else if ( class == "juggernaut" ) else if ( class == "juggernaut" )
@ -2888,7 +2888,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
loadoutPerk1 = "specialty_scavenger"; loadoutPerk1 = "specialty_scavenger";
loadoutPerk2 = "specialty_quickdraw"; loadoutPerk2 = "specialty_quickdraw";
loadoutPerk3 = "specialty_detectexplosive"; loadoutPerk3 = "specialty_detectexplosive";
loadoutStreakType = maps\mp\gametypes\_class::getLoadoutStreakTypeFromStreakType( self.streakType ); loadoutStreakType = maps\mp\gametypes\_class::getLoadoutStreakTypeFromStreakType( self.streaktype );
loadoutOffhand = "smoke_grenade_mp"; loadoutOffhand = "smoke_grenade_mp";
loadoutDeathStreak = "specialty_null"; loadoutDeathStreak = "specialty_null";
} }
@ -2910,7 +2910,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
loadoutPerk1 = "specialty_scavenger"; loadoutPerk1 = "specialty_scavenger";
loadoutPerk2 = "specialty_coldblooded"; loadoutPerk2 = "specialty_coldblooded";
loadoutPerk3 = "specialty_detectexplosive"; loadoutPerk3 = "specialty_detectexplosive";
loadoutStreakType = maps\mp\gametypes\_class::getLoadoutStreakTypeFromStreakType( self.streakType ); loadoutStreakType = maps\mp\gametypes\_class::getLoadoutStreakTypeFromStreakType( self.streaktype );
loadoutOffhand = "smoke_grenade_mp"; loadoutOffhand = "smoke_grenade_mp";
loadoutDeathStreak = "specialty_null"; loadoutDeathStreak = "specialty_null";
} }
@ -2918,25 +2918,25 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
{ {
class_num = maps\mp\gametypes\_class::getClassIndex( class ); class_num = maps\mp\gametypes\_class::getClassIndex( class );
self.class_num = class_num; self.class_num = class_num;
loadoutPrimary = maps\mp\gametypes\_class::table_getWeapon( level.classTableName, class_num, 0 ); loadoutPrimary = maps\mp\gametypes\_class::table_getWeapon( level.classtablename, class_num, 0 );
loadoutPrimaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, class_num, 0, 0 ); loadoutPrimaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, class_num, 0, 0 );
loadoutPrimaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, class_num, 0, 1 ); loadoutPrimaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, class_num, 0, 1 );
loadoutPrimaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classTableName, class_num, 0 ); loadoutPrimaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classtablename, class_num, 0 );
loadoutPrimaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classTableName, class_num, 0 ); loadoutPrimaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classtablename, class_num, 0 );
loadoutPrimaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classTableName, class_num, 0 ); loadoutPrimaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classtablename, class_num, 0 );
loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classTableName, class_num, 1 ); loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classtablename, class_num, 1 );
loadoutSecondaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, class_num, 1, 0 ); loadoutSecondaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, class_num, 1, 0 );
loadoutSecondaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, class_num, 1, 1 ); loadoutSecondaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, class_num, 1, 1 );
loadoutSecondaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classTableName, class_num, 1 ); loadoutSecondaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classtablename, class_num, 1 );
loadoutSecondaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classTableName, class_num, 1 ); loadoutSecondaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classtablename, class_num, 1 );
loadoutSecondaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classTableName, class_num, 1 ); loadoutSecondaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classtablename, class_num, 1 );
loadoutEquipment = maps\mp\gametypes\_class::table_getEquipment( level.classTableName, class_num, 0 ); loadoutEquipment = maps\mp\gametypes\_class::table_getEquipment( level.classtablename, class_num, 0 );
loadoutPerk1 = maps\mp\gametypes\_class::table_getPerk( level.classTableName, class_num, 1 ); loadoutPerk1 = maps\mp\gametypes\_class::table_getPerk( level.classtablename, class_num, 1 );
loadoutPerk2 = maps\mp\gametypes\_class::table_getPerk( level.classTableName, class_num, 2 ); loadoutPerk2 = maps\mp\gametypes\_class::table_getPerk( level.classtablename, class_num, 2 );
loadoutPerk3 = maps\mp\gametypes\_class::table_getPerk( level.classTableName, class_num, 3 ); loadoutPerk3 = maps\mp\gametypes\_class::table_getPerk( level.classtablename, class_num, 3 );
loadoutStreakType = maps\mp\gametypes\_class::table_getPerk( level.classTableName, class_num, 5 ); loadoutStreakType = maps\mp\gametypes\_class::table_getPerk( level.classtablename, class_num, 5 );
loadoutOffhand = maps\mp\gametypes\_class::table_getOffhand( level.classTableName, class_num ); loadoutOffhand = maps\mp\gametypes\_class::table_getOffhand( level.classtablename, class_num );
loadoutDeathStreak = maps\mp\gametypes\_class::table_getDeathstreak( level.classTableName, class_num ); loadoutDeathStreak = maps\mp\gametypes\_class::table_getDeathstreak( level.classtablename, class_num );
} }
// stop default class op'ness // stop default class op'ness
@ -2991,37 +2991,37 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
{ {
if ( !maps\mp\gametypes\_class::isValidPrimary( loadoutPrimary ) ) if ( !maps\mp\gametypes\_class::isValidPrimary( loadoutPrimary ) )
{ {
loadoutPrimary = maps\mp\gametypes\_class::table_getWeapon( level.classTableName, 10, 0 ); loadoutPrimary = maps\mp\gametypes\_class::table_getWeapon( level.classtablename, 10, 0 );
} }
if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutPrimaryAttachment ) ) if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutPrimaryAttachment ) )
{ {
loadoutPrimaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, 10, 0, 0 ); loadoutPrimaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, 10, 0, 0 );
} }
if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutPrimaryAttachment2 ) ) if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutPrimaryAttachment2 ) )
{ {
loadoutPrimaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, 10, 0, 1 ); loadoutPrimaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, 10, 0, 1 );
} }
if ( !maps\mp\gametypes\_class::isValidWeaponBuff( loadoutPrimaryBuff, loadoutPrimary ) ) if ( !maps\mp\gametypes\_class::isValidWeaponBuff( loadoutPrimaryBuff, loadoutPrimary ) )
{ {
loadoutPrimaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classTableName, 10, 0 ); loadoutPrimaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classtablename, 10, 0 );
} }
if ( !maps\mp\gametypes\_class::isValidCamo( loadoutPrimaryCamo ) ) if ( !maps\mp\gametypes\_class::isValidCamo( loadoutPrimaryCamo ) )
{ {
loadoutPrimaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classTableName, 10, 0 ); loadoutPrimaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classtablename, 10, 0 );
} }
if ( !maps\mp\gametypes\_class::isValidReticle( loadoutPrimaryReticle ) ) if ( !maps\mp\gametypes\_class::isValidReticle( loadoutPrimaryReticle ) )
{ {
loadoutPrimaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classTableNum, 10, 0 ); loadoutPrimaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classtablenum, 10, 0 );
} }
if ( !maps\mp\gametypes\_class::isValidSecondary( loadoutSecondary, loadoutPerk2 ) ) if ( !maps\mp\gametypes\_class::isValidSecondary( loadoutSecondary, loadoutPerk2 ) )
{ {
loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classTableName, 10, 1 ); loadoutSecondary = maps\mp\gametypes\_class::table_getWeapon( level.classtablename, 10, 1 );
loadoutSecondaryAttachment = "none"; loadoutSecondaryAttachment = "none";
loadoutSecondaryAttachment2 = "none"; loadoutSecondaryAttachment2 = "none";
loadoutSecondaryBuff = "specialty_null"; loadoutSecondaryBuff = "specialty_null";
@ -3031,57 +3031,57 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutSecondaryAttachment ) ) if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutSecondaryAttachment ) )
{ {
loadoutSecondaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, 10, 1, 0 ); loadoutSecondaryAttachment = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, 10, 1, 0 );
} }
if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutSecondaryAttachment2 ) ) if ( !maps\mp\gametypes\_class::isValidAttachment( loadoutSecondaryAttachment2 ) )
{ {
loadoutSecondaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classTableName, 10, 1, 1 ); loadoutSecondaryAttachment2 = maps\mp\gametypes\_class::table_getWeaponAttachment( level.classtablename, 10, 1, 1 );
} }
if ( loadoutPerk2 == "specialty_twoprimaries" && !maps\mp\gametypes\_class::isValidWeaponBuff( loadoutSecondaryBuff, loadoutSecondary ) ) if ( loadoutPerk2 == "specialty_twoprimaries" && !maps\mp\gametypes\_class::isValidWeaponBuff( loadoutSecondaryBuff, loadoutSecondary ) )
{ {
loadoutSecondaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classTableName, 10, 1 ); loadoutSecondaryBuff = maps\mp\gametypes\_class::table_getWeaponBuff( level.classtablename, 10, 1 );
} }
if ( !maps\mp\gametypes\_class::isValidCamo( loadoutSecondaryCamo ) ) if ( !maps\mp\gametypes\_class::isValidCamo( loadoutSecondaryCamo ) )
{ {
loadoutSecondaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classTableName, 10, 1 ); loadoutSecondaryCamo = maps\mp\gametypes\_class::table_getWeaponCamo( level.classtablename, 10, 1 );
} }
if ( !maps\mp\gametypes\_class::isValidReticle( loadoutSecondaryReticle ) ) if ( !maps\mp\gametypes\_class::isValidReticle( loadoutSecondaryReticle ) )
{ {
loadoutSecondaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classTableName, 10, 1 ); loadoutSecondaryReticle = maps\mp\gametypes\_class::table_getWeaponReticle( level.classtablename, 10, 1 );
} }
if ( !maps\mp\gametypes\_class::isValidEquipment( loadoutEquipment ) ) if ( !maps\mp\gametypes\_class::isValidEquipment( loadoutEquipment ) )
{ {
loadoutEquipment = maps\mp\gametypes\_class::table_getEquipment( level.classTableName, 10, 0 ); loadoutEquipment = maps\mp\gametypes\_class::table_getEquipment( level.classtablename, 10, 0 );
} }
if ( !maps\mp\gametypes\_class::isValidPerk1( loadoutPerk1 ) ) if ( !maps\mp\gametypes\_class::isValidPerk1( loadoutPerk1 ) )
{ {
loadoutPerk1 = maps\mp\gametypes\_class::table_getPerk( level.classTableName, 10, 1 ); loadoutPerk1 = maps\mp\gametypes\_class::table_getPerk( level.classtablename, 10, 1 );
} }
if ( !maps\mp\gametypes\_class::isValidPerk2( loadoutPerk2 ) ) if ( !maps\mp\gametypes\_class::isValidPerk2( loadoutPerk2 ) )
{ {
loadoutPerk2 = maps\mp\gametypes\_class::table_getPerk( level.classTableName, 10, 2 ); loadoutPerk2 = maps\mp\gametypes\_class::table_getPerk( level.classtablename, 10, 2 );
} }
if ( !maps\mp\gametypes\_class::isValidPerk3( loadoutPerk3 ) ) if ( !maps\mp\gametypes\_class::isValidPerk3( loadoutPerk3 ) )
{ {
loadoutPerk3 = maps\mp\gametypes\_class::table_getPerk( level.classTableName, 10, 3 ); loadoutPerk3 = maps\mp\gametypes\_class::table_getPerk( level.classtablename, 10, 3 );
} }
if ( !maps\mp\gametypes\_class::isValidDeathStreak( loadoutDeathStreak ) ) if ( !maps\mp\gametypes\_class::isValidDeathStreak( loadoutDeathStreak ) )
{ {
loadoutDeathStreak = maps\mp\gametypes\_class::table_getDeathstreak( level.classTableName, 10 ); loadoutDeathStreak = maps\mp\gametypes\_class::table_getDeathstreak( level.classtablename, 10 );
} }
if ( !maps\mp\gametypes\_class::isValidOffhand( loadoutOffhand ) ) if ( !maps\mp\gametypes\_class::isValidOffhand( loadoutOffhand ) )
{ {
loadoutOffhand = maps\mp\gametypes\_class::table_getOffhand( level.classTableName, 10 ); loadoutOffhand = maps\mp\gametypes\_class::table_getOffhand( level.classtablename, 10 );
} }
if ( loadoutPrimaryAttachment2 != "none" && loadoutPrimaryBuff != "specialty_bling" ) if ( loadoutPrimaryAttachment2 != "none" && loadoutPrimaryBuff != "specialty_bling" )
@ -3100,32 +3100,32 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
} }
} }
self.loadoutPrimary = loadoutPrimary; self.loadoutprimary = loadoutPrimary;
self.loadoutPrimaryCamo = int( tablelookup( "mp/camoTable.csv", 1, loadoutPrimaryCamo, 0 ) ); self.loadoutprimarycamo = int( tablelookup( "mp/camoTable.csv", 1, loadoutPrimaryCamo, 0 ) );
self.loadoutSecondary = loadoutSecondary; self.loadoutsecondary = loadoutSecondary;
self.loadoutSecondaryCamo = int( tablelookup( "mp/camoTable.csv", 1, loadoutSecondaryCamo, 0 ) ); self.loadoutsecondarycamo = int( tablelookup( "mp/camoTable.csv", 1, loadoutSecondaryCamo, 0 ) );
if ( !issubstr( loadoutPrimary, "iw5" ) ) if ( !issubstr( loadoutPrimary, "iw5" ) )
{ {
self.loadoutPrimaryCamo = 0; self.loadoutprimarycamo = 0;
} }
if ( !issubstr( loadoutSecondary, "iw5" ) ) if ( !issubstr( loadoutSecondary, "iw5" ) )
{ {
self.loadoutSecondaryCamo = 0; self.loadoutsecondarycamo = 0;
} }
self.loadoutPrimaryReticle = int( tablelookup( "mp/reticleTable.csv", 1, loadoutPrimaryReticle, 0 ) ); self.loadoutprimaryreticle = int( tablelookup( "mp/reticleTable.csv", 1, loadoutPrimaryReticle, 0 ) );
self.loadoutSecondaryReticle = int( tablelookup( "mp/reticleTable.csv", 1, loadoutSecondaryReticle, 0 ) ); self.loadoutsecondaryreticle = int( tablelookup( "mp/reticleTable.csv", 1, loadoutSecondaryReticle, 0 ) );
if ( !issubstr( loadoutPrimary, "iw5" ) ) if ( !issubstr( loadoutPrimary, "iw5" ) )
{ {
self.loadoutPrimaryReticle = 0; self.loadoutprimaryreticle = 0;
} }
if ( !issubstr( loadoutSecondary, "iw5" ) ) if ( !issubstr( loadoutSecondary, "iw5" ) )
{ {
self.loadoutSecondaryReticle = 0; self.loadoutsecondaryreticle = 0;
} }
if ( loadoutSecondary == "none" ) if ( loadoutSecondary == "none" )
@ -3134,7 +3134,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
} }
else else
{ {
secondaryName = maps\mp\gametypes\_class::buildWeaponName( loadoutSecondary, loadoutSecondaryAttachment, loadoutSecondaryAttachment2, self.loadoutSecondaryCamo, self.loadoutSecondaryReticle ); secondaryName = maps\mp\gametypes\_class::buildWeaponName( loadoutSecondary, loadoutSecondaryAttachment, loadoutSecondaryAttachment2, self.loadoutsecondarycamo, self.loadoutsecondaryreticle );
self _giveWeapon( secondaryName ); self _giveWeapon( secondaryName );
weaponTokens = strtok( secondaryName, "_" ); weaponTokens = strtok( secondaryName, "_" );
@ -3172,7 +3172,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
self _clearPerks(); self _clearPerks();
self maps\mp\gametypes\_class::_detachAll(); self maps\mp\gametypes\_class::_detachAll();
if ( level.dieHardMode ) if ( level.diehardmode )
{ {
self givePerk( "specialty_pistoldeath", false ); self givePerk( "specialty_pistoldeath", false );
} }
@ -3186,7 +3186,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
self.spawnperk = false; self.spawnperk = false;
if ( !self _hasPerk( "specialty_blindeye" ) && self.avoidKillstreakOnSpawnTimer > 0 ) if ( !self _hasPerk( "specialty_blindeye" ) && self.avoidkillstreakonspawntimer > 0 )
{ {
self thread maps\mp\perks\_perks::giveBlindEyeAfterSpawn(); self thread maps\mp\perks\_perks::giveBlindEyeAfterSpawn();
} }
@ -3226,7 +3226,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
} }
} }
if ( level.killstreakRewards && !isdefined( loadoutKillstreak1 ) && !isdefined( loadoutKillstreak2 ) && !isdefined( loadoutKillstreak3 ) ) if ( level.killstreakrewards && !isdefined( loadoutKillstreak1 ) && !isdefined( loadoutKillstreak2 ) && !isdefined( loadoutKillstreak3 ) )
{ {
if ( isdefined( self.pers[ "copyCatLoadout" ] ) && self.pers[ "copyCatLoadout" ][ "inUse" ] && allowCopycat ) if ( isdefined( self.pers[ "copyCatLoadout" ] ) && self.pers[ "copyCatLoadout" ][ "inUse" ] && allowCopycat )
{ {
@ -3241,26 +3241,26 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
defaultKillstreak3 = undefined; defaultKillstreak3 = undefined;
playerData = undefined; playerData = undefined;
switch ( self.streakType ) switch ( self.streaktype )
{ {
case "support": case "support":
defaultKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 2, 1 ); defaultKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 2, 1 );
defaultKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 2, 2 ); defaultKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 2, 2 );
defaultKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 2, 3 ); defaultKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 2, 3 );
playerData = "defenseStreaks"; playerData = "defenseStreaks";
break; break;
case "specialist": case "specialist":
defaultKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 1, 1 ); defaultKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 1, 1 );
defaultKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 1, 2 ); defaultKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 1, 2 );
defaultKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 1, 3 ); defaultKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 1, 3 );
playerData = "specialistStreaks"; playerData = "specialistStreaks";
break; break;
default: default:
defaultKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 0, 1 ); defaultKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 0, 1 );
defaultKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 0, 2 ); defaultKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 0, 2 );
defaultKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 0, 3 ); defaultKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 0, 3 );
playerData = "assaultStreaks"; playerData = "assaultStreaks";
break; break;
} }
@ -3299,7 +3299,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
} }
} }
if ( isGameModeClass && self.streakType == "specialist" ) if ( isGameModeClass && self.streaktype == "specialist" )
{ {
self.pers[ "gamemodeLoadout" ][ "loadoutKillstreak1" ] = loadoutKillstreak1; self.pers[ "gamemodeLoadout" ][ "loadoutKillstreak1" ] = loadoutKillstreak1;
self.pers[ "gamemodeLoadout" ][ "loadoutKillstreak2" ] = loadoutKillstreak2; self.pers[ "gamemodeLoadout" ][ "loadoutKillstreak2" ] = loadoutKillstreak2;
@ -3348,14 +3348,14 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
if ( var_56 ) if ( var_56 )
{ {
self.streakType = "assault"; self.streaktype = "assault";
loadoutKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 0, 1 ); loadoutKillstreak1 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 0, 1 );
loadoutKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 0, 2 ); loadoutKillstreak2 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 0, 2 );
loadoutKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classTableName, 0, 3 ); loadoutKillstreak3 = maps\mp\gametypes\_class::table_getKillstreak( level.classtablename, 0, 3 );
} }
} }
} }
else if ( !level.killstreakRewards ) else if ( !level.killstreakrewards )
{ {
loadoutKillstreak1 = "none"; loadoutKillstreak1 = "none";
loadoutKillstreak2 = "none"; loadoutKillstreak2 = "none";
@ -3364,9 +3364,9 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
self maps\mp\gametypes\_class::setKillstreaks( loadoutKillstreak1, loadoutKillstreak2, loadoutKillstreak3 ); self maps\mp\gametypes\_class::setKillstreaks( loadoutKillstreak1, loadoutKillstreak2, loadoutKillstreak3 );
if ( isdefined( self.lastClass ) && self.lastClass != self.class && !issubstr( self.class, "juggernaut" ) && !issubstr( self.lastClass, "juggernaut" ) && !issubstr( class, "juggernaut" ) ) if ( isdefined( self.lastclass ) && self.lastclass != self.class && !issubstr( self.class, "juggernaut" ) && !issubstr( self.lastclass, "juggernaut" ) && !issubstr( class, "juggernaut" ) )
{ {
if ( wasOnlyRound() || self.lastClass != "" ) if ( wasOnlyRound() || self.lastclass != "" )
{ {
streakNames = []; streakNames = [];
inc = 0; inc = 0;
@ -3375,7 +3375,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
{ {
for ( i = 5; i < self.pers[ "killstreaks" ].size; i++ ) for ( i = 5; i < self.pers[ "killstreaks" ].size; i++ )
{ {
streakNames[ inc ] = self.pers[ "killstreaks" ][ i ].streakName; streakNames[ inc ] = self.pers[ "killstreaks" ][ i ].streakname;
inc++; inc++;
} }
} }
@ -3384,9 +3384,9 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
{ {
for ( i = 1; i < 4; i++ ) for ( i = 1; i < 4; i++ )
{ {
if ( isdefined( self.pers[ "killstreaks" ][ i ] ) && isdefined( self.pers[ "killstreaks" ][ i ].streakName ) && self.pers[ "killstreaks" ][ i ].available && !self.pers[ "killstreaks" ][ i ].isSpecialist ) if ( isdefined( self.pers[ "killstreaks" ][ i ] ) && isdefined( self.pers[ "killstreaks" ][ i ].streakname ) && self.pers[ "killstreaks" ][ i ].available && !self.pers[ "killstreaks" ][ i ].isspecialist )
{ {
streakNames[ inc ] = self.pers[ "killstreaks" ][ i ].streakName; streakNames[ inc ] = self.pers[ "killstreaks" ][ i ].streakname;
inc++; inc++;
} }
} }
@ -3404,13 +3404,13 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
if ( !issubstr( class, "juggernaut" ) ) if ( !issubstr( class, "juggernaut" ) )
{ {
if ( isdefined( self.lastClass ) && self.lastClass != "" && self.lastClass != self.class ) if ( isdefined( self.lastclass ) && self.lastclass != "" && self.lastclass != self.class )
{ {
self incPlayerStat( "mostclasseschanged", 1 ); self incPlayerStat( "mostclasseschanged", 1 );
} }
self.pers[ "lastClass" ] = self.class; self.pers[ "lastClass" ] = self.class;
self.lastClass = self.class; self.lastclass = self.class;
} }
if ( isdefined( self.gamemode_chosenclass ) ) if ( isdefined( self.gamemode_chosenclass ) )
@ -3418,11 +3418,11 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
self.pers[ "class" ] = self.gamemode_chosenclass; self.pers[ "class" ] = self.gamemode_chosenclass;
self.pers[ "lastClass" ] = self.gamemode_chosenclass; self.pers[ "lastClass" ] = self.gamemode_chosenclass;
self.class = self.gamemode_chosenclass; self.class = self.gamemode_chosenclass;
self.lastClass = self.gamemode_chosenclass; self.lastclass = self.gamemode_chosenclass;
self.gamemode_chosenclass = undefined; self.gamemode_chosenclass = undefined;
} }
primaryName = maps\mp\gametypes\_class::buildWeaponName( loadoutPrimary, loadoutPrimaryAttachment, loadoutPrimaryAttachment2, self.loadoutPrimaryCamo, self.loadoutPrimaryReticle ); primaryName = maps\mp\gametypes\_class::buildWeaponName( loadoutPrimary, loadoutPrimaryAttachment, loadoutPrimaryAttachment2, self.loadoutprimarycamo, self.loadoutprimaryreticle );
self _giveWeapon( primaryName ); self _giveWeapon( primaryName );
self switchtoweapon( primaryName ); self switchtoweapon( primaryName );
weaponTokens = strtok( primaryName, "_" ); weaponTokens = strtok( primaryName, "_" );
@ -3448,7 +3448,7 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
self setplayerdata( "weaponRank", weaponName, curWeaponRank ); self setplayerdata( "weaponRank", weaponName, curWeaponRank );
} }
if ( primaryName == "riotshield_mp" && level.inGracePeriod ) if ( primaryName == "riotshield_mp" && level.ingraceperiod )
{ {
self notify( "weapon_change", "riotshield_mp" ); self notify( "weapon_change", "riotshield_mp" );
} }
@ -3516,17 +3516,17 @@ botGiveLoadout( team, class, allowCopycat, setPrimarySpawnWeapon ) // setPrimary
} }
primaryWeapon = primaryName; primaryWeapon = primaryName;
self.primaryWeapon = primaryWeapon; self.primaryweapon = primaryWeapon;
self.secondaryWeapon = secondaryName; self.secondaryweapon = secondaryName;
if ( var_7 ) if ( var_7 )
{ {
self setweaponammoclip( self.primaryWeapon, 0 ); self setweaponammoclip( self.primaryweapon, 0 );
self setweaponammostock( self.primaryWeapon, 0 ); self setweaponammostock( self.primaryweapon, 0 );
} }
self playerModelForWeapon( self.pers[ "primaryWeapon" ], getBaseWeaponName( secondaryName ) ); self playerModelForWeapon( self.pers[ "primaryWeapon" ], getBaseWeaponName( secondaryName ) );
self.isSniper = ( weaponclass( self.primaryWeapon ) == "sniper" ); self.issniper = ( weaponclass( self.primaryweapon ) == "sniper" );
self maps\mp\gametypes\_weapons::updateMoveSpeedScale(); self maps\mp\gametypes\_weapons::updateMoveSpeedScale();
self maps\mp\perks\_perks::cac_selector(); self maps\mp\perks\_perks::cac_selector();
self notify( "changed_kit" ); self notify( "changed_kit" );
@ -3570,15 +3570,15 @@ loadoutAllPerks( loadoutEquipment, loadoutPerk1, loadoutPerk2, loadoutPerk3, loa
loadoutSecondaryBuff = maps\mp\perks\_perks::validatePerk( undefined, loadoutSecondaryBuff ); loadoutSecondaryBuff = maps\mp\perks\_perks::validatePerk( undefined, loadoutSecondaryBuff );
} }
self.loadoutPerk1 = loadoutPerk1; self.loadoutperk1 = loadoutPerk1;
self.loadoutPerk2 = loadoutPerk2; self.loadoutperk2 = loadoutPerk2;
self.loadoutPerk3 = loadoutPerk3; self.loadoutperk3 = loadoutPerk3;
self.loadoutPerkEquipment = loadoutEquipment; self.loadoutperkequipment = loadoutEquipment;
self.loadoutPrimaryBuff = loadoutPrimaryBuff; self.loadoutprimarybuff = loadoutPrimaryBuff;
if ( loadoutPerk2 == "specialty_twoprimaries" ) if ( loadoutPerk2 == "specialty_twoprimaries" )
{ {
self.loadoutSecondaryBuff = loadoutSecondaryBuff; self.loadoutsecondarybuff = loadoutSecondaryBuff;
} }
if ( loadoutEquipment != "specialty_null" ) if ( loadoutEquipment != "specialty_null" )

View File

@ -45,7 +45,7 @@ watchPlayers()
continue; continue;
} }
if ( isDefined( player.menuInit ) && player.menuInit ) if ( isDefined( player.menuinit ) && player.menuinit )
{ {
continue; continue;
} }
@ -58,17 +58,17 @@ watchPlayers()
kill_menu() kill_menu()
{ {
self notify( "bots_kill_menu" ); self notify( "bots_kill_menu" );
self.menuInit = undefined; self.menuinit = undefined;
} }
init_menu() init_menu()
{ {
self.menuInit = true; self.menuinit = true;
self.menuOpen = false; self.menuopen = false;
self.menu_player = undefined; self.menu_player = undefined;
self.SubMenu = "Main"; self.submenu = "Main";
self.Curs[ "Main" ][ "X" ] = 0; self.curs[ "Main" ][ "X" ] = 0;
self AddOptions(); self AddOptions();
self thread watchPlayerOpenMenu(); self thread watchPlayerOpenMenu();
@ -87,46 +87,46 @@ watchDisconnect()
{ {
self waittill_either( "disconnect", "bots_kill_menu" ); self waittill_either( "disconnect", "bots_kill_menu" );
if ( self.menuOpen ) if ( self.menuopen )
{ {
if ( isDefined( self.MenuTextY ) ) if ( isDefined( self.menutexty ) )
{ {
for ( i = 0; i < self.MenuTextY.size; i++ ) for ( i = 0; i < self.menutexty.size; i++ )
{ {
if ( isDefined( self.MenuTextY[ i ] ) ) if ( isDefined( self.menutexty[ i ] ) )
{ {
self.MenuTextY[ i ] destroy(); self.menutexty[ i ] destroy();
} }
} }
} }
if ( isDefined( self.MenuText ) ) if ( isDefined( self.menutext ) )
{ {
for ( i = 0; i < self.MenuText.size; i++ ) for ( i = 0; i < self.menutext.size; i++ )
{ {
if ( isDefined( self.MenuText[ i ] ) ) if ( isDefined( self.menutext[ i ] ) )
{ {
self.MenuText[ i ] destroy(); self.menutext[ i ] destroy();
} }
} }
} }
if ( isDefined( self.Menu ) && isDefined( self.Menu[ "X" ] ) ) if ( isDefined( self.menu ) && isDefined( self.menu[ "X" ] ) )
{ {
if ( isDefined( self.Menu[ "X" ][ "Shader" ] ) ) if ( isDefined( self.menu[ "X" ][ "Shader" ] ) )
{ {
self.Menu[ "X" ][ "Shader" ] destroy(); self.menu[ "X" ][ "Shader" ] destroy();
} }
if ( isDefined( self.Menu[ "X" ][ "Scroller" ] ) ) if ( isDefined( self.menu[ "X" ][ "Scroller" ] ) )
{ {
self.Menu[ "X" ][ "Scroller" ] destroy(); self.menu[ "X" ][ "Scroller" ] destroy();
} }
} }
if ( isDefined( self.menuVersionHud ) ) if ( isDefined( self.menuversionhud ) )
{ {
self.menuVersionHud destroy(); self.menuversionhud destroy();
} }
} }
} }
@ -152,16 +152,16 @@ watchPlayerOpenMenu()
{ {
self waittill( "bots_open_menu" ); self waittill( "bots_open_menu" );
if ( !self.menuOpen ) if ( !self.menuopen )
{ {
self playLocalSound( "mouse_click" ); self playLocalSound( "mouse_click" );
self thread OpenSub( self.SubMenu ); self thread OpenSub( self.submenu );
} }
else else
{ {
self playLocalSound( "mouse_click" ); self playLocalSound( "mouse_click" );
if ( self.SubMenu != "Main" ) if ( self.submenu != "Main" )
{ {
self ExitSub(); self ExitSub();
} }
@ -169,7 +169,7 @@ watchPlayerOpenMenu()
{ {
self ExitMenu(); self ExitMenu();
if ( !gameFlag( "prematch_done" ) || level.gameEnded ) if ( !gameFlag( "prematch_done" ) || level.gameended )
{ {
self freezeControls( true ); self freezeControls( true );
} }
@ -193,17 +193,17 @@ MenuSelect()
{ {
self waittill( "bots_select" ); self waittill( "bots_select" );
if ( self.MenuOpen ) if ( self.menuopen )
{ {
self playLocalSound( "mouse_click" ); self playLocalSound( "mouse_click" );
if ( self.SubMenu == "Main" ) if ( self.submenu == "Main" )
{ {
self thread [[ self.Option[ "Function" ][ self.SubMenu ][ self.Curs[ "Main" ][ "X" ] ] ]]( self.Option[ "Arg1" ][ self.SubMenu ][ self.Curs[ "Main" ][ "X" ] ], self.Option[ "Arg2" ][ self.SubMenu ][ self.Curs[ "Main" ][ "X" ] ] ); self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] );
} }
else else
{ {
self thread [[ self.Option[ "Function" ][ self.SubMenu ][ self.Curs[ self.SubMenu ][ "Y" ] ] ]]( self.Option[ "Arg1" ][ self.SubMenu ][ self.Curs[ self.SubMenu ][ "Y" ] ], self.Option[ "Arg2" ][ self.SubMenu ][ self.Curs[ self.SubMenu ][ "Y" ] ] ); self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] );
} }
} }
} }
@ -220,14 +220,14 @@ LeftMenu()
{ {
self waittill( "bots_left" ); self waittill( "bots_left" );
if ( self.MenuOpen && self.SubMenu == "Main" ) if ( self.menuopen && self.submenu == "Main" )
{ {
self playLocalSound( "mouse_over" ); self playLocalSound( "mouse_over" );
self.Curs[ "Main" ][ "X" ]--; self.curs[ "Main" ][ "X" ]--;
if ( self.Curs[ "Main" ][ "X" ] < 0 ) if ( self.curs[ "Main" ][ "X" ] < 0 )
{ {
self.Curs[ "Main" ][ "X" ] = self.Option[ "Name" ][ self.SubMenu ].size - 1; self.curs[ "Main" ][ "X" ] = self.option[ "Name" ][ self.submenu ].size - 1;
} }
self CursMove( "X" ); self CursMove( "X" );
@ -246,14 +246,14 @@ RightMenu()
{ {
self waittill( "bots_right" ); self waittill( "bots_right" );
if ( self.MenuOpen && self.SubMenu == "Main" ) if ( self.menuopen && self.submenu == "Main" )
{ {
self playLocalSound( "mouse_over" ); self playLocalSound( "mouse_over" );
self.Curs[ "Main" ][ "X" ]++; self.curs[ "Main" ][ "X" ]++;
if ( self.Curs[ "Main" ][ "X" ] > self.Option[ "Name" ][ self.SubMenu ].size - 1 ) if ( self.curs[ "Main" ][ "X" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
{ {
self.Curs[ "Main" ][ "X" ] = 0; self.curs[ "Main" ][ "X" ] = 0;
} }
self CursMove( "X" ); self CursMove( "X" );
@ -272,14 +272,14 @@ UpMenu()
{ {
self waittill( "bots_up" ); self waittill( "bots_up" );
if ( self.MenuOpen && self.SubMenu != "Main" ) if ( self.menuopen && self.submenu != "Main" )
{ {
self playLocalSound( "mouse_over" ); self playLocalSound( "mouse_over" );
self.Curs[ self.SubMenu ][ "Y" ]--; self.curs[ self.submenu ][ "Y" ]--;
if ( self.Curs[ self.SubMenu ][ "Y" ] < 0 ) if ( self.curs[ self.submenu ][ "Y" ] < 0 )
{ {
self.Curs[ self.SubMenu ][ "Y" ] = self.Option[ "Name" ][ self.SubMenu ].size - 1; self.curs[ self.submenu ][ "Y" ] = self.option[ "Name" ][ self.submenu ].size - 1;
} }
self CursMove( "Y" ); self CursMove( "Y" );
@ -298,14 +298,14 @@ DownMenu()
{ {
self waittill( "bots_down" ); self waittill( "bots_down" );
if ( self.MenuOpen && self.SubMenu != "Main" ) if ( self.menuopen && self.submenu != "Main" )
{ {
self playLocalSound( "mouse_over" ); self playLocalSound( "mouse_over" );
self.Curs[ self.SubMenu ][ "Y" ]++; self.curs[ self.submenu ][ "Y" ]++;
if ( self.Curs[ self.SubMenu ][ "Y" ] > self.Option[ "Name" ][ self.SubMenu ].size - 1 ) if ( self.curs[ self.submenu ][ "Y" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
{ {
self.Curs[ self.SubMenu ][ "Y" ] = 0; self.curs[ self.submenu ][ "Y" ] = 0;
} }
self CursMove( "Y" ); self CursMove( "Y" );
@ -315,105 +315,105 @@ DownMenu()
OpenSub( menu, menu2 ) OpenSub( menu, menu2 )
{ {
if ( menu != "Main" && ( !isDefined( self.Menu[ menu ] ) || !!isDefined( self.Menu[ menu ][ "FirstOpen" ] ) ) ) if ( menu != "Main" && ( !isDefined( self.menu[ menu ] ) || !!isDefined( self.menu[ menu ][ "FirstOpen" ] ) ) )
{ {
self.Curs[ menu ][ "Y" ] = 0; self.curs[ menu ][ "Y" ] = 0;
self.Menu[ menu ][ "FirstOpen" ] = true; self.menu[ menu ][ "FirstOpen" ] = true;
} }
logoldi = true; logoldi = true;
self.SubMenu = menu; self.submenu = menu;
if ( self.SubMenu == "Main" ) if ( self.submenu == "Main" )
{ {
if ( isDefined( self.MenuText ) ) if ( isDefined( self.menutext ) )
{ {
for ( i = 0; i < self.MenuText.size; i++ ) for ( i = 0; i < self.menutext.size; i++ )
{ {
if ( isDefined( self.MenuText[ i ] ) ) if ( isDefined( self.menutext[ i ] ) )
{ {
self.MenuText[ i ] destroy(); self.menutext[ i ] destroy();
} }
} }
} }
if ( isDefined( self.Menu ) && isDefined( self.Menu[ "X" ] ) ) if ( isDefined( self.menu ) && isDefined( self.menu[ "X" ] ) )
{ {
if ( isDefined( self.Menu[ "X" ][ "Shader" ] ) ) if ( isDefined( self.menu[ "X" ][ "Shader" ] ) )
{ {
self.Menu[ "X" ][ "Shader" ] destroy(); self.menu[ "X" ][ "Shader" ] destroy();
} }
if ( isDefined( self.Menu[ "X" ][ "Scroller" ] ) ) if ( isDefined( self.menu[ "X" ][ "Scroller" ] ) )
{ {
self.Menu[ "X" ][ "Scroller" ] destroy(); self.menu[ "X" ][ "Scroller" ] destroy();
} }
} }
if ( isDefined( self.menuVersionHud ) ) if ( isDefined( self.menuversionhud ) )
{ {
self.menuVersionHud destroy(); self.menuversionhud destroy();
} }
for ( i = 0 ; i < self.Option[ "Name" ][ self.SubMenu ].size ; i++ ) for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
{ {
self.MenuText[ i ] = self createfontstring( "default", 1.6 ); self.menutext[ i ] = self createfontstring( "default", 1.6 );
self.MenuText[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 100 ), -226 ); self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 100 ), -226 );
self.MenuText[ i ] settext( self.Option[ "Name" ][ self.SubMenu ][ i ] ); self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
if ( logOldi ) if ( logOldi )
{ {
self.oldi = i; self.oldi = i;
} }
if ( self.MenuText[ i ].x > 300 ) if ( self.menutext[ i ].x > 300 )
{ {
logOldi = false; logOldi = false;
x = i - self.oldi; x = i - self.oldi;
self.MenuText[ i ] setpoint( "CENTER", "CENTER", ( ( ( -300 ) - ( i * 100 ) ) + ( i * 100 ) ) + ( x * 100 ), -196 ); self.menutext[ i ] setpoint( "CENTER", "CENTER", ( ( ( -300 ) - ( i * 100 ) ) + ( i * 100 ) ) + ( x * 100 ), -196 );
} }
self.MenuText[ i ].alpha = 1; self.menutext[ i ].alpha = 1;
self.MenuText[ i ].sort = 999; self.menutext[ i ].sort = 999;
} }
if ( !logOldi ) if ( !logOldi )
{ {
self.Menu[ "X" ][ "Shader" ] = self createRectangle( "CENTER", "CENTER", 0, -225, 1000, 90, ( 0, 0, 0 ), -2, 1, "white" ); self.menu[ "X" ][ "Shader" ] = self createRectangle( "CENTER", "CENTER", 0, -225, 1000, 90, ( 0, 0, 0 ), -2, 1, "white" );
} }
else else
{ {
self.Menu[ "X" ][ "Shader" ] = self createRectangle( "CENTER", "CENTER", 0, -225, 1000, 30, ( 0, 0, 0 ), -2, 1, "white" ); self.menu[ "X" ][ "Shader" ] = self createRectangle( "CENTER", "CENTER", 0, -225, 1000, 30, ( 0, 0, 0 ), -2, 1, "white" );
} }
self.Menu[ "X" ][ "Scroller" ] = self createRectangle( "CENTER", "CENTER", self.MenuText[ self.Curs[ "Main" ][ "X" ] ].x, -225, 105, 22, ( 1, 0, 0 ), -1, 1, "white" ); self.menu[ "X" ][ "Scroller" ] = self createRectangle( "CENTER", "CENTER", self.menutext[ self.curs[ "Main" ][ "X" ] ].x, -225, 105, 22, ( 1, 0, 0 ), -1, 1, "white" );
self CursMove( "X" ); self CursMove( "X" );
self.menuVersionHud = initHudElem( "Bot Warfare " + level.bw_VERSION, 0, 0 ); self.menuversionhud = initHudElem( "Bot Warfare " + level.bw_version, 0, 0 );
self.MenuOpen = true; self.menuopen = true;
} }
else else
{ {
if ( isDefined( self.MenuTextY ) ) if ( isDefined( self.menutexty ) )
{ {
for ( i = 0 ; i < self.MenuTextY.size ; i++ ) for ( i = 0 ; i < self.menutexty.size ; i++ )
{ {
if ( isDefined( self.MenuTextY[ i ] ) ) if ( isDefined( self.menutexty[ i ] ) )
{ {
self.MenuTextY[ i ] destroy(); self.menutexty[ i ] destroy();
} }
} }
} }
for ( i = 0 ; i < self.Option[ "Name" ][ self.SubMenu ].size ; i++ ) for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
{ {
self.MenuTextY[ i ] = self createfontstring( "default", 1.6 ); self.menutexty[ i ] = self createfontstring( "default", 1.6 );
self.MenuTextY[ i ] setpoint( "CENTER", "CENTER", self.MenuText[ self.Curs[ "Main" ][ "X" ] ].x, -160 + ( i * 20 ) ); self.menutexty[ i ] setpoint( "CENTER", "CENTER", self.menutext[ self.curs[ "Main" ][ "X" ] ].x, -160 + ( i * 20 ) );
self.MenuTextY[ i ] settext( self.Option[ "Name" ][ self.SubMenu ][ i ] ); self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
self.MenuTextY[ i ].alpha = 1; self.menutexty[ i ].alpha = 1;
self.MenuTextY[ i ].sort = 999; self.menutexty[ i ].sort = 999;
} }
self CursMove( "Y" ); self CursMove( "Y" );
@ -424,20 +424,20 @@ CursMove( direction )
{ {
self notify( "scrolled" ); self notify( "scrolled" );
if ( self.SubMenu == "Main" ) if ( self.submenu == "Main" )
{ {
self.Menu[ "X" ][ "Scroller" ].x = self.MenuText[ self.Curs[ "Main" ][ "X" ] ].x; self.menu[ "X" ][ "Scroller" ].x = self.menutext[ self.curs[ "Main" ][ "X" ] ].x;
self.Menu[ "X" ][ "Scroller" ].y = self.MenuText[ self.Curs[ "Main" ][ "X" ] ].y; self.menu[ "X" ][ "Scroller" ].y = self.menutext[ self.curs[ "Main" ][ "X" ] ].y;
if ( isDefined( self.MenuText ) ) if ( isDefined( self.menutext ) )
{ {
for ( i = 0; i < self.MenuText.size; i++ ) for ( i = 0; i < self.menutext.size; i++ )
{ {
if ( isDefined( self.MenuText[ i ] ) ) if ( isDefined( self.menutext[ i ] ) )
{ {
self.MenuText[ i ].fontscale = 1.5; self.menutext[ i ].fontscale = 1.5;
self.MenuText[ i ].color = ( 1, 1, 1 ); self.menutext[ i ].color = ( 1, 1, 1 );
self.MenuText[ i ].glowAlpha = 0; self.menutext[ i ].glowalpha = 0;
} }
} }
} }
@ -446,28 +446,28 @@ CursMove( direction )
} }
else else
{ {
if ( isDefined( self.MenuTextY ) ) if ( isDefined( self.menutexty ) )
{ {
for ( i = 0; i < self.MenuTextY.size; i++ ) for ( i = 0; i < self.menutexty.size; i++ )
{ {
if ( isDefined( self.MenuTextY[ i ] ) ) if ( isDefined( self.menutexty[ i ] ) )
{ {
self.MenuTextY[ i ].fontscale = 1.5; self.menutexty[ i ].fontscale = 1.5;
self.MenuTextY[ i ].color = ( 1, 1, 1 ); self.menutexty[ i ].color = ( 1, 1, 1 );
self.MenuTextY[ i ].glowAlpha = 0; self.menutexty[ i ].glowalpha = 0;
} }
} }
} }
if ( isDefined( self.MenuText ) ) if ( isDefined( self.menutext ) )
{ {
for ( i = 0; i < self.MenuText.size; i++ ) for ( i = 0; i < self.menutext.size; i++ )
{ {
if ( isDefined( self.MenuText[ i ] ) ) if ( isDefined( self.menutext[ i ] ) )
{ {
self.MenuText[ i ].fontscale = 1.5; self.menutext[ i ].fontscale = 1.5;
self.MenuText[ i ].color = ( 1, 1, 1 ); self.menutext[ i ].color = ( 1, 1, 1 );
self.MenuText[ i ].glowAlpha = 0; self.menutext[ i ].glowalpha = 0;
} }
} }
} }
@ -485,7 +485,7 @@ ShowOptionOn( variable )
for ( time = 0;; time += 0.05 ) for ( time = 0;; time += 0.05 )
{ {
if ( !self isOnGround() && isAlive( self ) && gameFlag( "prematch_done" ) && !level.gameEnded ) if ( !self isOnGround() && isAlive( self ) && gameFlag( "prematch_done" ) && !level.gameended )
{ {
self freezecontrols( false ); self freezecontrols( false );
} }
@ -498,12 +498,12 @@ ShowOptionOn( variable )
self setClientDvar( "sc_blur", "15" ); self setClientDvar( "sc_blur", "15" );
self addOptions(); self addOptions();
if ( self.SubMenu == "Main" ) if ( self.submenu == "Main" )
{ {
if ( isDefined( self.Curs[ self.SubMenu ][ variable ] ) && isDefined( self.MenuText ) && isDefined( self.MenuText[ self.Curs[ self.SubMenu ][ variable ] ] ) ) if ( isDefined( self.curs[ self.submenu ][ variable ] ) && isDefined( self.menutext ) && isDefined( self.menutext[ self.curs[ self.submenu ][ variable ] ] ) )
{ {
self.MenuText[ self.Curs[ self.SubMenu ][ variable ] ].fontscale = 2.0; self.menutext[ self.curs[ self.submenu ][ variable ] ].fontscale = 2.0;
// self.MenuText[ self.Curs[ self.SubMenu ][ variable ] ].color = (randomInt(256)/255, randomInt(256)/255, randomInt(256)/255); // self.menutext[ self.curs[ self.submenu ][ variable ] ].color = (randomInt(256)/255, randomInt(256)/255, randomInt(256)/255);
color = ( 6 / 255, 69 / 255, 173 + randomIntRange( -5, 5 ) / 255 ); color = ( 6 / 255, 69 / 255, 173 + randomIntRange( -5, 5 ) / 255 );
if ( int( time * 4 ) % 2 ) if ( int( time * 4 ) % 2 )
@ -511,26 +511,26 @@ ShowOptionOn( variable )
color = ( 11 / 255, 0 / 255, 128 + randomIntRange( -10, 10 ) / 255 ); color = ( 11 / 255, 0 / 255, 128 + randomIntRange( -10, 10 ) / 255 );
} }
self.MenuText[ self.Curs[ self.SubMenu ][ variable ] ].color = color; self.menutext[ self.curs[ self.submenu ][ variable ] ].color = color;
} }
if ( isDefined( self.MenuText ) ) if ( isDefined( self.menutext ) )
{ {
for ( i = 0; i < self.Option[ "Name" ][ self.SubMenu ].size; i++ ) for ( i = 0; i < self.option[ "Name" ][ self.submenu ].size; i++ )
{ {
if ( isDefined( self.MenuText[ i ] ) ) if ( isDefined( self.menutext[ i ] ) )
{ {
self.MenuText[ i ] settext( self.Option[ "Name" ][ self.SubMenu ][ i ] ); self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
} }
} }
} }
} }
else else
{ {
if ( isDefined( self.Curs[ self.SubMenu ][ variable ] ) && isDefined( self.MenuTextY ) && isDefined( self.MenuTextY[ self.Curs[ self.SubMenu ][ variable ] ] ) ) if ( isDefined( self.curs[ self.submenu ][ variable ] ) && isDefined( self.menutexty ) && isDefined( self.menutexty[ self.curs[ self.submenu ][ variable ] ] ) )
{ {
self.MenuTextY[ self.Curs[ self.SubMenu ][ variable ] ].fontscale = 2.0; self.menutexty[ self.curs[ self.submenu ][ variable ] ].fontscale = 2.0;
// self.MenuTextY[ self.Curs[ self.SubMenu ][ variable ] ].color = (randomInt(256)/255, randomInt(256)/255, randomInt(256)/255); // self.menutexty[ self.curs[ self.submenu ][ variable ] ].color = (randomInt(256)/255, randomInt(256)/255, randomInt(256)/255);
color = ( 6 / 255, 69 / 255, 173 + randomIntRange( -5, 5 ) / 255 ); color = ( 6 / 255, 69 / 255, 173 + randomIntRange( -5, 5 ) / 255 );
if ( int( time * 4 ) % 2 ) if ( int( time * 4 ) % 2 )
@ -538,16 +538,16 @@ ShowOptionOn( variable )
color = ( 11 / 255, 0 / 255, 128 + randomIntRange( -10, 10 ) / 255 ); color = ( 11 / 255, 0 / 255, 128 + randomIntRange( -10, 10 ) / 255 );
} }
self.MenuTextY[ self.Curs[ self.SubMenu ][ variable ] ].color = color; self.menutexty[ self.curs[ self.submenu ][ variable ] ].color = color;
} }
if ( isDefined( self.MenuTextY ) ) if ( isDefined( self.menutexty ) )
{ {
for ( i = 0; i < self.Option[ "Name" ][ self.SubMenu ].size; i++ ) for ( i = 0; i < self.option[ "Name" ][ self.submenu ].size; i++ )
{ {
if ( isDefined( self.MenuTextY[ i ] ) ) if ( isDefined( self.menutexty[ i ] ) )
{ {
self.MenuTextY[ i ] settext( self.Option[ "Name" ][ self.SubMenu ][ i ] ); self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
} }
} }
} }
@ -559,33 +559,33 @@ ShowOptionOn( variable )
AddMenu( menu, num, text, function, arg1, arg2 ) AddMenu( menu, num, text, function, arg1, arg2 )
{ {
self.Option[ "Name" ][ menu ][ num ] = text; self.option[ "Name" ][ menu ][ num ] = text;
self.Option[ "Function" ][ menu ][ num ] = function; self.option[ "Function" ][ menu ][ num ] = function;
self.Option[ "Arg1" ][ menu ][ num ] = arg1; self.option[ "Arg1" ][ menu ][ num ] = arg1;
self.Option[ "Arg2" ][ menu ][ num ] = arg2; self.option[ "Arg2" ][ menu ][ num ] = arg2;
} }
AddBack( menu, back ) AddBack( menu, back )
{ {
self.Menu[ "Back" ][ menu ] = back; self.menu[ "Back" ][ menu ] = back;
} }
ExitSub() ExitSub()
{ {
if ( isDefined( self.MenuTextY ) ) if ( isDefined( self.menutexty ) )
{ {
for ( i = 0; i < self.MenuTextY.size; i++ ) for ( i = 0; i < self.menutexty.size; i++ )
{ {
if ( isDefined( self.MenuTextY[ i ] ) ) if ( isDefined( self.menutexty[ i ] ) )
{ {
self.MenuTextY[ i ] destroy(); self.menutexty[ i ] destroy();
} }
} }
} }
self.SubMenu = self.Menu[ "Back" ][ self.Submenu ]; self.submenu = self.menu[ "Back" ][ self.submenu ];
if ( self.SubMenu == "Main" ) if ( self.submenu == "Main" )
{ {
self CursMove( "X" ); self CursMove( "X" );
} }
@ -597,36 +597,36 @@ ExitSub()
ExitMenu() ExitMenu()
{ {
if ( isDefined( self.MenuText ) ) if ( isDefined( self.menutext ) )
{ {
for ( i = 0; i < self.MenuText.size; i++ ) for ( i = 0; i < self.menutext.size; i++ )
{ {
if ( isDefined( self.MenuText[ i ] ) ) if ( isDefined( self.menutext[ i ] ) )
{ {
self.MenuText[ i ] destroy(); self.menutext[ i ] destroy();
} }
} }
} }
if ( isDefined( self.Menu ) && isDefined( self.Menu[ "X" ] ) ) if ( isDefined( self.menu ) && isDefined( self.menu[ "X" ] ) )
{ {
if ( isDefined( self.Menu[ "X" ][ "Shader" ] ) ) if ( isDefined( self.menu[ "X" ][ "Shader" ] ) )
{ {
self.Menu[ "X" ][ "Shader" ] destroy(); self.menu[ "X" ][ "Shader" ] destroy();
} }
if ( isDefined( self.Menu[ "X" ][ "Scroller" ] ) ) if ( isDefined( self.menu[ "X" ][ "Scroller" ] ) )
{ {
self.Menu[ "X" ][ "Scroller" ] destroy(); self.menu[ "X" ][ "Scroller" ] destroy();
} }
} }
if ( isDefined( self.menuVersionHud ) ) if ( isDefined( self.menuversionhud ) )
{ {
self.menuVersionHud destroy(); self.menuversionhud destroy();
} }
self.MenuOpen = false; self.menuopen = false;
self notify( "exit" ); self notify( "exit" );
self setClientDvar( "r_blur", "0" ); self setClientDvar( "r_blur", "0" );
@ -637,19 +637,19 @@ initHudElem( txt, xl, yl )
{ {
hud = NewClientHudElem( self ); hud = NewClientHudElem( self );
hud setText( txt ); hud setText( txt );
hud.alignX = "center"; hud.alignx = "center";
hud.alignY = "bottom"; hud.aligny = "bottom";
hud.horzAlign = "center"; hud.horzalign = "center";
hud.vertAlign = "bottom"; hud.vertalign = "bottom";
hud.x = xl; hud.x = xl;
hud.y = yl; hud.y = yl;
hud.foreground = true; hud.foreground = true;
hud.fontScale = 1; hud.fontscale = 1;
hud.font = "objective"; hud.font = "objective";
hud.alpha = 1; hud.alpha = 1;
hud.glow = 0; hud.glow = 0;
hud.glowColor = ( 0, 0, 0 ); hud.glowcolor = ( 0, 0, 0 );
hud.glowAlpha = 1; hud.glowalpha = 1;
hud.color = ( 1.0, 1.0, 1.0 ); hud.color = ( 1.0, 1.0, 1.0 );
return hud; return hud;
@ -658,18 +658,18 @@ initHudElem( txt, xl, yl )
createRectangle( align, relative, x, y, width, height, color, sort, alpha, shader ) createRectangle( align, relative, x, y, width, height, color, sort, alpha, shader )
{ {
barElemBG = newClientHudElem( self ); barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar_"; barElemBG.elemtype = "bar_";
barElemBG.width = width; barElemBG.width = width;
barElemBG.height = height; barElemBG.height = height;
barElemBG.align = align; barElemBG.align = align;
barElemBG.relative = relative; barElemBG.relative = relative;
barElemBG.xOffset = 0; barElemBG.xoffset = 0;
barElemBG.yOffset = 0; barElemBG.yoffset = 0;
barElemBG.children = []; barElemBG.children = [];
barElemBG.sort = sort; barElemBG.sort = sort;
barElemBG.color = color; barElemBG.color = color;
barElemBG.alpha = alpha; barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent ); barElemBG setParent( level.uiparent );
barElemBG setShader( shader, width, height ); barElemBG setShader( shader, width, height );
barElemBG.hidden = false; barElemBG.hidden = false;
barElemBG setPoint( align, relative, x, y ); barElemBG setPoint( align, relative, x, y );

View File

@ -77,7 +77,7 @@ init()
level.waypoints = []; level.waypoints = [];
} }
level.waypointCount = 0; level.waypointcount = 0;
level waittill( "connected", player ); level waittill( "connected", player );
player thread onPlayerSpawned(); player thread onPlayerSpawned();
@ -99,8 +99,8 @@ StartDev()
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "death" ); self endon( "death" );
level.wpToLink = -1; level.wptolink = -1;
level.autoLink = false; level.autolink = false;
self.nearest = -1; self.nearest = -1;
self takeAllWeapons(); self takeAllWeapons();
@ -239,7 +239,7 @@ clearWpLinks()
return; return;
} }
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
level.waypoints[ i ].drawn_links = []; level.waypoints[ i ].drawn_links = [];
} }
@ -328,7 +328,7 @@ updateWaypointsStats()
wait 0.05; wait 0.05;
intTimer += 50; intTimer += 50;
totalWpsHud setValue( level.waypointCount ); totalWpsHud setValue( level.waypointcount );
closest = -1; closest = -1;
myEye = self getEye(); myEye = self getEye();
@ -341,7 +341,7 @@ updateWaypointsStats()
clearWpLinks(); clearWpLinks();
} }
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
if ( closest == -1 || closer( self.origin, level.waypoints[ i ].origin, level.waypoints[ closest ].origin ) ) if ( closest == -1 || closer( self.origin, level.waypoints[ i ].origin, level.waypoints[ closest ].origin ) )
{ {
@ -388,7 +388,7 @@ updateWaypointsStats()
type setText( buildTypeString( self.nearest ) ); type setText( buildTypeString( self.nearest ) );
wpToLink setValue( level.wpToLink ); wpToLink setValue( level.wptolink );
infotext.x = infotext.x - 2; infotext.x = infotext.x - 2;
@ -472,17 +472,17 @@ watchAutoLinkCommand()
{ {
self waittill( "[{+frag}]" ); self waittill( "[{+frag}]" );
if ( level.autoLink ) if ( level.autolink )
{ {
self iPrintlnBold( "Auto link disabled" ); self iPrintlnBold( "Auto link disabled" );
level.autoLink = false; level.autolink = false;
level.wpToLink = -1; level.wptolink = -1;
} }
else else
{ {
self iPrintlnBold( "Auto link enabled" ); self iPrintlnBold( "Auto link enabled" );
level.autoLink = true; level.autolink = true;
level.wpToLink = self.nearest; level.wptolink = self.nearest;
} }
} }
} }
@ -563,7 +563,7 @@ watchSaveWaypointsCommand()
logprint( "\n\n" + mpnm + "()\n{\n/*" ); logprint( "\n\n" + mpnm + "()\n{\n/*" );
logprint( "*/waypoints = [];\n/*" ); logprint( "*/waypoints = [];\n/*" );
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
logprint( "*/waypoints[ " + i + " ] = spawnstruct();\n/*" ); logprint( "*/waypoints[ " + i + " ] = spawnstruct();\n/*" );
logprint( "*/waypoints[ " + i + " ].origin = " + level.waypoints[ i ].origin + ";\n/*" ); logprint( "*/waypoints[ " + i + " ].origin = " + level.waypoints[ i ].origin + ";\n/*" );
@ -590,11 +590,11 @@ watchSaveWaypointsCommand()
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv"; filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
PrintLn( "********* Start Bot Warfare WPDump *********" ); PrintLn( "********* Start Bot Warfare WPDump *********" );
PrintLn( level.waypointCount ); PrintLn( level.waypointcount );
BotBuiltinFileWrite( filename, level.waypointCount + "\n", "write" ); BotBuiltinFileWrite( filename, level.waypointcount + "\n", "write" );
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
str = ""; str = "";
wp = level.waypoints[ i ]; wp = level.waypoints[ i ];
@ -654,17 +654,17 @@ LoadWaypoints()
checkForWarnings() checkForWarnings()
{ {
if ( level.waypointCount <= 0 ) if ( level.waypointcount <= 0 )
{ {
self iprintln( "WARNING: waypointCount is " + level.waypointCount ); self iprintln( "WARNING: waypointCount is " + level.waypointcount );
} }
if ( level.waypointCount != level.waypoints.size ) if ( level.waypointcount != level.waypoints.size )
{ {
self iprintln( "WARNING: waypointCount is not " + level.waypoints.size ); self iprintln( "WARNING: waypointCount is not " + level.waypoints.size );
} }
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
if ( !isDefined( level.waypoints[ i ] ) ) if ( !isDefined( level.waypoints[ i ] ) )
{ {
@ -719,9 +719,9 @@ checkForWarnings()
// check reachability, assume bidirectional graph // check reachability, assume bidirectional graph
wpIdx = randomInt( level.waypointCount ); wpIdx = randomInt( level.waypointcount );
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
if ( i % 5 == 0 ) if ( i % 5 == 0 )
{ {
@ -743,46 +743,46 @@ UnLinkWaypoint( nwp )
{ {
if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getDvarFloat( "bots_main_debug_minDist" ) ) if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getDvarFloat( "bots_main_debug_minDist" ) )
{ {
self iprintln( "Waypoint Unlink Cancelled " + level.wpToLink ); self iprintln( "Waypoint Unlink Cancelled " + level.wptolink );
level.wpToLink = -1; level.wptolink = -1;
return; return;
} }
if ( level.wpToLink == -1 || nwp == level.wpToLink ) if ( level.wptolink == -1 || nwp == level.wptolink )
{ {
level.wpToLink = nwp; level.wptolink = nwp;
self iprintln( "Waypoint Unlink Started " + nwp ); self iprintln( "Waypoint Unlink Started " + nwp );
return; return;
} }
level.waypoints[ nwp ].children = array_remove( level.waypoints[ nwp ].children, level.wpToLink ); level.waypoints[ nwp ].children = array_remove( level.waypoints[ nwp ].children, level.wptolink );
level.waypoints[ level.wpToLink ].children = array_remove( level.waypoints[ level.wpToLink ].children, nwp ); level.waypoints[ level.wptolink ].children = array_remove( level.waypoints[ level.wptolink ].children, nwp );
self iprintln( "Waypoint " + nwp + " Broken to " + level.wpToLink ); self iprintln( "Waypoint " + nwp + " Broken to " + level.wptolink );
level.wpToLink = -1; level.wptolink = -1;
} }
LinkWaypoint( nwp ) LinkWaypoint( nwp )
{ {
if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getDvarFloat( "bots_main_debug_minDist" ) ) if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getDvarFloat( "bots_main_debug_minDist" ) )
{ {
self iprintln( "Waypoint Link Cancelled " + level.wpToLink ); self iprintln( "Waypoint Link Cancelled " + level.wptolink );
level.wpToLink = -1; level.wptolink = -1;
return; return;
} }
if ( level.wpToLink == -1 || nwp == level.wpToLink ) if ( level.wptolink == -1 || nwp == level.wptolink )
{ {
level.wpToLink = nwp; level.wptolink = nwp;
self iprintln( "Waypoint Link Started " + nwp ); self iprintln( "Waypoint Link Started " + nwp );
return; return;
} }
weGood = true; weGood = true;
for ( i = level.waypoints[ level.wpToLink ].children.size - 1; i >= 0; i-- ) for ( i = level.waypoints[ level.wptolink ].children.size - 1; i >= 0; i-- )
{ {
child = level.waypoints[ level.wpToLink ].children[ i ]; child = level.waypoints[ level.wptolink ].children[ i ];
if ( child == nwp ) if ( child == nwp )
{ {
@ -797,7 +797,7 @@ LinkWaypoint( nwp )
{ {
child = level.waypoints[ nwp ].children[ i ]; child = level.waypoints[ nwp ].children[ i ];
if ( child == level.wpToLink ) if ( child == level.wptolink )
{ {
weGood = false; weGood = false;
break; break;
@ -807,16 +807,16 @@ LinkWaypoint( nwp )
if ( !weGood ) if ( !weGood )
{ {
self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wpToLink + " already linked." ); self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wptolink + " already linked." );
level.wpToLink = -1; level.wptolink = -1;
return; return;
} }
level.waypoints[ level.wpToLink ].children[ level.waypoints[ level.wpToLink ].children.size ] = nwp; level.waypoints[ level.wptolink ].children[ level.waypoints[ level.wptolink ].children.size ] = nwp;
level.waypoints[ nwp ].children[ level.waypoints[ nwp ].children.size ] = level.wpToLink; level.waypoints[ nwp ].children[ level.waypoints[ nwp ].children.size ] = level.wptolink;
self iprintln( "Waypoint " + nwp + " Linked to " + level.wpToLink ); self iprintln( "Waypoint " + nwp + " Linked to " + level.wptolink );
level.wpToLink = -1; level.wptolink = -1;
} }
DeleteWaypoint( nwp ) DeleteWaypoint( nwp )
@ -827,7 +827,7 @@ DeleteWaypoint( nwp )
return; return;
} }
level.wpToLink = -1; level.wptolink = -1;
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- ) for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
{ {
@ -836,7 +836,7 @@ DeleteWaypoint( nwp )
level.waypoints[ child ].children = array_remove( level.waypoints[ child ].children, nwp ); level.waypoints[ child ].children = array_remove( level.waypoints[ child ].children, nwp );
} }
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- ) for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
{ {
@ -847,11 +847,11 @@ DeleteWaypoint( nwp )
} }
} }
for ( entry = 0; entry < level.waypointCount; entry++ ) for ( entry = 0; entry < level.waypointcount; entry++ )
{ {
if ( entry == nwp ) if ( entry == nwp )
{ {
while ( entry < level.waypointCount - 1 ) while ( entry < level.waypointcount - 1 )
{ {
level.waypoints[ entry ] = level.waypoints[ entry + 1 ]; level.waypoints[ entry ] = level.waypoints[ entry + 1 ];
entry++; entry++;
@ -862,74 +862,74 @@ DeleteWaypoint( nwp )
} }
} }
level.waypointCount--; level.waypointcount--;
self iprintln( "DelWp " + nwp ); self iprintln( "DelWp " + nwp );
} }
AddWaypoint() AddWaypoint()
{ {
level.waypoints[ level.waypointCount ] = spawnstruct(); level.waypoints[ level.waypointcount ] = spawnstruct();
pos = self getOrigin(); pos = self getOrigin();
level.waypoints[ level.waypointCount ].origin = pos; level.waypoints[ level.waypointcount ].origin = pos;
if ( isDefined( self.javelinTargetPoint ) ) if ( isDefined( self.javelintargetpoint ) )
{ {
level.waypoints[ level.waypointCount ].type = "javelin"; level.waypoints[ level.waypointcount ].type = "javelin";
} }
else if ( self AdsButtonPressed() ) else if ( self AdsButtonPressed() )
{ {
level.waypoints[ level.waypointCount ].type = "climb"; level.waypoints[ level.waypointcount ].type = "climb";
} }
else if ( self AttackButtonPressed() && self UseButtonPressed() ) else if ( self AttackButtonPressed() && self UseButtonPressed() )
{ {
level.waypoints[ level.waypointCount ].type = "tube"; level.waypoints[ level.waypointcount ].type = "tube";
} }
else if ( self AttackButtonPressed() ) else if ( self AttackButtonPressed() )
{ {
level.waypoints[ level.waypointCount ].type = "grenade"; level.waypoints[ level.waypointcount ].type = "grenade";
} }
else if ( self UseButtonPressed() ) else if ( self UseButtonPressed() )
{ {
level.waypoints[ level.waypointCount ].type = "claymore"; level.waypoints[ level.waypointcount ].type = "claymore";
} }
else else
{ {
level.waypoints[ level.waypointCount ].type = self getStance(); level.waypoints[ level.waypointcount ].type = self getStance();
} }
level.waypoints[ level.waypointCount ].angles = self getPlayerAngles(); level.waypoints[ level.waypointcount ].angles = self getPlayerAngles();
level.waypoints[ level.waypointCount ].children = []; level.waypoints[ level.waypointcount ].children = [];
if ( level.waypoints[ level.waypointCount ].type == "javelin" ) if ( level.waypoints[ level.waypointcount ].type == "javelin" )
{ {
level.waypoints[ level.waypointCount ].jav_point = self.javelinTargetPoint; level.waypoints[ level.waypointcount ].jav_point = self.javelintargetpoint;
} }
self iprintln( level.waypoints[ level.waypointCount ].type + " Waypoint " + level.waypointCount + " Added at " + pos ); self iprintln( level.waypoints[ level.waypointcount ].type + " Waypoint " + level.waypointcount + " Added at " + pos );
if ( level.autoLink ) if ( level.autolink )
{ {
if ( level.wpToLink == -1 ) if ( level.wptolink == -1 )
{ {
level.wpToLink = level.waypointCount - 1; level.wptolink = level.waypointcount - 1;
} }
level.waypointCount++; level.waypointcount++;
self LinkWaypoint( level.waypointCount - 1 ); self LinkWaypoint( level.waypointcount - 1 );
} }
else else
{ {
level.waypointCount++; level.waypointcount++;
} }
} }
DeleteAllWaypoints() DeleteAllWaypoints()
{ {
level.waypoints = []; level.waypoints = [];
level.waypointCount = 0; level.waypointcount = 0;
self iprintln( "DelAllWps" ); self iprintln( "DelAllWps" );
} }
@ -991,19 +991,19 @@ initHudElem( txt, xl, yl )
{ {
hud = NewClientHudElem( self ); hud = NewClientHudElem( self );
hud setText( txt ); hud setText( txt );
hud.alignX = "left"; hud.alignx = "left";
hud.alignY = "top"; hud.aligny = "top";
hud.horzAlign = "left"; hud.horzalign = "left";
hud.vertAlign = "top"; hud.vertalign = "top";
hud.x = xl; hud.x = xl;
hud.y = yl; hud.y = yl;
hud.foreground = true; hud.foreground = true;
hud.fontScale = 1; hud.fontscale = 1;
hud.font = "objective"; hud.font = "objective";
hud.alpha = 1; hud.alpha = 1;
hud.glow = 0; hud.glow = 0;
hud.glowColor = ( 0, 0, 0 ); hud.glowcolor = ( 0, 0, 0 );
hud.glowAlpha = 1; hud.glowalpha = 1;
hud.color = ( 1.0, 1.0, 1.0 ); hud.color = ( 1.0, 1.0, 1.0 );
self thread destroyOnDeath( hud ); self thread destroyOnDeath( hud );
@ -1015,19 +1015,19 @@ initHudElem2()
{ {
infotext = NewHudElem(); infotext = NewHudElem();
infotext setText( "^1[{+smoke}]-AddWp ^2[{+melee_zoom}]-LinkWp ^3[{+reload}]-UnLinkWp ^4[{+actionslot 3}]-DeleteWp ^5[{+actionslot 4}]-DelAllWps ^6[{+actionslot 5}]-LoadWPS ^7[{+actionslot 1}]-SaveWp" ); infotext setText( "^1[{+smoke}]-AddWp ^2[{+melee_zoom}]-LinkWp ^3[{+reload}]-UnLinkWp ^4[{+actionslot 3}]-DeleteWp ^5[{+actionslot 4}]-DelAllWps ^6[{+actionslot 5}]-LoadWPS ^7[{+actionslot 1}]-SaveWp" );
infotext.alignX = "center"; infotext.alignx = "center";
infotext.alignY = "bottom"; infotext.aligny = "bottom";
infotext.horzAlign = "center"; infotext.horzalign = "center";
infotext.vertAlign = "bottom"; infotext.vertalign = "bottom";
infotext.x = -800; infotext.x = -800;
infotext.y = 25; infotext.y = 25;
infotext.foreground = true; infotext.foreground = true;
infotext.fontScale = 1.35; infotext.fontscale = 1.35;
infotext.font = "objective"; infotext.font = "objective";
infotext.alpha = 1; infotext.alpha = 1;
infotext.glow = 0; infotext.glow = 0;
infotext.glowColor = ( 0, 0, 0 ); infotext.glowcolor = ( 0, 0, 0 );
infotext.glowAlpha = 1; infotext.glowalpha = 1;
infotext.color = ( 1.0, 1.0, 1.0 ); infotext.color = ( 1.0, 1.0, 1.0 );
self thread destroyOnDeath( infotext ); self thread destroyOnDeath( infotext );
@ -1038,10 +1038,10 @@ initHudElem2()
initHudElem3() initHudElem3()
{ {
bar = level createServerBar( ( 0.5, 0.5, 0.5 ), 1000, 25 ); bar = level createServerBar( ( 0.5, 0.5, 0.5 ), 1000, 25 );
bar.alignX = "center"; bar.alignx = "center";
bar.alignY = "bottom"; bar.aligny = "bottom";
bar.horzAlign = "center"; bar.horzalign = "center";
bar.vertAlign = "bottom"; bar.vertalign = "bottom";
bar.y = 30; bar.y = 30;
bar.foreground = true; bar.foreground = true;
@ -1055,10 +1055,10 @@ initHudElem4()
OptionsBG = NewClientHudElem( self ); OptionsBG = NewClientHudElem( self );
OptionsBG.x = 100; OptionsBG.x = 100;
OptionsBG.y = 2; OptionsBG.y = 2;
OptionsBG.alignX = "left"; OptionsBG.alignx = "left";
OptionsBG.alignY = "top"; OptionsBG.aligny = "top";
OptionsBG.horzAlign = "left"; OptionsBG.horzalign = "left";
OptionsBG.vertAlign = "top"; OptionsBG.vertalign = "top";
OptionsBG setshader( "black", 200, 60 ); OptionsBG setshader( "black", 200, 60 );
OptionsBG.alpha = 0.4; OptionsBG.alpha = 0.4;