mirror of
https://github.com/ineedbots/iw2_bot_warfare.git
synced 2026-09-16 01:57:05 +00:00
array indexing style
This commit is contained in:
+177
-177
@@ -24,9 +24,9 @@ wait_for_builtins()
|
||||
*/
|
||||
BotBuiltinPrintConsole( s )
|
||||
{
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["printconsole"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "printconsole" ] ) )
|
||||
{
|
||||
[[ level.bot_builtins["printconsole" ]]]( s );
|
||||
[[ level.bot_builtins[ "printconsole" ] ]]( s );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,9 +36,9 @@ BotBuiltinPrintConsole( s )
|
||||
*/
|
||||
BotBuiltinBotAction( action )
|
||||
{
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botaction"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "botaction" ] ) )
|
||||
{
|
||||
self [[ level.bot_builtins["botaction" ]]]( action );
|
||||
self [[ level.bot_builtins[ "botaction" ] ]]( action );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,9 +48,9 @@ BotBuiltinBotAction( action )
|
||||
*/
|
||||
BotBuiltinBotStop()
|
||||
{
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botstop"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "botstop" ] ) )
|
||||
{
|
||||
self [[ level.bot_builtins["botstop" ]]]();
|
||||
self [[ level.bot_builtins[ "botstop" ] ]]();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,9 +60,9 @@ BotBuiltinBotStop()
|
||||
*/
|
||||
BotBuiltinBotMovement( forward, right )
|
||||
{
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botmovement"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "botmovement" ] ) )
|
||||
{
|
||||
self [[ level.bot_builtins["botmovement" ]]]( forward, right );
|
||||
self [[ level.bot_builtins[ "botmovement" ] ]]( forward, right );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,9 +71,9 @@ BotBuiltinBotMovement( forward, right )
|
||||
*/
|
||||
BotBuiltinIsBot()
|
||||
{
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["isbot"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "isbot" ] ) )
|
||||
{
|
||||
return self [[ level.bot_builtins["isbot" ]]]();
|
||||
return self [[ level.bot_builtins[ "isbot" ] ]]();
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -84,7 +84,7 @@ BotBuiltinIsBot()
|
||||
*/
|
||||
is_host()
|
||||
{
|
||||
return ( isdefined( self.pers["bot_host"] ) && self.pers["bot_host"] );
|
||||
return ( isdefined( self.pers[ "bot_host" ] ) && self.pers[ "bot_host" ] );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -92,7 +92,7 @@ is_host()
|
||||
*/
|
||||
doHostCheck()
|
||||
{
|
||||
self.pers["bot_host"] = false;
|
||||
self.pers[ "bot_host" ] = false;
|
||||
|
||||
if ( self is_bot() )
|
||||
return;
|
||||
@@ -120,7 +120,7 @@ doHostCheck()
|
||||
|
||||
for ( i = 0; i < guids.size; i++ )
|
||||
{
|
||||
if ( self getguid() + "" == guids[i] )
|
||||
if ( self getguid() + "" == guids[ i ] )
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
@@ -128,7 +128,7 @@ doHostCheck()
|
||||
if ( !result )
|
||||
return;
|
||||
|
||||
self.pers["bot_host"] = true;
|
||||
self.pers[ "bot_host" ] = true;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -136,7 +136,7 @@ doHostCheck()
|
||||
*/
|
||||
is_bot()
|
||||
{
|
||||
return ( ( isdefined( self.pers["isBot"] ) && self.pers["isBot"] ) || ( isdefined( self.pers["isBotWarfare"] ) && self.pers["isBotWarfare"] ) || self BotBuiltinIsBot() );
|
||||
return ( ( isdefined( self.pers[ "isBot" ] ) && self.pers[ "isBot" ] ) || ( isdefined( self.pers[ "isBotWarfare" ] ) && self.pers[ "isBotWarfare" ] ) || self BotBuiltinIsBot() );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -448,26 +448,26 @@ isInUse()
|
||||
getValidGrenade()
|
||||
{
|
||||
grenadeTypes = [];
|
||||
grenadeTypes[0] = "frag_grenade_american_mp";
|
||||
grenadeTypes[1] = "smoke_grenade_american_mp";
|
||||
grenadeTypes[2] = "frag_grenade_british_mp";
|
||||
grenadeTypes[3] = "smoke_grenade_british_mp";
|
||||
grenadeTypes[4] = "frag_grenade_russian_mp";
|
||||
grenadeTypes[5] = "smoke_grenade_russian_mp";
|
||||
grenadeTypes[6] = "frag_grenade_german_mp";
|
||||
grenadeTypes[7] = "smoke_grenade_german_mp";
|
||||
grenadeTypes[ 0 ] = "frag_grenade_american_mp";
|
||||
grenadeTypes[ 1 ] = "smoke_grenade_american_mp";
|
||||
grenadeTypes[ 2 ] = "frag_grenade_british_mp";
|
||||
grenadeTypes[ 3 ] = "smoke_grenade_british_mp";
|
||||
grenadeTypes[ 4 ] = "frag_grenade_russian_mp";
|
||||
grenadeTypes[ 5 ] = "smoke_grenade_russian_mp";
|
||||
grenadeTypes[ 6 ] = "frag_grenade_german_mp";
|
||||
grenadeTypes[ 7 ] = "smoke_grenade_german_mp";
|
||||
|
||||
possibles = [];
|
||||
|
||||
for ( i = 0; i < grenadeTypes.size; i++ )
|
||||
{
|
||||
if ( !self hasweapon( grenadeTypes[i] ) )
|
||||
if ( !self hasweapon( grenadeTypes[ i ] ) )
|
||||
continue;
|
||||
|
||||
if ( !self getAmmoCount( grenadeTypes[i] ) )
|
||||
if ( !self getAmmoCount( grenadeTypes[ i ] ) )
|
||||
continue;
|
||||
|
||||
possibles[possibles.size] = grenadeTypes[i];
|
||||
possibles[ possibles.size ] = grenadeTypes[ i ];
|
||||
}
|
||||
|
||||
return random( possibles );
|
||||
@@ -502,7 +502,7 @@ isOnLadder()
|
||||
*/
|
||||
weaponClass( weap )
|
||||
{
|
||||
answer = level.bots_weapon_class_names[weap];
|
||||
answer = level.bots_weapon_class_names[ weap ];
|
||||
|
||||
if ( !isdefined( answer ) )
|
||||
answer = "";
|
||||
@@ -515,7 +515,7 @@ weaponClass( weap )
|
||||
*/
|
||||
WeaponClipSize( weap )
|
||||
{
|
||||
answer = level.bots_weapon_clip_sizes[weap];
|
||||
answer = level.bots_weapon_clip_sizes[ weap ];
|
||||
|
||||
if ( !isdefined( answer ) )
|
||||
answer = 1;
|
||||
@@ -559,7 +559,7 @@ getStance()
|
||||
{
|
||||
myEye = self getTagOrigin( "tag_eye" );
|
||||
|
||||
height = myEye[2] - self.origin[2];
|
||||
height = myEye[ 2 ] - self.origin[ 2 ];
|
||||
|
||||
if ( height > 50 )
|
||||
return "stand";
|
||||
@@ -596,7 +596,7 @@ WeaponIsFullAuto( weap )
|
||||
{
|
||||
weaptoks = strtok( weap, "_" );
|
||||
|
||||
return isdefined( weaptoks[0] ) && isstring( weaptoks[0] ) && isdefined( level.bots_fullautoguns[weaptoks[0]] );
|
||||
return isdefined( weaptoks[ 0 ] ) && isstring( weaptoks[ 0 ] ) && isdefined( level.bots_fullautoguns[ weaptoks[ 0 ] ] );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -636,14 +636,14 @@ getTagOrigin( where )
|
||||
self.tagmap = [];
|
||||
}
|
||||
|
||||
if ( isdefined( self.tagmap[where] ) )
|
||||
return self.tagmap[where].origin;
|
||||
if ( isdefined( self.tagmap[ where ] ) )
|
||||
return self.tagmap[ where ].origin;
|
||||
|
||||
obj = spawn( "script_origin", ( 0, 0, 0 ) );
|
||||
obj linkto( self, where, ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
||||
|
||||
self.tags[self.tags.size] = obj;
|
||||
self.tagmap[where] = obj;
|
||||
self.tags[ self.tags.size ] = obj;
|
||||
self.tagmap[ where ] = obj;
|
||||
|
||||
return self.origin;
|
||||
}
|
||||
@@ -764,7 +764,7 @@ random( arr )
|
||||
if ( !size )
|
||||
return undefined;
|
||||
|
||||
return arr[randomint( size )];
|
||||
return arr[ randomint( size ) ];
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -776,7 +776,7 @@ array_remove( ents, remover )
|
||||
|
||||
for ( i = 0; i < ents.size; i++ )
|
||||
{
|
||||
index = ents[i];
|
||||
index = ents[ i ];
|
||||
|
||||
if ( index != remover )
|
||||
newents[ newents.size ] = index;
|
||||
@@ -801,7 +801,7 @@ GetHostPlayer()
|
||||
{
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
player = level.players[ i ];
|
||||
|
||||
if ( !player is_host() )
|
||||
continue;
|
||||
@@ -901,11 +901,11 @@ RaySphereIntersect( start, end, spherePos, radius )
|
||||
|
||||
// check if the line made by start and end intersect the sphere
|
||||
dp = end - start;
|
||||
a = dp[0] * dp[0] + dp[1] * dp[1] + dp[2] * dp[2];
|
||||
b = 2 * ( dp[0] * ( start[0] - spherePos[0] ) + dp[1] * ( start[1] - spherePos[1] ) + dp[2] * ( start[2] - spherePos[2] ) );
|
||||
c = spherePos[0] * spherePos[0] + spherePos[1] * spherePos[1] + spherePos[2] * spherePos[2];
|
||||
c += start[0] * start[0] + start[1] * start[1] + start[2] * start[2];
|
||||
c -= 2.0 * ( spherePos[0] * start[0] + spherePos[1] * start[1] + spherePos[2] * start[2] );
|
||||
a = dp[ 0 ] * dp[ 0 ] + dp[ 1 ] * dp[ 1 ] + dp[ 2 ] * dp[ 2 ];
|
||||
b = 2 * ( dp[ 0 ] * ( start[ 0 ] - spherePos[ 0 ] ) + dp[ 1 ] * ( start[ 1 ] - spherePos[ 1 ] ) + dp[ 2 ] * ( start[ 2 ] - spherePos[ 2 ] ) );
|
||||
c = spherePos[ 0 ] * spherePos[ 0 ] + spherePos[ 1 ] * spherePos[ 1 ] + spherePos[ 2 ] * spherePos[ 2 ];
|
||||
c += start[ 0 ] * start[ 0 ] + start[ 1 ] * start[ 1 ] + start[ 2 ] * start[ 2 ];
|
||||
c -= 2.0 * ( spherePos[ 0 ] * start[ 0 ] + spherePos[ 1 ] * start[ 1 ] + spherePos[ 2 ] * start[ 2 ] );
|
||||
c -= radius * radius;
|
||||
bb4ac = b * b - 4.0 * a * c;
|
||||
|
||||
@@ -939,7 +939,7 @@ RaySphereIntersect( start, end, spherePos, radius )
|
||||
*/
|
||||
vector_scale( vec, scale )
|
||||
{
|
||||
vec = ( vec[0] * scale, vec[1] * scale, vec[2] * scale );
|
||||
vec = ( vec[ 0 ] * scale, vec[ 1 ] * scale, vec[ 2 ] * scale );
|
||||
return vec;
|
||||
}
|
||||
|
||||
@@ -950,7 +950,7 @@ SmokeTrace( start, end, rad )
|
||||
{
|
||||
for ( i = level.bots_smokelist.count - 1; i >= 0; i-- )
|
||||
{
|
||||
nade = level.bots_smokelist.data[i];
|
||||
nade = level.bots_smokelist.data[ i ];
|
||||
|
||||
if ( !RaySphereIntersect( start, end, nade.origin, rad ) )
|
||||
continue;
|
||||
@@ -976,8 +976,8 @@ getConeDot( to, from, dir )
|
||||
*/
|
||||
DistanceSquared2D( to, from )
|
||||
{
|
||||
to = ( to[0], to[1], 0 );
|
||||
from = ( from[0], from[1], 0 );
|
||||
to = ( to[ 0 ], to[ 1 ], 0 );
|
||||
from = ( from[ 0 ], from[ 1 ], 0 );
|
||||
|
||||
return distancesquared( to, from );
|
||||
}
|
||||
@@ -1189,28 +1189,28 @@ parseTokensIntoWaypoint( tokens )
|
||||
{
|
||||
waypoint = spawnstruct();
|
||||
|
||||
orgStr = tokens[0];
|
||||
orgStr = tokens[ 0 ];
|
||||
orgToks = strtok( orgStr, " " );
|
||||
waypoint.origin = ( float_old( orgToks[0] ), float_old( orgToks[1] ), float_old( orgToks[2] ) );
|
||||
waypoint.origin = ( float_old( orgToks[ 0 ] ), float_old( orgToks[ 1 ] ), float_old( orgToks[ 2 ] ) );
|
||||
|
||||
childStr = tokens[1];
|
||||
childStr = tokens[ 1 ];
|
||||
childToks = strtok( childStr, " " );
|
||||
waypoint.children = [];
|
||||
|
||||
for ( j = 0; j < childToks.size; j++ )
|
||||
waypoint.children[j] = int( childToks[j] );
|
||||
waypoint.children[ j ] = int( childToks[ j ] );
|
||||
|
||||
type = tokens[2];
|
||||
type = tokens[ 2 ];
|
||||
waypoint.type = type;
|
||||
|
||||
anglesStr = tokens[3];
|
||||
anglesStr = tokens[ 3 ];
|
||||
|
||||
if ( isdefined( anglesStr ) && anglesStr != "" )
|
||||
{
|
||||
anglesToks = strtok( anglesStr, " " );
|
||||
|
||||
if ( anglesToks.size >= 3 )
|
||||
waypoint.angles = ( float_old( anglesToks[0] ), float_old( anglesToks[1] ), float_old( anglesToks[2] ) );
|
||||
waypoint.angles = ( float_old( anglesToks[ 0 ] ), float_old( anglesToks[ 1 ] ), float_old( anglesToks[ 2 ] ) );
|
||||
}
|
||||
|
||||
return waypoint;
|
||||
@@ -1262,7 +1262,7 @@ readWpsFromFile( mapname )
|
||||
|
||||
waypoint = parseTokensIntoWaypoint( tokens );
|
||||
|
||||
waypoints[i - 1] = waypoint;
|
||||
waypoints[ i - 1 ] = waypoint;
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -1323,43 +1323,43 @@ loadmbotWps( mapname, gametype )
|
||||
break;
|
||||
|
||||
wp = spawnstruct();
|
||||
wp.origin = ( float_old( t[0] ), float_old( t[1] ), float_old( t[2] ) );
|
||||
wp.origin = ( float_old( t[ 0 ] ), float_old( t[ 1 ] ), float_old( t[ 2 ] ) );
|
||||
|
||||
stance = "stand";
|
||||
|
||||
if ( t[4] == "1" )
|
||||
if ( t[ 4 ] == "1" )
|
||||
stance = "crouch";
|
||||
else if ( t[4] == "2" )
|
||||
else if ( t[ 4 ] == "2" )
|
||||
stance = "prone";
|
||||
|
||||
wp.children = [];
|
||||
k = 0;
|
||||
|
||||
for ( k = 0; k < int( t[5] ); k++ )
|
||||
wp.children[k] = int( t[6 + k] );
|
||||
for ( k = 0; k < int( t[ 5 ] ); k++ )
|
||||
wp.children[ k ] = int( t[ 6 + k ] );
|
||||
|
||||
if ( t[3] == "l" || t[3] == "m" || t[3] == "f" || t[3] == "j" )
|
||||
if ( t[ 3 ] == "l" || t[ 3 ] == "m" || t[ 3 ] == "f" || t[ 3 ] == "j" )
|
||||
wp.type = "climb";
|
||||
else if ( t[3] == "g" )
|
||||
else if ( t[ 3 ] == "g" )
|
||||
wp.type = "grenade";
|
||||
else if ( t[3] == "c" )
|
||||
else if ( t[ 3 ] == "c" )
|
||||
{
|
||||
wp.type = "crouch";
|
||||
|
||||
wpc = wp.children[0];
|
||||
wpc = wp.children[ 0 ];
|
||||
wp.children = [];
|
||||
wp.children[0] = wpc;
|
||||
wp.children[ 0 ] = wpc;
|
||||
}
|
||||
else
|
||||
wp.type = stance;
|
||||
|
||||
if ( ( t.size == 9 && t[3] == "w" && t[5] == "1" ) || t[3] == "g" || t[3] == "c" )
|
||||
if ( ( t.size == 9 && t[ 3 ] == "w" && t[ 5 ] == "1" ) || t[ 3 ] == "g" || t[ 3 ] == "c" )
|
||||
{
|
||||
k += 6;
|
||||
wp.angles = ( float_old( t[k] ), float_old( t[k + 1] ), 0.0 );
|
||||
wp.angles = ( float_old( t[ k ] ), float_old( t[ k + 1 ] ), 0.0 );
|
||||
}
|
||||
|
||||
wps[i] = wp;
|
||||
wps[ i ] = wp;
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -1376,8 +1376,8 @@ load_waypoints()
|
||||
|
||||
level.waypointcount = 0;
|
||||
level.waypointusage = [];
|
||||
level.waypointusage["allies"] = [];
|
||||
level.waypointusage["axis"] = [];
|
||||
level.waypointusage[ "allies" ] = [];
|
||||
level.waypointusage[ "axis" ] = [];
|
||||
|
||||
|
||||
if ( !isdefined( level.waypoints ) )
|
||||
@@ -1422,16 +1422,16 @@ load_waypoints()
|
||||
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
if ( !isdefined( level.waypoints[i].children ) || !isdefined( level.waypoints[i].children.size ) )
|
||||
level.waypoints[i].children = [];
|
||||
if ( !isdefined( level.waypoints[ i ].children ) || !isdefined( level.waypoints[ i ].children.size ) )
|
||||
level.waypoints[ i ].children = [];
|
||||
|
||||
if ( !isdefined( level.waypoints[i].origin ) )
|
||||
level.waypoints[i].origin = ( 0, 0, 0 );
|
||||
if ( !isdefined( level.waypoints[ i ].origin ) )
|
||||
level.waypoints[ i ].origin = ( 0, 0, 0 );
|
||||
|
||||
if ( !isdefined( level.waypoints[i].type ) )
|
||||
level.waypoints[i].type = "crouch";
|
||||
if ( !isdefined( level.waypoints[ i ].type ) )
|
||||
level.waypoints[ i ].type = "crouch";
|
||||
|
||||
level.waypoints[i].childcount = undefined;
|
||||
level.waypoints[ i ].childcount = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1444,7 +1444,7 @@ nearAnyOfWaypoints( dist, waypoints )
|
||||
|
||||
for ( i = 0; i < waypoints.size; i++ )
|
||||
{
|
||||
waypoint = level.waypoints[waypoints[i]];
|
||||
waypoint = level.waypoints[ waypoints[ i ] ];
|
||||
|
||||
if ( distancesquared( waypoint.origin, self.origin ) > dist )
|
||||
continue;
|
||||
@@ -1466,12 +1466,12 @@ waypointsNear( waypoints, dist )
|
||||
|
||||
for ( i = 0; i < waypoints.size; i++ )
|
||||
{
|
||||
wp = level.waypoints[waypoints[i]];
|
||||
wp = level.waypoints[ waypoints[ i ] ];
|
||||
|
||||
if ( distancesquared( wp.origin, self.origin ) > dist )
|
||||
continue;
|
||||
|
||||
answer[answer.size] = waypoints[i];
|
||||
answer[ answer.size ] = waypoints[ i ];
|
||||
}
|
||||
|
||||
return answer;
|
||||
@@ -1487,13 +1487,13 @@ getNearestWaypointOfWaypoints( waypoints )
|
||||
|
||||
for ( i = 0; i < waypoints.size; i++ )
|
||||
{
|
||||
waypoint = level.waypoints[waypoints[i]];
|
||||
waypoint = level.waypoints[ waypoints[ i ] ];
|
||||
thisDist = distancesquared( self.origin, waypoint.origin );
|
||||
|
||||
if ( isdefined( answer ) && thisDist > closestDist )
|
||||
continue;
|
||||
|
||||
answer = waypoints[i];
|
||||
answer = waypoints[ i ];
|
||||
closestDist = thisDist;
|
||||
}
|
||||
|
||||
@@ -1509,7 +1509,7 @@ getWaypointsOfType( type )
|
||||
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
wp = level.waypoints[i];
|
||||
wp = level.waypoints[ i ];
|
||||
|
||||
if ( type == "camp" )
|
||||
{
|
||||
@@ -1522,7 +1522,7 @@ getWaypointsOfType( type )
|
||||
else if ( type != wp.type )
|
||||
continue;
|
||||
|
||||
answer[answer.size] = i;
|
||||
answer[ answer.size ] = i;
|
||||
}
|
||||
|
||||
return answer;
|
||||
@@ -1536,7 +1536,7 @@ getWaypointForIndex( i )
|
||||
if ( !isdefined( i ) )
|
||||
return undefined;
|
||||
|
||||
return level.waypoints[i];
|
||||
return level.waypoints[ i ];
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1600,7 +1600,7 @@ getBotToKick()
|
||||
{
|
||||
bots = getBotArray();
|
||||
|
||||
if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[0] ) )
|
||||
if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[ 0 ] ) )
|
||||
return undefined;
|
||||
|
||||
tokick = undefined;
|
||||
@@ -1611,7 +1611,7 @@ getBotToKick()
|
||||
// count teams
|
||||
for ( i = 0; i < bots.size; i++ )
|
||||
{
|
||||
bot = bots[i];
|
||||
bot = bots[ i ];
|
||||
|
||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||
continue;
|
||||
@@ -1645,7 +1645,7 @@ getBotToKick()
|
||||
// get the bot on this team with lowest skill
|
||||
for ( i = 0; i < bots.size; i++ )
|
||||
{
|
||||
bot = bots[i];
|
||||
bot = bots[ i ];
|
||||
|
||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||
continue;
|
||||
@@ -1653,10 +1653,10 @@ getBotToKick()
|
||||
if ( bot.team != team )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( bot.pers ) || !isdefined( bot.pers["bots"] ) || !isdefined( bot.pers["bots"]["skill"] ) || !isdefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
if ( !isdefined( bot.pers ) || !isdefined( bot.pers[ "bots" ] ) || !isdefined( bot.pers[ "bots" ][ "skill" ] ) || !isdefined( bot.pers[ "bots" ][ "skill" ][ "base" ] ) )
|
||||
continue;
|
||||
|
||||
if ( isdefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
if ( isdefined( tokick ) && bot.pers[ "bots" ][ "skill" ][ "base" ] > tokick.pers[ "bots" ][ "skill" ][ "base" ] )
|
||||
continue;
|
||||
|
||||
tokick = bot;
|
||||
@@ -1668,15 +1668,15 @@ getBotToKick()
|
||||
// just kick lowest skill
|
||||
for ( i = 0; i < bots.size; i++ )
|
||||
{
|
||||
bot = bots[i];
|
||||
bot = bots[ i ];
|
||||
|
||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( bot.pers ) || !isdefined( bot.pers["bots"] ) || !isdefined( bot.pers["bots"]["skill"] ) || !isdefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
if ( !isdefined( bot.pers ) || !isdefined( bot.pers[ "bots" ] ) || !isdefined( bot.pers[ "bots" ][ "skill" ] ) || !isdefined( bot.pers[ "bots" ][ "skill" ][ "base" ] ) )
|
||||
continue;
|
||||
|
||||
if ( isdefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
if ( isdefined( tokick ) && bot.pers[ "bots" ][ "skill" ][ "base" ] > tokick.pers[ "bots" ][ "skill" ][ "base" ] )
|
||||
continue;
|
||||
|
||||
tokick = bot;
|
||||
@@ -1695,12 +1695,12 @@ getBotArray()
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
player = level.players[ i ];
|
||||
|
||||
if ( !player is_bot() )
|
||||
continue;
|
||||
|
||||
result[result.size] = player;
|
||||
result[ result.size ] = player;
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -1747,14 +1747,14 @@ _WaypointsToKDTree( waypoints, dem )
|
||||
|
||||
for ( i = 0; i < waypoints.size; i++ )
|
||||
{
|
||||
heap HeapInsert( waypoints[i] );
|
||||
heap HeapInsert( waypoints[ i ] );
|
||||
}
|
||||
|
||||
sorted = [];
|
||||
|
||||
while ( heap.data.size )
|
||||
{
|
||||
sorted[sorted.size] = heap.data[0];
|
||||
sorted[ sorted.size ] = heap.data[ 0 ];
|
||||
heap HeapRemove();
|
||||
}
|
||||
|
||||
@@ -1765,11 +1765,11 @@ _WaypointsToKDTree( waypoints, dem )
|
||||
|
||||
for ( i = 0; i < sorted.size; i++ )
|
||||
if ( i < median )
|
||||
right[right.size] = sorted[i];
|
||||
right[ right.size ] = sorted[ i ];
|
||||
else if ( i > median )
|
||||
left[left.size] = sorted[i];
|
||||
left[ left.size ] = sorted[ i ];
|
||||
|
||||
self KDTreeInsert( sorted[median] );
|
||||
self KDTreeInsert( sorted[ median ] );
|
||||
|
||||
_WaypointsToKDTree( left, ( dem + 1 ) % 3 );
|
||||
|
||||
@@ -1793,7 +1793,7 @@ List()
|
||||
*/
|
||||
ListAdd( thing )
|
||||
{
|
||||
self.data[self.count] = thing;
|
||||
self.data[ self.count ] = thing;
|
||||
|
||||
self.count++;
|
||||
}
|
||||
@@ -1805,10 +1805,10 @@ ListAddFirst( thing )
|
||||
{
|
||||
for ( i = self.count - 1; i >= 0; i-- )
|
||||
{
|
||||
self.data[i + 1] = self.data[i];
|
||||
self.data[ i + 1 ] = self.data[ i ];
|
||||
}
|
||||
|
||||
self.data[0] = thing;
|
||||
self.data[ 0 ] = thing;
|
||||
self.count++;
|
||||
}
|
||||
|
||||
@@ -1819,15 +1819,15 @@ ListRemove( thing )
|
||||
{
|
||||
for ( i = 0; i < self.count; i++ )
|
||||
{
|
||||
if ( self.data[i] == thing )
|
||||
if ( self.data[ i ] == thing )
|
||||
{
|
||||
while ( i < self.count - 1 )
|
||||
{
|
||||
self.data[i] = self.data[i + 1];
|
||||
self.data[ i ] = self.data[ i + 1 ];
|
||||
i++;
|
||||
}
|
||||
|
||||
self.data[i] = undefined;
|
||||
self.data[ i ] = undefined;
|
||||
self.count--;
|
||||
break;
|
||||
}
|
||||
@@ -1880,26 +1880,26 @@ _KDTreeInsert( node, data, dem, x0, y0, z0, x1, y1, z1 )
|
||||
switch ( dem )
|
||||
{
|
||||
case 0:
|
||||
if ( data.origin[0] < node.data.origin[0] )
|
||||
node.left = self _KDTreeInsert( node.left, data, 1, x0, y0, z0, node.data.origin[0], y1, z1 );
|
||||
if ( data.origin[ 0 ] < node.data.origin[ 0 ] )
|
||||
node.left = self _KDTreeInsert( node.left, data, 1, x0, y0, z0, node.data.origin[ 0 ], y1, z1 );
|
||||
else
|
||||
node.right = self _KDTreeInsert( node.right, data, 1, node.data.origin[0], y0, z0, x1, y1, z1 );
|
||||
node.right = self _KDTreeInsert( node.right, data, 1, node.data.origin[ 0 ], y0, z0, x1, y1, z1 );
|
||||
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if ( data.origin[1] < node.data.origin[1] )
|
||||
node.left = self _KDTreeInsert( node.left, data, 2, x0, y0, z0, x1, node.data.origin[1], z1 );
|
||||
if ( data.origin[ 1 ] < node.data.origin[ 1 ] )
|
||||
node.left = self _KDTreeInsert( node.left, data, 2, x0, y0, z0, x1, node.data.origin[ 1 ], z1 );
|
||||
else
|
||||
node.right = self _KDTreeInsert( node.right, data, 2, x0, node.data.origin[1], z0, x1, y1, z1 );
|
||||
node.right = self _KDTreeInsert( node.right, data, 2, x0, node.data.origin[ 1 ], z0, x1, y1, z1 );
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if ( data.origin[2] < node.data.origin[2] )
|
||||
node.left = self _KDTreeInsert( node.left, data, 0, x0, y0, z0, x1, y1, node.data.origin[2] );
|
||||
if ( data.origin[ 2 ] < node.data.origin[ 2 ] )
|
||||
node.left = self _KDTreeInsert( node.left, data, 0, x0, y0, z0, x1, y1, node.data.origin[ 2 ] );
|
||||
else
|
||||
node.right = self _KDTreeInsert( node.right, data, 0, x0, y0, node.data.origin[2], x1, y1, z1 );
|
||||
node.right = self _KDTreeInsert( node.right, data, 0, x0, y0, node.data.origin[ 2 ], x1, y1, z1 );
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -1941,7 +1941,7 @@ _KDTreeNearest( node, point, closest, closestdist, dem )
|
||||
near = node.left;
|
||||
far = node.right;
|
||||
|
||||
if ( point[dem] > node.data.origin[dem] )
|
||||
if ( point[ dem ] > node.data.origin[ dem ] )
|
||||
{
|
||||
near = node.right;
|
||||
far = node.left;
|
||||
@@ -1964,21 +1964,21 @@ RectDistanceSquared( origin )
|
||||
dy = 0;
|
||||
dz = 0;
|
||||
|
||||
if ( origin[0] < self.x0 )
|
||||
dx = origin[0] - self.x0;
|
||||
else if ( origin[0] > self.x1 )
|
||||
dx = origin[0] - self.x1;
|
||||
if ( origin[ 0 ] < self.x0 )
|
||||
dx = origin[ 0 ] - self.x0;
|
||||
else if ( origin[ 0 ] > self.x1 )
|
||||
dx = origin[ 0 ] - self.x1;
|
||||
|
||||
if ( origin[1] < self.y0 )
|
||||
dy = origin[1] - self.y0;
|
||||
else if ( origin[1] > self.y1 )
|
||||
dy = origin[1] - self.y1;
|
||||
if ( origin[ 1 ] < self.y0 )
|
||||
dy = origin[ 1 ] - self.y0;
|
||||
else if ( origin[ 1 ] > self.y1 )
|
||||
dy = origin[ 1 ] - self.y1;
|
||||
|
||||
|
||||
if ( origin[2] < self.z0 )
|
||||
dz = origin[2] - self.z0;
|
||||
else if ( origin[2] > self.z1 )
|
||||
dz = origin[2] - self.z1;
|
||||
if ( origin[ 2 ] < self.z0 )
|
||||
dz = origin[ 2 ] - self.z0;
|
||||
else if ( origin[ 2 ] > self.z1 )
|
||||
dz = origin[ 2 ] - self.z1;
|
||||
|
||||
return dx * dx + dy * dy + dz * dz;
|
||||
}
|
||||
@@ -1988,7 +1988,7 @@ RectDistanceSquared( origin )
|
||||
*/
|
||||
HeapSortCoordX( item, item2 )
|
||||
{
|
||||
return item.origin[0] > item2.origin[0];
|
||||
return item.origin[ 0 ] > item2.origin[ 0 ];
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1996,7 +1996,7 @@ HeapSortCoordX( item, item2 )
|
||||
*/
|
||||
HeapSortCoordY( item, item2 )
|
||||
{
|
||||
return item.origin[1] > item2.origin[1];
|
||||
return item.origin[ 1 ] > item2.origin[ 1 ];
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2004,7 +2004,7 @@ HeapSortCoordY( item, item2 )
|
||||
*/
|
||||
HeapSortCoordZ( item, item2 )
|
||||
{
|
||||
return item.origin[2] > item2.origin[2];
|
||||
return item.origin[ 2 ] > item2.origin[ 2 ];
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2028,7 +2028,7 @@ ReverseHeap( item, item2 )
|
||||
*/
|
||||
HeapTraceFraction( item, item2 )
|
||||
{
|
||||
return item["fraction"] > item2["fraction"];
|
||||
return item[ "fraction" ] > item2[ "fraction" ];
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2049,7 +2049,7 @@ NewHeap( compare )
|
||||
HeapInsert( item )
|
||||
{
|
||||
insert = self.data.size;
|
||||
self.data[insert] = item;
|
||||
self.data[ insert ] = item;
|
||||
|
||||
current = insert + 1;
|
||||
|
||||
@@ -2058,11 +2058,11 @@ HeapInsert( item )
|
||||
last = current;
|
||||
current = int( current / 2 );
|
||||
|
||||
if ( ![[self.compare]]( item, self.data[current - 1] ) )
|
||||
if ( ![[ self.compare ]]( item, self.data[ current - 1 ] ) )
|
||||
break;
|
||||
|
||||
self.data[last - 1] = self.data[current - 1];
|
||||
self.data[current - 1] = item;
|
||||
self.data[ last - 1 ] = self.data[ current - 1 ];
|
||||
self.data[ current - 1 ] = item;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2080,7 +2080,7 @@ _HeapNextChild( node, hsize )
|
||||
if ( right > hsize )
|
||||
return left;
|
||||
|
||||
if ( [[self.compare]]( self.data[left - 1], self.data[right - 1] ) )
|
||||
if ( [[ self.compare ]]( self.data[ left - 1 ], self.data[ right - 1 ] ) )
|
||||
return left;
|
||||
else
|
||||
return right;
|
||||
@@ -2096,9 +2096,9 @@ HeapRemove()
|
||||
if ( !remove )
|
||||
return remove;
|
||||
|
||||
move = self.data[remove - 1];
|
||||
self.data[0] = move;
|
||||
self.data[remove - 1] = undefined;
|
||||
move = self.data[ remove - 1 ];
|
||||
self.data[ 0 ] = move;
|
||||
self.data[ remove - 1 ] = undefined;
|
||||
remove--;
|
||||
|
||||
if ( !remove )
|
||||
@@ -2109,11 +2109,11 @@ HeapRemove()
|
||||
|
||||
while ( next != -1 )
|
||||
{
|
||||
if ( [[self.compare]]( move, self.data[next - 1] ) )
|
||||
if ( [[ self.compare ]]( move, self.data[ next - 1 ] ) )
|
||||
break;
|
||||
|
||||
self.data[last - 1] = self.data[next - 1];
|
||||
self.data[next - 1] = move;
|
||||
self.data[ last - 1 ] = self.data[ next - 1 ];
|
||||
self.data[ next - 1 ] = move;
|
||||
|
||||
last = next;
|
||||
next = self _HeapNextChild( next, remove );
|
||||
@@ -2138,13 +2138,13 @@ RemoveWaypointUsage( wp, team )
|
||||
if ( !isdefined( level.waypointusage ) )
|
||||
return;
|
||||
|
||||
if ( !isdefined( level.waypointusage[team][wp + ""] ) )
|
||||
if ( !isdefined( level.waypointusage[ team ][ wp + "" ] ) )
|
||||
return;
|
||||
|
||||
level.waypointusage[team][wp + ""]--;
|
||||
level.waypointusage[ team ][ wp + "" ]--;
|
||||
|
||||
if ( level.waypointusage[team][wp + ""] <= 0 )
|
||||
level.waypointusage[team][wp + ""] = undefined;
|
||||
if ( level.waypointusage[ team ][ wp + "" ] <= 0 )
|
||||
level.waypointusage[ team ][ wp + "" ] = undefined;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2157,10 +2157,10 @@ GetNearestWaypointWithSight( pos )
|
||||
|
||||
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 ) )
|
||||
continue;
|
||||
|
||||
curdis = distancesquared( level.waypoints[i].origin, pos );
|
||||
curdis = distancesquared( level.waypoints[ i ].origin, pos );
|
||||
|
||||
if ( curdis > dist )
|
||||
continue;
|
||||
@@ -2182,7 +2182,7 @@ getNearestWaypoint( pos )
|
||||
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
curdis = distancesquared( level.waypoints[i].origin, pos );
|
||||
curdis = distancesquared( level.waypoints[ i ].origin, pos );
|
||||
|
||||
if ( curdis > dist )
|
||||
continue;
|
||||
@@ -2213,7 +2213,7 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
|
||||
_startwp = undefined;
|
||||
|
||||
if ( !bullettracepassed( start + ( 0, 0, 15 ), level.waypoints[startWp].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
if ( !bullettracepassed( start + ( 0, 0, 15 ), level.waypoints[ startWp ].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
_startwp = GetNearestWaypointWithSight( start );
|
||||
|
||||
if ( isdefined( _startwp ) )
|
||||
@@ -2227,7 +2227,7 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
|
||||
_goalWp = undefined;
|
||||
|
||||
if ( !bullettracepassed( goal + ( 0, 0, 15 ), level.waypoints[goalWp].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
if ( !bullettracepassed( goal + ( 0, 0, 15 ), level.waypoints[ goalWp ].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
_goalWp = GetNearestWaypointWithSight( goal );
|
||||
|
||||
if ( isdefined( _goalWp ) )
|
||||
@@ -2236,23 +2236,23 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
|
||||
node = spawnstruct();
|
||||
node.g = 0; //path dist so far
|
||||
node.h = distancesquared( level.waypoints[startWp].origin, level.waypoints[goalWp].origin ); //herustic, distance to goal for path finding
|
||||
node.h = distancesquared( level.waypoints[ startWp ].origin, level.waypoints[ goalWp ].origin ); //herustic, distance to goal for path finding
|
||||
node.f = node.h + node.g; // combine path dist and heru, use reverse heap to sort the priority queue by this attru
|
||||
node.index = startWp;
|
||||
node.parent = undefined; //we are start, so we have no parent
|
||||
|
||||
//push node onto queue
|
||||
openset[node.index + ""] = node;
|
||||
openset[ node.index + "" ] = node;
|
||||
open HeapInsert( node );
|
||||
|
||||
//while the queue is not empty
|
||||
while ( open.data.size )
|
||||
{
|
||||
//pop bestnode from queue
|
||||
bestNode = open.data[0];
|
||||
bestNode = open.data[ 0 ];
|
||||
open HeapRemove();
|
||||
openset[bestNode.index + ""] = undefined;
|
||||
wp = level.waypoints[bestNode.index];
|
||||
openset[ bestNode.index + "" ] = undefined;
|
||||
wp = level.waypoints[ bestNode.index ];
|
||||
|
||||
//check if we made it to the goal
|
||||
if ( bestNode.index == goalWp )
|
||||
@@ -2263,14 +2263,14 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
{
|
||||
if ( isdefined( team ) && isdefined( level.waypointusage ) )
|
||||
{
|
||||
if ( !isdefined( level.waypointusage[team][bestNode.index + ""] ) )
|
||||
level.waypointusage[team][bestNode.index + ""] = 0;
|
||||
if ( !isdefined( level.waypointusage[ team ][ bestNode.index + "" ] ) )
|
||||
level.waypointusage[ team ][ bestNode.index + "" ] = 0;
|
||||
|
||||
level.waypointusage[team][bestNode.index + ""]++;
|
||||
level.waypointusage[ team ][ bestNode.index + "" ]++;
|
||||
}
|
||||
|
||||
//construct path
|
||||
path[path.size] = bestNode.index;
|
||||
path[ path.size ] = bestNode.index;
|
||||
|
||||
bestNode = bestNode.parent;
|
||||
}
|
||||
@@ -2281,8 +2281,8 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
//for each child of bestnode
|
||||
for ( i = wp.children.size - 1; i >= 0; i-- )
|
||||
{
|
||||
child = wp.children[i];
|
||||
childWp = level.waypoints[child];
|
||||
child = wp.children[ i ];
|
||||
childWp = level.waypoints[ child ];
|
||||
|
||||
penalty = 1;
|
||||
|
||||
@@ -2290,8 +2290,8 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
{
|
||||
temppen = 1;
|
||||
|
||||
if ( isdefined( level.waypointusage[team][child + ""] ) )
|
||||
temppen = level.waypointusage[team][child + ""]; //consider how many bots are taking this path
|
||||
if ( isdefined( level.waypointusage[ team ][ child + "" ] ) )
|
||||
temppen = level.waypointusage[ team ][ child + "" ]; //consider how many bots are taking this path
|
||||
|
||||
if ( temppen > 1 )
|
||||
penalty = temppen;
|
||||
@@ -2305,45 +2305,45 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
newg = bestNode.g + distancesquared( wp.origin, childWp.origin ) * penalty; //bots on same team's path are more expensive
|
||||
|
||||
//check if this child is in open or close with a g value less than newg
|
||||
inopen = isdefined( openset[child + ""] );
|
||||
inopen = isdefined( openset[ child + "" ] );
|
||||
|
||||
if ( inopen && openset[child + ""].g <= newg )
|
||||
if ( inopen && openset[ child + "" ].g <= newg )
|
||||
continue;
|
||||
|
||||
inclosed = isdefined( closed[child + ""] );
|
||||
inclosed = isdefined( closed[ child + "" ] );
|
||||
|
||||
if ( inclosed && closed[child + ""].g <= newg )
|
||||
if ( inclosed && closed[ child + "" ].g <= newg )
|
||||
continue;
|
||||
|
||||
node = undefined;
|
||||
|
||||
if ( inopen )
|
||||
node = openset[child + ""];
|
||||
node = openset[ child + "" ];
|
||||
else if ( inclosed )
|
||||
node = closed[child + ""];
|
||||
node = closed[ child + "" ];
|
||||
else
|
||||
node = spawnstruct();
|
||||
|
||||
node.parent = bestNode;
|
||||
node.g = newg;
|
||||
node.h = distancesquared( childWp.origin, level.waypoints[goalWp].origin );
|
||||
node.h = distancesquared( childWp.origin, level.waypoints[ goalWp ].origin );
|
||||
node.f = node.g + node.h;
|
||||
node.index = child;
|
||||
|
||||
//check if in closed, remove it
|
||||
if ( inclosed )
|
||||
closed[child + ""] = undefined;
|
||||
closed[ child + "" ] = undefined;
|
||||
|
||||
//check if not in open, add it
|
||||
if ( !inopen )
|
||||
{
|
||||
open HeapInsert( node );
|
||||
openset[child + ""] = node;
|
||||
openset[ child + "" ] = node;
|
||||
}
|
||||
}
|
||||
|
||||
//done with children, push onto closed
|
||||
closed[bestNode.index + ""] = bestNode;
|
||||
closed[ bestNode.index + "" ] = bestNode;
|
||||
}
|
||||
|
||||
return [];
|
||||
@@ -2360,7 +2360,7 @@ array_average( array )
|
||||
|
||||
for ( i = 0; i < array.size; i++ )
|
||||
{
|
||||
total += array[i];
|
||||
total += array[ i ];
|
||||
}
|
||||
|
||||
return ( total / array.size );
|
||||
@@ -2377,14 +2377,14 @@ array_std_deviation( array, mean )
|
||||
|
||||
for ( i = 0; i < array.size; i++ )
|
||||
{
|
||||
tmp[i] = ( array[i] - mean ) * ( array[i] - mean );
|
||||
tmp[ i ] = ( array[ i ] - mean ) * ( array[ i ] - mean );
|
||||
}
|
||||
|
||||
total = 0;
|
||||
|
||||
for ( i = 0; i < tmp.size; i++ )
|
||||
{
|
||||
total = total + tmp[i];
|
||||
total = total + tmp[ i ];
|
||||
}
|
||||
|
||||
return sqrt( total / array.size );
|
||||
|
||||
Reference in New Issue
Block a user