mirror of
https://github.com/ineedbots/iw3_bot_warfare.git
synced 2026-04-26 23:09:35 +00:00
case sensitive, always curly braces, array index spacing,
This commit is contained in:
+438
-236
File diff suppressed because it is too large
Load Diff
+128
-50
@@ -15,8 +15,10 @@
|
||||
*/
|
||||
init()
|
||||
{
|
||||
if ( getDvar( "bots_main_chat" ) == "" )
|
||||
setDvar( "bots_main_chat", 1.0 );
|
||||
if ( getdvar( "bots_main_chat" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_chat", 1.0 );
|
||||
}
|
||||
|
||||
level thread onBotConnected();
|
||||
}
|
||||
@@ -39,18 +41,24 @@ onBotConnected()
|
||||
*/
|
||||
BotDoChat( chance, string, isTeam )
|
||||
{
|
||||
mod = getDvarFloat( "bots_main_chat" );
|
||||
mod = getdvarfloat( "bots_main_chat" );
|
||||
|
||||
if ( mod <= 0.0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
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 );
|
||||
}
|
||||
else
|
||||
{
|
||||
self sayall( string );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,9 +89,9 @@ start_death_watch()
|
||||
{
|
||||
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,10 +118,12 @@ start_random_chat()
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -125,24 +135,24 @@ start_killed_watch()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self.bots_lastKS = 0;
|
||||
self.bots_lastks = 0;
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "killed_enemy" );
|
||||
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.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 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -362,7 +372,7 @@ doQuickMessage()
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
if ( !isDefined( self.talking ) || !self.talking )
|
||||
if ( !isdefined( self.talking ) || !self.talking )
|
||||
{
|
||||
self.talking = true;
|
||||
soundalias = "";
|
||||
@@ -400,15 +410,17 @@ doQuickMessage()
|
||||
|
||||
if ( soundalias != "" && saytext != "" )
|
||||
{
|
||||
self maps\mp\gametypes\_quickmessages::saveHeadIcon();
|
||||
self maps\mp\gametypes\_quickmessages::doQuickMessage( soundalias, saytext );
|
||||
self maps\mp\gametypes\_quickmessages::saveheadicon();
|
||||
self maps\mp\gametypes\_quickmessages::doquickmessage( soundalias, saytext );
|
||||
wait 2;
|
||||
self maps\mp\gametypes\_quickmessages::restoreHeadIcon();
|
||||
self maps\mp\gametypes\_quickmessages::restoreheadicon();
|
||||
}
|
||||
else
|
||||
{
|
||||
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.spamdelay = undefined;
|
||||
@@ -432,26 +444,26 @@ endgame_chat()
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
player = level.players[ i ];
|
||||
|
||||
if ( player.pers["score"] > b )
|
||||
if ( player.pers[ "score" ] > b )
|
||||
{
|
||||
winner = player;
|
||||
b = player.pers["score"];
|
||||
b = player.pers[ "score" ];
|
||||
}
|
||||
|
||||
if ( player.pers["score"] < w )
|
||||
if ( player.pers[ "score" ] < w )
|
||||
{
|
||||
loser = player;
|
||||
w = player.pers["score"];
|
||||
w = player.pers[ "score" ];
|
||||
}
|
||||
}
|
||||
|
||||
if ( level.teamBased )
|
||||
if ( level.teambased )
|
||||
{
|
||||
winningteam = getWinningTeam();
|
||||
|
||||
if ( self.pers["team"] == winningteam )
|
||||
if ( self.pers[ "team" ] == winningteam )
|
||||
{
|
||||
switch ( randomint( 21 ) )
|
||||
{
|
||||
@@ -484,7 +496,7 @@ endgame_chat()
|
||||
break;
|
||||
|
||||
case 7:
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers["team"] + " always wins!!" );
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers[ "team" ] + " always wins!!" );
|
||||
break;
|
||||
|
||||
case 8:
|
||||
@@ -525,25 +537,41 @@ endgame_chat()
|
||||
|
||||
case 17:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "LOL we wouldn't of won without me!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "damn i sucked but i still won" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "lol " + loser.name + " sucked hard!" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "wow " + winner.name + " did very well!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 18:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "I'm the VERY BEST!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "lol my team is good, i suck doe" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "lol " + loser.name + " should be playing a noobier game" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "i think " + winner.name + " is a hacker" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -579,7 +607,7 @@ endgame_chat()
|
||||
break;
|
||||
|
||||
case 5:
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers["team"] + " always loses!!" );
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers[ "team" ] + " always loses!!" );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
@@ -620,25 +648,41 @@ endgame_chat()
|
||||
|
||||
case 14:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "LOL we lost even with my score." );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "damn im probally the reason we lost" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, loser.name + " should just leave" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "kwtf " + winner.name + " is a hacker" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 15:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "my teammates are garabge" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "lol im garbage" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, loser.name + " sux" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, winner.name + " is a noob!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -708,37 +752,61 @@ endgame_chat()
|
||||
{
|
||||
case 0:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Haha Suck it, you all just got pwnd!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol i Sucked in this game, just look at my score!" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "gga, Bad luck " + loser.name );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "This game sucked, " + winner.name + " is such a hacker!!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "GGA i suck, Nice score " + winner.name );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Rofl, " + loser.name + " dude, you suck!!" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Nice Score " + winner.name + ", how did you get to be so good?" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "nice wallhacks " + winner.name );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol atleast i did better then " + loser.name );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "lolwtf " + winner.name );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -822,7 +890,7 @@ bot_chat_streak( streakCount )
|
||||
|
||||
if ( streakCount == 7 )
|
||||
{
|
||||
if ( isDefined( self.pers["hardPointItem"] ) && self.pers["hardPointItem"] == "helicopter_mp" )
|
||||
if ( isdefined( self.pers[ "hardPointItem" ] ) && self.pers[ "hardPointItem" ] == "helicopter_mp" )
|
||||
{
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
@@ -845,8 +913,10 @@ bot_chat_killed_watch( victim )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isDefined( victim ) || !isDefined( victim.name ) )
|
||||
if ( !isdefined( victim ) || !isdefined( victim.name ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
message = "";
|
||||
|
||||
@@ -1013,7 +1083,7 @@ bot_chat_killed_watch( victim )
|
||||
break;
|
||||
|
||||
case 40:
|
||||
message = ( "Man, I sure love my " + getBaseWeaponName( self GetCurrentWeapon() ) + "!" );
|
||||
message = ( "Man, I sure love my " + getBaseWeaponName( self getcurrentweapon() ) + "!" );
|
||||
|
||||
break;
|
||||
|
||||
@@ -1033,8 +1103,10 @@ bot_chat_death_watch( killer, last_ks )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isDefined( killer ) || !isDefined( killer.name ) )
|
||||
if ( !isdefined( killer ) || !isdefined( killer.name ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
message = "";
|
||||
|
||||
@@ -1058,14 +1130,18 @@ bot_chat_death_watch( killer, last_ks )
|
||||
|
||||
case 4:
|
||||
if ( last_ks > 0 )
|
||||
{
|
||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Nooooooooo my killstreaks!! :( I had a " + last_ks + " killstreak!!" );
|
||||
}
|
||||
else
|
||||
{
|
||||
message = ( "man im getting spawn killed, i have a " + self.cur_death_streak + " deathstreak!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 5:
|
||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Stop Spawn KILLING!!!" );
|
||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Stop spawn KILLING!!!" );
|
||||
break;
|
||||
|
||||
case 6:
|
||||
@@ -1157,19 +1233,19 @@ bot_chat_death_watch( killer, last_ks )
|
||||
break;
|
||||
|
||||
case 28:
|
||||
message = ( "AHH! IM DEAD BECAUSE " + level.players[randomint( level.players.size )].name + " is a noob!" );
|
||||
message = ( "AHH! IM DEAD BECAUSE " + level.players[ randomint( level.players.size ) ].name + " is a noob!" );
|
||||
break;
|
||||
|
||||
case 29:
|
||||
message = ( level.players[randomint( level.players.size )].name + ", please don't talk." );
|
||||
message = ( level.players[ randomint( level.players.size ) ].name + ", please don't talk." );
|
||||
break;
|
||||
|
||||
case 30:
|
||||
message = ( "Wow " + level.players[randomint( level.players.size )].name + " is a blocker noob!" );
|
||||
message = ( "Wow " + level.players[ randomint( level.players.size ) ].name + " is a blocker noob!" );
|
||||
break;
|
||||
|
||||
case 31:
|
||||
message = ( "Next time GET OUT OF MY WAY " + level.players[randomint( level.players.size )].name + "!!" );
|
||||
message = ( "Next time GET OUT OF MY WAY " + level.players[ randomint( level.players.size ) ].name + "!!" );
|
||||
break;
|
||||
|
||||
case 32:
|
||||
@@ -1285,7 +1361,7 @@ bot_chat_death_watch( killer, last_ks )
|
||||
break;
|
||||
|
||||
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;
|
||||
|
||||
@@ -1332,7 +1408,7 @@ bot_chat_killcam_watch( state, b, c, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
switch ( randomInt( 2 ) )
|
||||
switch ( randomint( 2 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 1, "WTF?!?!?!! Dude youre a hacker and a half!!" );
|
||||
@@ -1346,7 +1422,7 @@ bot_chat_killcam_watch( state, b, c, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
switch ( randomInt( 2 ) )
|
||||
switch ( randomint( 2 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 1, "Wow... Im reporting you!!!" );
|
||||
@@ -1368,7 +1444,7 @@ bot_chat_stuck_watch( a, b, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
sayLength = randomintRange( 5, 30 );
|
||||
sayLength = randomintrange( 5, 30 );
|
||||
msg = "";
|
||||
|
||||
for ( i = 0; i < sayLength; i++ )
|
||||
@@ -1426,7 +1502,7 @@ bot_chat_tube_watch( state, tubeWp, tubeWeap, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am going to go tube" );
|
||||
@@ -1436,7 +1512,7 @@ bot_chat_tube_watch( state, tubeWp, tubeWeap, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i tubed" );
|
||||
@@ -1457,7 +1533,7 @@ bot_chat_killstreak_watch( state, location, directionYaw, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "call":
|
||||
if ( self.pers["hardPointItem"] == "helicopter_mp" )
|
||||
if ( self.pers[ "hardPointItem" ] == "helicopter_mp" )
|
||||
{
|
||||
self BotDoChat( 20, "wewt! i got the choppa!!" );
|
||||
}
|
||||
@@ -1533,8 +1609,10 @@ bot_chat_attack_vehicle_watch( state, vehicle, c, d, e, f, g )
|
||||
case 13:
|
||||
weap = "rpg_mp";
|
||||
|
||||
if ( !self GetAmmoCount( "weap" ) )
|
||||
weap = self getCurrentWeapon();
|
||||
if ( !self getammocount( "weap" ) )
|
||||
{
|
||||
weap = self getcurrentweapon();
|
||||
}
|
||||
|
||||
self BotDoChat( 10, "Im going to takedown your ks with my " + getBaseWeaponName( weap ) );
|
||||
break;
|
||||
@@ -1636,7 +1714,7 @@ bot_chat_follow_watch( state, player, time, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isDefined( player ) )
|
||||
if ( !isdefined( player ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -1687,7 +1765,7 @@ bot_chat_equ_watch( state, wp, weap, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "going to place a " + getBaseWeaponName( weap ) );
|
||||
@@ -1697,7 +1775,7 @@ bot_chat_equ_watch( state, wp, weap, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "placed a " + getBaseWeaponName( weap ) );
|
||||
@@ -1718,7 +1796,7 @@ bot_chat_nade_watch( state, wp, weap, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "going to throw a " + getBaseWeaponName( weap ) );
|
||||
@@ -1728,7 +1806,7 @@ bot_chat_nade_watch( state, wp, weap, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "threw a " + getBaseWeaponName( weap ) );
|
||||
|
||||
+725
-359
File diff suppressed because it is too large
Load Diff
+1517
-747
File diff suppressed because it is too large
Load Diff
+727
-453
File diff suppressed because it is too large
Load Diff
+1320
-1131
File diff suppressed because it is too large
Load Diff
+298
-196
@@ -12,60 +12,82 @@
|
||||
|
||||
init()
|
||||
{
|
||||
if ( getDvar( "bots_main_debug" ) == "" )
|
||||
setDvar( "bots_main_debug", 0 );
|
||||
if ( getdvar( "bots_main_debug" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug", 0 );
|
||||
}
|
||||
|
||||
if ( !getDVarint( "bots_main_debug" ) )
|
||||
if ( !getdvarint( "bots_main_debug" ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !getDVarint( "developer" ) )
|
||||
if ( !getdvarint( "developer" ) )
|
||||
{
|
||||
setdvar( "developer_script", 1 );
|
||||
setdvar( "developer", 1 );
|
||||
|
||||
setdvar( "sv_mapRotation", "map " + getDvar( "mapname" ) );
|
||||
exitLevel( false );
|
||||
setdvar( "sv_mapRotation", "map " + getdvar( "mapname" ) );
|
||||
exitlevel( false );
|
||||
}
|
||||
|
||||
setDvar( "bots_main", 0 );
|
||||
setdvar( "bots_main", 0 );
|
||||
setdvar( "bots_main_menu", 0 );
|
||||
setdvar( "bots_manage_fill_mode", 0 );
|
||||
setdvar( "bots_manage_fill", 0 );
|
||||
setdvar( "bots_manage_add", 0 );
|
||||
setdvar( "bots_manage_fill_kick", 1 );
|
||||
setDvar( "bots_manage_fill_spec", 1 );
|
||||
setdvar( "bots_manage_fill_spec", 1 );
|
||||
|
||||
if ( getDvar( "bots_main_debug_distance" ) == "" )
|
||||
setDvar( "bots_main_debug_distance", 512.0 );
|
||||
if ( getdvar( "bots_main_debug_distance" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_distance", 512.0 );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_cone" ) == "" )
|
||||
setDvar( "bots_main_debug_cone", 0.65 );
|
||||
if ( getdvar( "bots_main_debug_cone" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_cone", 0.65 );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_minDist" ) == "" )
|
||||
setDvar( "bots_main_debug_minDist", 32.0 );
|
||||
if ( getdvar( "bots_main_debug_minDist" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_minDist", 32.0 );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_drawThrough" ) == "" )
|
||||
setDvar( "bots_main_debug_drawThrough", false );
|
||||
if ( getdvar( "bots_main_debug_drawThrough" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_drawThrough", false );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_commandWait" ) == "" )
|
||||
setDvar( "bots_main_debug_commandWait", 0.5 );
|
||||
if ( getdvar( "bots_main_debug_commandWait" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_commandWait", 0.5 );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_framerate" ) == "" )
|
||||
setDvar( "bots_main_debug_framerate", 58 );
|
||||
if ( getdvar( "bots_main_debug_framerate" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_framerate", 58 );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_lineDuration" ) == "" )
|
||||
setDvar( "bots_main_debug_lineDuration", 3 );
|
||||
if ( getdvar( "bots_main_debug_lineDuration" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_lineDuration", 3 );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_printDuration" ) == "" )
|
||||
setDvar( "bots_main_debug_printDuration", 3 );
|
||||
if ( getdvar( "bots_main_debug_printDuration" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_printDuration", 3 );
|
||||
}
|
||||
|
||||
if ( getDvar( "bots_main_debug_debugRate" ) == "" )
|
||||
setDvar( "bots_main_debug_debugRate", 0.5 );
|
||||
if ( getdvar( "bots_main_debug_debugRate" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_debug_debugRate", 0.5 );
|
||||
}
|
||||
|
||||
setDvar( "player_sustainAmmo", 1 );
|
||||
setdvar( "player_sustainAmmo", 1 );
|
||||
|
||||
level.waypoints = [];
|
||||
level.waypointCount = 0;
|
||||
level.waypointcount = 0;
|
||||
|
||||
level waittill( "connected", player );
|
||||
|
||||
@@ -88,17 +110,17 @@ beginDebug()
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
level.wpToLink = -1;
|
||||
level.autoLink = false;
|
||||
level.wptolink = -1;
|
||||
level.autolink = false;
|
||||
self.closest = -1;
|
||||
self.command = undefined;
|
||||
|
||||
self clearPerks();
|
||||
self takeAllWeapons();
|
||||
self takeallweapons();
|
||||
self.specialty = [];
|
||||
self giveWeapon( "m16_gl_mp" );
|
||||
self SetActionSlot( 3, "altMode" );
|
||||
self giveWeapon( "frag_grenade_mp" );
|
||||
self giveweapon( "m16_gl_mp" );
|
||||
self setactionslot( 3, "altMode" );
|
||||
self giveweapon( "frag_grenade_mp" );
|
||||
self freezecontrols( false );
|
||||
|
||||
self thread debug();
|
||||
@@ -108,7 +130,7 @@ beginDebug()
|
||||
self thread watchSaveWaypointsCommand();
|
||||
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()
|
||||
@@ -124,36 +146,46 @@ debug()
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self setClientDvar( "com_maxfps", getDvarInt( "bots_main_debug_framerate" ) );
|
||||
self setclientdvar( "com_maxfps", getdvarint( "bots_main_debug_framerate" ) );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait getDvarFloat( "bots_main_debug_debugRate" );
|
||||
wait getdvarfloat( "bots_main_debug_debugRate" );
|
||||
|
||||
if ( isDefined( self.command ) )
|
||||
if ( isdefined( self.command ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
closest = -1;
|
||||
myEye = self getTagOrigin( "j_head" );
|
||||
myAngles = self GetPlayerAngles();
|
||||
myEye = self gettagorigin( "j_head" );
|
||||
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 ) )
|
||||
closest = i;
|
||||
|
||||
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 ( closest == -1 || closer( self.origin, level.waypoints[ i ].origin, level.waypoints[ closest ].origin ) )
|
||||
{
|
||||
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 ), 1, 1, getDvarInt( "bots_main_debug_lineDuration" ) );
|
||||
closest = i;
|
||||
}
|
||||
|
||||
if ( getConeDot( wpOrg, myEye, myAngles ) > getDvarFloat( "bots_main_debug_cone" ) )
|
||||
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" ) ) )
|
||||
{
|
||||
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 ), 1, 1, getdvarint( "bots_main_debug_lineDuration" ) );
|
||||
}
|
||||
|
||||
if ( getConeDot( wpOrg, myEye, myAngles ) > getdvarfloat( "bots_main_debug_cone" ) )
|
||||
{
|
||||
print3d( wpOrg, i, ( 1, 0, 0 ), 2, 1, 6 );
|
||||
}
|
||||
|
||||
if ( isDefined( level.waypoints[i].angles ) && level.waypoints[i].type != "stand" )
|
||||
line( wpOrg, wpOrg + AnglesToForward( level.waypoints[i].angles ) * 64, ( 1, 1, 1 ), 1, 1, getDvarInt( "bots_main_debug_lineDuration" ) );
|
||||
if ( isdefined( level.waypoints[ i ].angles ) && level.waypoints[ i ].type != "stand" )
|
||||
{
|
||||
line( wpOrg, wpOrg + anglestoforward( level.waypoints[ i ].angles ) * 64, ( 1, 1, 1 ), 1, 1, getdvarint( "bots_main_debug_lineDuration" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,32 +195,38 @@ debug()
|
||||
{
|
||||
stringChildren = "";
|
||||
|
||||
for ( i = 0; i < level.waypoints[closest].children.size; i++ )
|
||||
for ( i = 0; i < level.waypoints[ closest ].children.size; i++ )
|
||||
{
|
||||
if ( i != 0 )
|
||||
stringChildren = stringChildren + "," + level.waypoints[closest].children[i];
|
||||
{
|
||||
stringChildren = stringChildren + "," + level.waypoints[ closest ].children[ i ];
|
||||
}
|
||||
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, 1, getDvarInt( "bots_main_debug_printDuration" ) );
|
||||
print3d( level.waypoints[ closest ].origin + ( 0, 0, 35 ), stringChildren, ( 0, 1, 0 ), 2, 1, getdvarint( "bots_main_debug_printDuration" ) );
|
||||
|
||||
print3d( level.waypoints[closest].origin + ( 0, 0, 15 ), level.waypoints[closest].type, ( 0, 1, 0 ), 2, 1, getDvarInt( "bots_main_debug_printDuration" ) );
|
||||
print3d( level.waypoints[ closest ].origin + ( 0, 0, 15 ), level.waypoints[ closest ].type, ( 0, 1, 0 ), 2, 1, getdvarint( "bots_main_debug_printDuration" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AddWaypoints()
|
||||
addWaypoints()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self SecondaryOffhandButtonPressed() || isDefined( self.command ) )
|
||||
while ( !self SecondaryOffhandButtonPressed() || isdefined( self.command ) )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
pos = self getOrigin();
|
||||
pos = self getorigin();
|
||||
self.command = true;
|
||||
|
||||
self iprintln( "Adding a waypoint..." );
|
||||
@@ -196,14 +234,16 @@ AddWaypoints()
|
||||
self iprintln( "Attack - grenade; Use - claymore" );
|
||||
self iprintln( "Else(wait) - your stance" );
|
||||
|
||||
wait getDvarFloat( "bots_main_debug_commandWait" );
|
||||
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||
|
||||
self addWaypoint( pos );
|
||||
|
||||
self.command = undefined;
|
||||
|
||||
while ( self SecondaryOffhandButtonPressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,24 +254,32 @@ linkWaypoints()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self MeleeButtonPressed() || isDefined( self.command ) )
|
||||
while ( !self meleebuttonpressed() || isdefined( self.command ) )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
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 );
|
||||
}
|
||||
else
|
||||
{
|
||||
self UnLinkWaypoint( self.closest );
|
||||
}
|
||||
|
||||
self.command = undefined;
|
||||
|
||||
while ( self MeleeButtonPressed() )
|
||||
while ( self meleebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,27 +290,37 @@ deleteWaypoints()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self fragButtonPressed() || isDefined( self.command ) )
|
||||
while ( !self fragButtonPressed() || isdefined( self.command ) )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
self.command = true;
|
||||
|
||||
self iprintln( "Attack - DeleteAll; ADS - Load" );
|
||||
self iprintln( "Else(wait) - Delete" );
|
||||
self iprintln( "Attack - deleteAll; ADS - Load" );
|
||||
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();
|
||||
else if ( self adsButtonPressed() )
|
||||
}
|
||||
else if ( self adsbuttonpressed() )
|
||||
{
|
||||
self LoadWaypoints();
|
||||
}
|
||||
else
|
||||
self DeleteWaypoint( self.closest );
|
||||
{
|
||||
self deleteWaypoint( self.closest );
|
||||
}
|
||||
|
||||
self.command = undefined;
|
||||
|
||||
while ( self fragButtonPressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,16 +331,18 @@ watchSaveWaypointsCommand()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self useButtonPressed() || !self attackButtonPressed() || isDefined( self.command ) )
|
||||
while ( !self usebuttonpressed() || !self attackbuttonpressed() || isdefined( self.command ) )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
self.command = true;
|
||||
|
||||
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();
|
||||
wait 1;
|
||||
@@ -293,97 +353,113 @@ watchSaveWaypointsCommand()
|
||||
logprint( "\n\n" + mpnm + "()\n{\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 + "].origin = " + level.waypoints[i].origin + ";\n/*" );
|
||||
logprint( "*/waypoints[" + i + "].type = \"" + level.waypoints[i].type + "\";\n/*" );
|
||||
logprint( "*/waypoints[ " + i + " ] = spawnstruct();\n/*" );
|
||||
logprint( "*/waypoints[ " + i + " ].origin = " + level.waypoints[ i ].origin + ";\n/*" );
|
||||
logprint( "*/waypoints[ " + i + " ].type = \"" + level.waypoints[ i ].type + "\";\n/*" );
|
||||
|
||||
for ( c = 0; c < level.waypoints[i].children.size; c++ )
|
||||
for ( c = 0; c < level.waypoints[ i ].children.size; c++ )
|
||||
{
|
||||
logprint( "*/waypoints[" + i + "].children[" + c + "] = " + level.waypoints[i].children[c] + ";\n/*" );
|
||||
logprint( "*/waypoints[ " + i + " ].children[ " + c + " ] = " + level.waypoints[ i ].children[ c ] + ";\n/*" );
|
||||
}
|
||||
|
||||
if ( isDefined( level.waypoints[i].angles ) && ( level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || ( level.waypoints[i].type == "crouch" && level.waypoints[i].children.size == 1 ) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade" ) )
|
||||
logprint( "*/waypoints[" + i + "].angles = " + level.waypoints[i].angles + ";\n/*" );
|
||||
if ( isdefined( level.waypoints[ i ].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( "*/return waypoints;\n}\n\n\n\n" );
|
||||
|
||||
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
|
||||
|
||||
PrintLn( "********* Start Bot Warfare WPDump *********" );
|
||||
PrintLn( level.waypointCount );
|
||||
println( "********* Start Bot Warfare WPDump *********" );
|
||||
println( level.waypointcount );
|
||||
|
||||
f = BotBuiltinFileOpen( filename, "write" );
|
||||
|
||||
if ( f > 0 )
|
||||
BotBuiltinWriteLine( f, level.waypointCount );
|
||||
{
|
||||
BotBuiltinWriteLine( f, level.waypointcount );
|
||||
}
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
str = "";
|
||||
wp = level.waypoints[i];
|
||||
wp = level.waypoints[ i ];
|
||||
|
||||
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
|
||||
str += wp.origin[ 0 ] + " " + wp.origin[ 1 ] + " " + wp.origin[ 2 ] + ",";
|
||||
|
||||
for ( h = 0; h < wp.children.size; h++ )
|
||||
{
|
||||
str += wp.children[h];
|
||||
str += wp.children[ h ];
|
||||
|
||||
if ( h < wp.children.size - 1 )
|
||||
{
|
||||
str += " ";
|
||||
}
|
||||
}
|
||||
|
||||
str += "," + wp.type + ",";
|
||||
|
||||
if ( isDefined( wp.angles ) )
|
||||
str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ",";
|
||||
if ( isdefined( wp.angles ) )
|
||||
{
|
||||
str += wp.angles[ 0 ] + " " + wp.angles[ 1 ] + " " + wp.angles[ 2 ] + ",";
|
||||
}
|
||||
else
|
||||
{
|
||||
str += ",";
|
||||
}
|
||||
|
||||
str += ",";
|
||||
|
||||
PrintLn( str );
|
||||
println( str );
|
||||
|
||||
if ( f > 0 )
|
||||
{
|
||||
BotBuiltinWriteLine( f, str );
|
||||
}
|
||||
}
|
||||
|
||||
if ( f > 0 )
|
||||
{
|
||||
BotBuiltinFileClose( f );
|
||||
}
|
||||
|
||||
PrintLn( "\n\n\n\n\n\n" );
|
||||
println( "\n\n\n\n\n\n" );
|
||||
|
||||
self iprintln( "Saved!!! to " + filename );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( level.autoLink )
|
||||
if ( level.autolink )
|
||||
{
|
||||
self iPrintlnBold( "Auto link disabled" );
|
||||
level.autoLink = false;
|
||||
level.wpToLink = -1;
|
||||
self iprintlnbold( "Auto link disabled" );
|
||||
level.autolink = false;
|
||||
level.wptolink = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
self iPrintlnBold( "Auto link enabled" );
|
||||
level.autoLink = true;
|
||||
level.wpToLink = self.closest;
|
||||
self iprintlnbold( "Auto link enabled" );
|
||||
level.autolink = true;
|
||||
level.wptolink = self.closest;
|
||||
}
|
||||
}
|
||||
|
||||
self.command = undefined;
|
||||
|
||||
while ( self useButtonPressed() && self attackButtonPressed() )
|
||||
while ( self usebuttonpressed() && self attackbuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LoadWaypoints()
|
||||
{
|
||||
self DeleteAllWaypoints();
|
||||
self iPrintlnBold( "Loading WPS..." );
|
||||
self deleteAllWaypoints();
|
||||
self iprintlnbold( "Loading WPS..." );
|
||||
load_waypoints();
|
||||
|
||||
wait 1;
|
||||
@@ -393,188 +469,214 @@ LoadWaypoints()
|
||||
|
||||
checkForWarnings()
|
||||
{
|
||||
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 ( level.waypointcount <= 0 )
|
||||
{
|
||||
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" );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( level.waypoints[i].children.size <= 0 )
|
||||
self iprintln( "WARNING: waypoint " + i + " childCount is " + level.waypoints[i].children.size );
|
||||
if ( level.waypoints[ i ].children.size <= 0 )
|
||||
{
|
||||
self iprintln( "WARNING: waypoint " + i + " childCount is " + level.waypoints[ i ].children.size );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !isDefined( level.waypoints[i].children ) || !isDefined( level.waypoints[i].children.size ) )
|
||||
if ( !isdefined( level.waypoints[ i ].children ) || !isdefined( level.waypoints[ i ].children.size ) )
|
||||
{
|
||||
self iprintln( "WARNING: waypoint " + i + " children is not defined" );
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( h = level.waypoints[i].children.size - 1; h >= 0; h-- )
|
||||
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
|
||||
{
|
||||
child = level.waypoints[i].children[h];
|
||||
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" );
|
||||
}
|
||||
else if ( child == i )
|
||||
{
|
||||
self iprintln( "WARNING: waypoint " + i + " child " + child + " is itself" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isDefined( level.waypoints[i].type ) )
|
||||
if ( !isdefined( level.waypoints[ i ].type ) )
|
||||
{
|
||||
self iprintln( "WARNING: waypoint " + i + " type is undefined" );
|
||||
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" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DeleteAllWaypoints()
|
||||
deleteAllWaypoints()
|
||||
{
|
||||
level.waypoints = [];
|
||||
level.waypointCount = 0;
|
||||
level.waypointcount = 0;
|
||||
|
||||
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." );
|
||||
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-- )
|
||||
{
|
||||
child = level.waypoints[nwp].children[i];
|
||||
child = level.waypoints[ nwp ].children[ i ];
|
||||
|
||||
level.waypoints[child].children = array_remove( level.waypoints[child].children, nwp );
|
||||
level.waypoints[ child ].children = array_remove( level.waypoints[ child ].children, nwp );
|
||||
}
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
for ( h = level.waypoints[i].children.size - 1; h >= 0; h-- )
|
||||
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
|
||||
{
|
||||
if ( level.waypoints[i].children[h] > nwp )
|
||||
level.waypoints[i].children[h]--;
|
||||
if ( level.waypoints[ i ].children[ h ] > nwp )
|
||||
{
|
||||
level.waypoints[ i ].children[ h ]--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for ( entry = 0; entry < level.waypointCount; entry++ )
|
||||
for ( entry = 0; entry < level.waypointcount; entry++ )
|
||||
{
|
||||
if ( entry == nwp )
|
||||
{
|
||||
while ( entry < level.waypointCount - 1 )
|
||||
while ( entry < level.waypointcount - 1 )
|
||||
{
|
||||
level.waypoints[entry] = level.waypoints[entry + 1];
|
||||
level.waypoints[ entry ] = level.waypoints[ entry + 1 ];
|
||||
entry++;
|
||||
}
|
||||
|
||||
level.waypoints[entry] = undefined;
|
||||
level.waypoints[ entry ] = undefined;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
level.waypointCount--;
|
||||
level.waypointcount--;
|
||||
|
||||
self iprintln( "DelWp " + nwp );
|
||||
}
|
||||
|
||||
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() )
|
||||
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 ( self adsbuttonpressed() )
|
||||
{
|
||||
if ( level.wpToLink == -1 )
|
||||
level.wpToLink = level.waypointCount - 1;
|
||||
|
||||
level.waypointCount++;
|
||||
self LinkWaypoint( level.waypointCount - 1 );
|
||||
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.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 )
|
||||
{
|
||||
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 );
|
||||
level.wpToLink = -1;
|
||||
self iprintln( "Waypoint unlink Cancelled " + level.wptolink );
|
||||
level.wptolink = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
if ( level.wpToLink == -1 || nwp == level.wpToLink )
|
||||
if ( level.wptolink == -1 || nwp == level.wptolink )
|
||||
{
|
||||
level.wpToLink = nwp;
|
||||
self iprintln( "Waypoint Unlink Started " + nwp );
|
||||
level.wptolink = nwp;
|
||||
self iprintln( "Waypoint unlink Started " + nwp );
|
||||
return;
|
||||
}
|
||||
|
||||
level.waypoints[nwp].children = array_remove( level.waypoints[nwp].children, level.wpToLink );
|
||||
level.waypoints[level.wpToLink].children = array_remove( level.waypoints[level.wpToLink].children, nwp );
|
||||
level.waypoints[ nwp ].children = array_remove( level.waypoints[ nwp ].children, level.wptolink );
|
||||
level.waypoints[ level.wptolink ].children = array_remove( level.waypoints[ level.wptolink ].children, nwp );
|
||||
|
||||
self iprintln( "Waypoint " + nwp + " Broken to " + level.wpToLink );
|
||||
level.wpToLink = -1;
|
||||
self iprintln( "Waypoint " + nwp + " Broken to " + level.wptolink );
|
||||
level.wptolink = -1;
|
||||
}
|
||||
|
||||
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 );
|
||||
level.wpToLink = -1;
|
||||
self iprintln( "Waypoint Link Cancelled " + level.wptolink );
|
||||
level.wptolink = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
if ( level.wpToLink == -1 || nwp == level.wpToLink )
|
||||
if ( level.wptolink == -1 || nwp == level.wptolink )
|
||||
{
|
||||
level.wpToLink = nwp;
|
||||
level.wptolink = nwp;
|
||||
self iprintln( "Waypoint Link Started " + nwp );
|
||||
return;
|
||||
}
|
||||
|
||||
weGood = true;
|
||||
|
||||
for ( i = level.waypoints[level.wpToLink].children.size - 1; i >= 0; i-- )
|
||||
for ( i = level.waypoints[ level.wptolink ].children.size - 1; i >= 0; i-- )
|
||||
{
|
||||
if ( level.waypoints[level.wpToLink].children[i] == nwp )
|
||||
if ( level.waypoints[ level.wptolink ].children[ i ] == nwp )
|
||||
{
|
||||
weGood = false;
|
||||
break;
|
||||
@@ -583,9 +685,9 @@ LinkWaypoint( nwp )
|
||||
|
||||
if ( weGood )
|
||||
{
|
||||
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;
|
||||
break;
|
||||
@@ -595,16 +697,16 @@ LinkWaypoint( nwp )
|
||||
|
||||
if ( !weGood )
|
||||
{
|
||||
self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wpToLink + " already linked." );
|
||||
level.wpToLink = -1;
|
||||
self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wptolink + " already linked." );
|
||||
level.wptolink = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
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[ level.wptolink ].children[ level.waypoints[ level.wptolink ].children.size ] = nwp;
|
||||
level.waypoints[ nwp ].children[ level.waypoints[ nwp ].children.size ] = level.wptolink;
|
||||
|
||||
self iprintln( "Waypoint " + nwp + " Linked to " + level.wpToLink );
|
||||
level.wpToLink = -1;
|
||||
self iprintln( "Waypoint " + nwp + " Linked to " + level.wptolink );
|
||||
level.wptolink = -1;
|
||||
}
|
||||
|
||||
destroyOnDeath( hud )
|
||||
@@ -618,20 +720,20 @@ textScroll( string )
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
//thanks ActionScript
|
||||
// thanks ActionScript
|
||||
|
||||
back = createBar( ( 0, 0, 0 ), 1000, 30 );
|
||||
back setPoint( "CENTER", undefined, 0, 220 );
|
||||
back = createbar( ( 0, 0, 0 ), 1000, 30 );
|
||||
back setpoint( "CENTER", undefined, 0, 220 );
|
||||
self thread destroyOnDeath( back );
|
||||
|
||||
text = createFontString( "default", 1.5 );
|
||||
text setText( string );
|
||||
text = createfontstring( "default", 1.5 );
|
||||
text settext( string );
|
||||
self thread destroyOnDeath( text );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
text setPoint( "CENTER", undefined, 1200, 220 );
|
||||
text setPoint( "CENTER", undefined, -1200, 220, 20 );
|
||||
text setpoint( "CENTER", undefined, 1200, 220 );
|
||||
text setpoint( "CENTER", undefined, -1200, 220, 20 );
|
||||
wait 20;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user