mirror of
https://github.com/ineedbots/t4_bot_warfare.git
synced 2025-04-21 07:25:44 +00:00
curly braces, spacing, formatting, casing
This commit is contained in:
parent
5cf6960371
commit
f58a9826ea
@ -8,154 +8,236 @@
|
|||||||
*/
|
*/
|
||||||
init()
|
init()
|
||||||
{
|
{
|
||||||
level.bw_VERSION = "2.1.0";
|
level.bw_version = "2.1.0";
|
||||||
|
|
||||||
if ( getDvar( "bots_main" ) == "" )
|
if ( getdvar( "bots_main" ) == "" )
|
||||||
setDvar( "bots_main", true );
|
{
|
||||||
|
setdvar( "bots_main", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !getDvarInt( "bots_main" ) )
|
if ( !getdvarint( "bots_main" ) )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !wait_for_builtins() )
|
if ( !wait_for_builtins() )
|
||||||
PrintLn( "FATAL: NO BUILT-INS FOR BOTS" );
|
{
|
||||||
|
println( "FATAL: NO BUILT-INS FOR BOTS" );
|
||||||
|
}
|
||||||
|
|
||||||
thread load_waypoints();
|
thread load_waypoints();
|
||||||
cac_init_patch();
|
cac_init_patch();
|
||||||
thread hook_callbacks();
|
thread hook_callbacks();
|
||||||
|
|
||||||
if ( getDvar( "bots_main_GUIDs" ) == "" )
|
if ( getdvar( "bots_main_GUIDs" ) == "" )
|
||||||
setDvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
|
{
|
||||||
|
setdvar( "bots_main_GUIDs", "" ); // guids of players who will be given host powers, comma seperated
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_main_firstIsHost" ) == "" )
|
if ( getdvar( "bots_main_firstIsHost" ) == "" )
|
||||||
setDvar( "bots_main_firstIsHost", true ); //first player to connect is a host
|
{
|
||||||
|
setdvar( "bots_main_firstIsHost", true ); // first player to connect is a host
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_main_waitForHostTime" ) == "" )
|
if ( getdvar( "bots_main_waitForHostTime" ) == "" )
|
||||||
setDvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
|
{
|
||||||
|
setdvar( "bots_main_waitForHostTime", 10.0 ); // how long to wait to wait for the host player
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_main_kickBotsAtEnd" ) == "" )
|
if ( getdvar( "bots_main_kickBotsAtEnd" ) == "" )
|
||||||
setDvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
|
{
|
||||||
|
setdvar( "bots_main_kickBotsAtEnd", false ); // kicks the bots at game end
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_manage_add" ) == "" )
|
if ( getdvar( "bots_manage_add" ) == "" )
|
||||||
setDvar( "bots_manage_add", 0 ); //amount of bots to add to the game
|
{
|
||||||
|
setdvar( "bots_manage_add", 0 ); // amount of bots to add to the game
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_manage_fill" ) == "" )
|
if ( getdvar( "bots_manage_fill" ) == "" )
|
||||||
setDvar( "bots_manage_fill", 0 ); //amount of bots to maintain
|
{
|
||||||
|
setdvar( "bots_manage_fill", 0 ); // amount of bots to maintain
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_manage_fill_spec" ) == "" )
|
if ( getdvar( "bots_manage_fill_spec" ) == "" )
|
||||||
setDvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team
|
{
|
||||||
|
setdvar( "bots_manage_fill_spec", true ); // to count for fill if player is on spec team
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_manage_fill_mode" ) == "" )
|
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
|
{
|
||||||
|
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" ) == "" )
|
if ( getdvar( "bots_manage_fill_kick" ) == "" )
|
||||||
setDvar( "bots_manage_fill_kick", false ); //kick bots if too many
|
{
|
||||||
|
setdvar( "bots_manage_fill_kick", false ); // kick bots if too many
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_team" ) == "" )
|
if ( getdvar( "bots_team" ) == "" )
|
||||||
setDvar( "bots_team", "autoassign" ); //which team for bots to join
|
{
|
||||||
|
setdvar( "bots_team", "autoassign" ); // which team for bots to join
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_team_amount" ) == "" )
|
if ( getdvar( "bots_team_amount" ) == "" )
|
||||||
setDvar( "bots_team_amount", 0 ); //amount of bots on axis team
|
{
|
||||||
|
setdvar( "bots_team_amount", 0 ); // amount of bots on axis team
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_team_force" ) == "" )
|
if ( getdvar( "bots_team_force" ) == "" )
|
||||||
setDvar( "bots_team_force", false ); //force bots on team
|
{
|
||||||
|
setdvar( "bots_team_force", false ); // force bots on team
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_team_mode" ) == "" )
|
if ( getdvar( "bots_team_mode" ) == "" )
|
||||||
setDvar( "bots_team_mode", 0 ); //counts just bots when 1
|
{
|
||||||
|
setdvar( "bots_team_mode", 0 ); // counts just bots when 1
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_skill" ) == "" )
|
if ( getdvar( "bots_skill" ) == "" )
|
||||||
setDvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
{
|
||||||
|
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" ) == "" )
|
if ( getdvar( "bots_skill_axis_hard" ) == "" )
|
||||||
setDvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team
|
{
|
||||||
|
setdvar( "bots_skill_axis_hard", 0 ); // amount of hard bots on axis team
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_skill_axis_med" ) == "" )
|
if ( getdvar( "bots_skill_axis_med" ) == "" )
|
||||||
setDvar( "bots_skill_axis_med", 0 );
|
{
|
||||||
|
setdvar( "bots_skill_axis_med", 0 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_skill_allies_hard" ) == "" )
|
if ( getdvar( "bots_skill_allies_hard" ) == "" )
|
||||||
setDvar( "bots_skill_allies_hard", 0 );
|
{
|
||||||
|
setdvar( "bots_skill_allies_hard", 0 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_skill_allies_med" ) == "" )
|
if ( getdvar( "bots_skill_allies_med" ) == "" )
|
||||||
setDvar( "bots_skill_allies_med", 0 );
|
{
|
||||||
|
setdvar( "bots_skill_allies_med", 0 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_skill_min" ) == "" )
|
if ( getdvar( "bots_skill_min" ) == "" )
|
||||||
setDvar( "bots_skill_min", 1 );
|
{
|
||||||
|
setdvar( "bots_skill_min", 1 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_skill_max" ) == "" )
|
if ( getdvar( "bots_skill_max" ) == "" )
|
||||||
setDvar( "bots_skill_max", 7 );
|
{
|
||||||
|
setdvar( "bots_skill_max", 7 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_loadout_reasonable" ) == "" ) //filter out the bad 'guns' and perks
|
if ( getdvar( "bots_loadout_reasonable" ) == "" ) // filter out the bad 'guns' and perks
|
||||||
setDvar( "bots_loadout_reasonable", false );
|
{
|
||||||
|
setdvar( "bots_loadout_reasonable", false );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_loadout_allow_op" ) == "" ) //allows jug, marty and laststand
|
if ( getdvar( "bots_loadout_allow_op" ) == "" ) // allows jug, marty and laststand
|
||||||
setDvar( "bots_loadout_allow_op", true );
|
{
|
||||||
|
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
|
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 );
|
{
|
||||||
|
setdvar( "bots_loadout_rank", -1 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random
|
if ( getdvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random
|
||||||
setDvar( "bots_loadout_prestige", -1 );
|
{
|
||||||
|
setdvar( "bots_loadout_prestige", -1 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_move" ) == "" ) //bots move
|
if ( getdvar( "bots_play_move" ) == "" ) // bots move
|
||||||
setDvar( "bots_play_move", true );
|
{
|
||||||
|
setdvar( "bots_play_move", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_knife" ) == "" ) //bots knife
|
if ( getdvar( "bots_play_knife" ) == "" ) // bots knife
|
||||||
setDvar( "bots_play_knife", true );
|
{
|
||||||
|
setdvar( "bots_play_knife", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_fire" ) == "" ) //bots fire
|
if ( getdvar( "bots_play_fire" ) == "" ) // bots fire
|
||||||
setDvar( "bots_play_fire", true );
|
{
|
||||||
|
setdvar( "bots_play_fire", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_nade" ) == "" ) //bots grenade
|
if ( getdvar( "bots_play_nade" ) == "" ) // bots grenade
|
||||||
setDvar( "bots_play_nade", true );
|
{
|
||||||
|
setdvar( "bots_play_nade", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_obj" ) == "" ) //bots play the obj
|
if ( getdvar( "bots_play_obj" ) == "" ) // bots play the obj
|
||||||
setDvar( "bots_play_obj", true );
|
{
|
||||||
|
setdvar( "bots_play_obj", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_camp" ) == "" ) //bots camp and follow
|
if ( getdvar( "bots_play_camp" ) == "" ) // bots camp and follow
|
||||||
setDvar( "bots_play_camp", true );
|
{
|
||||||
|
setdvar( "bots_play_camp", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot
|
if ( getdvar( "bots_play_jumpdrop" ) == "" ) // bots jump and dropshot
|
||||||
setDvar( "bots_play_jumpdrop", true );
|
{
|
||||||
|
setdvar( "bots_play_jumpdrop", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_target_other" ) == "" ) //bot target non play ents (vehicles)
|
if ( getdvar( "bots_play_target_other" ) == "" ) // bot target non play ents (vehicles)
|
||||||
setDvar( "bots_play_target_other", true );
|
{
|
||||||
|
setdvar( "bots_play_target_other", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_killstreak" ) == "" ) //bot use killstreaks
|
if ( getdvar( "bots_play_killstreak" ) == "" ) // bot use killstreaks
|
||||||
setDvar( "bots_play_killstreak", true );
|
{
|
||||||
|
setdvar( "bots_play_killstreak", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_ads" ) == "" ) //bot ads
|
if ( getdvar( "bots_play_ads" ) == "" ) // bot ads
|
||||||
setDvar( "bots_play_ads", true );
|
{
|
||||||
|
setdvar( "bots_play_ads", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_play_aim" ) == "" )
|
if ( getdvar( "bots_play_aim" ) == "" )
|
||||||
setDvar( "bots_play_aim", true );
|
{
|
||||||
|
setdvar( "bots_play_aim", true );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !isDefined( game["botWarfare"] ) )
|
if ( !isdefined( game[ "botWarfare" ] ) )
|
||||||
|
{
|
||||||
game[ "botWarfare" ] = true;
|
game[ "botWarfare" ] = true;
|
||||||
|
}
|
||||||
|
|
||||||
level.defuseObject = undefined;
|
level.defuseobject = undefined;
|
||||||
level.bots_smokeList = List();
|
level.bots_smokelist = List();
|
||||||
level.tbl_PerkData[0]["reference_full"] = true;
|
level.tbl_perkdata[ 0 ][ "reference_full" ] = true;
|
||||||
|
|
||||||
for ( h = 1; h < 6; h++ )
|
for ( h = 1; h < 6; h++ )
|
||||||
|
{
|
||||||
for ( i = 0; i < 3; i++ )
|
for ( i = 0; i < 3; i++ )
|
||||||
|
{
|
||||||
level.default_perk[ "CLASS_CUSTOM" + h ][ i ] = "specialty_null";
|
level.default_perk[ "CLASS_CUSTOM" + h ][ i ] = "specialty_null";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
level.bots_minSprintDistance = 315;
|
level.bots_minsprintdistance = 315;
|
||||||
level.bots_minSprintDistance *= level.bots_minSprintDistance;
|
level.bots_minsprintdistance *= level.bots_minsprintdistance;
|
||||||
level.bots_minGrenadeDistance = 256;
|
level.bots_mingrenadedistance = 256;
|
||||||
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance;
|
level.bots_mingrenadedistance *= level.bots_mingrenadedistance;
|
||||||
level.bots_maxGrenadeDistance = 1024;
|
level.bots_maxgrenadedistance = 1024;
|
||||||
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance;
|
level.bots_maxgrenadedistance *= level.bots_maxgrenadedistance;
|
||||||
level.bots_maxKnifeDistance = 128;
|
level.bots_maxknifedistance = 128;
|
||||||
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance;
|
level.bots_maxknifedistance *= level.bots_maxknifedistance;
|
||||||
level.bots_goalDistance = 27.5;
|
level.bots_goaldistance = 27.5;
|
||||||
level.bots_goalDistance *= level.bots_goalDistance;
|
level.bots_goaldistance *= level.bots_goaldistance;
|
||||||
level.bots_noADSDistance = 200;
|
level.bots_noadsdistance = 200;
|
||||||
level.bots_noADSDistance *= level.bots_noADSDistance;
|
level.bots_noadsdistance *= level.bots_noadsdistance;
|
||||||
level.bots_maxShotgunDistance = 500;
|
level.bots_maxshotgundistance = 500;
|
||||||
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance;
|
level.bots_maxshotgundistance *= level.bots_maxshotgundistance;
|
||||||
level.bots_listenDist = 100;
|
level.bots_listendist = 100;
|
||||||
|
|
||||||
level.smokeRadius = 255;
|
level.smokeradius = 255;
|
||||||
|
|
||||||
level.bots = [];
|
level.bots = [];
|
||||||
|
|
||||||
@ -190,18 +272,22 @@ handleBots()
|
|||||||
level addBots();
|
level addBots();
|
||||||
|
|
||||||
while ( !level.intermission )
|
while ( !level.intermission )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
setDvar( "bots_manage_add", getBotArray().size );
|
setdvar( "bots_manage_add", getBotArray().size );
|
||||||
|
|
||||||
if ( !getDvarInt( "bots_main_kickBotsAtEnd" ) )
|
if ( !getdvarint( "bots_main_kickBotsAtEnd" ) )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bots = getBotArray();
|
bots = getBotArray();
|
||||||
|
|
||||||
for ( i = 0; i < bots.size; i++ )
|
for ( i = 0; i < bots.size; i++ )
|
||||||
{
|
{
|
||||||
kick( bots[i] getEntityNumber() );
|
kick( bots[ i ] getentitynumber() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,7 +302,7 @@ onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon,
|
|||||||
self maps\mp\bots\_bot_script::onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
self maps\mp\bots\_bot_script::onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
||||||
}
|
}
|
||||||
|
|
||||||
self [[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
self [[ level.prevcallbackplayerdamage ]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -230,15 +316,15 @@ onPlayerKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sH
|
|||||||
self maps\mp\bots\_bot_script::onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
self maps\mp\bots\_bot_script::onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
||||||
}
|
}
|
||||||
|
|
||||||
self.lastAttacker = eAttacker;
|
self.lastattacker = eAttacker;
|
||||||
|
|
||||||
if ( isDefined( eAttacker ) )
|
if ( isdefined( eAttacker ) )
|
||||||
{
|
{
|
||||||
eAttacker.lastKilledPlayer = self;
|
eAttacker.lastkilledplayer = self;
|
||||||
eAttacker notify( "killed_enemy" );
|
eAttacker notify( "killed_enemy" );
|
||||||
}
|
}
|
||||||
|
|
||||||
self [[level.prevCallbackPlayerKilled]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
self [[ level.prevcallbackplayerkilled ]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -247,11 +333,11 @@ onPlayerKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sH
|
|||||||
hook_callbacks()
|
hook_callbacks()
|
||||||
{
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
level.prevCallbackPlayerDamage = level.callbackPlayerDamage;
|
level.prevcallbackplayerdamage = level.callbackplayerdamage;
|
||||||
level.callbackPlayerDamage = ::onPlayerDamage;
|
level.callbackplayerdamage = ::onPlayerDamage;
|
||||||
|
|
||||||
level.prevCallbackPlayerKilled = level.callbackPlayerKilled;
|
level.prevcallbackplayerkilled = level.callbackplayerkilled;
|
||||||
level.callbackPlayerKilled = ::onPlayerKilled;
|
level.callbackplayerkilled = ::onPlayerKilled;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -265,24 +351,28 @@ fixKoth()
|
|||||||
{
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
|
||||||
if ( !isDefined( level.radioObject ) )
|
if ( !isdefined( level.radioobject ) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = level.radios.size - 1; i >= 0; i-- )
|
for ( i = level.radios.size - 1; i >= 0; i-- )
|
||||||
{
|
{
|
||||||
if ( level.radioObject != level.radios[i].gameobject )
|
if ( level.radioobject != level.radios[ i ].gameobject )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
level.radio = level.radios[ i ];
|
level.radio = level.radios[ i ];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ( isDefined( level.radioObject ) && level.radio.gameobject == level.radioObject )
|
while ( isdefined( level.radioobject ) && level.radio.gameobject == level.radioobject )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Fixes gamemodes when level starts.
|
Fixes gamemodes when level starts.
|
||||||
@ -291,15 +381,17 @@ fixGamemodes()
|
|||||||
{
|
{
|
||||||
for ( i = 0; i < 19; i++ )
|
for ( i = 0; i < 19; i++ )
|
||||||
{
|
{
|
||||||
if ( isDefined( level.bombZones ) && level.gametype == "sd" )
|
if ( isdefined( level.bombzones ) && level.gametype == "sd" )
|
||||||
{
|
{
|
||||||
for ( i = 0; i < level.bombZones.size; i++ )
|
for ( i = 0; i < level.bombzones.size; i++ )
|
||||||
level.bombZones[i].onUse = ::onUsePlantObjectFix;
|
{
|
||||||
|
level.bombzones[ i ].onuse = ::onUsePlantObjectFix;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isDefined( level.radios ) && level.gametype == "koth" )
|
if ( isdefined( level.radios ) && level.gametype == "koth" )
|
||||||
{
|
{
|
||||||
level thread fixKoth();
|
level thread fixKoth();
|
||||||
|
|
||||||
@ -339,8 +431,10 @@ fixPerksAndScriptKick()
|
|||||||
|
|
||||||
self.pers[ "isBot" ] = undefined;
|
self.pers[ "isBot" ] = undefined;
|
||||||
|
|
||||||
if ( !level.gameEnded )
|
if ( !level.gameended )
|
||||||
|
{
|
||||||
level waittill ( "game_ended" );
|
level waittill ( "game_ended" );
|
||||||
|
}
|
||||||
|
|
||||||
self.pers[ "isBot" ] = true;
|
self.pers[ "isBot" ] = true;
|
||||||
}
|
}
|
||||||
@ -362,19 +456,23 @@ connected()
|
|||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
|
||||||
if ( !isDefined( self.pers["bot_host"] ) )
|
if ( !isdefined( self.pers[ "bot_host" ] ) )
|
||||||
|
{
|
||||||
self thread doHostCheck();
|
self thread doHostCheck();
|
||||||
|
}
|
||||||
|
|
||||||
if ( !self is_bot() )
|
if ( !self is_bot() )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !isDefined( self.pers["isBot"] ) )
|
if ( !isdefined( self.pers[ "isBot" ] ) )
|
||||||
{
|
{
|
||||||
// fast restart...
|
// fast restart...
|
||||||
self.pers[ "isBot" ] = true;
|
self.pers[ "isBot" ] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !isDefined( self.pers["isBotWarfare"] ) )
|
if ( !isdefined( self.pers[ "isBotWarfare" ] ) )
|
||||||
{
|
{
|
||||||
self.pers[ "isBotWarfare" ] = true;
|
self.pers[ "isBotWarfare" ] = true;
|
||||||
self thread added();
|
self thread added();
|
||||||
@ -404,34 +502,48 @@ watchBotDebugEvent()
|
|||||||
{
|
{
|
||||||
self waittill( "bot_event", msg, str, b, c, d, e, f, g );
|
self waittill( "bot_event", msg, str, b, c, d, e, f, g );
|
||||||
|
|
||||||
if ( GetDvarInt( "bots_main_debug" ) >= 2 )
|
if ( getdvarint( "bots_main_debug" ) >= 2 )
|
||||||
{
|
{
|
||||||
big_str = "Bot Warfare debug: " + self.name + ": " + msg;
|
big_str = "Bot Warfare debug: " + self.name + ": " + msg;
|
||||||
|
|
||||||
if ( isDefined( str ) && isString( str ) )
|
if ( isdefined( str ) && isstring( str ) )
|
||||||
|
{
|
||||||
big_str += ", " + str;
|
big_str += ", " + str;
|
||||||
|
}
|
||||||
|
|
||||||
if ( isDefined( b ) && isString( b ) )
|
if ( isdefined( b ) && isstring( b ) )
|
||||||
|
{
|
||||||
big_str += ", " + b;
|
big_str += ", " + b;
|
||||||
|
}
|
||||||
|
|
||||||
if ( isDefined( c ) && isString( c ) )
|
if ( isdefined( c ) && isstring( c ) )
|
||||||
|
{
|
||||||
big_str += ", " + c;
|
big_str += ", " + c;
|
||||||
|
}
|
||||||
|
|
||||||
if ( isDefined( d ) && isString( d ) )
|
if ( isdefined( d ) && isstring( d ) )
|
||||||
|
{
|
||||||
big_str += ", " + d;
|
big_str += ", " + d;
|
||||||
|
}
|
||||||
|
|
||||||
if ( isDefined( e ) && isString( e ) )
|
if ( isdefined( e ) && isstring( e ) )
|
||||||
|
{
|
||||||
big_str += ", " + e;
|
big_str += ", " + e;
|
||||||
|
}
|
||||||
|
|
||||||
if ( isDefined( f ) && isString( f ) )
|
if ( isdefined( f ) && isstring( f ) )
|
||||||
|
{
|
||||||
big_str += ", " + f;
|
big_str += ", " + f;
|
||||||
|
}
|
||||||
|
|
||||||
if ( isDefined( g ) && isString( g ) )
|
if ( isdefined( g ) && isstring( g ) )
|
||||||
|
{
|
||||||
big_str += ", " + g;
|
big_str += ", " + g;
|
||||||
|
}
|
||||||
|
|
||||||
BotBuiltinPrintConsole( big_str );
|
BotBuiltinPrintConsole( big_str );
|
||||||
}
|
}
|
||||||
else if ( msg == "debug" && GetDvarInt( "bots_main_debug" ) )
|
else if ( msg == "debug" && getdvarint( "bots_main_debug" ) )
|
||||||
{
|
{
|
||||||
BotBuiltinPrintConsole( "Bot Warfare debug: " + self.name + ": " + str );
|
BotBuiltinPrintConsole( "Bot Warfare debug: " + self.name + ": " + str );
|
||||||
}
|
}
|
||||||
@ -469,11 +581,11 @@ add_bot()
|
|||||||
*/
|
*/
|
||||||
diffBots_loop()
|
diffBots_loop()
|
||||||
{
|
{
|
||||||
var_allies_hard = getDVarInt( "bots_skill_allies_hard" );
|
var_allies_hard = getdvarint( "bots_skill_allies_hard" );
|
||||||
var_allies_med = getDVarInt( "bots_skill_allies_med" );
|
var_allies_med = getdvarint( "bots_skill_allies_med" );
|
||||||
var_axis_hard = getDVarInt( "bots_skill_axis_hard" );
|
var_axis_hard = getdvarint( "bots_skill_axis_hard" );
|
||||||
var_axis_med = getDVarInt( "bots_skill_axis_med" );
|
var_axis_med = getdvarint( "bots_skill_axis_med" );
|
||||||
var_skill = getDvarInt( "bots_skill" );
|
var_skill = getdvarint( "bots_skill" );
|
||||||
|
|
||||||
allies_hard = 0;
|
allies_hard = 0;
|
||||||
allies_med = 0;
|
allies_med = 0;
|
||||||
@ -488,11 +600,15 @@ diffBots_loop()
|
|||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !isDefined( player.pers["team"] ) )
|
if ( !isdefined( player.pers[ "team" ] ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !player is_bot() )
|
if ( !player is_bot() )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( player.pers[ "team" ] == "axis" )
|
if ( player.pers[ "team" ] == "axis" )
|
||||||
{
|
{
|
||||||
@ -507,8 +623,10 @@ diffBots_loop()
|
|||||||
player.pers[ "bots" ][ "skill" ][ "base" ] = 4;
|
player.pers[ "bots" ][ "skill" ][ "base" ] = 4;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
player.pers[ "bots" ][ "skill" ][ "base" ] = 1;
|
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 )
|
||||||
@ -522,10 +640,12 @@ diffBots_loop()
|
|||||||
player.pers[ "bots" ][ "skill" ][ "base" ] = 4;
|
player.pers[ "bots" ][ "skill" ][ "base" ] = 4;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
player.pers[ "bots" ][ "skill" ][ "base" ] = 1;
|
player.pers[ "bots" ][ "skill" ][ "base" ] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if ( var_skill != 0 && var_skill != 9 )
|
else if ( var_skill != 0 && var_skill != 9 )
|
||||||
{
|
{
|
||||||
playercount = level.players.size;
|
playercount = level.players.size;
|
||||||
@ -535,22 +655,26 @@ diffBots_loop()
|
|||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !player is_bot() )
|
if ( !player is_bot() )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
player.pers[ "bots" ][ "skill" ][ "base" ] = var_skill;
|
player.pers[ "bots" ][ "skill" ][ "base" ] = var_skill;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
playercount = level.players.size;
|
playercount = level.players.size;
|
||||||
min_diff = GetDvarInt( "bots_skill_min" );
|
min_diff = getdvarint( "bots_skill_min" );
|
||||||
max_diff = GetDvarInt( "bots_skill_max" );
|
max_diff = getdvarint( "bots_skill_max" );
|
||||||
|
|
||||||
for ( i = 0; i < playercount; i++ )
|
for ( i = 0; i < playercount; i++ )
|
||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !player is_bot() )
|
if ( !player is_bot() )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
player.pers[ "bots" ][ "skill" ][ "base" ] = int( clamp( player.pers[ "bots" ][ "skill" ][ "base" ], min_diff, max_diff ) );
|
player.pers[ "bots" ][ "skill" ][ "base" ] = int( clamp( player.pers[ "bots" ][ "skill" ][ "base" ], min_diff, max_diff ) );
|
||||||
}
|
}
|
||||||
@ -574,8 +698,8 @@ diffBots()
|
|||||||
*/
|
*/
|
||||||
teamBots_loop()
|
teamBots_loop()
|
||||||
{
|
{
|
||||||
teamAmount = getDvarInt( "bots_team_amount" );
|
teamAmount = getdvarint( "bots_team_amount" );
|
||||||
toTeam = getDvar( "bots_team" );
|
toTeam = getdvar( "bots_team" );
|
||||||
|
|
||||||
alliesbots = 0;
|
alliesbots = 0;
|
||||||
alliesplayers = 0;
|
alliesplayers = 0;
|
||||||
@ -588,29 +712,39 @@ teamBots_loop()
|
|||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !isDefined( player.pers["team"] ) )
|
if ( !isdefined( player.pers[ "team" ] ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( player is_bot() )
|
if ( player is_bot() )
|
||||||
{
|
{
|
||||||
if ( player.pers[ "team" ] == "allies" )
|
if ( player.pers[ "team" ] == "allies" )
|
||||||
|
{
|
||||||
alliesbots++;
|
alliesbots++;
|
||||||
|
}
|
||||||
else if ( player.pers[ "team" ] == "axis" )
|
else if ( player.pers[ "team" ] == "axis" )
|
||||||
|
{
|
||||||
axisbots++;
|
axisbots++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( player.pers[ "team" ] == "allies" )
|
if ( player.pers[ "team" ] == "allies" )
|
||||||
|
{
|
||||||
alliesplayers++;
|
alliesplayers++;
|
||||||
|
}
|
||||||
else if ( player.pers[ "team" ] == "axis" )
|
else if ( player.pers[ "team" ] == "axis" )
|
||||||
|
{
|
||||||
axisplayers++;
|
axisplayers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
allies = alliesbots;
|
allies = alliesbots;
|
||||||
axis = axisbots;
|
axis = axisbots;
|
||||||
|
|
||||||
if ( !getDvarInt( "bots_team_mode" ) )
|
if ( !getdvarint( "bots_team_mode" ) )
|
||||||
{
|
{
|
||||||
allies += alliesplayers;
|
allies += alliesplayers;
|
||||||
axis += axisplayers;
|
axis += axisplayers;
|
||||||
@ -618,7 +752,7 @@ teamBots_loop()
|
|||||||
|
|
||||||
if ( toTeam != "custom" )
|
if ( toTeam != "custom" )
|
||||||
{
|
{
|
||||||
if ( getDvarInt( "bots_team_force" ) )
|
if ( getdvarint( "bots_team_force" ) )
|
||||||
{
|
{
|
||||||
if ( toTeam == "autoassign" )
|
if ( toTeam == "autoassign" )
|
||||||
{
|
{
|
||||||
@ -627,9 +761,11 @@ teamBots_loop()
|
|||||||
toTeam = "axis";
|
toTeam = "axis";
|
||||||
|
|
||||||
if ( axis > allies )
|
if ( axis > allies )
|
||||||
|
{
|
||||||
toTeam = "allies";
|
toTeam = "allies";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( toTeam != "autoassign" )
|
if ( toTeam != "autoassign" )
|
||||||
{
|
{
|
||||||
@ -639,21 +775,33 @@ teamBots_loop()
|
|||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !isDefined( player.pers["team"] ) )
|
if ( !isdefined( player.pers[ "team" ] ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !player is_bot() )
|
if ( !player is_bot() )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( player.pers[ "team" ] == toTeam )
|
if ( player.pers[ "team" ] == toTeam )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( toTeam == "allies" )
|
if ( toTeam == "allies" )
|
||||||
|
{
|
||||||
player thread [[ level.allies ]]();
|
player thread [[ level.allies ]]();
|
||||||
|
}
|
||||||
else if ( toTeam == "axis" )
|
else if ( toTeam == "axis" )
|
||||||
|
{
|
||||||
player thread [[ level.axis ]]();
|
player thread [[ level.axis ]]();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
player thread [[ level.spectator ]]();
|
player thread [[ level.spectator ]]();
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -668,11 +816,15 @@ teamBots_loop()
|
|||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !isDefined( player.pers["team"] ) )
|
if ( !isdefined( player.pers[ "team" ] ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !player is_bot() )
|
if ( !player is_bot() )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( player.pers[ "team" ] == "axis" )
|
if ( player.pers[ "team" ] == "axis" )
|
||||||
{
|
{
|
||||||
@ -717,14 +869,16 @@ teamBots()
|
|||||||
*/
|
*/
|
||||||
addBots_loop()
|
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;
|
botsToAdd = 64;
|
||||||
|
}
|
||||||
|
|
||||||
for ( ; botsToAdd > 0; botsToAdd-- )
|
for ( ; botsToAdd > 0; botsToAdd-- )
|
||||||
{
|
{
|
||||||
@ -733,12 +887,14 @@ addBots_loop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fillMode = getDVarInt( "bots_manage_fill_mode" );
|
fillMode = getdvarint( "bots_manage_fill_mode" );
|
||||||
|
|
||||||
if ( fillMode == 2 || fillMode == 3 )
|
if ( fillMode == 2 || fillMode == 3 )
|
||||||
setDvar( "bots_manage_fill", getGoodMapAmount() );
|
{
|
||||||
|
setdvar( "bots_manage_fill", getGoodMapAmount() );
|
||||||
|
}
|
||||||
|
|
||||||
fillAmount = getDvarInt( "bots_manage_fill" );
|
fillAmount = getdvarint( "bots_manage_fill" );
|
||||||
|
|
||||||
players = 0;
|
players = 0;
|
||||||
bots = 0;
|
bots = 0;
|
||||||
@ -751,18 +907,24 @@ addBots_loop()
|
|||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( player is_bot() )
|
if ( player is_bot() )
|
||||||
|
{
|
||||||
bots++;
|
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++;
|
spec++;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
players++;
|
players++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( !randomInt( 999 ) )
|
if ( !randomint( 999 ) )
|
||||||
{
|
{
|
||||||
setDvar( "testclients_doreload", true );
|
setdvar( "testclients_doreload", true );
|
||||||
wait 0.1;
|
wait 0.1;
|
||||||
setDvar( "testclients_doreload", false );
|
setdvar( "testclients_doreload", false );
|
||||||
doExtraCheck();
|
doExtraCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -778,28 +940,42 @@ addBots_loop()
|
|||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( player is_bot() )
|
if ( player is_bot() )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !isDefined( player.pers["team"] ) )
|
if ( !isdefined( player.pers[ "team" ] ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( player.pers[ "team" ] == "axis" )
|
if ( player.pers[ "team" ] == "axis" )
|
||||||
|
{
|
||||||
axisplayers++;
|
axisplayers++;
|
||||||
|
}
|
||||||
else if ( player.pers[ "team" ] == "allies" )
|
else if ( player.pers[ "team" ] == "allies" )
|
||||||
|
{
|
||||||
alliesplayers++;
|
alliesplayers++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result = fillAmount - abs( axisplayers - alliesplayers ) + bots;
|
result = fillAmount - abs( axisplayers - alliesplayers ) + bots;
|
||||||
|
|
||||||
if ( players == 0 )
|
if ( players == 0 )
|
||||||
{
|
{
|
||||||
if ( bots < fillAmount )
|
if ( bots < fillAmount )
|
||||||
|
{
|
||||||
result = fillAmount - 1;
|
result = fillAmount - 1;
|
||||||
|
}
|
||||||
else if ( bots > fillAmount )
|
else if ( bots > fillAmount )
|
||||||
|
{
|
||||||
result = fillAmount + 1;
|
result = fillAmount + 1;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
result = fillAmount;
|
result = fillAmount;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bots = result;
|
bots = result;
|
||||||
}
|
}
|
||||||
@ -807,19 +983,27 @@ addBots_loop()
|
|||||||
amount = bots;
|
amount = bots;
|
||||||
|
|
||||||
if ( fillMode == 0 || fillMode == 2 )
|
if ( fillMode == 0 || fillMode == 2 )
|
||||||
|
{
|
||||||
amount += players;
|
amount += players;
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDVarInt( "bots_manage_fill_spec" ) )
|
if ( getdvarint( "bots_manage_fill_spec" ) )
|
||||||
|
{
|
||||||
amount += spec;
|
amount += spec;
|
||||||
|
}
|
||||||
|
|
||||||
if ( amount < fillAmount )
|
if ( amount < fillAmount )
|
||||||
setDvar( "bots_manage_add", 1 );
|
{
|
||||||
else if ( amount > fillAmount && getDvarInt( "bots_manage_fill_kick" ) )
|
setdvar( "bots_manage_add", 1 );
|
||||||
|
}
|
||||||
|
else if ( amount > fillAmount && getdvarint( "bots_manage_fill_kick" ) )
|
||||||
{
|
{
|
||||||
tempBot = getBotToKick();
|
tempBot = getBotToKick();
|
||||||
|
|
||||||
if ( isDefined( tempBot ) )
|
if ( isdefined( tempBot ) )
|
||||||
kick( tempBot getEntityNumber() );
|
{
|
||||||
|
kick( tempBot getentitynumber() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -865,15 +1049,19 @@ onGrenadeFire()
|
|||||||
{
|
{
|
||||||
self waittill ( "grenade_fire", grenade, weaponName );
|
self waittill ( "grenade_fire", grenade, weaponName );
|
||||||
|
|
||||||
if ( !isDefined( grenade ) )
|
if ( !isdefined( grenade ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
grenade.name = weaponName;
|
grenade.name = weaponName;
|
||||||
|
|
||||||
if ( weaponName == "m8_white_smoke_mp" )
|
if ( weaponName == "m8_white_smoke_mp" )
|
||||||
|
{
|
||||||
grenade thread AddToSmokeList();
|
grenade thread AddToSmokeList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Adds a smoke grenade to the list of smokes in the game. Used to prevent bots from seeing through smoke.
|
Adds a smoke grenade to the list of smokes in the game. Used to prevent bots from seeing through smoke.
|
||||||
@ -881,13 +1069,13 @@ onGrenadeFire()
|
|||||||
AddToSmokeList()
|
AddToSmokeList()
|
||||||
{
|
{
|
||||||
grenade = spawnstruct();
|
grenade = spawnstruct();
|
||||||
grenade.origin = self getOrigin();
|
grenade.origin = self getorigin();
|
||||||
grenade.state = "moving";
|
grenade.state = "moving";
|
||||||
grenade.grenade = self;
|
grenade.grenade = self;
|
||||||
|
|
||||||
grenade thread thinkSmoke();
|
grenade thread thinkSmoke();
|
||||||
|
|
||||||
level.bots_smokeList ListAdd( grenade );
|
level.bots_smokelist ListAdd( grenade );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -895,9 +1083,9 @@ AddToSmokeList()
|
|||||||
*/
|
*/
|
||||||
thinkSmoke()
|
thinkSmoke()
|
||||||
{
|
{
|
||||||
while ( isDefined( self.grenade ) )
|
while ( isdefined( self.grenade ) )
|
||||||
{
|
{
|
||||||
self.origin = self.grenade getOrigin();
|
self.origin = self.grenade getorigin();
|
||||||
self.state = "moving";
|
self.state = "moving";
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
@ -905,7 +1093,7 @@ thinkSmoke()
|
|||||||
self.state = "smoking";
|
self.state = "smoking";
|
||||||
wait 11.5;
|
wait 11.5;
|
||||||
|
|
||||||
level.bots_smokeList ListRemove( self );
|
level.bots_smokelist ListRemove( self );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -945,8 +1133,10 @@ doUAVUpdate( team )
|
|||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !isDefined( player.team ) )
|
if ( !isdefined( player.team ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( player.team == team )
|
if ( player.team == team )
|
||||||
{
|
{
|
||||||
@ -954,7 +1144,7 @@ doUAVUpdate( team )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wait level.radarViewTime;
|
wait level.radarviewtime;
|
||||||
|
|
||||||
playercount = level.players.size;
|
playercount = level.players.size;
|
||||||
|
|
||||||
@ -962,8 +1152,10 @@ doUAVUpdate( team )
|
|||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !isDefined( player.team ) )
|
if ( !isdefined( player.team ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( player.team == team )
|
if ( player.team == team )
|
||||||
{
|
{
|
||||||
|
@ -15,8 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
init()
|
init()
|
||||||
{
|
{
|
||||||
if ( getDvar( "bots_main_chat" ) == "" )
|
if ( getdvar( "bots_main_chat" ) == "" )
|
||||||
setDvar( "bots_main_chat", 1.0 );
|
{
|
||||||
|
setdvar( "bots_main_chat", 1.0 );
|
||||||
|
}
|
||||||
|
|
||||||
level thread onBotConnected();
|
level thread onBotConnected();
|
||||||
}
|
}
|
||||||
@ -39,20 +41,26 @@ onBotConnected()
|
|||||||
*/
|
*/
|
||||||
BotDoChat( chance, string, isTeam )
|
BotDoChat( chance, string, isTeam )
|
||||||
{
|
{
|
||||||
mod = getDvarFloat( "bots_main_chat" );
|
mod = getdvarfloat( "bots_main_chat" );
|
||||||
|
|
||||||
if ( mod <= 0.0 )
|
if ( mod <= 0.0 )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( chance >= 100 || mod >= 100.0 ||
|
if ( chance >= 100 || mod >= 100.0 ||
|
||||||
( RandomInt( 100 ) < ( chance * mod ) + 0 ) )
|
( randomint( 100 ) < ( chance * mod ) + 0 ) )
|
||||||
|
{
|
||||||
|
if ( isdefined( isTeam ) && isTeam )
|
||||||
{
|
{
|
||||||
if ( isDefined( isTeam ) && isTeam )
|
|
||||||
self sayteam( string );
|
self sayteam( string );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
self sayall( string );
|
self sayall( string );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Threads for bots
|
Threads for bots
|
||||||
@ -81,9 +89,9 @@ start_death_watch()
|
|||||||
{
|
{
|
||||||
self waittill( "death" );
|
self waittill( "death" );
|
||||||
|
|
||||||
self thread bot_chat_death_watch( self.lastAttacker, self.bots_lastKS );
|
self thread bot_chat_death_watch( self.lastattacker, self.bots_lastks );
|
||||||
|
|
||||||
self.bots_lastKS = 0;
|
self.bots_lastks = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,13 +118,15 @@ start_random_chat()
|
|||||||
{
|
{
|
||||||
wait 1;
|
wait 1;
|
||||||
|
|
||||||
if ( randomInt( 100 ) < 1 )
|
if ( randomint( 100 ) < 1 )
|
||||||
|
{
|
||||||
|
if ( randomint( 100 ) < 1 && isalive( self ) )
|
||||||
{
|
{
|
||||||
if ( randomInt( 100 ) < 1 && isAlive( self ) )
|
|
||||||
self thread doQuickMessage();
|
self thread doQuickMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Got a kill
|
Got a kill
|
||||||
@ -125,24 +135,24 @@ start_killed_watch()
|
|||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
|
||||||
self.bots_lastKS = 0;
|
self.bots_lastks = 0;
|
||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
self waittill( "killed_enemy" );
|
self waittill( "killed_enemy" );
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
|
||||||
if ( self.bots_lastKS < self.cur_kill_streak )
|
if ( self.bots_lastks < self.cur_kill_streak )
|
||||||
{
|
{
|
||||||
for ( i = self.bots_lastKS + 1; i <= self.cur_kill_streak; i++ )
|
for ( i = self.bots_lastks + 1; i <= self.cur_kill_streak; i++ )
|
||||||
{
|
{
|
||||||
self thread bot_chat_streak( i );
|
self thread bot_chat_streak( i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.bots_lastKS = self.cur_kill_streak;
|
self.bots_lastks = self.cur_kill_streak;
|
||||||
|
|
||||||
self thread bot_chat_killed_watch( self.lastKilledPlayer );
|
self thread bot_chat_killed_watch( self.lastkilledplayer );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,7 +388,7 @@ doQuickMessage()
|
|||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
|
|
||||||
if ( !isDefined( self.talking ) || !self.talking )
|
if ( !isdefined( self.talking ) || !self.talking )
|
||||||
{
|
{
|
||||||
self.talking = true;
|
self.talking = true;
|
||||||
soundalias = "";
|
soundalias = "";
|
||||||
@ -416,16 +426,18 @@ doQuickMessage()
|
|||||||
|
|
||||||
if ( soundalias != "" && saytext != "" )
|
if ( soundalias != "" && saytext != "" )
|
||||||
{
|
{
|
||||||
self maps\mp\gametypes\_quickmessages::saveHeadIcon();
|
self maps\mp\gametypes\_quickmessages::saveheadicon();
|
||||||
self maps\mp\gametypes\_quickmessages::doQuickMessage( soundalias, saytext );
|
self maps\mp\gametypes\_quickmessages::doquickmessage( soundalias, saytext );
|
||||||
wait 2;
|
wait 2;
|
||||||
self maps\mp\gametypes\_quickmessages::restoreHeadIcon();
|
self maps\mp\gametypes\_quickmessages::restoreheadicon();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( randomint( 100 ) < 1 )
|
if ( randomint( 100 ) < 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 1, maps\mp\bots\_bot_utility::keyCodeToString( 2 ) + maps\mp\bots\_bot_utility::keyCodeToString( 17 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 3 ) + maps\mp\bots\_bot_utility::keyCodeToString( 8 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 8 ) + maps\mp\bots\_bot_utility::keyCodeToString( 13 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 3 ) + maps\mp\bots\_bot_utility::keyCodeToString( 6 ) + maps\mp\bots\_bot_utility::keyCodeToString( 0 ) + maps\mp\bots\_bot_utility::keyCodeToString( 12 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 18 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 5 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 17 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 1 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 18 ) + maps\mp\bots\_bot_utility::keyCodeToString( 26 ) );
|
self BotDoChat( 1, maps\mp\bots\_bot_utility::keyCodeToString( 2 ) + maps\mp\bots\_bot_utility::keyCodeToString( 17 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 3 ) + maps\mp\bots\_bot_utility::keyCodeToString( 8 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 8 ) + maps\mp\bots\_bot_utility::keyCodeToString( 13 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 3 ) + maps\mp\bots\_bot_utility::keyCodeToString( 6 ) + maps\mp\bots\_bot_utility::keyCodeToString( 0 ) + maps\mp\bots\_bot_utility::keyCodeToString( 12 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 18 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 5 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 17 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 1 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 18 ) + maps\mp\bots\_bot_utility::keyCodeToString( 26 ) );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
self.spamdelay = undefined;
|
self.spamdelay = undefined;
|
||||||
wait randomint( 5 );
|
wait randomint( 5 );
|
||||||
@ -463,9 +475,9 @@ endgame_chat()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( level.teamBased )
|
if ( level.teambased )
|
||||||
{
|
{
|
||||||
winningteam = maps\mp\gametypes\_globallogic::getWinningTeam();
|
winningteam = maps\mp\gametypes\_globallogic::getwinningteam();
|
||||||
|
|
||||||
if ( self.pers[ "team" ] == winningteam )
|
if ( self.pers[ "team" ] == winningteam )
|
||||||
{
|
{
|
||||||
@ -541,25 +553,41 @@ endgame_chat()
|
|||||||
|
|
||||||
case 17:
|
case 17:
|
||||||
if ( self == winner )
|
if ( self == winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "LOL we wouldn't of won without me!" );
|
self BotDoChat( 20, "LOL we wouldn't of won without me!" );
|
||||||
|
}
|
||||||
else if ( self == loser )
|
else if ( self == loser )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "damn i sucked but i still won" );
|
self BotDoChat( 20, "damn i sucked but i still won" );
|
||||||
|
}
|
||||||
else if ( self != loser && randomint( 2 ) == 1 )
|
else if ( self != loser && randomint( 2 ) == 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "lol " + loser.name + " sucked hard!" );
|
self BotDoChat( 20, "lol " + loser.name + " sucked hard!" );
|
||||||
|
}
|
||||||
else if ( self != winner )
|
else if ( self != winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "wow " + winner.name + " did very well!" );
|
self BotDoChat( 20, "wow " + winner.name + " did very well!" );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 18:
|
case 18:
|
||||||
if ( self == winner )
|
if ( self == winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "I'm the VERY BEST!" );
|
self BotDoChat( 20, "I'm the VERY BEST!" );
|
||||||
|
}
|
||||||
else if ( self == loser )
|
else if ( self == loser )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "lol my team is good, i suck doe" );
|
self BotDoChat( 20, "lol my team is good, i suck doe" );
|
||||||
|
}
|
||||||
else if ( self != loser && randomint( 2 ) == 1 )
|
else if ( self != loser && randomint( 2 ) == 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "lol " + loser.name + " should be playing a noobier game" );
|
self BotDoChat( 20, "lol " + loser.name + " should be playing a noobier game" );
|
||||||
|
}
|
||||||
else if ( self != winner )
|
else if ( self != winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "i think " + winner.name + " is a hacker" );
|
self BotDoChat( 20, "i think " + winner.name + " is a hacker" );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -636,25 +664,41 @@ endgame_chat()
|
|||||||
|
|
||||||
case 14:
|
case 14:
|
||||||
if ( self == winner )
|
if ( self == winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "LOL we lost even with my score." );
|
self BotDoChat( 20, "LOL we lost even with my score." );
|
||||||
|
}
|
||||||
else if ( self == loser )
|
else if ( self == loser )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "damn im probally the reason we lost" );
|
self BotDoChat( 20, "damn im probally the reason we lost" );
|
||||||
|
}
|
||||||
else if ( self != loser && randomint( 2 ) == 1 )
|
else if ( self != loser && randomint( 2 ) == 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 20, loser.name + " should just leave" );
|
self BotDoChat( 20, loser.name + " should just leave" );
|
||||||
|
}
|
||||||
else if ( self != winner )
|
else if ( self != winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "kwtf " + winner.name + " is a hacker" );
|
self BotDoChat( 20, "kwtf " + winner.name + " is a hacker" );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 15:
|
case 15:
|
||||||
if ( self == winner )
|
if ( self == winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "my teammates are garabge" );
|
self BotDoChat( 20, "my teammates are garabge" );
|
||||||
|
}
|
||||||
else if ( self == loser )
|
else if ( self == loser )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "lol im garbage" );
|
self BotDoChat( 20, "lol im garbage" );
|
||||||
|
}
|
||||||
else if ( self != loser && randomint( 2 ) == 1 )
|
else if ( self != loser && randomint( 2 ) == 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 20, loser.name + " sux" );
|
self BotDoChat( 20, loser.name + " sux" );
|
||||||
|
}
|
||||||
else if ( self != winner )
|
else if ( self != winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, winner.name + " is a noob!" );
|
self BotDoChat( 20, winner.name + " is a noob!" );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -724,37 +768,61 @@ endgame_chat()
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if ( self == winner )
|
if ( self == winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Haha Suck it, you all just got pwnd!" );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Haha Suck it, you all just got pwnd!" );
|
||||||
|
}
|
||||||
else if ( self == loser )
|
else if ( self == loser )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol i Sucked in this game, just look at my score!" );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol i Sucked in this game, just look at my score!" );
|
||||||
|
}
|
||||||
else if ( self != loser && randomint( 2 ) == 1 )
|
else if ( self != loser && randomint( 2 ) == 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "gga, Bad luck " + loser.name );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "gga, Bad luck " + loser.name );
|
||||||
|
}
|
||||||
else if ( self != winner )
|
else if ( self != winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "This game sucked, " + winner.name + " is such a hacker!!" );
|
self BotDoChat( 20, "This game sucked, " + winner.name + " is such a hacker!!" );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if ( self == winner )
|
if ( self == winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
||||||
|
}
|
||||||
else if ( self == loser )
|
else if ( self == loser )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "GGA i suck, Nice score " + winner.name );
|
self BotDoChat( 20, "GGA i suck, Nice score " + winner.name );
|
||||||
|
}
|
||||||
else if ( self != loser && randomint( 2 ) == 1 )
|
else if ( self != loser && randomint( 2 ) == 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Rofl, " + loser.name + " dude, you suck!!" );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Rofl, " + loser.name + " dude, you suck!!" );
|
||||||
|
}
|
||||||
else if ( self != winner )
|
else if ( self != winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Nice Score " + winner.name + ", how did you get to be so good?" );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Nice Score " + winner.name + ", how did you get to be so good?" );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if ( self == winner )
|
if ( self == winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
||||||
|
}
|
||||||
else if ( self == loser )
|
else if ( self == loser )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "nice wallhacks " + winner.name );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "nice wallhacks " + winner.name );
|
||||||
|
}
|
||||||
else if ( self != loser && randomint( 2 ) == 1 )
|
else if ( self != loser && randomint( 2 ) == 1 )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol atleast i did better then " + loser.name );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol atleast i did better then " + loser.name );
|
||||||
|
}
|
||||||
else if ( self != winner )
|
else if ( self != winner )
|
||||||
|
{
|
||||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "lolwtf " + winner.name );
|
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "lolwtf " + winner.name );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -838,7 +906,7 @@ bot_chat_streak( streakCount )
|
|||||||
|
|
||||||
if ( streakCount == 7 )
|
if ( streakCount == 7 )
|
||||||
{
|
{
|
||||||
if ( isDefined( self.pers["hardPointItem"] ) && self.pers["hardPointItem"] == "dogs_mp" )
|
if ( isdefined( self.pers[ "hardPointItem" ] ) && self.pers[ "hardPointItem" ] == "dogs_mp" )
|
||||||
{
|
{
|
||||||
switch ( randomint( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
@ -861,8 +929,10 @@ bot_chat_killed_watch( victim )
|
|||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
|
||||||
if ( !isDefined( victim ) || !isDefined( victim.name ) )
|
if ( !isdefined( victim ) || !isdefined( victim.name ) )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
message = "";
|
message = "";
|
||||||
|
|
||||||
@ -1029,7 +1099,7 @@ bot_chat_killed_watch( victim )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 40:
|
case 40:
|
||||||
message = ( "Man, I sure love my " + getBaseWeaponName( self GetCurrentWeapon() ) + "!" );
|
message = ( "Man, I sure love my " + getBaseWeaponName( self getcurrentweapon() ) + "!" );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1049,8 +1119,10 @@ bot_chat_death_watch( killer, last_ks )
|
|||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
|
||||||
if ( !isDefined( killer ) || !isDefined( killer.name ) )
|
if ( !isdefined( killer ) || !isdefined( killer.name ) )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
message = "";
|
message = "";
|
||||||
|
|
||||||
@ -1074,14 +1146,18 @@ bot_chat_death_watch( killer, last_ks )
|
|||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
if ( last_ks > 0 )
|
if ( last_ks > 0 )
|
||||||
|
{
|
||||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Nooooooooo my killstreaks!! :( I had a " + last_ks + " killstreak!!" );
|
message = ( "^" + ( randomint( 6 ) + 1 ) + "Nooooooooo my killstreaks!! :( I had a " + last_ks + " killstreak!!" );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
message = ( "man im getting spawn killed, i have a " + self.cur_death_streak + " deathstreak!" );
|
message = ( "man im getting spawn killed, i have a " + self.cur_death_streak + " deathstreak!" );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Stop Spawn KILLING!!!" );
|
message = ( "^" + ( randomint( 6 ) + 1 ) + "Stop spawn KILLING!!!" );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
@ -1301,7 +1377,7 @@ bot_chat_death_watch( killer, last_ks )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 60:
|
case 60:
|
||||||
message = "Wow! Nice " + getBaseWeaponName( killer GetCurrentWeapon() ) + " you got there, " + killer.name + "!";
|
message = "Wow! Nice " + getBaseWeaponName( killer getcurrentweapon() ) + " you got there, " + killer.name + "!";
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1348,7 +1424,7 @@ bot_chat_revive_watch( state, revive, c, d, e, f, g )
|
|||||||
switch ( state )
|
switch ( state )
|
||||||
{
|
{
|
||||||
case "go":
|
case "go":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "i am going to revive " + revive.name );
|
self BotDoChat( 10, "i am going to revive " + revive.name );
|
||||||
@ -1358,7 +1434,7 @@ bot_chat_revive_watch( state, revive, c, d, e, f, g )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "start":
|
case "start":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "i am reviving " + revive.name );
|
self BotDoChat( 10, "i am reviving " + revive.name );
|
||||||
@ -1368,7 +1444,7 @@ bot_chat_revive_watch( state, revive, c, d, e, f, g )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "stop":
|
case "stop":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "i revived " + revive.name );
|
self BotDoChat( 10, "i revived " + revive.name );
|
||||||
@ -1389,7 +1465,7 @@ bot_chat_killcam_watch( state, b, c, d, e, f, g )
|
|||||||
switch ( state )
|
switch ( state )
|
||||||
{
|
{
|
||||||
case "start":
|
case "start":
|
||||||
switch ( randomInt( 2 ) )
|
switch ( randomint( 2 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 1, "WTF?!?!?!! Dude youre a hacker and a half!!" );
|
self BotDoChat( 1, "WTF?!?!?!! Dude youre a hacker and a half!!" );
|
||||||
@ -1403,7 +1479,7 @@ bot_chat_killcam_watch( state, b, c, d, e, f, g )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "stop":
|
case "stop":
|
||||||
switch ( randomInt( 2 ) )
|
switch ( randomint( 2 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 1, "Wow... Im reporting you!!!" );
|
self BotDoChat( 1, "Wow... Im reporting you!!!" );
|
||||||
@ -1425,7 +1501,7 @@ bot_chat_stuck_watch( a, b, c, d, e, f, g )
|
|||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
|
||||||
sayLength = randomintRange( 5, 30 );
|
sayLength = randomintrange( 5, 30 );
|
||||||
msg = "";
|
msg = "";
|
||||||
|
|
||||||
for ( i = 0; i < sayLength; i++ )
|
for ( i = 0; i < sayLength; i++ )
|
||||||
@ -1483,7 +1559,7 @@ bot_chat_tube_watch( state, tubeWp, tubeWeap, d, e, f, g )
|
|||||||
switch ( state )
|
switch ( state )
|
||||||
{
|
{
|
||||||
case "go":
|
case "go":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "i am going to go tube" );
|
self BotDoChat( 10, "i am going to go tube" );
|
||||||
@ -1493,7 +1569,7 @@ bot_chat_tube_watch( state, tubeWp, tubeWeap, d, e, f, g )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "start":
|
case "start":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "i tubed" );
|
self BotDoChat( 10, "i tubed" );
|
||||||
@ -1629,7 +1705,7 @@ bot_chat_follow_watch( state, player, time, d, e, f, g )
|
|||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
|
||||||
if ( !isDefined( player ) )
|
if ( !isdefined( player ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1680,7 +1756,7 @@ bot_chat_equ_watch( state, wp, weap, d, e, f, g )
|
|||||||
switch ( state )
|
switch ( state )
|
||||||
{
|
{
|
||||||
case "go":
|
case "go":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "going to place a " + getBaseWeaponName( weap ) );
|
self BotDoChat( 10, "going to place a " + getBaseWeaponName( weap ) );
|
||||||
@ -1690,7 +1766,7 @@ bot_chat_equ_watch( state, wp, weap, d, e, f, g )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "start":
|
case "start":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "placed a " + getBaseWeaponName( weap ) );
|
self BotDoChat( 10, "placed a " + getBaseWeaponName( weap ) );
|
||||||
@ -1711,7 +1787,7 @@ bot_chat_nade_watch( state, wp, weap, d, e, f, g )
|
|||||||
switch ( state )
|
switch ( state )
|
||||||
{
|
{
|
||||||
case "go":
|
case "go":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "going to throw a " + getBaseWeaponName( weap ) );
|
self BotDoChat( 10, "going to throw a " + getBaseWeaponName( weap ) );
|
||||||
@ -1721,7 +1797,7 @@ bot_chat_nade_watch( state, wp, weap, d, e, f, g )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "start":
|
case "start":
|
||||||
switch ( randomInt( 1 ) )
|
switch ( randomint( 1 ) )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
self BotDoChat( 10, "threw a " + getBaseWeaponName( weap ) );
|
self BotDoChat( 10, "threw a " + getBaseWeaponName( weap ) );
|
||||||
|
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,48 +12,62 @@
|
|||||||
|
|
||||||
init()
|
init()
|
||||||
{
|
{
|
||||||
if ( getDvar( "bots_main_debug" ) == "" )
|
if ( getdvar( "bots_main_debug" ) == "" )
|
||||||
setDvar( "bots_main_debug", 0 );
|
{
|
||||||
|
setdvar( "bots_main_debug", 0 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !getDVarint( "bots_main_debug" ) )
|
if ( !getdvarint( "bots_main_debug" ) )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !getDVarint( "developer" ) )
|
if ( !getdvarint( "developer" ) )
|
||||||
{
|
{
|
||||||
setdvar( "developer_script", 1 );
|
setdvar( "developer_script", 1 );
|
||||||
setdvar( "developer", 1 );
|
setdvar( "developer", 1 );
|
||||||
|
|
||||||
setdvar( "sv_mapRotation", "map " + getDvar( "mapname" ) );
|
setdvar( "sv_mapRotation", "map " + getdvar( "mapname" ) );
|
||||||
exitLevel( false );
|
exitlevel( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
setDvar( "bots_main", 0 );
|
setdvar( "bots_main", 0 );
|
||||||
setdvar( "bots_main_menu", 0 );
|
setdvar( "bots_main_menu", 0 );
|
||||||
setdvar( "bots_manage_fill_mode", 0 );
|
setdvar( "bots_manage_fill_mode", 0 );
|
||||||
setdvar( "bots_manage_fill", 0 );
|
setdvar( "bots_manage_fill", 0 );
|
||||||
setdvar( "bots_manage_add", 0 );
|
setdvar( "bots_manage_add", 0 );
|
||||||
setdvar( "bots_manage_fill_kick", 1 );
|
setdvar( "bots_manage_fill_kick", 1 );
|
||||||
setDvar( "bots_manage_fill_spec", 1 );
|
setdvar( "bots_manage_fill_spec", 1 );
|
||||||
|
|
||||||
if ( getDvar( "bots_main_debug_distance" ) == "" )
|
if ( getdvar( "bots_main_debug_distance" ) == "" )
|
||||||
setDvar( "bots_main_debug_distance", 512.0 );
|
{
|
||||||
|
setdvar( "bots_main_debug_distance", 512.0 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_main_debug_cone" ) == "" )
|
if ( getdvar( "bots_main_debug_cone" ) == "" )
|
||||||
setDvar( "bots_main_debug_cone", 0.65 );
|
{
|
||||||
|
setdvar( "bots_main_debug_cone", 0.65 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_main_debug_minDist" ) == "" )
|
if ( getdvar( "bots_main_debug_minDist" ) == "" )
|
||||||
setDvar( "bots_main_debug_minDist", 32.0 );
|
{
|
||||||
|
setdvar( "bots_main_debug_minDist", 32.0 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_main_debug_drawThrough" ) == "" )
|
if ( getdvar( "bots_main_debug_drawThrough" ) == "" )
|
||||||
setDvar( "bots_main_debug_drawThrough", false );
|
{
|
||||||
|
setdvar( "bots_main_debug_drawThrough", false );
|
||||||
|
}
|
||||||
|
|
||||||
if ( getDvar( "bots_main_debug_commandWait" ) == "" )
|
if ( getdvar( "bots_main_debug_commandWait" ) == "" )
|
||||||
setDvar( "bots_main_debug_commandWait", 0.5 );
|
{
|
||||||
|
setdvar( "bots_main_debug_commandWait", 0.5 );
|
||||||
|
}
|
||||||
|
|
||||||
setDvar( "player_sustainAmmo", 1 );
|
setdvar( "player_sustainAmmo", 1 );
|
||||||
|
|
||||||
level.waypoints = [];
|
level.waypoints = [];
|
||||||
level.waypointCount = 0;
|
level.waypointcount = 0;
|
||||||
|
|
||||||
level waittill( "connected", player );
|
level waittill( "connected", player );
|
||||||
|
|
||||||
@ -76,17 +90,17 @@ beginDebug()
|
|||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
|
|
||||||
level.wpToLink = -1;
|
level.wptolink = -1;
|
||||||
level.autoLink = false;
|
level.autolink = false;
|
||||||
self.closest = -1;
|
self.closest = -1;
|
||||||
self.command = undefined;
|
self.command = undefined;
|
||||||
|
|
||||||
self clearPerks();
|
self clearperks();
|
||||||
self takeAllWeapons();
|
self takeallweapons();
|
||||||
self.specialty = [];
|
self.specialty = [];
|
||||||
self giveWeapon( "m1garand_gl_mp" );
|
self giveweapon( "m1garand_gl_mp" );
|
||||||
self SetActionSlot( 3, "altMode" );
|
self setactionslot( 3, "altMode" );
|
||||||
self giveWeapon( "frag_grenade_mp" );
|
self giveweapon( "frag_grenade_mp" );
|
||||||
self freezecontrols( false );
|
self freezecontrols( false );
|
||||||
|
|
||||||
self thread debug();
|
self thread debug();
|
||||||
@ -96,7 +110,7 @@ beginDebug()
|
|||||||
self thread watchSaveWaypointsCommand();
|
self thread watchSaveWaypointsCommand();
|
||||||
self thread sayExtras();
|
self thread sayExtras();
|
||||||
|
|
||||||
self thread textScroll( "^1SecondaryOffhand - ^2Add Waypoint; ^3MeleeButton - ^4Link Waypoint; ^5FragButton - ^6Delete Waypoint; ^7UseButton + AttackButton - ^8Save" );
|
self thread textScroll( "^1SecondaryOffhand - ^2Add Waypoint; ^3MeleeButton - ^4Link Waypoint; ^5FragButton - ^6delete Waypoint; ^7UseButton + AttackButton - ^8Save" );
|
||||||
}
|
}
|
||||||
|
|
||||||
sayExtras()
|
sayExtras()
|
||||||
@ -116,30 +130,40 @@ debug()
|
|||||||
{
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
|
||||||
if ( isDefined( self.command ) )
|
if ( isdefined( self.command ) )
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
closest = -1;
|
closest = -1;
|
||||||
myEye = self getTagOrigin( "j_head" );
|
myEye = self gettagorigin( "j_head" );
|
||||||
myAngles = self GetPlayerAngles();
|
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;
|
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-- )
|
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 ) );
|
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" ) )
|
if ( getConeDot( wpOrg, myEye, myAngles ) > getdvarfloat( "bots_main_debug_cone" ) )
|
||||||
|
{
|
||||||
print3d( wpOrg, i, ( 1, 0, 0 ), 2 );
|
print3d( wpOrg, i, ( 1, 0, 0 ), 2 );
|
||||||
|
}
|
||||||
|
|
||||||
if ( isDefined( level.waypoints[i].angles ) && level.waypoints[i].type != "stand" )
|
if ( isdefined( level.waypoints[ i ].angles ) && level.waypoints[ i ].type != "stand" )
|
||||||
line( wpOrg, wpOrg + AnglesToForward( level.waypoints[i].angles ) * 64, ( 1, 1, 1 ) );
|
{
|
||||||
|
line( wpOrg, wpOrg + anglestoforward( level.waypoints[ i ].angles ) * 64, ( 1, 1, 1 ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,10 +176,14 @@ debug()
|
|||||||
for ( i = 0; i < level.waypoints[ closest ].children.size; i++ )
|
for ( i = 0; i < level.waypoints[ closest ].children.size; i++ )
|
||||||
{
|
{
|
||||||
if ( i != 0 )
|
if ( i != 0 )
|
||||||
|
{
|
||||||
stringChildren = stringChildren + "," + level.waypoints[ closest ].children[ i ];
|
stringChildren = stringChildren + "," + level.waypoints[ closest ].children[ i ];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
stringChildren = stringChildren + level.waypoints[ closest ].children[ i ];
|
stringChildren = stringChildren + level.waypoints[ closest ].children[ i ];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print3d( level.waypoints[ closest ].origin + ( 0, 0, 35 ), stringChildren, ( 0, 1, 0 ), 2 );
|
print3d( level.waypoints[ closest ].origin + ( 0, 0, 35 ), stringChildren, ( 0, 1, 0 ), 2 );
|
||||||
|
|
||||||
@ -164,17 +192,19 @@ debug()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AddWaypoints()
|
addWaypoints()
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
while ( !self SecondaryOffhandButtonPressed() || isDefined( self.command ) )
|
while ( !self secondaryoffhandbuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
pos = self getOrigin();
|
pos = self getorigin();
|
||||||
self.command = true;
|
self.command = true;
|
||||||
|
|
||||||
self iprintln( "Adding a waypoint..." );
|
self iprintln( "Adding a waypoint..." );
|
||||||
@ -182,16 +212,18 @@ AddWaypoints()
|
|||||||
self iprintln( "Attack - grenade; Use - claymore" );
|
self iprintln( "Attack - grenade; Use - claymore" );
|
||||||
self iprintln( "Else(wait) - your stance" );
|
self iprintln( "Else(wait) - your stance" );
|
||||||
|
|
||||||
wait getDvarFloat( "bots_main_debug_commandWait" );
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
self addWaypoint( pos );
|
self addWaypoint( pos );
|
||||||
|
|
||||||
self.command = undefined;
|
self.command = undefined;
|
||||||
|
|
||||||
while ( self SecondaryOffhandButtonPressed() )
|
while ( self secondaryoffhandbuttonpressed() )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
linkWaypoints()
|
linkWaypoints()
|
||||||
{
|
{
|
||||||
@ -200,26 +232,34 @@ linkWaypoints()
|
|||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
while ( !self MeleeButtonPressed() || isDefined( self.command ) )
|
while ( !self meleebuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
self.command = true;
|
self.command = true;
|
||||||
|
|
||||||
self iprintln( "ADS - Unlink; Else(wait) - Link" );
|
self iprintln( "ADS - unlink; Else(wait) - Link" );
|
||||||
|
|
||||||
wait getDvarFloat( "bots_main_debug_commandWait" );
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
if ( !self adsButtonPressed() )
|
if ( !self adsbuttonpressed() )
|
||||||
|
{
|
||||||
self LinkWaypoint( self.closest );
|
self LinkWaypoint( self.closest );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
self UnLinkWaypoint( self.closest );
|
self UnLinkWaypoint( self.closest );
|
||||||
|
}
|
||||||
|
|
||||||
self.command = undefined;
|
self.command = undefined;
|
||||||
|
|
||||||
while ( self MeleeButtonPressed() )
|
while ( self meleebuttonpressed() )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
deleteWaypoints()
|
deleteWaypoints()
|
||||||
{
|
{
|
||||||
@ -228,29 +268,39 @@ deleteWaypoints()
|
|||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
while ( !self fragButtonPressed() || isDefined( self.command ) )
|
while ( !self fragbuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
self.command = true;
|
self.command = true;
|
||||||
|
|
||||||
self iprintln( "Attack - DeleteAll; ADS - Load" );
|
self iprintln( "Attack - deleteAll; ADS - Load" );
|
||||||
self iprintln( "Else(wait) - Delete" );
|
self iprintln( "Else(wait) - delete" );
|
||||||
|
|
||||||
wait getDvarFloat( "bots_main_debug_commandWait" );
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
if ( self attackButtonPressed() )
|
if ( self attackbuttonpressed() )
|
||||||
|
{
|
||||||
self deleteAllWaypoints();
|
self deleteAllWaypoints();
|
||||||
else if ( self adsButtonPressed() )
|
}
|
||||||
|
else if ( self adsbuttonpressed() )
|
||||||
|
{
|
||||||
self LoadWaypoints();
|
self LoadWaypoints();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
self DeleteWaypoint( self.closest );
|
{
|
||||||
|
self deleteWaypoint( self.closest );
|
||||||
|
}
|
||||||
|
|
||||||
self.command = undefined;
|
self.command = undefined;
|
||||||
|
|
||||||
while ( self fragButtonPressed() )
|
while ( self fragbuttonpressed() )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
watchSaveWaypointsCommand()
|
watchSaveWaypointsCommand()
|
||||||
{
|
{
|
||||||
@ -259,16 +309,18 @@ watchSaveWaypointsCommand()
|
|||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
while ( !self useButtonPressed() || !self attackButtonPressed() || isDefined( self.command ) )
|
while ( !self usebuttonpressed() || !self attackbuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
self.command = true;
|
self.command = true;
|
||||||
|
|
||||||
self iprintln( "ADS - Autolink; Else(wait) - Save" );
|
self iprintln( "ADS - Autolink; Else(wait) - Save" );
|
||||||
|
|
||||||
wait getDvarFloat( "bots_main_debug_commandWait" );
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
if ( !self adsButtonPressed() )
|
if ( !self adsbuttonpressed() )
|
||||||
{
|
{
|
||||||
self checkForWarnings();
|
self checkForWarnings();
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -279,7 +331,7 @@ watchSaveWaypointsCommand()
|
|||||||
logprint( "\n\n" + mpnm + "()\n{\n/*" );
|
logprint( "\n\n" + mpnm + "()\n{\n/*" );
|
||||||
logprint( "*/waypoints = [];\n/*" );
|
logprint( "*/waypoints = [];\n/*" );
|
||||||
|
|
||||||
for ( i = 0; i < level.waypointCount; i++ )
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
{
|
{
|
||||||
logprint( "*/waypoints[ " + i + " ] = spawnstruct();\n/*" );
|
logprint( "*/waypoints[ " + i + " ] = spawnstruct();\n/*" );
|
||||||
logprint( "*/waypoints[ " + i + " ].origin = " + level.waypoints[ i ].origin + ";\n/*" );
|
logprint( "*/waypoints[ " + i + " ].origin = " + level.waypoints[ i ].origin + ";\n/*" );
|
||||||
@ -290,20 +342,22 @@ watchSaveWaypointsCommand()
|
|||||||
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" ) )
|
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/*" );
|
logprint( "*/waypoints[ " + i + " ].angles = " + level.waypoints[ i ].angles + ";\n/*" );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
logprint( "*/return waypoints;\n}\n\n\n\n" );
|
logprint( "*/return waypoints;\n}\n\n\n\n" );
|
||||||
|
|
||||||
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
|
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
|
||||||
|
|
||||||
PrintLn( "********* Start Bot Warfare WPDump *********" );
|
println( "********* Start Bot Warfare WPDump *********" );
|
||||||
PrintLn( level.waypointCount );
|
println( level.waypointcount );
|
||||||
|
|
||||||
BotBuiltinFileWrite( filename, level.waypointCount + "\n", "write" );
|
BotBuiltinFileWrite( filename, level.waypointcount + "\n", "write" );
|
||||||
|
|
||||||
for ( i = 0; i < level.waypointCount; i++ )
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
{
|
{
|
||||||
str = "";
|
str = "";
|
||||||
wp = level.waypoints[ i ];
|
wp = level.waypoints[ i ];
|
||||||
@ -315,53 +369,61 @@ watchSaveWaypointsCommand()
|
|||||||
str += wp.children[ h ];
|
str += wp.children[ h ];
|
||||||
|
|
||||||
if ( h < wp.children.size - 1 )
|
if ( h < wp.children.size - 1 )
|
||||||
|
{
|
||||||
str += " ";
|
str += " ";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
str += "," + wp.type + ",";
|
str += "," + wp.type + ",";
|
||||||
|
|
||||||
if ( isDefined( wp.angles ) )
|
if ( isdefined( wp.angles ) )
|
||||||
|
{
|
||||||
str += wp.angles[ 0 ] + " " + wp.angles[ 1 ] + " " + wp.angles[ 2 ] + ",";
|
str += wp.angles[ 0 ] + " " + wp.angles[ 1 ] + " " + wp.angles[ 2 ] + ",";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
str += ",";
|
str += ",";
|
||||||
|
}
|
||||||
|
|
||||||
str += ",";
|
str += ",";
|
||||||
|
|
||||||
PrintLn( str );
|
println( str );
|
||||||
BotBuiltinFileWrite( filename, str + "\n", "append" );
|
BotBuiltinFileWrite( filename, str + "\n", "append" );
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintLn( "\n\n\n\n\n\n" );
|
println( "\n\n\n\n\n\n" );
|
||||||
|
|
||||||
self iprintln( "Saved!!! to " + filename );
|
self iprintln( "Saved!!! to " + filename );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( level.autoLink )
|
if ( level.autolink )
|
||||||
{
|
{
|
||||||
self iPrintlnBold( "Auto link disabled" );
|
self iprintlnbold( "Auto link disabled" );
|
||||||
level.autoLink = false;
|
level.autolink = false;
|
||||||
level.wpToLink = -1;
|
level.wptolink = -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
self iPrintlnBold( "Auto link enabled" );
|
self iprintlnbold( "Auto link enabled" );
|
||||||
level.autoLink = true;
|
level.autolink = true;
|
||||||
level.wpToLink = self.closest;
|
level.wptolink = self.closest;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.command = undefined;
|
self.command = undefined;
|
||||||
|
|
||||||
while ( self useButtonPressed() && self attackButtonPressed() )
|
while ( self usebuttonpressed() && self attackbuttonpressed() )
|
||||||
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LoadWaypoints()
|
LoadWaypoints()
|
||||||
{
|
{
|
||||||
self DeleteAllWaypoints();
|
self deleteAllWaypoints();
|
||||||
self iPrintlnBold( "Loading WPS..." );
|
self iprintlnbold( "Loading WPS..." );
|
||||||
load_waypoints();
|
load_waypoints();
|
||||||
|
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -371,25 +433,31 @@ LoadWaypoints()
|
|||||||
|
|
||||||
checkForWarnings()
|
checkForWarnings()
|
||||||
{
|
{
|
||||||
if ( level.waypointCount <= 0 )
|
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 );
|
|
||||||
|
|
||||||
for ( i = 0; i < level.waypointCount; i++ )
|
|
||||||
{
|
{
|
||||||
if ( !isDefined( level.waypoints[i] ) )
|
self iprintln( "WARNING: waypointCount is " + level.waypointcount );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( level.waypointcount != level.waypoints.size )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypointCount is not " + level.waypoints.size );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
|
{
|
||||||
|
if ( !isdefined( level.waypoints[ i ] ) )
|
||||||
{
|
{
|
||||||
self iprintln( "WARNING: waypoint " + i + " is undefined" );
|
self iprintln( "WARNING: waypoint " + i + " is undefined" );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( level.waypoints[ i ].children.size <= 0 )
|
if ( level.waypoints[ i ].children.size <= 0 )
|
||||||
|
{
|
||||||
self iprintln( "WARNING: waypoint " + i + " childCount is " + level.waypoints[ i ].children.size );
|
self iprintln( "WARNING: waypoint " + i + " childCount is " + level.waypoints[ i ].children.size );
|
||||||
|
}
|
||||||
else
|
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" );
|
||||||
}
|
}
|
||||||
@ -399,42 +467,48 @@ checkForWarnings()
|
|||||||
{
|
{
|
||||||
child = level.waypoints[ i ].children[ h ];
|
child = level.waypoints[ i ].children[ h ];
|
||||||
|
|
||||||
if ( !isDefined( level.waypoints[child] ) )
|
if ( !isdefined( level.waypoints[ child ] ) )
|
||||||
|
{
|
||||||
self iprintln( "WARNING: waypoint " + i + " child " + child + " is undefined" );
|
self iprintln( "WARNING: waypoint " + i + " child " + child + " is undefined" );
|
||||||
|
}
|
||||||
else if ( child == i )
|
else if ( child == i )
|
||||||
|
{
|
||||||
self iprintln( "WARNING: waypoint " + i + " child " + child + " is itself" );
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
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" ) )
|
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" );
|
self iprintln( "WARNING: waypoint " + i + " angles is undefined" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DeleteAllWaypoints()
|
deleteAllWaypoints()
|
||||||
{
|
{
|
||||||
level.waypoints = [];
|
level.waypoints = [];
|
||||||
level.waypointCount = 0;
|
level.waypointcount = 0;
|
||||||
|
|
||||||
self iprintln( "DelAllWps" );
|
self iprintln( "DelAllWps" );
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
level.wpToLink = -1;
|
level.wptolink = -1;
|
||||||
|
|
||||||
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
|
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
|
||||||
{
|
{
|
||||||
@ -443,20 +517,22 @@ DeleteWaypoint( nwp )
|
|||||||
level.waypoints[ child ].children = array_remove( level.waypoints[ child ].children, nwp );
|
level.waypoints[ child ].children = array_remove( level.waypoints[ child ].children, nwp );
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = 0; i < level.waypointCount; i++ )
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
{
|
{
|
||||||
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
|
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
|
||||||
{
|
{
|
||||||
if ( level.waypoints[ i ].children[ h ] > nwp )
|
if ( level.waypoints[ i ].children[ h ] > nwp )
|
||||||
|
{
|
||||||
level.waypoints[ i ].children[ h ]--;
|
level.waypoints[ i ].children[ h ]--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for ( entry = 0; entry < level.waypointCount; entry++ )
|
for ( entry = 0; entry < level.waypointcount; entry++ )
|
||||||
{
|
{
|
||||||
if ( entry == nwp )
|
if ( entry == nwp )
|
||||||
{
|
{
|
||||||
while ( entry < level.waypointCount - 1 )
|
while ( entry < level.waypointcount - 1 )
|
||||||
{
|
{
|
||||||
level.waypoints[ entry ] = level.waypoints[ entry + 1 ];
|
level.waypoints[ entry ] = level.waypoints[ entry + 1 ];
|
||||||
entry++;
|
entry++;
|
||||||
@ -467,92 +543,104 @@ DeleteWaypoint( nwp )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
level.waypointCount--;
|
level.waypointcount--;
|
||||||
|
|
||||||
self iprintln( "DelWp " + nwp );
|
self iprintln( "DelWp " + nwp );
|
||||||
}
|
}
|
||||||
|
|
||||||
addWaypoint( pos )
|
addWaypoint( pos )
|
||||||
{
|
{
|
||||||
level.waypoints[level.waypointCount] = spawnstruct();
|
level.waypoints[ level.waypointcount ] = spawnstruct();
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].origin = pos;
|
level.waypoints[ level.waypointcount ].origin = pos;
|
||||||
|
|
||||||
if ( self AdsButtonPressed() )
|
if ( self adsbuttonpressed() )
|
||||||
level.waypoints[level.waypointCount].type = "climb";
|
|
||||||
else if ( self AttackButtonPressed() && self UseButtonPressed() )
|
|
||||||
level.waypoints[level.waypointCount].type = "tube";
|
|
||||||
else if ( self AttackButtonPressed() )
|
|
||||||
level.waypoints[level.waypointCount].type = "grenade";
|
|
||||||
else if ( self UseButtonPressed() )
|
|
||||||
level.waypoints[level.waypointCount].type = "claymore";
|
|
||||||
else
|
|
||||||
level.waypoints[level.waypointCount].type = self getStance();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].angles = self getPlayerAngles();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].children = [];
|
|
||||||
|
|
||||||
self iprintln( level.waypoints[level.waypointCount].type + " Waypoint " + level.waypointCount + " Added at " + pos );
|
|
||||||
|
|
||||||
if ( level.autoLink )
|
|
||||||
{
|
{
|
||||||
if ( level.wpToLink == -1 )
|
level.waypoints[ level.waypointcount ].type = "climb";
|
||||||
level.wpToLink = level.waypointCount - 1;
|
}
|
||||||
|
else if ( self attackbuttonpressed() && self usebuttonpressed() )
|
||||||
level.waypointCount++;
|
{
|
||||||
self LinkWaypoint( level.waypointCount - 1 );
|
level.waypoints[ level.waypointcount ].type = "tube";
|
||||||
|
}
|
||||||
|
else if ( self attackbuttonpressed() )
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ].type = "grenade";
|
||||||
|
}
|
||||||
|
else if ( self usebuttonpressed() )
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ].type = "claymore";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
level.waypointCount++;
|
level.waypoints[ level.waypointcount ].type = self getstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypoints[ level.waypointcount ].angles = self getplayerangles();
|
||||||
|
|
||||||
|
level.waypoints[ level.waypointcount ].children = [];
|
||||||
|
|
||||||
|
self iprintln( level.waypoints[ level.waypointcount ].type + " Waypoint " + level.waypointcount + " Added at " + pos );
|
||||||
|
|
||||||
|
if ( level.autolink )
|
||||||
|
{
|
||||||
|
if ( level.wptolink == -1 )
|
||||||
|
{
|
||||||
|
level.wptolink = level.waypointcount - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypointcount++;
|
||||||
|
self LinkWaypoint( level.waypointcount - 1 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
level.waypointcount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
level.wptolink = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( level.wpToLink == -1 || nwp == level.wpToLink )
|
if ( level.wptolink == -1 || nwp == level.wptolink )
|
||||||
{
|
{
|
||||||
level.wpToLink = nwp;
|
level.wptolink = nwp;
|
||||||
self iprintln( "Waypoint Unlink Started " + nwp );
|
self iprintln( "Waypoint unlink Started " + nwp );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
level.waypoints[nwp].children = array_remove( level.waypoints[nwp].children, level.wpToLink );
|
level.waypoints[ nwp ].children = array_remove( level.waypoints[ nwp ].children, level.wptolink );
|
||||||
level.waypoints[level.wpToLink].children = array_remove( level.waypoints[level.wpToLink].children, nwp );
|
level.waypoints[ level.wptolink ].children = array_remove( level.waypoints[ level.wptolink ].children, nwp );
|
||||||
|
|
||||||
self iprintln( "Waypoint " + nwp + " Broken to " + level.wpToLink );
|
self iprintln( "Waypoint " + nwp + " Broken to " + level.wptolink );
|
||||||
level.wpToLink = -1;
|
level.wptolink = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
LinkWaypoint( nwp )
|
LinkWaypoint( nwp )
|
||||||
{
|
{
|
||||||
if ( nwp == -1 || distance( self.origin, level.waypoints[nwp].origin ) > getDvarFloat( "bots_main_debug_minDist" ) )
|
if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getdvarfloat( "bots_main_debug_minDist" ) )
|
||||||
{
|
{
|
||||||
self iprintln( "Waypoint Link Cancelled " + level.wpToLink );
|
self iprintln( "Waypoint Link Cancelled " + level.wptolink );
|
||||||
level.wpToLink = -1;
|
level.wptolink = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( level.wpToLink == -1 || nwp == level.wpToLink )
|
if ( level.wptolink == -1 || nwp == level.wptolink )
|
||||||
{
|
{
|
||||||
level.wpToLink = nwp;
|
level.wptolink = nwp;
|
||||||
self iprintln( "Waypoint Link Started " + nwp );
|
self iprintln( "Waypoint Link Started " + nwp );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
weGood = true;
|
weGood = true;
|
||||||
|
|
||||||
for ( i = level.waypoints[level.wpToLink].children.size - 1; i >= 0; i-- )
|
for ( i = level.waypoints[ level.wptolink ].children.size - 1; i >= 0; i-- )
|
||||||
{
|
{
|
||||||
if ( level.waypoints[level.wpToLink].children[i] == nwp )
|
if ( level.waypoints[ level.wptolink ].children[ i ] == nwp )
|
||||||
{
|
{
|
||||||
weGood = false;
|
weGood = false;
|
||||||
break;
|
break;
|
||||||
@ -563,7 +651,7 @@ LinkWaypoint( nwp )
|
|||||||
{
|
{
|
||||||
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
|
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
|
||||||
{
|
{
|
||||||
if ( level.waypoints[nwp].children[i] == level.wpToLink )
|
if ( level.waypoints[ nwp ].children[ i ] == level.wptolink )
|
||||||
{
|
{
|
||||||
weGood = false;
|
weGood = false;
|
||||||
break;
|
break;
|
||||||
@ -573,16 +661,16 @@ LinkWaypoint( nwp )
|
|||||||
|
|
||||||
if ( !weGood )
|
if ( !weGood )
|
||||||
{
|
{
|
||||||
self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wpToLink + " already linked." );
|
self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wptolink + " already linked." );
|
||||||
level.wpToLink = -1;
|
level.wptolink = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
level.waypoints[level.wpToLink].children[level.waypoints[level.wpToLink].children.size] = nwp;
|
level.waypoints[ level.wptolink ].children[ level.waypoints[ level.wptolink ].children.size ] = nwp;
|
||||||
level.waypoints[nwp].children[level.waypoints[nwp].children.size] = level.wpToLink;
|
level.waypoints[ nwp ].children[ level.waypoints[ nwp ].children.size ] = level.wptolink;
|
||||||
|
|
||||||
self iprintln( "Waypoint " + nwp + " Linked to " + level.wpToLink );
|
self iprintln( "Waypoint " + nwp + " Linked to " + level.wptolink );
|
||||||
level.wpToLink = -1;
|
level.wptolink = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
destroyOnDeath( hud )
|
destroyOnDeath( hud )
|
||||||
@ -598,18 +686,18 @@ textScroll( string )
|
|||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
// thanks ActionScript
|
// thanks ActionScript
|
||||||
|
|
||||||
back = createBar( ( 0, 0, 0 ), 1000, 30 );
|
back = createbar( ( 0, 0, 0 ), 1000, 30 );
|
||||||
back setPoint( "CENTER", undefined, 0, 220 );
|
back setpoint( "CENTER", undefined, 0, 220 );
|
||||||
self thread destroyOnDeath( back );
|
self thread destroyOnDeath( back );
|
||||||
|
|
||||||
text = createFontString( "default", 1.5 );
|
text = createfontstring( "default", 1.5 );
|
||||||
text setText( string );
|
text settext( string );
|
||||||
self thread destroyOnDeath( text );
|
self thread destroyOnDeath( text );
|
||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
text setPoint( "CENTER", undefined, 1200, 220 );
|
text setpoint( "CENTER", undefined, 1200, 220 );
|
||||||
text setPoint( "CENTER", undefined, -1200, 220, 20 );
|
text setpoint( "CENTER", undefined, -1200, 220, 20 );
|
||||||
wait 20;
|
wait 20;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,19 +13,19 @@ init()
|
|||||||
|
|
||||||
do_printconsole( s )
|
do_printconsole( s )
|
||||||
{
|
{
|
||||||
PrintConsole( s );
|
printconsole( s );
|
||||||
}
|
}
|
||||||
|
|
||||||
do_filewrite( file, contents, mode )
|
do_filewrite( file, contents, mode )
|
||||||
{
|
{
|
||||||
file = "scriptdata/" + file;
|
file = "scriptdata/" + file;
|
||||||
FileWrite( file, contents, mode );
|
filewrite( file, contents, mode );
|
||||||
}
|
}
|
||||||
|
|
||||||
do_fileread( file )
|
do_fileread( file )
|
||||||
{
|
{
|
||||||
file = "scriptdata/" + file;
|
file = "scriptdata/" + file;
|
||||||
return FileRead( file );
|
return fileread( file );
|
||||||
}
|
}
|
||||||
|
|
||||||
do_fileexists( file )
|
do_fileexists( file )
|
||||||
@ -36,25 +36,25 @@ do_fileexists( file )
|
|||||||
|
|
||||||
do_botaction( action )
|
do_botaction( action )
|
||||||
{
|
{
|
||||||
self BotAction( action );
|
self botaction( action );
|
||||||
}
|
}
|
||||||
|
|
||||||
do_botstop()
|
do_botstop()
|
||||||
{
|
{
|
||||||
self BotStop();
|
self botstop();
|
||||||
}
|
}
|
||||||
|
|
||||||
do_botmovement( forward, right )
|
do_botmovement( forward, right )
|
||||||
{
|
{
|
||||||
self BotMovement( forward, right );
|
self botmovement( forward, right );
|
||||||
}
|
}
|
||||||
|
|
||||||
do_botmeleeparams( yaw, dist )
|
do_botmeleeparams( yaw, dist )
|
||||||
{
|
{
|
||||||
// self BotMeleeParams( yaw, dist );
|
// self botmeleeparams( yaw, dist );
|
||||||
}
|
}
|
||||||
|
|
||||||
do_isbot()
|
do_isbot()
|
||||||
{
|
{
|
||||||
return self isBot();
|
return self isbot();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user