mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 13:55:43 +00:00
Format all scripts
This commit is contained in:
parent
4eced4bc93
commit
27be561a42
@ -12,6 +12,7 @@ pad-header
|
||||
# delete-empty-lines
|
||||
|
||||
break-blocks
|
||||
# remove-braces
|
||||
|
||||
indent-switches
|
||||
indent-cases
|
||||
|
@ -17,86 +17,112 @@ init()
|
||||
{
|
||||
level.bw_VERSION = "2.0.1";
|
||||
|
||||
if(getDvar("bots_main") == "")
|
||||
setDvar("bots_main", true);
|
||||
if ( getDvar( "bots_main" ) == "" )
|
||||
setDvar( "bots_main", true );
|
||||
|
||||
if (!getDvarInt("bots_main"))
|
||||
if ( !getDvarInt( "bots_main" ) )
|
||||
return;
|
||||
|
||||
thread load_waypoints();
|
||||
thread hook_callbacks();
|
||||
|
||||
if(getDvar("bots_main_GUIDs") == "")
|
||||
setDvar("bots_main_GUIDs", "");//guids of players who will be given host powers, comma seperated
|
||||
if(getDvar("bots_main_firstIsHost") == "")
|
||||
setDvar("bots_main_firstIsHost", false);//first play to connect is a host
|
||||
if(getDvar("bots_main_waitForHostTime") == "")
|
||||
setDvar("bots_main_waitForHostTime", 10.0);//how long to wait to wait for the host player
|
||||
if ( getDvar( "bots_main_GUIDs" ) == "" )
|
||||
setDvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
|
||||
|
||||
if(getDvar("bots_manage_add") == "")
|
||||
setDvar("bots_manage_add", 0);//amount of bots to add to the game
|
||||
if(getDvar("bots_manage_fill") == "")
|
||||
setDvar("bots_manage_fill", 0);//amount of bots to maintain
|
||||
if(getDvar("bots_manage_fill_spec") == "")
|
||||
setDvar("bots_manage_fill_spec", true);//to count for fill if player is on spec team
|
||||
if(getDvar("bots_manage_fill_mode") == "")
|
||||
setDvar("bots_manage_fill_mode", 0);//fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
|
||||
if(getDvar("bots_manage_fill_kick") == "")
|
||||
setDvar("bots_manage_fill_kick", false);//kick bots if too many
|
||||
if ( getDvar( "bots_main_firstIsHost" ) == "" )
|
||||
setDvar( "bots_main_firstIsHost", false ); //first play to connect is a host
|
||||
|
||||
if(getDvar("bots_team") == "")
|
||||
setDvar("bots_team", "autoassign");//which team for bots to join
|
||||
if(getDvar("bots_team_amount") == "")
|
||||
setDvar("bots_team_amount", 0);//amount of bots on axis team
|
||||
if(getDvar("bots_team_force") == "")
|
||||
setDvar("bots_team_force", false);//force bots on team
|
||||
if(getDvar("bots_team_mode") == "")
|
||||
setDvar("bots_team_mode", 0);//counts just bots when 1
|
||||
if ( getDvar( "bots_main_waitForHostTime" ) == "" )
|
||||
setDvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
|
||||
|
||||
if(getDvar("bots_skill") == "")
|
||||
setDvar("bots_skill", 0);//0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
||||
if(getDvar("bots_skill_axis_hard") == "")
|
||||
setDvar("bots_skill_axis_hard", 0);//amount of hard bots on axis team
|
||||
if(getDvar("bots_skill_axis_med") == "")
|
||||
setDvar("bots_skill_axis_med", 0);
|
||||
if(getDvar("bots_skill_allies_hard") == "")
|
||||
setDvar("bots_skill_allies_hard", 0);
|
||||
if(getDvar("bots_skill_allies_med") == "")
|
||||
setDvar("bots_skill_allies_med", 0);
|
||||
if ( getDvar( "bots_manage_add" ) == "" )
|
||||
setDvar( "bots_manage_add", 0 ); //amount of bots to add to the game
|
||||
|
||||
if(getDvar("bots_loadout_reasonable") == "")//filter out the bad 'guns' and perks
|
||||
setDvar("bots_loadout_reasonable", false);
|
||||
if(getDvar("bots_loadout_allow_op") == "")//allows jug, marty and laststand
|
||||
setDvar("bots_loadout_allow_op", true);
|
||||
if(getDvar("bots_loadout_rank") == "")// what rank the bots should be around, -1 is around the players, 0 is all random
|
||||
setDvar("bots_loadout_rank", -1);
|
||||
if(getDvar("bots_loadout_prestige") == "")// what pretige the bots will be, -1 is the players, -2 is random
|
||||
setDvar("bots_loadout_prestige", -1);
|
||||
if ( getDvar( "bots_manage_fill" ) == "" )
|
||||
setDvar( "bots_manage_fill", 0 ); //amount of bots to maintain
|
||||
|
||||
if(getDvar("bots_play_move") == "")//bots move
|
||||
setDvar("bots_play_move", true);
|
||||
if(getDvar("bots_play_knife") == "")//bots knife
|
||||
setDvar("bots_play_knife", true);
|
||||
if(getDvar("bots_play_fire") == "")//bots fire
|
||||
setDvar("bots_play_fire", true);
|
||||
if(getDvar("bots_play_nade") == "")//bots grenade
|
||||
setDvar("bots_play_nade", true);
|
||||
if(getDvar("bots_play_take_carepackages") == "")//bots take carepackages
|
||||
setDvar("bots_play_take_carepackages", true);
|
||||
if(getDvar("bots_play_obj") == "")//bots play the obj
|
||||
setDvar("bots_play_obj", true);
|
||||
if(getDvar("bots_play_camp") == "")//bots camp and follow
|
||||
setDvar("bots_play_camp", true);
|
||||
if(getDvar("bots_play_jumpdrop") == "")//bots jump and dropshot
|
||||
setDvar("bots_play_jumpdrop", true);
|
||||
if(getDvar("bots_play_target_other") == "")//bot target non play ents (vehicles)
|
||||
setDvar("bots_play_target_other", true);
|
||||
if(getDvar("bots_play_killstreak") == "")//bot use killstreaks
|
||||
setDvar("bots_play_killstreak", true);
|
||||
if(getDvar("bots_play_ads") == "")//bot ads
|
||||
setDvar("bots_play_ads", true);
|
||||
if ( getDvar( "bots_manage_fill_spec" ) == "" )
|
||||
setDvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team
|
||||
|
||||
if(!isDefined(game["botWarfare"]))
|
||||
if ( getDvar( "bots_manage_fill_mode" ) == "" )
|
||||
setDvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
|
||||
|
||||
if ( getDvar( "bots_manage_fill_kick" ) == "" )
|
||||
setDvar( "bots_manage_fill_kick", false ); //kick bots if too many
|
||||
|
||||
if ( getDvar( "bots_team" ) == "" )
|
||||
setDvar( "bots_team", "autoassign" ); //which team for bots to join
|
||||
|
||||
if ( getDvar( "bots_team_amount" ) == "" )
|
||||
setDvar( "bots_team_amount", 0 ); //amount of bots on axis team
|
||||
|
||||
if ( getDvar( "bots_team_force" ) == "" )
|
||||
setDvar( "bots_team_force", false ); //force bots on team
|
||||
|
||||
if ( getDvar( "bots_team_mode" ) == "" )
|
||||
setDvar( "bots_team_mode", 0 ); //counts just bots when 1
|
||||
|
||||
if ( getDvar( "bots_skill" ) == "" )
|
||||
setDvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
||||
|
||||
if ( getDvar( "bots_skill_axis_hard" ) == "" )
|
||||
setDvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team
|
||||
|
||||
if ( getDvar( "bots_skill_axis_med" ) == "" )
|
||||
setDvar( "bots_skill_axis_med", 0 );
|
||||
|
||||
if ( getDvar( "bots_skill_allies_hard" ) == "" )
|
||||
setDvar( "bots_skill_allies_hard", 0 );
|
||||
|
||||
if ( getDvar( "bots_skill_allies_med" ) == "" )
|
||||
setDvar( "bots_skill_allies_med", 0 );
|
||||
|
||||
if ( getDvar( "bots_loadout_reasonable" ) == "" ) //filter out the bad 'guns' and perks
|
||||
setDvar( "bots_loadout_reasonable", false );
|
||||
|
||||
if ( getDvar( "bots_loadout_allow_op" ) == "" ) //allows jug, marty and laststand
|
||||
setDvar( "bots_loadout_allow_op", true );
|
||||
|
||||
if ( getDvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random
|
||||
setDvar( "bots_loadout_rank", -1 );
|
||||
|
||||
if ( getDvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random
|
||||
setDvar( "bots_loadout_prestige", -1 );
|
||||
|
||||
if ( getDvar( "bots_play_move" ) == "" ) //bots move
|
||||
setDvar( "bots_play_move", true );
|
||||
|
||||
if ( getDvar( "bots_play_knife" ) == "" ) //bots knife
|
||||
setDvar( "bots_play_knife", true );
|
||||
|
||||
if ( getDvar( "bots_play_fire" ) == "" ) //bots fire
|
||||
setDvar( "bots_play_fire", true );
|
||||
|
||||
if ( getDvar( "bots_play_nade" ) == "" ) //bots grenade
|
||||
setDvar( "bots_play_nade", true );
|
||||
|
||||
if ( getDvar( "bots_play_take_carepackages" ) == "" ) //bots take carepackages
|
||||
setDvar( "bots_play_take_carepackages", true );
|
||||
|
||||
if ( getDvar( "bots_play_obj" ) == "" ) //bots play the obj
|
||||
setDvar( "bots_play_obj", true );
|
||||
|
||||
if ( getDvar( "bots_play_camp" ) == "" ) //bots camp and follow
|
||||
setDvar( "bots_play_camp", true );
|
||||
|
||||
if ( getDvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot
|
||||
setDvar( "bots_play_jumpdrop", true );
|
||||
|
||||
if ( getDvar( "bots_play_target_other" ) == "" ) //bot target non play ents (vehicles)
|
||||
setDvar( "bots_play_target_other", true );
|
||||
|
||||
if ( getDvar( "bots_play_killstreak" ) == "" ) //bot use killstreaks
|
||||
setDvar( "bots_play_killstreak", true );
|
||||
|
||||
if ( getDvar( "bots_play_ads" ) == "" ) //bot ads
|
||||
setDvar( "bots_play_ads", true );
|
||||
|
||||
if ( !isDefined( game["botWarfare"] ) )
|
||||
game["botWarfare"] = true;
|
||||
|
||||
level.defuseObject = undefined;
|
||||
@ -172,38 +198,38 @@ handleBots()
|
||||
level thread diffBots();
|
||||
level addBots();
|
||||
|
||||
while(!level.intermission)
|
||||
while ( !level.intermission )
|
||||
wait 0.05;
|
||||
|
||||
setDvar("bots_manage_add", getBotArray().size);
|
||||
setDvar( "bots_manage_add", getBotArray().size );
|
||||
}
|
||||
|
||||
/*
|
||||
The hook callback for when any player becomes damaged.
|
||||
*/
|
||||
onPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset)
|
||||
onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset )
|
||||
{
|
||||
if(self is_bot())
|
||||
if ( self is_bot() )
|
||||
{
|
||||
self maps\mp\bots\_bot_internal::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 maps\mp\bots\_bot_internal::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 );
|
||||
}
|
||||
|
||||
/*
|
||||
The hook callback when any player gets killed.
|
||||
*/
|
||||
onPlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration)
|
||||
onPlayerKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration )
|
||||
{
|
||||
if(self is_bot())
|
||||
if ( self is_bot() )
|
||||
{
|
||||
self maps\mp\bots\_bot_internal::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 maps\mp\bots\_bot_internal::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 );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -225,23 +251,24 @@ hook_callbacks()
|
||||
*/
|
||||
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;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if(isDefined(level.radios) && level.gametype == "koth")
|
||||
if ( isDefined( level.radios ) && level.gametype == "koth" )
|
||||
{
|
||||
level thread fixKoth();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (isDefined(level.bombZones) && level.gametype == "dd")
|
||||
if ( isDefined( level.bombZones ) && level.gametype == "dd" )
|
||||
{
|
||||
level thread fixDem();
|
||||
|
||||
@ -257,16 +284,16 @@ fixGamemodes()
|
||||
*/
|
||||
fixDem()
|
||||
{
|
||||
for (;;)
|
||||
for ( ;; )
|
||||
{
|
||||
level.bombAPlanted = level.aPlanted;
|
||||
level.bombBPlanted = level.bPlanted;
|
||||
|
||||
for (i = 0; i < level.bombZones.size; i++)
|
||||
for ( i = 0; i < level.bombZones.size; i++ )
|
||||
{
|
||||
bombzone = level.bombZones[i];
|
||||
|
||||
if (isDefined(bombzone.trigger.trigger_off))
|
||||
if ( isDefined( bombzone.trigger.trigger_off ) )
|
||||
bombzone.bombExploded = true;
|
||||
else
|
||||
bombzone.bombExploded = undefined;
|
||||
@ -283,25 +310,25 @@ fixKoth()
|
||||
{
|
||||
level.radio = undefined;
|
||||
|
||||
for(;;)
|
||||
for ( ;; )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if(!isDefined(level.radioObject))
|
||||
if ( !isDefined( level.radioObject ) )
|
||||
{
|
||||
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;
|
||||
|
||||
level.radio = level.radios[i];
|
||||
break;
|
||||
}
|
||||
|
||||
while(isDefined(level.radioObject) && level.radio.gameobject == level.radioObject)
|
||||
while ( isDefined( level.radioObject ) && level.radio.gameobject == level.radioObject )
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
@ -313,14 +340,14 @@ addNotifyOnAirdrops_loop()
|
||||
{
|
||||
dropCrates = getEntArray( "care_package", "targetname" );
|
||||
|
||||
for (i = dropCrates.size - 1; i >= 0; i--)
|
||||
for ( i = dropCrates.size - 1; i >= 0; i-- )
|
||||
{
|
||||
airdrop = dropCrates[i];
|
||||
|
||||
if (!isDefined(airdrop.owner))
|
||||
if ( !isDefined( airdrop.owner ) )
|
||||
continue;
|
||||
|
||||
if (isDefined(airdrop.doingPhysics))
|
||||
if ( isDefined( airdrop.doingPhysics ) )
|
||||
continue;
|
||||
|
||||
airdrop.doingPhysics = true;
|
||||
@ -333,7 +360,7 @@ addNotifyOnAirdrops_loop()
|
||||
*/
|
||||
addNotifyOnAirdrops()
|
||||
{
|
||||
for (;;)
|
||||
for ( ;; )
|
||||
{
|
||||
wait 1;
|
||||
addNotifyOnAirdrops_loop();
|
||||
@ -349,7 +376,7 @@ doNotifyOnAirdrop()
|
||||
self waittill( "physics_finished" );
|
||||
|
||||
self.doingPhysics = false;
|
||||
self.owner notify("crate_physics_done");
|
||||
self.owner notify( "crate_physics_done" );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -357,9 +384,9 @@ doNotifyOnAirdrop()
|
||||
*/
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
for ( ;; )
|
||||
{
|
||||
level waittill("connected", player);
|
||||
level waittill( "connected", player );
|
||||
|
||||
player.bot_isScrambled = false;
|
||||
|
||||
@ -385,23 +412,23 @@ watchScrabler_loop()
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if (!player _HasPerk("specialty_localjammer") || !isReallyAlive(player))
|
||||
if ( !player _HasPerk( "specialty_localjammer" ) || !isReallyAlive( player ) )
|
||||
continue;
|
||||
|
||||
if (player isEMPed())
|
||||
if ( player isEMPed() )
|
||||
continue;
|
||||
|
||||
for ( h = level.players.size - 1; h >= 0; h-- )
|
||||
{
|
||||
player2 = level.players[h];
|
||||
|
||||
if (player2 == player)
|
||||
if ( player2 == player )
|
||||
continue;
|
||||
|
||||
if(level.teamBased && player2.team == player.team)
|
||||
if ( level.teamBased && player2.team == player.team )
|
||||
continue;
|
||||
|
||||
if (DistanceSquared(player2.origin, player.origin) > 256*256)
|
||||
if ( DistanceSquared( player2.origin, player.origin ) > 256 * 256 )
|
||||
continue;
|
||||
|
||||
player2.bot_isScrambled = true;
|
||||
@ -414,7 +441,7 @@ watchScrabler_loop()
|
||||
*/
|
||||
watchScrabler()
|
||||
{
|
||||
for (;;)
|
||||
for ( ;; )
|
||||
{
|
||||
wait 1;
|
||||
|
||||
@ -427,9 +454,9 @@ watchScrabler()
|
||||
*/
|
||||
onDisconnect()
|
||||
{
|
||||
self waittill("disconnect");
|
||||
self waittill( "disconnect" );
|
||||
|
||||
level.bots = array_remove(level.bots, self);
|
||||
level.bots = array_remove( level.bots, self );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -437,21 +464,21 @@ onDisconnect()
|
||||
*/
|
||||
connected()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon( "disconnect" );
|
||||
|
||||
if (!isDefined(self.pers["bot_host"]))
|
||||
if ( !isDefined( self.pers["bot_host"] ) )
|
||||
self thread doHostCheck();
|
||||
|
||||
if(!self is_bot())
|
||||
if ( !self is_bot() )
|
||||
return;
|
||||
|
||||
if (!isDefined(self.pers["isBot"]))
|
||||
if ( !isDefined( self.pers["isBot"] ) )
|
||||
{
|
||||
// fast_restart occured...
|
||||
self.pers["isBot"] = true;
|
||||
}
|
||||
|
||||
if (!isDefined(self.pers["isBotWarfare"]))
|
||||
if ( !isDefined( self.pers["isBotWarfare"] ) )
|
||||
{
|
||||
self.pers["isBotWarfare"] = true;
|
||||
self thread added();
|
||||
@ -463,7 +490,7 @@ connected()
|
||||
level.bots[level.bots.size] = self;
|
||||
self thread onDisconnect();
|
||||
|
||||
level notify("bot_connected", self);
|
||||
level notify( "bot_connected", self );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -471,7 +498,7 @@ connected()
|
||||
*/
|
||||
added()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon( "disconnect" );
|
||||
|
||||
self thread maps\mp\bots\_bot_internal::added();
|
||||
self thread maps\mp\bots\_bot_script::added();
|
||||
@ -484,7 +511,7 @@ add_bot()
|
||||
{
|
||||
bot = addtestclient();
|
||||
|
||||
if (isdefined(bot))
|
||||
if ( isdefined( bot ) )
|
||||
{
|
||||
bot.pers["isBot"] = true;
|
||||
bot.pers["isBotWarfare"] = true;
|
||||
@ -497,38 +524,39 @@ add_bot()
|
||||
*/
|
||||
diffBots_loop()
|
||||
{
|
||||
var_allies_hard = getDVarInt("bots_skill_allies_hard");
|
||||
var_allies_med = getDVarInt("bots_skill_allies_med");
|
||||
var_axis_hard = getDVarInt("bots_skill_axis_hard");
|
||||
var_axis_med = getDVarInt("bots_skill_axis_med");
|
||||
var_skill = getDvarInt("bots_skill");
|
||||
var_allies_hard = getDVarInt( "bots_skill_allies_hard" );
|
||||
var_allies_med = getDVarInt( "bots_skill_allies_med" );
|
||||
var_axis_hard = getDVarInt( "bots_skill_axis_hard" );
|
||||
var_axis_med = getDVarInt( "bots_skill_axis_med" );
|
||||
var_skill = getDvarInt( "bots_skill" );
|
||||
|
||||
allies_hard = 0;
|
||||
allies_med = 0;
|
||||
axis_hard = 0;
|
||||
axis_med = 0;
|
||||
|
||||
if(var_skill == 8)
|
||||
if ( var_skill == 8 )
|
||||
{
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if(!isDefined(player.pers["team"]))
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if(!player is_bot())
|
||||
if ( !player is_bot() )
|
||||
continue;
|
||||
|
||||
if(player.pers["team"] == "axis")
|
||||
if ( player.pers["team"] == "axis" )
|
||||
{
|
||||
if(axis_hard < var_axis_hard)
|
||||
if ( axis_hard < var_axis_hard )
|
||||
{
|
||||
axis_hard++;
|
||||
player.pers["bots"]["skill"]["base"] = 7;
|
||||
}
|
||||
else if(axis_med < var_axis_med)
|
||||
else if ( axis_med < var_axis_med )
|
||||
{
|
||||
axis_med++;
|
||||
player.pers["bots"]["skill"]["base"] = 4;
|
||||
@ -536,14 +564,14 @@ diffBots_loop()
|
||||
else
|
||||
player.pers["bots"]["skill"]["base"] = 1;
|
||||
}
|
||||
else if(player.pers["team"] == "allies")
|
||||
else if ( player.pers["team"] == "allies" )
|
||||
{
|
||||
if(allies_hard < var_allies_hard)
|
||||
if ( allies_hard < var_allies_hard )
|
||||
{
|
||||
allies_hard++;
|
||||
player.pers["bots"]["skill"]["base"] = 7;
|
||||
}
|
||||
else if(allies_med < var_allies_med)
|
||||
else if ( allies_med < var_allies_med )
|
||||
{
|
||||
allies_med++;
|
||||
player.pers["bots"]["skill"]["base"] = 4;
|
||||
@ -553,14 +581,15 @@ diffBots_loop()
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (var_skill != 0 && var_skill != 9)
|
||||
else if ( var_skill != 0 && var_skill != 9 )
|
||||
{
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if(!player is_bot())
|
||||
if ( !player is_bot() )
|
||||
continue;
|
||||
|
||||
player.pers["bots"]["skill"]["base"] = var_skill;
|
||||
@ -573,7 +602,7 @@ diffBots_loop()
|
||||
*/
|
||||
diffBots()
|
||||
{
|
||||
for(;;)
|
||||
for ( ;; )
|
||||
{
|
||||
wait 1.5;
|
||||
|
||||
@ -586,8 +615,8 @@ diffBots()
|
||||
*/
|
||||
teamBots_loop()
|
||||
{
|
||||
teamAmount = getDvarInt("bots_team_amount");
|
||||
toTeam = getDvar("bots_team");
|
||||
teamAmount = getDvarInt( "bots_team_amount" );
|
||||
toTeam = getDvar( "bots_team" );
|
||||
|
||||
alliesbots = 0;
|
||||
alliesplayers = 0;
|
||||
@ -595,25 +624,26 @@ teamBots_loop()
|
||||
axisplayers = 0;
|
||||
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if(!isDefined(player.pers["team"]))
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if(player is_bot())
|
||||
if ( player is_bot() )
|
||||
{
|
||||
if(player.pers["team"] == "allies")
|
||||
if ( player.pers["team"] == "allies" )
|
||||
alliesbots++;
|
||||
else if(player.pers["team"] == "axis")
|
||||
else if ( player.pers["team"] == "axis" )
|
||||
axisbots++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(player.pers["team"] == "allies")
|
||||
if ( player.pers["team"] == "allies" )
|
||||
alliesplayers++;
|
||||
else if(player.pers["team"] == "axis")
|
||||
else if ( player.pers["team"] == "axis" )
|
||||
axisplayers++;
|
||||
}
|
||||
}
|
||||
@ -621,48 +651,51 @@ teamBots_loop()
|
||||
allies = alliesbots;
|
||||
axis = axisbots;
|
||||
|
||||
if(!getDvarInt("bots_team_mode"))
|
||||
if ( !getDvarInt( "bots_team_mode" ) )
|
||||
{
|
||||
allies += alliesplayers;
|
||||
axis += axisplayers;
|
||||
}
|
||||
|
||||
if(toTeam != "custom")
|
||||
if ( toTeam != "custom" )
|
||||
{
|
||||
if(getDvarInt("bots_team_force"))
|
||||
if ( getDvarInt( "bots_team_force" ) )
|
||||
{
|
||||
if(toTeam == "autoassign")
|
||||
if ( toTeam == "autoassign" )
|
||||
{
|
||||
if(abs(axis - allies) > 1)
|
||||
if ( abs( axis - allies ) > 1 )
|
||||
{
|
||||
toTeam = "axis";
|
||||
if(axis > allies)
|
||||
|
||||
if ( axis > allies )
|
||||
toTeam = "allies";
|
||||
}
|
||||
}
|
||||
|
||||
if(toTeam != "autoassign")
|
||||
if ( toTeam != "autoassign" )
|
||||
{
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if(!isDefined(player.pers["team"]))
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if(!player is_bot())
|
||||
if ( !player is_bot() )
|
||||
continue;
|
||||
|
||||
if(player.pers["team"] == toTeam)
|
||||
if ( player.pers["team"] == toTeam )
|
||||
continue;
|
||||
|
||||
if (toTeam == "allies")
|
||||
if ( toTeam == "allies" )
|
||||
player thread [[level.allies]]();
|
||||
else if (toTeam == "axis")
|
||||
else if ( toTeam == "axis" )
|
||||
player thread [[level.axis]]();
|
||||
else
|
||||
player thread [[level.spectator]]();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -671,19 +704,20 @@ teamBots_loop()
|
||||
else
|
||||
{
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if(!isDefined(player.pers["team"]))
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if(!player is_bot())
|
||||
if ( !player is_bot() )
|
||||
continue;
|
||||
|
||||
if(player.pers["team"] == "axis")
|
||||
if ( player.pers["team"] == "axis" )
|
||||
{
|
||||
if(axis > teamAmount)
|
||||
if ( axis > teamAmount )
|
||||
{
|
||||
player thread [[level.allies]]();
|
||||
break;
|
||||
@ -691,12 +725,12 @@ teamBots_loop()
|
||||
}
|
||||
else
|
||||
{
|
||||
if(axis < teamAmount)
|
||||
if ( axis < teamAmount )
|
||||
{
|
||||
player thread [[level.axis]]();
|
||||
break;
|
||||
}
|
||||
else if(player.pers["team"] != "allies")
|
||||
else if ( player.pers["team"] != "allies" )
|
||||
{
|
||||
player thread [[level.allies]]();
|
||||
break;
|
||||
@ -711,7 +745,7 @@ teamBots_loop()
|
||||
*/
|
||||
teamBots()
|
||||
{
|
||||
for(;;)
|
||||
for ( ;; )
|
||||
{
|
||||
wait 1.5;
|
||||
teamBots_loop();
|
||||
@ -723,84 +757,86 @@ teamBots()
|
||||
*/
|
||||
addBots_loop()
|
||||
{
|
||||
botsToAdd = GetDvarInt("bots_manage_add");
|
||||
botsToAdd = GetDvarInt( "bots_manage_add" );
|
||||
|
||||
if(botsToAdd > 0)
|
||||
if ( botsToAdd > 0 )
|
||||
{
|
||||
SetDvar("bots_manage_add", 0);
|
||||
SetDvar( "bots_manage_add", 0 );
|
||||
|
||||
if(botsToAdd > 64)
|
||||
if ( botsToAdd > 64 )
|
||||
botsToAdd = 64;
|
||||
|
||||
for(; botsToAdd > 0; botsToAdd--)
|
||||
for ( ; botsToAdd > 0; botsToAdd-- )
|
||||
{
|
||||
level add_bot();
|
||||
wait 0.25;
|
||||
}
|
||||
}
|
||||
|
||||
fillMode = getDVarInt("bots_manage_fill_mode");
|
||||
fillMode = getDVarInt( "bots_manage_fill_mode" );
|
||||
|
||||
if(fillMode == 2 || fillMode == 3)
|
||||
setDvar("bots_manage_fill", getGoodMapAmount());
|
||||
if ( fillMode == 2 || fillMode == 3 )
|
||||
setDvar( "bots_manage_fill", getGoodMapAmount() );
|
||||
|
||||
fillAmount = getDvarInt("bots_manage_fill");
|
||||
fillAmount = getDvarInt( "bots_manage_fill" );
|
||||
|
||||
players = 0;
|
||||
bots = 0;
|
||||
spec = 0;
|
||||
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if(player is_bot())
|
||||
if ( player is_bot() )
|
||||
bots++;
|
||||
else if(!isDefined(player.pers["team"]) || (player.pers["team"] != "axis" && player.pers["team"] != "allies"))
|
||||
else if ( !isDefined( player.pers["team"] ) || ( player.pers["team"] != "axis" && player.pers["team"] != "allies" ) )
|
||||
spec++;
|
||||
else
|
||||
players++;
|
||||
}
|
||||
|
||||
if (!randomInt(999))
|
||||
if ( !randomInt( 999 ) )
|
||||
{
|
||||
setDvar("testclients_doreload", true);
|
||||
setDvar( "testclients_doreload", true );
|
||||
wait 0.1;
|
||||
setDvar("testclients_doreload", false);
|
||||
setDvar( "testclients_doreload", false );
|
||||
doExtraCheck();
|
||||
}
|
||||
|
||||
if(fillMode == 4)
|
||||
if ( fillMode == 4 )
|
||||
{
|
||||
axisplayers = 0;
|
||||
alliesplayers = 0;
|
||||
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if(player is_bot())
|
||||
if ( player is_bot() )
|
||||
continue;
|
||||
|
||||
if(!isDefined(player.pers["team"]))
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if(player.pers["team"] == "axis")
|
||||
if ( player.pers["team"] == "axis" )
|
||||
axisplayers++;
|
||||
else if(player.pers["team"] == "allies")
|
||||
else if ( player.pers["team"] == "allies" )
|
||||
alliesplayers++;
|
||||
}
|
||||
|
||||
result = fillAmount - abs(axisplayers - alliesplayers) + bots;
|
||||
result = fillAmount - abs( axisplayers - alliesplayers ) + bots;
|
||||
|
||||
if (players == 0)
|
||||
if ( players == 0 )
|
||||
{
|
||||
if(bots < fillAmount)
|
||||
result = fillAmount-1;
|
||||
else if (bots > fillAmount)
|
||||
result = fillAmount+1;
|
||||
if ( bots < fillAmount )
|
||||
result = fillAmount - 1;
|
||||
else if ( bots > fillAmount )
|
||||
result = fillAmount + 1;
|
||||
else
|
||||
result = fillAmount;
|
||||
}
|
||||
@ -809,17 +845,20 @@ addBots_loop()
|
||||
}
|
||||
|
||||
amount = bots;
|
||||
if(fillMode == 0 || fillMode == 2)
|
||||
|
||||
if ( fillMode == 0 || fillMode == 2 )
|
||||
amount += players;
|
||||
if(getDVarInt("bots_manage_fill_spec"))
|
||||
|
||||
if ( getDVarInt( "bots_manage_fill_spec" ) )
|
||||
amount += spec;
|
||||
|
||||
if(amount < fillAmount)
|
||||
setDvar("bots_manage_add", 1);
|
||||
else if(amount > fillAmount && getDvarInt("bots_manage_fill_kick"))
|
||||
if ( amount < fillAmount )
|
||||
setDvar( "bots_manage_add", 1 );
|
||||
else if ( amount > fillAmount && getDvarInt( "bots_manage_fill_kick" ) )
|
||||
{
|
||||
tempBot = random(getBotArray());
|
||||
if (isDefined(tempBot))
|
||||
tempBot = random( getBotArray() );
|
||||
|
||||
if ( isDefined( tempBot ) )
|
||||
kick( tempBot getEntityNumber(), "EXE_PLAYERKICKED" );
|
||||
}
|
||||
}
|
||||
@ -829,11 +868,11 @@ addBots_loop()
|
||||
*/
|
||||
addBots()
|
||||
{
|
||||
level endon("game_ended");
|
||||
level endon( "game_ended" );
|
||||
|
||||
bot_wait_for_host();
|
||||
|
||||
for(;;)
|
||||
for ( ;; )
|
||||
{
|
||||
wait 1.5;
|
||||
|
||||
@ -846,31 +885,32 @@ addBots()
|
||||
*/
|
||||
onGrenadeFire()
|
||||
{
|
||||
self endon("disconnect");
|
||||
for(;;)
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill ( "grenade_fire", grenade, weaponName );
|
||||
|
||||
if (!isDefined(grenade))
|
||||
if ( !isDefined( grenade ) )
|
||||
continue;
|
||||
|
||||
grenade.name = weaponName;
|
||||
|
||||
if(weaponName == "smoke_grenade_mp")
|
||||
if ( weaponName == "smoke_grenade_mp" )
|
||||
grenade thread AddToSmokeList();
|
||||
else if (isSubStr(weaponName, "frag_"))
|
||||
grenade thread AddToFragList(self);
|
||||
else if ( isSubStr( weaponName, "frag_" ) )
|
||||
grenade thread AddToFragList( self );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Adds a frag grenade to the list of all frags
|
||||
*/
|
||||
AddToFragList(who)
|
||||
AddToFragList( who )
|
||||
{
|
||||
grenade = spawnstruct();
|
||||
grenade.origin = self getOrigin();
|
||||
grenade.velocity = (0, 0, 0);
|
||||
grenade.velocity = ( 0, 0, 0 );
|
||||
grenade.grenade = self;
|
||||
grenade.owner = who;
|
||||
grenade.team = who.team;
|
||||
@ -878,7 +918,7 @@ AddToFragList(who)
|
||||
|
||||
grenade thread thinkFrag();
|
||||
|
||||
level.bots_fragList ListAdd(grenade);
|
||||
level.bots_fragList ListAdd( grenade );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -886,16 +926,16 @@ AddToFragList(who)
|
||||
*/
|
||||
thinkFrag()
|
||||
{
|
||||
while(isDefined(self.grenade))
|
||||
while ( isDefined( self.grenade ) )
|
||||
{
|
||||
nowOrigin = self.grenade getOrigin();
|
||||
self.velocity = (nowOrigin - self.origin)*20;
|
||||
self.velocity = ( nowOrigin - self.origin ) * 20;
|
||||
self.origin = nowOrigin;
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
level.bots_fragList ListRemove(self);
|
||||
level.bots_fragList ListRemove( self );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -910,7 +950,7 @@ AddToSmokeList()
|
||||
|
||||
grenade thread thinkSmoke();
|
||||
|
||||
level.bots_smokeList ListAdd(grenade);
|
||||
level.bots_smokeList ListAdd( grenade );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -918,16 +958,17 @@ AddToSmokeList()
|
||||
*/
|
||||
thinkSmoke()
|
||||
{
|
||||
while(isDefined(self.grenade))
|
||||
while ( isDefined( self.grenade ) )
|
||||
{
|
||||
self.origin = self.grenade getOrigin();
|
||||
self.state = "moving";
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
self.state = "smoking";
|
||||
wait 11.5;
|
||||
|
||||
level.bots_smokeList ListRemove(self);
|
||||
level.bots_smokeList ListRemove( self );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -935,9 +976,10 @@ thinkSmoke()
|
||||
*/
|
||||
onWeaponFired()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon( "disconnect" );
|
||||
self.bots_firing = false;
|
||||
for(;;)
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "weapon_fired" );
|
||||
self thread doFiringThread();
|
||||
@ -949,8 +991,8 @@ onWeaponFired()
|
||||
*/
|
||||
doFiringThread()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("weapon_fired");
|
||||
self endon( "disconnect" );
|
||||
self endon( "weapon_fired" );
|
||||
self.bots_firing = true;
|
||||
wait 1;
|
||||
self.bots_firing = false;
|
||||
|
@ -14,55 +14,55 @@ doVersionCheck()
|
||||
{
|
||||
remoteVersion = getRemoteVersion();
|
||||
|
||||
if (!isDefined(remoteVersion))
|
||||
if ( !isDefined( remoteVersion ) )
|
||||
{
|
||||
PrintConsole("Error getting remote version of Bot Warfare.\n");
|
||||
PrintConsole( "Error getting remote version of Bot Warfare.\n" );
|
||||
return false;
|
||||
}
|
||||
|
||||
if (level.bw_VERSION != remoteVersion)
|
||||
if ( level.bw_VERSION != remoteVersion )
|
||||
{
|
||||
PrintConsole("There is a new version of Bot Warfare!\n");
|
||||
PrintConsole("You are on version " + level.bw_VERSION + " but " + remoteVersion + " is available!\n");
|
||||
PrintConsole( "There is a new version of Bot Warfare!\n" );
|
||||
PrintConsole( "You are on version " + level.bw_VERSION + " but " + remoteVersion + " is available!\n" );
|
||||
return false;
|
||||
}
|
||||
|
||||
PrintConsole("You are on the latest version of Bot Warfare!\n");
|
||||
PrintConsole( "You are on the latest version of Bot Warfare!\n" );
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
Will attempt to retreive waypoints from the internet
|
||||
*/
|
||||
getRemoteWaypoints(mapname)
|
||||
getRemoteWaypoints( mapname )
|
||||
{
|
||||
url = "https://raw.githubusercontent.com/ineedbots/iw4x_waypoints/master/" + mapname + "_wp.csv";
|
||||
filename = "waypoints/" + mapname + "_wp.csv";
|
||||
|
||||
PrintConsole("Attempting to get remote waypoints from " + url + "\n");
|
||||
res = getLinesFromUrl(url, filename);
|
||||
PrintConsole( "Attempting to get remote waypoints from " + url + "\n" );
|
||||
res = getLinesFromUrl( url, filename );
|
||||
|
||||
if (!res.lines.size)
|
||||
if ( !res.lines.size )
|
||||
return;
|
||||
|
||||
waypointCount = int(res.lines[0]);
|
||||
waypointCount = int( res.lines[0] );
|
||||
|
||||
waypoints = [];
|
||||
PrintConsole("Loading remote waypoints...\n");
|
||||
PrintConsole( "Loading remote waypoints...\n" );
|
||||
|
||||
for (i = 1; i <= waypointCount; i++)
|
||||
for ( i = 1; i <= waypointCount; i++ )
|
||||
{
|
||||
tokens = tokenizeLine(res.lines[i], ",");
|
||||
tokens = tokenizeLine( res.lines[i], "," );
|
||||
|
||||
waypoint = parseTokensIntoWaypoint(tokens);
|
||||
waypoint = parseTokensIntoWaypoint( tokens );
|
||||
|
||||
waypoints[i-1] = waypoint;
|
||||
waypoints[i - 1] = waypoint;
|
||||
}
|
||||
|
||||
if (waypoints.size)
|
||||
if ( waypoints.size )
|
||||
{
|
||||
level.waypoints = waypoints;
|
||||
PrintConsole("Loaded " + waypoints.size + " waypoints from remote.\n");
|
||||
PrintConsole( "Loaded " + waypoints.size + " waypoints from remote.\n" );
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,43 +73,44 @@ getRemoteVersion()
|
||||
{
|
||||
request = httpGet( "https://raw.githubusercontent.com/ineedbots/iw4x_waypoints/master/version.txt" );
|
||||
|
||||
if (!isDefined(request))
|
||||
if ( !isDefined( request ) )
|
||||
return undefined;
|
||||
|
||||
request waittill( "done", success, data );
|
||||
|
||||
if (!success)
|
||||
if ( !success )
|
||||
return undefined;
|
||||
|
||||
return strtok(data, "\n")[0];
|
||||
return strtok( data, "\n" )[0];
|
||||
}
|
||||
|
||||
/*
|
||||
Returns an array of each line from the response of the http url request
|
||||
*/
|
||||
getLinesFromUrl(url, filename)
|
||||
getLinesFromUrl( url, filename )
|
||||
{
|
||||
result = spawnStruct();
|
||||
result.lines = [];
|
||||
|
||||
request = httpGet( url );
|
||||
|
||||
if (!isDefined(request))
|
||||
if ( !isDefined( request ) )
|
||||
return result;
|
||||
|
||||
request waittill( "done", success, data );
|
||||
|
||||
if (!success)
|
||||
if ( !success )
|
||||
return result;
|
||||
|
||||
fileWrite(filename, data, "write");
|
||||
fileWrite( filename, data, "write" );
|
||||
|
||||
line = "";
|
||||
for (i=0;i<data.size;i++)
|
||||
|
||||
for ( i = 0; i < data.size; i++ )
|
||||
{
|
||||
c = data[i];
|
||||
|
||||
if (c == "\n")
|
||||
if ( c == "\n" )
|
||||
{
|
||||
result.lines[result.lines.size] = line;
|
||||
|
||||
@ -119,6 +120,7 @@ getLinesFromUrl(url, filename)
|
||||
|
||||
line += c;
|
||||
}
|
||||
|
||||
result.lines[result.lines.size] = line;
|
||||
|
||||
return result;
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -12,81 +12,82 @@
|
||||
|
||||
init()
|
||||
{
|
||||
if(getDvar("bots_main_debug") == "")
|
||||
setDvar("bots_main_debug", 0);
|
||||
if ( getDvar( "bots_main_debug" ) == "" )
|
||||
setDvar( "bots_main_debug", 0 );
|
||||
|
||||
if(!getDVarint("bots_main_debug"))
|
||||
if ( !getDVarint( "bots_main_debug" ) )
|
||||
return;
|
||||
|
||||
if(!getDVarint("developer"))
|
||||
if ( !getDVarint( "developer" ) )
|
||||
{
|
||||
setdvar("developer_script", 1);
|
||||
setdvar("developer", 1);
|
||||
setdvar( "developer_script", 1 );
|
||||
setdvar( "developer", 1 );
|
||||
|
||||
setdvar("sv_mapRotation", "map "+getDvar("mapname"));
|
||||
exitLevel(false);
|
||||
setdvar( "sv_mapRotation", "map " + getDvar( "mapname" ) );
|
||||
exitLevel( false );
|
||||
}
|
||||
|
||||
setDvar("bots_main", 0);
|
||||
setdvar("bots_main_menu", 0);
|
||||
setdvar("bots_manage_fill_mode", 0);
|
||||
setdvar("bots_manage_fill", 0);
|
||||
setdvar("bots_manage_add", 0);
|
||||
setdvar("bots_manage_fill_kick", 1);
|
||||
setDvar("bots_manage_fill_spec", 1);
|
||||
setDvar( "bots_main", 0 );
|
||||
setdvar( "bots_main_menu", 0 );
|
||||
setdvar( "bots_manage_fill_mode", 0 );
|
||||
setdvar( "bots_manage_fill", 0 );
|
||||
setdvar( "bots_manage_add", 0 );
|
||||
setdvar( "bots_manage_fill_kick", 1 );
|
||||
setDvar( "bots_manage_fill_spec", 1 );
|
||||
|
||||
if (getDvar("bots_main_debug_distance") == "")
|
||||
setDvar("bots_main_debug_distance", 512.0);
|
||||
if ( getDvar( "bots_main_debug_distance" ) == "" )
|
||||
setDvar( "bots_main_debug_distance", 512.0 );
|
||||
|
||||
if (getDvar("bots_main_debug_cone") == "")
|
||||
setDvar("bots_main_debug_cone", 0.65);
|
||||
if ( getDvar( "bots_main_debug_cone" ) == "" )
|
||||
setDvar( "bots_main_debug_cone", 0.65 );
|
||||
|
||||
if (getDvar("bots_main_debug_minDist") == "")
|
||||
setDvar("bots_main_debug_minDist", 32.0);
|
||||
if ( getDvar( "bots_main_debug_minDist" ) == "" )
|
||||
setDvar( "bots_main_debug_minDist", 32.0 );
|
||||
|
||||
if (getDvar("bots_main_debug_drawThrough") == "")
|
||||
setDvar("bots_main_debug_drawThrough", false);
|
||||
if ( getDvar( "bots_main_debug_drawThrough" ) == "" )
|
||||
setDvar( "bots_main_debug_drawThrough", false );
|
||||
|
||||
setDvar("player_sustainAmmo", 1);
|
||||
setDvar( "player_sustainAmmo", 1 );
|
||||
|
||||
level.waypoints = [];
|
||||
level.waypointCount = 0;
|
||||
|
||||
level waittill( "connected", player);
|
||||
level waittill( "connected", player );
|
||||
player thread onPlayerSpawned();
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
for(;;)
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self waittill( "spawned_player" );
|
||||
self thread startDev();
|
||||
}
|
||||
}
|
||||
|
||||
StartDev()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
level.wpToLink = -1;
|
||||
level.autoLink = false;
|
||||
self.nearest = -1;
|
||||
|
||||
self takeAllWeapons();
|
||||
self giveWeapon("m16_gl_mp");//to knife windows
|
||||
self giveWeapon("javelin_mp");//to mark jav spots
|
||||
self giveWeapon( "m16_gl_mp" ); //to knife windows
|
||||
self giveWeapon( "javelin_mp" ); //to mark jav spots
|
||||
self SetOffhandPrimaryClass( "other" );
|
||||
self giveWeapon("semtex_mp");
|
||||
self giveWeapon( "semtex_mp" );
|
||||
self _clearperks();
|
||||
self.specialty = [];
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self freezecontrols(false);
|
||||
self maps\mp\perks\_perks::givePerk( "specialty_fastmantle" );
|
||||
self maps\mp\perks\_perks::givePerk( "specialty_falldamage" );
|
||||
self maps\mp\perks\_perks::givePerk( "specialty_marathon" );
|
||||
self maps\mp\perks\_perks::givePerk( "specialty_lightweight" );
|
||||
self freezecontrols( false );
|
||||
|
||||
self thread watchAddWaypointCommand();
|
||||
self thread watchDeleteAllWaypointsCommand();
|
||||
@ -104,44 +105,45 @@ StartDev()
|
||||
|
||||
sayExtras()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self iprintln("Before adding waypoints, holding buttons:");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self iprintln( "Before adding waypoints, holding buttons:" );
|
||||
wait 4;
|
||||
self iprintln("ADS - climb");
|
||||
self iprintln("Use + Attack - tube");
|
||||
self iprintln("Attack - grenade");
|
||||
self iprintln("Use - claymore");
|
||||
self iprintln( "ADS - climb" );
|
||||
self iprintln( "Use + Attack - tube" );
|
||||
self iprintln( "Attack - grenade" );
|
||||
self iprintln( "Use - claymore" );
|
||||
wait 4;
|
||||
self iprintln("Else the waypoint will be your stance.");
|
||||
self iprintln("Making a crouch waypoint with only one link...");
|
||||
self iprintln("Makes a camping waypoint.");
|
||||
self iprintln( "Else the waypoint will be your stance." );
|
||||
self iprintln( "Making a crouch waypoint with only one link..." );
|
||||
self iprintln( "Makes a camping waypoint." );
|
||||
}
|
||||
|
||||
watchAstarCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("astar", "+gostand");
|
||||
for (;;)
|
||||
self notifyOnPlayerCommand( "astar", "+gostand" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("astar");
|
||||
self waittill( "astar" );
|
||||
|
||||
if (1)
|
||||
if ( 1 )
|
||||
continue;
|
||||
|
||||
self iprintln("Start AStar");
|
||||
self iprintln( "Start AStar" );
|
||||
self.astar = undefined;
|
||||
astar = spawnStruct();
|
||||
astar.start = self.origin;
|
||||
|
||||
self waittill("astar");
|
||||
self iprintln("End AStar");
|
||||
self waittill( "astar" );
|
||||
self iprintln( "End AStar" );
|
||||
astar.goal = self.origin;
|
||||
|
||||
astar.nodes = AStarSearch(astar.start, astar.goal, undefined, true);
|
||||
self iprintln("AStar size: " + astar.nodes.size);
|
||||
astar.nodes = AStarSearch( astar.start, astar.goal, undefined, true );
|
||||
self iprintln( "AStar size: " + astar.nodes.size );
|
||||
|
||||
self.astar = astar;
|
||||
}
|
||||
@ -149,141 +151,147 @@ watchAstarCommand()
|
||||
|
||||
updateWaypointsStats()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self initHudElem("TotalWps:",102,5);
|
||||
totalWpsHud = self initHudElem("",180,5);
|
||||
self initHudElem("NearestWP:",102,15);
|
||||
nearestWP = self initHudElem("",180,15);
|
||||
self initHudElem("Childs:",102,25);
|
||||
children = self initHudElem("",160,25);
|
||||
self initHudElem("Type:",102,35);
|
||||
type = self initHudElem("",160,35);
|
||||
self initHudElem("ToLink:",102,45);
|
||||
wpToLink = self initHudElem("",160,45);
|
||||
self initHudElem( "TotalWps:", 102, 5 );
|
||||
totalWpsHud = self initHudElem( "", 180, 5 );
|
||||
self initHudElem( "NearestWP:", 102, 15 );
|
||||
nearestWP = self initHudElem( "", 180, 15 );
|
||||
self initHudElem( "Childs:", 102, 25 );
|
||||
children = self initHudElem( "", 160, 25 );
|
||||
self initHudElem( "Type:", 102, 35 );
|
||||
type = self initHudElem( "", 160, 35 );
|
||||
self initHudElem( "ToLink:", 102, 45 );
|
||||
wpToLink = self initHudElem( "", 160, 45 );
|
||||
|
||||
infotext = self initHudElem2();
|
||||
self initHudElem3();
|
||||
self initHudElem4();
|
||||
|
||||
for(time=0;;time+=0.05)
|
||||
for ( time = 0;; time += 0.05 )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
totalWpsHud setText(level.waypointCount);
|
||||
totalWpsHud setText( level.waypointCount );
|
||||
|
||||
closest = -1;
|
||||
myEye = self getEye();
|
||||
myAngles = self GetPlayerAngles();
|
||||
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 ) )
|
||||
closest = i;
|
||||
|
||||
wpOrg = level.waypoints[i].origin + (0, 0, 25);
|
||||
wpOrg = level.waypoints[i].origin + ( 0, 0, 25 );
|
||||
|
||||
if(distance(level.waypoints[i].origin, self.origin) < getDvarFloat("bots_main_debug_distance") && (bulletTracePassed(myEye, wpOrg, false, self) || getDVarint("bots_main_debug_drawThrough")))
|
||||
if ( distance( level.waypoints[i].origin, self.origin ) < getDvarFloat( "bots_main_debug_distance" ) && ( bulletTracePassed( myEye, wpOrg, false, self ) || getDVarint( "bots_main_debug_drawThrough" ) ) )
|
||||
{
|
||||
for(h = level.waypoints[i].children.size - 1; h >= 0; h--)
|
||||
line(wpOrg, level.waypoints[level.waypoints[i].children[h]].origin + (0, 0, 25), (1,0,1));
|
||||
for ( h = level.waypoints[i].children.size - 1; h >= 0; h-- )
|
||||
line( wpOrg, level.waypoints[level.waypoints[i].children[h]].origin + ( 0, 0, 25 ), ( 1, 0, 1 ) );
|
||||
|
||||
if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone"))
|
||||
print3d(wpOrg, i, (1,0,0), 2);
|
||||
if ( getConeDot( wpOrg, myEye, myAngles ) > getDvarFloat( "bots_main_debug_cone" ) )
|
||||
print3d( wpOrg, i, ( 1, 0, 0 ), 2 );
|
||||
|
||||
if (isDefined(level.waypoints[i].angles) && level.waypoints[i].type != "stand")
|
||||
line(wpOrg, wpOrg + AnglesToForward(level.waypoints[i].angles) * 64, (1,1,1));
|
||||
if ( isDefined( level.waypoints[i].angles ) && level.waypoints[i].type != "stand" )
|
||||
line( wpOrg, wpOrg + AnglesToForward( level.waypoints[i].angles ) * 64, ( 1, 1, 1 ) );
|
||||
|
||||
if (isDefined(level.waypoints[i].jav_point))
|
||||
line(wpOrg, level.waypoints[i].jav_point, (0,0,0));
|
||||
if ( isDefined( level.waypoints[i].jav_point ) )
|
||||
line( wpOrg, level.waypoints[i].jav_point, ( 0, 0, 0 ) );
|
||||
}
|
||||
}
|
||||
|
||||
self.nearest = closest;
|
||||
|
||||
nearestWP setText(self.nearest);
|
||||
nearestWP setText( self.nearest );
|
||||
|
||||
children setText(buildChildCountString(self.nearest));
|
||||
children setText( buildChildCountString( self.nearest ) );
|
||||
|
||||
type setText(buildTypeString(self.nearest));
|
||||
type setText( buildTypeString( self.nearest ) );
|
||||
|
||||
wpToLink setText(level.wpToLink);
|
||||
wpToLink setText( level.wpToLink );
|
||||
|
||||
infotext.x = infotext.x - 2;
|
||||
if(infotext.x <= -800)
|
||||
|
||||
if ( infotext.x <= -800 )
|
||||
infotext.x = 800;
|
||||
|
||||
if (self UseButtonPressed() && time > 2)
|
||||
if ( self UseButtonPressed() && time > 2 )
|
||||
{
|
||||
time = 0;
|
||||
self iPrintLnBold(self.nearest + " children: " + buildChildString(self.nearest));
|
||||
self iPrintLnBold( self.nearest + " children: " + buildChildString( self.nearest ) );
|
||||
}
|
||||
|
||||
if (isDefined(self.astar))
|
||||
if ( isDefined( self.astar ) )
|
||||
{
|
||||
print3d(self.astar.start + (0, 0, 35), "start", (0,0,1), 2);
|
||||
print3d(self.astar.goal + (0, 0, 35), "goal", (0,0,1), 2);
|
||||
print3d( self.astar.start + ( 0, 0, 35 ), "start", ( 0, 0, 1 ), 2 );
|
||||
print3d( self.astar.goal + ( 0, 0, 35 ), "goal", ( 0, 0, 1 ), 2 );
|
||||
|
||||
prev = self.astar.start + (0, 0, 35);
|
||||
prev = self.astar.start + ( 0, 0, 35 );
|
||||
|
||||
for (i = self.astar.nodes.size - 1; i >= 0; i--)
|
||||
for ( i = self.astar.nodes.size - 1; i >= 0; i-- )
|
||||
{
|
||||
node = self.astar.nodes[i];
|
||||
|
||||
line(prev, level.waypoints[node].origin + (0, 0, 35), (0,1,1));
|
||||
line( prev, level.waypoints[node].origin + ( 0, 0, 35 ), ( 0, 1, 1 ) );
|
||||
|
||||
prev = level.waypoints[node].origin + (0, 0, 35);
|
||||
prev = level.waypoints[node].origin + ( 0, 0, 35 );
|
||||
}
|
||||
|
||||
line(prev, self.astar.goal + (0, 0, 35), (0,1,1));
|
||||
line( prev, self.astar.goal + ( 0, 0, 35 ), ( 0, 1, 1 ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
watchLoadWaypointsCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+actionslot 2}]", "+actionslot 2");
|
||||
for( ;; )
|
||||
self notifyOnPlayerCommand( "[{+actionslot 2}]", "+actionslot 2" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+actionslot 2}]");
|
||||
self waittill( "[{+actionslot 2}]" );
|
||||
self LoadWaypoints();
|
||||
}
|
||||
}
|
||||
|
||||
watchAddWaypointCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+smoke}]", "+smoke");
|
||||
for( ;; )
|
||||
self notifyOnPlayerCommand( "[{+smoke}]", "+smoke" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+smoke}]");
|
||||
self waittill( "[{+smoke}]" );
|
||||
self AddWaypoint();
|
||||
}
|
||||
}
|
||||
|
||||
watchAutoLinkCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+frag}]", "+frag");
|
||||
for( ;; )
|
||||
self notifyOnPlayerCommand( "[{+frag}]", "+frag" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+frag}]");
|
||||
if(level.autoLink)
|
||||
self waittill( "[{+frag}]" );
|
||||
|
||||
if ( level.autoLink )
|
||||
{
|
||||
self iPrintlnBold("Auto link disabled");
|
||||
self iPrintlnBold( "Auto link disabled" );
|
||||
level.autoLink = false;
|
||||
level.wpToLink = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
self iPrintlnBold("Auto link enabled");
|
||||
self iPrintlnBold( "Auto link enabled" );
|
||||
level.autoLink = true;
|
||||
level.wpToLink = self.nearest;
|
||||
}
|
||||
@ -292,136 +300,148 @@ watchAutoLinkCommand()
|
||||
|
||||
watchLinkWaypointCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+melee}]", "+melee");
|
||||
for( ;; )
|
||||
self notifyOnPlayerCommand( "[{+melee}]", "+melee" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+melee}]");
|
||||
self LinkWaypoint(self.nearest);
|
||||
self waittill( "[{+melee}]" );
|
||||
self LinkWaypoint( self.nearest );
|
||||
}
|
||||
}
|
||||
|
||||
watchUnlinkWaypointCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+reload}]", "+reload");
|
||||
for( ;; )
|
||||
self notifyOnPlayerCommand( "[{+reload}]", "+reload" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+reload}]");
|
||||
self UnLinkWaypoint(self.nearest);
|
||||
self waittill( "[{+reload}]" );
|
||||
self UnLinkWaypoint( self.nearest );
|
||||
}
|
||||
}
|
||||
|
||||
watchDeleteWaypointCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+actionslot 3}]", "+actionslot 3");
|
||||
for( ;; )
|
||||
self notifyOnPlayerCommand( "[{+actionslot 3}]", "+actionslot 3" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+actionslot 3}]");
|
||||
self DeleteWaypoint(self.nearest);
|
||||
self waittill( "[{+actionslot 3}]" );
|
||||
self DeleteWaypoint( self.nearest );
|
||||
}
|
||||
}
|
||||
|
||||
watchDeleteAllWaypointsCommand()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+actionslot 4}]", "+actionslot 4");
|
||||
for( ;; )
|
||||
self notifyOnPlayerCommand( "[{+actionslot 4}]", "+actionslot 4" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+actionslot 4}]");
|
||||
self waittill( "[{+actionslot 4}]" );
|
||||
self DeleteAllWaypoints();
|
||||
}
|
||||
}
|
||||
|
||||
watchSaveWaypointsCommand()
|
||||
{
|
||||
self endon("death");
|
||||
self endon("disconnect");
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
|
||||
self notifyOnPlayerCommand("[{+actionslot 1}]", "+actionslot 1");
|
||||
for(;;)
|
||||
self notifyOnPlayerCommand( "[{+actionslot 1}]", "+actionslot 1" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill("[{+actionslot 1}]");
|
||||
self waittill( "[{+actionslot 1}]" );
|
||||
|
||||
self checkForWarnings();
|
||||
wait 1;
|
||||
|
||||
logprint("***********ABiliTy's WPDump**************\n\n");
|
||||
logprint("\n\n\n\n");
|
||||
mpnm=getMapName(getdvar("mapname"));
|
||||
logprint("\n\n"+mpnm+"()\n{\n/*");
|
||||
logprint("*/waypoints = [];\n/*");
|
||||
for(i = 0; i < level.waypointCount; i++)
|
||||
logprint( "***********ABiliTy's WPDump**************\n\n" );
|
||||
logprint( "\n\n\n\n" );
|
||||
mpnm = getMapName( getdvar( "mapname" ) );
|
||||
logprint( "\n\n" + mpnm + "()\n{\n/*" );
|
||||
logprint( "*/waypoints = [];\n/*" );
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
logprint("*/waypoints["+i+"] = spawnstruct();\n/*");
|
||||
logprint("*/waypoints["+i+"].origin = "+level.waypoints[i].origin+";\n/*");
|
||||
logprint("*/waypoints["+i+"].type = \""+level.waypoints[i].type+"\";\n/*");
|
||||
for(c = 0; c < level.waypoints[i].children.size; c++)
|
||||
logprint( "*/waypoints[" + i + "] = spawnstruct();\n/*" );
|
||||
logprint( "*/waypoints[" + i + "].origin = " + level.waypoints[i].origin + ";\n/*" );
|
||||
logprint( "*/waypoints[" + i + "].type = \"" + level.waypoints[i].type + "\";\n/*" );
|
||||
|
||||
for ( c = 0; c < level.waypoints[i].children.size; c++ )
|
||||
{
|
||||
logprint("*/waypoints["+i+"].children["+c+"] = "+level.waypoints[i].children[c]+";\n/*");
|
||||
logprint( "*/waypoints[" + i + "].children[" + c + "] = " + level.waypoints[i].children[c] + ";\n/*" );
|
||||
}
|
||||
if(isDefined(level.waypoints[i].angles) && (level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || (level.waypoints[i].type == "crouch" && level.waypoints[i].children.size == 1) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade"))
|
||||
logprint("*/waypoints["+i+"].angles = "+level.waypoints[i].angles+";\n/*");
|
||||
|
||||
if (isDefined(level.waypoints[i].jav_point) && level.waypoints[i].type == "javelin")
|
||||
logprint("*/waypoints["+i+"].jav_point = "+level.waypoints[i].jav_point+";\n/*");
|
||||
if ( isDefined( level.waypoints[i].angles ) && ( level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || ( level.waypoints[i].type == "crouch" && level.waypoints[i].children.size == 1 ) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade" ) )
|
||||
logprint( "*/waypoints[" + i + "].angles = " + level.waypoints[i].angles + ";\n/*" );
|
||||
|
||||
if ( isDefined( level.waypoints[i].jav_point ) && level.waypoints[i].type == "javelin" )
|
||||
logprint( "*/waypoints[" + i + "].jav_point = " + level.waypoints[i].jav_point + ";\n/*" );
|
||||
}
|
||||
logprint("*/return waypoints;\n}\n\n\n\n");
|
||||
|
||||
filename = "waypoints/" + getdvar("mapname") + "_wp.csv";
|
||||
logprint( "*/return waypoints;\n}\n\n\n\n" );
|
||||
|
||||
PrintLn("********* Start Bot Warfare WPDump *********");
|
||||
PrintLn(level.waypointCount);
|
||||
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
|
||||
|
||||
fileWrite(filename, level.waypointCount+"\n", "write");
|
||||
for(i = 0; i < level.waypointCount; i++)
|
||||
PrintLn( "********* Start Bot Warfare WPDump *********" );
|
||||
PrintLn( level.waypointCount );
|
||||
|
||||
fileWrite( filename, level.waypointCount + "\n", "write" );
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
str = "";
|
||||
wp = level.waypoints[i];
|
||||
|
||||
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
|
||||
|
||||
for(h = 0; h < wp.children.size; h++)
|
||||
for ( h = 0; h < wp.children.size; h++ )
|
||||
{
|
||||
str += wp.children[h];
|
||||
|
||||
if (h < wp.children.size - 1)
|
||||
if ( h < wp.children.size - 1 )
|
||||
str += " ";
|
||||
}
|
||||
|
||||
str += "," + wp.type + ",";
|
||||
|
||||
if (isDefined(wp.angles))
|
||||
if ( isDefined( wp.angles ) )
|
||||
str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ",";
|
||||
else
|
||||
str += ",";
|
||||
|
||||
if (isDefined(wp.jav_point))
|
||||
if ( isDefined( wp.jav_point ) )
|
||||
str += wp.jav_point[0] + " " + wp.jav_point[1] + " " + wp.jav_point[2] + ",";
|
||||
else
|
||||
str += ",";
|
||||
|
||||
PrintLn(str);
|
||||
fileWrite(filename, str+"\n", "append");
|
||||
PrintLn( str );
|
||||
fileWrite( filename, str + "\n", "append" );
|
||||
}
|
||||
PrintLn("\n\n\n\n\n\n");
|
||||
|
||||
self iprintln("Saved!!! to " + filename);
|
||||
PrintLn( "\n\n\n\n\n\n" );
|
||||
|
||||
self iprintln( "Saved!!! to " + filename );
|
||||
}
|
||||
}
|
||||
|
||||
LoadWaypoints()
|
||||
{
|
||||
self DeleteAllWaypoints();
|
||||
self iPrintlnBold("Loading WPS...");
|
||||
self iPrintlnBold( "Loading WPS..." );
|
||||
load_waypoints();
|
||||
|
||||
wait 1;
|
||||
@ -431,114 +451,115 @@ LoadWaypoints()
|
||||
|
||||
checkForWarnings()
|
||||
{
|
||||
if(level.waypointCount <= 0)
|
||||
self iprintln("WARNING: waypointCount is "+level.waypointCount);
|
||||
if ( level.waypointCount <= 0 )
|
||||
self iprintln( "WARNING: waypointCount is " + level.waypointCount );
|
||||
|
||||
if(level.waypointCount != level.waypoints.size)
|
||||
self iprintln("WARNING: waypointCount is not "+level.waypoints.size);
|
||||
if ( level.waypointCount != 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] ) )
|
||||
{
|
||||
self iprintln("WARNING: waypoint "+i+" is undefined");
|
||||
self iprintln( "WARNING: waypoint " + i + " is undefined" );
|
||||
continue;
|
||||
}
|
||||
|
||||
if(level.waypoints[i].children.size <= 0)
|
||||
self iprintln("WARNING: waypoint "+i+" childCount is "+level.waypoints[i].children.size);
|
||||
if ( level.waypoints[i].children.size <= 0 )
|
||||
self iprintln( "WARNING: waypoint " + i + " childCount is " + level.waypoints[i].children.size );
|
||||
else
|
||||
{
|
||||
if (!isDefined(level.waypoints[i].children) || !isDefined(level.waypoints[i].children.size))
|
||||
if ( !isDefined( level.waypoints[i].children ) || !isDefined( level.waypoints[i].children.size ) )
|
||||
{
|
||||
self iprintln("WARNING: waypoint "+i+" children is not defined");
|
||||
self iprintln( "WARNING: waypoint " + i + " children is not defined" );
|
||||
}
|
||||
else
|
||||
{
|
||||
for(h = level.waypoints[i].children.size - 1; h >= 0; h--)
|
||||
for ( h = level.waypoints[i].children.size - 1; h >= 0; h-- )
|
||||
{
|
||||
child = level.waypoints[i].children[h];
|
||||
|
||||
if(!isDefined(level.waypoints[child]))
|
||||
self iprintln("WARNING: waypoint "+i+" child "+child+" is undefined");
|
||||
else if(child == i)
|
||||
self iprintln("WARNING: waypoint "+i+" child "+child+" is itself");
|
||||
if ( !isDefined( level.waypoints[child] ) )
|
||||
self iprintln( "WARNING: waypoint " + i + " child " + child + " is undefined" );
|
||||
else if ( child == i )
|
||||
self iprintln( "WARNING: waypoint " + i + " child " + child + " is itself" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isDefined(level.waypoints[i].type))
|
||||
if ( !isDefined( level.waypoints[i].type ) )
|
||||
{
|
||||
self iprintln("WARNING: waypoint "+i+" type is undefined");
|
||||
self iprintln( "WARNING: waypoint " + i + " type is undefined" );
|
||||
continue;
|
||||
}
|
||||
|
||||
if (level.waypoints[i].type == "javelin" && !isDefined(level.waypoints[i].jav_point))
|
||||
self iprintln("WARNING: waypoint "+i+" jav_point is undefined");
|
||||
if ( level.waypoints[i].type == "javelin" && !isDefined( level.waypoints[i].jav_point ) )
|
||||
self iprintln( "WARNING: waypoint " + i + " jav_point is undefined" );
|
||||
|
||||
if(!isDefined(level.waypoints[i].angles) && (level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || (level.waypoints[i].type == "crouch" && level.waypoints[i].children.size == 1) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade"))
|
||||
self iprintln("WARNING: waypoint "+i+" angles is undefined");
|
||||
if ( !isDefined( level.waypoints[i].angles ) && ( level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || ( level.waypoints[i].type == "crouch" && level.waypoints[i].children.size == 1 ) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade" ) )
|
||||
self iprintln( "WARNING: waypoint " + i + " angles is undefined" );
|
||||
}
|
||||
}
|
||||
|
||||
UnLinkWaypoint(nwp)
|
||||
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;
|
||||
return;
|
||||
}
|
||||
|
||||
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
||||
if ( level.wpToLink == -1 || nwp == level.wpToLink )
|
||||
{
|
||||
level.wpToLink = nwp;
|
||||
self iprintln("Waypoint Unlink Started "+nwp);
|
||||
self iprintln( "Waypoint Unlink Started " + nwp );
|
||||
return;
|
||||
}
|
||||
|
||||
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[nwp].children = array_remove( level.waypoints[nwp].children, level.wpToLink );
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
return;
|
||||
}
|
||||
|
||||
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
||||
if ( level.wpToLink == -1 || nwp == level.wpToLink )
|
||||
{
|
||||
level.wpToLink = nwp;
|
||||
self iprintln("Waypoint Link Started "+nwp);
|
||||
self iprintln( "Waypoint Link Started " + nwp );
|
||||
return;
|
||||
}
|
||||
|
||||
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];
|
||||
|
||||
if(child == nwp)
|
||||
if ( child == nwp )
|
||||
{
|
||||
weGood = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(weGood)
|
||||
if ( weGood )
|
||||
{
|
||||
for(i = level.waypoints[nwp].children.size - 1; i >= 0; i--)
|
||||
for ( i = level.waypoints[nwp].children.size - 1; i >= 0; i-- )
|
||||
{
|
||||
child = level.waypoints[nwp].children[i];
|
||||
|
||||
if(child == level.wpToLink)
|
||||
if ( child == level.wpToLink )
|
||||
{
|
||||
weGood = false;
|
||||
break;
|
||||
@ -546,9 +567,9 @@ 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;
|
||||
return;
|
||||
}
|
||||
@ -556,32 +577,32 @@ LinkWaypoint(nwp)
|
||||
level.waypoints[level.wpToLink].children[level.waypoints[level.wpToLink].children.size] = nwp;
|
||||
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;
|
||||
}
|
||||
|
||||
DeleteWaypoint(nwp)
|
||||
DeleteWaypoint( 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("No close enough waypoint to delete.");
|
||||
self iprintln( "No close enough waypoint to delete." );
|
||||
return;
|
||||
}
|
||||
|
||||
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-- )
|
||||
{
|
||||
child = level.waypoints[nwp].children[i];
|
||||
|
||||
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-- )
|
||||
{
|
||||
if(level.waypoints[i].children[h] > nwp)
|
||||
if ( level.waypoints[i].children[h] > nwp )
|
||||
level.waypoints[i].children[h]--;
|
||||
}
|
||||
}
|
||||
@ -590,18 +611,20 @@ DeleteWaypoint(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++;
|
||||
}
|
||||
|
||||
level.waypoints[entry] = undefined;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
level.waypointCount--;
|
||||
|
||||
self iprintln("DelWp "+nwp);
|
||||
self iprintln( "DelWp " + nwp );
|
||||
}
|
||||
|
||||
AddWaypoint()
|
||||
@ -611,15 +634,15 @@ AddWaypoint()
|
||||
pos = self getOrigin();
|
||||
level.waypoints[level.waypointCount].origin = pos;
|
||||
|
||||
if (isDefined(self.javelinTargetPoint))
|
||||
if ( isDefined( self.javelinTargetPoint ) )
|
||||
level.waypoints[level.waypointCount].type = "javelin";
|
||||
else if(self AdsButtonPressed())
|
||||
else if ( self AdsButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "climb";
|
||||
else if(self AttackButtonPressed() && self UseButtonPressed())
|
||||
else if ( self AttackButtonPressed() && self UseButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "tube";
|
||||
else if(self AttackButtonPressed())
|
||||
else if ( self AttackButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "grenade";
|
||||
else if(self UseButtonPressed())
|
||||
else if ( self UseButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "claymore";
|
||||
else
|
||||
level.waypoints[level.waypointCount].type = self getStance();
|
||||
@ -628,20 +651,20 @@ AddWaypoint()
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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.waypointCount++;
|
||||
self LinkWaypoint(level.waypointCount - 1);
|
||||
self LinkWaypoint( level.waypointCount - 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -654,7 +677,7 @@ DeleteAllWaypoints()
|
||||
level.waypoints = [];
|
||||
level.waypointCount = 0;
|
||||
|
||||
self iprintln("DelAllWps");
|
||||
self iprintln( "DelAllWps" );
|
||||
}
|
||||
|
||||
buildChildCountString ( wp )
|
||||
@ -674,12 +697,12 @@ buildChildString( wp )
|
||||
|
||||
wpstr = "";
|
||||
|
||||
for(i = 0; i < level.waypoints[wp].children.size; i++)
|
||||
for ( i = 0; i < level.waypoints[wp].children.size; i++ )
|
||||
{
|
||||
if(i != 0)
|
||||
if ( i != 0 )
|
||||
wpstr = wpstr + "," + level.waypoints[wp].children[i];
|
||||
else
|
||||
wpstr= wpstr + level.waypoints[wp].children[i];
|
||||
wpstr = wpstr + level.waypoints[wp].children[i];
|
||||
}
|
||||
|
||||
return wpstr;
|
||||
@ -693,17 +716,17 @@ buildTypeString( wp )
|
||||
return level.waypoints[wp].type;
|
||||
}
|
||||
|
||||
destroyOnDeath(hud)
|
||||
destroyOnDeath( hud )
|
||||
{
|
||||
hud endon("death");
|
||||
self waittill_either("death","disconnect");
|
||||
hud endon( "death" );
|
||||
self waittill_either( "death", "disconnect" );
|
||||
hud destroy();
|
||||
}
|
||||
|
||||
initHudElem(txt, xl, yl)
|
||||
initHudElem( txt, xl, yl )
|
||||
{
|
||||
hud = NewClientHudElem( self );
|
||||
hud setText(txt);
|
||||
hud setText( txt );
|
||||
hud.alignX = "left";
|
||||
hud.alignY = "top";
|
||||
hud.horzAlign = "left";
|
||||
@ -727,7 +750,7 @@ initHudElem(txt, xl, yl)
|
||||
initHudElem2()
|
||||
{
|
||||
infotext = NewHudElem();
|
||||
infotext setText("^1[{+smoke}]-AddWp ^2[{+melee}]-LinkWp ^3[{+reload}]-UnLinkWp ^4[{+actionslot 3}]-DeleteWp ^5[{+actionslot 4}]-DelAllWps ^6[{+actionslot 2}]-LoadWPS ^7[{+actionslot 1}]-SaveWp");
|
||||
infotext setText( "^1[{+smoke}]-AddWp ^2[{+melee}]-LinkWp ^3[{+reload}]-UnLinkWp ^4[{+actionslot 3}]-DeleteWp ^5[{+actionslot 4}]-DelAllWps ^6[{+actionslot 2}]-LoadWPS ^7[{+actionslot 1}]-SaveWp" );
|
||||
infotext.alignX = "center";
|
||||
infotext.alignY = "bottom";
|
||||
infotext.horzAlign = "center";
|
||||
@ -750,7 +773,7 @@ initHudElem2()
|
||||
|
||||
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.alignY = "bottom";
|
||||
bar.horzAlign = "center";
|
||||
@ -772,7 +795,7 @@ initHudElem4()
|
||||
OptionsBG.alignY = "top";
|
||||
OptionsBG.horzAlign = "left";
|
||||
OptionsBG.vertAlign = "top";
|
||||
OptionsBG setshader("black", 200, 60);
|
||||
OptionsBG setshader( "black", 200, 60 );
|
||||
OptionsBG.alpha = 0.4;
|
||||
|
||||
self thread destroyOnDeath( OptionsBG );
|
||||
|
Loading…
x
Reference in New Issue
Block a user