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;

File diff suppressed because it is too large Load Diff

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" )

File diff suppressed because it is too large Load Diff

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;