mirror of
https://github.com/ineedbots/iw3_bot_warfare.git
synced 2025-04-22 18:25:44 +00:00
case sensitive, always curly braces, array index spacing,
This commit is contained in:
parent
b2989d5610
commit
249298b8f7
File diff suppressed because it is too large
Load Diff
@ -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 ) );
|
||||
|
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,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;
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
init()
|
||||
{
|
||||
level.bot_builtins["printconsole"] = ::do_printconsole;
|
||||
level.bot_builtins["fileexists"] = ::do_fileexists;
|
||||
level.bot_builtins["botaction"] = ::do_botaction;
|
||||
level.bot_builtins["botstop"] = ::do_botstop;
|
||||
level.bot_builtins["botmovement"] = ::do_botmovement;
|
||||
level.bot_builtins["botmoveto"] = ::do_botmoveto;
|
||||
level.bot_builtins["botmeleeparams"] = ::do_botmeleeparams;
|
||||
level.bot_builtins["isbot"] = ::do_isbot;
|
||||
level.bot_builtins["fs_fopen"] = ::do_fs_fopen;
|
||||
level.bot_builtins["fs_fclose"] = ::do_fs_fclose;
|
||||
level.bot_builtins["fs_readline"] = ::do_fs_readline;
|
||||
level.bot_builtins["fs_writeline"] = ::do_fs_writeline;
|
||||
level.bot_builtins[ "printconsole" ] = ::do_printconsole;
|
||||
level.bot_builtins[ "fileexists" ] = ::do_fileexists;
|
||||
level.bot_builtins[ "botaction" ] = ::do_botaction;
|
||||
level.bot_builtins[ "botstop" ] = ::do_botstop;
|
||||
level.bot_builtins[ "botmovement" ] = ::do_botmovement;
|
||||
level.bot_builtins[ "botmoveto" ] = ::do_botmoveto;
|
||||
level.bot_builtins[ "botmeleeparams" ] = ::do_botmeleeparams;
|
||||
level.bot_builtins[ "isbot" ] = ::do_isbot;
|
||||
level.bot_builtins[ "fs_fopen" ] = ::do_fs_fopen;
|
||||
level.bot_builtins[ "fs_fclose" ] = ::do_fs_fclose;
|
||||
level.bot_builtins[ "fs_readline" ] = ::do_fs_readline;
|
||||
level.bot_builtins[ "fs_writeline" ] = ::do_fs_writeline;
|
||||
}
|
||||
|
||||
do_printconsole( s )
|
||||
@ -22,17 +22,17 @@ do_printconsole( s )
|
||||
do_fileexists( file )
|
||||
{
|
||||
file = "scriptdata/" + file;
|
||||
return FS_TestFile( file );
|
||||
return fs_testfile( file );
|
||||
}
|
||||
|
||||
do_botaction( action )
|
||||
{
|
||||
self BotAction( action );
|
||||
self botaction( action );
|
||||
}
|
||||
|
||||
do_botstop()
|
||||
{
|
||||
self BotStop();
|
||||
self botstop();
|
||||
}
|
||||
|
||||
do_botmovement( forward, right )
|
||||
@ -41,7 +41,7 @@ do_botmovement( forward, right )
|
||||
|
||||
do_botmoveto( where )
|
||||
{
|
||||
self BotMoveTo( where );
|
||||
self botmoveto( where );
|
||||
}
|
||||
|
||||
do_botmeleeparams( yaw, dist )
|
||||
@ -57,20 +57,20 @@ do_isbot()
|
||||
do_fs_fopen( file, mode )
|
||||
{
|
||||
file = "scriptdata/" + file;
|
||||
return FS_FOpen( file, mode );
|
||||
return fs_fopen( file, mode );
|
||||
}
|
||||
|
||||
do_fs_fclose( fh )
|
||||
{
|
||||
FS_FClose( fh );
|
||||
fs_fclose( fh );
|
||||
}
|
||||
|
||||
do_fs_readline( fh )
|
||||
{
|
||||
return FS_ReadLine( fh );
|
||||
return fs_readline( fh );
|
||||
}
|
||||
|
||||
do_fs_writeline( fh, contents )
|
||||
{
|
||||
FS_WriteLine( fh, contents );
|
||||
fs_writeline( fh, contents );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user