mirror of
https://github.com/ineedbots/t5_bot_warfare.git
synced 2025-04-19 08:32:52 +00:00
fmt
This commit is contained in:
parent
7105b397c3
commit
ddc7e5fcc4
14
.astylerc
14
.astylerc
@ -1,21 +1,27 @@
|
|||||||
# try to mimic the original gsc provided
|
# try to mimic the original gsc provided
|
||||||
|
# mode=ghc
|
||||||
mode=c
|
mode=c
|
||||||
style=allman
|
style=allman
|
||||||
|
|
||||||
indent=tab
|
indent=force-tab=2
|
||||||
lineend=windows
|
lineend=windows
|
||||||
|
|
||||||
pad-oper
|
pad-oper
|
||||||
pad-paren-in
|
pad-paren-in
|
||||||
pad-header
|
pad-header
|
||||||
|
# pad-brackets-in
|
||||||
# delete-empty-lines
|
fill-empty-lines
|
||||||
|
squeeze-lines=2
|
||||||
|
squeeze-ws
|
||||||
|
break-one-line-headers
|
||||||
|
add-braces
|
||||||
|
remove-comment-prefix
|
||||||
|
|
||||||
break-blocks
|
break-blocks
|
||||||
# remove-braces
|
|
||||||
|
|
||||||
indent-switches
|
indent-switches
|
||||||
indent-cases
|
indent-cases
|
||||||
indent-after-parens
|
indent-after-parens
|
||||||
|
indent-col1-comments
|
||||||
|
|
||||||
remove-comment-prefix
|
remove-comment-prefix
|
||||||
|
@ -4,7 +4,7 @@ root = true
|
|||||||
indent_style = tab
|
indent_style = tab
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
charset = latin1
|
charset = latin1
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = false
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -20,7 +20,7 @@ wait_for_builtins()
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( i < 18 )
|
if ( i < 18 )
|
||||||
{
|
{
|
||||||
waittillframeend;
|
waittillframeend;
|
||||||
@ -30,7 +30,7 @@ wait_for_builtins()
|
|||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,19 +197,19 @@ getBotArray()
|
|||||||
{
|
{
|
||||||
result = [];
|
result = [];
|
||||||
playercount = level.players.size;
|
playercount = level.players.size;
|
||||||
|
|
||||||
for ( i = 0; i < playercount; i++ )
|
for ( i = 0; i < playercount; i++ )
|
||||||
{
|
{
|
||||||
player = level.players[ i ];
|
player = level.players[ i ];
|
||||||
|
|
||||||
if ( !player is_bot() )
|
if ( !player is_bot() )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
result[ result.size ] = player;
|
result[ result.size ] = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,7 +231,7 @@ getGoodMapAmount()
|
|||||||
Round( x )
|
Round( x )
|
||||||
{
|
{
|
||||||
y = int( x );
|
y = int( x );
|
||||||
|
|
||||||
if ( abs( x ) - abs( y ) > 0.5 )
|
if ( abs( x ) - abs( y ) > 0.5 )
|
||||||
{
|
{
|
||||||
if ( x < 0 )
|
if ( x < 0 )
|
||||||
@ -258,7 +258,7 @@ PickRandom( arr )
|
|||||||
{
|
{
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
return arr[ randomint( arr.size ) ];
|
return arr[ randomint( arr.size ) ];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,27 +332,27 @@ allowTeamChoice()
|
|||||||
GetBotDiffNum()
|
GetBotDiffNum()
|
||||||
{
|
{
|
||||||
num = 0;
|
num = 0;
|
||||||
|
|
||||||
switch ( getdvar( "bot_difficulty" ) )
|
switch ( getdvar( "bot_difficulty" ) )
|
||||||
{
|
{
|
||||||
case "fu":
|
case "fu":
|
||||||
num = 3;
|
num = 3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "hard":
|
case "hard":
|
||||||
num = 2;
|
num = 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "normal":
|
case "normal":
|
||||||
num = 1;
|
num = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "easy":
|
case "easy":
|
||||||
default:
|
default:
|
||||||
num = 0;
|
num = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,7 +365,7 @@ isWeaponAltmode( weap )
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -380,57 +380,57 @@ bot_lookat( pos, time, vel, doAimPredict )
|
|||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "spawned_player" );
|
self endon( "spawned_player" );
|
||||||
level endon ( "game_ended" );
|
level endon ( "game_ended" );
|
||||||
|
|
||||||
if ( level.gameended || level.inprematchperiod || self BotIsFrozen() || !getdvarint( "bots_play_aim" ) )
|
if ( level.gameended || level.inprematchperiod || self BotIsFrozen() || !getdvarint( "bots_play_aim" ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !isdefined( pos ) )
|
if ( !isdefined( pos ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !isdefined( doAimPredict ) )
|
if ( !isdefined( doAimPredict ) )
|
||||||
{
|
{
|
||||||
doAimPredict = false;
|
doAimPredict = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !isdefined( time ) )
|
if ( !isdefined( time ) )
|
||||||
{
|
{
|
||||||
time = 0.05;
|
time = 0.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !isdefined( vel ) )
|
if ( !isdefined( vel ) )
|
||||||
{
|
{
|
||||||
vel = ( 0, 0, 0 );
|
vel = ( 0, 0, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
steps = int( time * 20 );
|
steps = int( time * 20 );
|
||||||
|
|
||||||
if ( steps < 1 )
|
if ( steps < 1 )
|
||||||
{
|
{
|
||||||
steps = 1;
|
steps = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
myEye = self geteye(); // get our eye pos
|
myEye = self geteye(); // get our eye pos
|
||||||
|
|
||||||
if ( doAimPredict )
|
if ( doAimPredict )
|
||||||
{
|
{
|
||||||
myEye += ( self getvelocity() * 0.05 ) * ( steps - 1 ); // account for our velocity
|
myEye += ( self getvelocity() * 0.05 ) * ( steps - 1 ); // account for our velocity
|
||||||
|
|
||||||
pos += ( vel * 0.05 ) * ( steps - 1 ); // add the velocity vector
|
pos += ( vel * 0.05 ) * ( steps - 1 ); // add the velocity vector
|
||||||
}
|
}
|
||||||
|
|
||||||
myAngle = self getplayerangles();
|
myAngle = self getplayerangles();
|
||||||
angles = vectortoangles( ( pos - myEye ) - anglestoforward( myAngle ) );
|
angles = vectortoangles( ( pos - myEye ) - anglestoforward( myAngle ) );
|
||||||
|
|
||||||
X = angleclamp180( angles[ 0 ] - myAngle[ 0 ] );
|
X = angleclamp180( angles[ 0 ] - myAngle[ 0 ] );
|
||||||
X = X / steps;
|
X = X / steps;
|
||||||
|
|
||||||
Y = angleclamp180( angles[ 1 ] - myAngle[ 1 ] );
|
Y = angleclamp180( angles[ 1 ] - myAngle[ 1 ] );
|
||||||
Y = Y / steps;
|
Y = Y / steps;
|
||||||
|
|
||||||
for ( i = 0; i < steps; i++ )
|
for ( i = 0; i < steps; i++ )
|
||||||
{
|
{
|
||||||
myAngle = ( angleclamp180( myAngle[ 0 ] + X ), angleclamp180( myAngle[ 1 ] + Y ), 0 );
|
myAngle = ( angleclamp180( myAngle[ 0 ] + X ), angleclamp180( myAngle[ 1 ] + Y ), 0 );
|
||||||
@ -445,12 +445,12 @@ bot_lookat( pos, time, vel, doAimPredict )
|
|||||||
getweaponslistall()
|
getweaponslistall()
|
||||||
{
|
{
|
||||||
weaps = self getweaponslist();
|
weaps = self getweaponslist();
|
||||||
|
|
||||||
for ( i = 0; i < weaps.size; i++ )
|
for ( i = 0; i < weaps.size; i++ )
|
||||||
{
|
{
|
||||||
weap = weaps[ i ];
|
weap = weaps[ i ];
|
||||||
toks = strtok( weap, "_" );
|
toks = strtok( weap, "_" );
|
||||||
|
|
||||||
if ( issubstr( weap, "_gl_" ) )
|
if ( issubstr( weap, "_gl_" ) )
|
||||||
{
|
{
|
||||||
weaps[ weaps.size ] = "gl_" + toks[ 0 ] + "_mp";
|
weaps[ weaps.size ] = "gl_" + toks[ 0 ] + "_mp";
|
||||||
@ -464,7 +464,7 @@ getweaponslistall()
|
|||||||
weaps[ weaps.size ] = "mk_" + toks[ 0 ] + "_mp";
|
weaps[ weaps.size ] = "mk_" + toks[ 0 ] + "_mp";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return weaps;
|
return weaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -474,22 +474,22 @@ getweaponslistall()
|
|||||||
getValidTube()
|
getValidTube()
|
||||||
{
|
{
|
||||||
weaps = self getweaponslistall();
|
weaps = self getweaponslistall();
|
||||||
|
|
||||||
for ( i = 0; i < weaps.size; i++ )
|
for ( i = 0; i < weaps.size; i++ )
|
||||||
{
|
{
|
||||||
weap = weaps[ i ];
|
weap = weaps[ i ];
|
||||||
|
|
||||||
if ( !self getammocount( weap ) )
|
if ( !self getammocount( weap ) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ( issubstr( weap, "gl_" ) && !issubstr( weap, "_gl_" ) ) || weap == "china_lake_mp" )
|
if ( ( issubstr( weap, "gl_" ) && !issubstr( weap, "_gl_" ) ) || weap == "china_lake_mp" )
|
||||||
{
|
{
|
||||||
return weap;
|
return weap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -502,36 +502,36 @@ waittill_any_timeout( timeOut, string1, string2, string3, string4, string5 )
|
|||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
}
|
}
|
||||||
|
|
||||||
ent = spawnstruct();
|
ent = spawnstruct();
|
||||||
|
|
||||||
if ( isdefined( string1 ) )
|
if ( isdefined( string1 ) )
|
||||||
{
|
{
|
||||||
self thread waittill_string( string1, ent );
|
self thread waittill_string( string1, ent );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isdefined( string2 ) )
|
if ( isdefined( string2 ) )
|
||||||
{
|
{
|
||||||
self thread waittill_string( string2, ent );
|
self thread waittill_string( string2, ent );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isdefined( string3 ) )
|
if ( isdefined( string3 ) )
|
||||||
{
|
{
|
||||||
self thread waittill_string( string3, ent );
|
self thread waittill_string( string3, ent );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isdefined( string4 ) )
|
if ( isdefined( string4 ) )
|
||||||
{
|
{
|
||||||
self thread waittill_string( string4, ent );
|
self thread waittill_string( string4, ent );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isdefined( string5 ) )
|
if ( isdefined( string5 ) )
|
||||||
{
|
{
|
||||||
self thread waittill_string( string5, ent );
|
self thread waittill_string( string5, ent );
|
||||||
}
|
}
|
||||||
|
|
||||||
ent thread _timeout( timeOut );
|
ent thread _timeout( timeOut );
|
||||||
|
|
||||||
ent waittill( "returned", msg );
|
ent waittill( "returned", msg );
|
||||||
ent notify( "die" );
|
ent notify( "die" );
|
||||||
return msg;
|
return msg;
|
||||||
@ -543,7 +543,7 @@ waittill_any_timeout( timeOut, string1, string2, string3, string4, string5 )
|
|||||||
_timeout( delay )
|
_timeout( delay )
|
||||||
{
|
{
|
||||||
self endon( "die" );
|
self endon( "die" );
|
||||||
|
|
||||||
wait( delay );
|
wait( delay );
|
||||||
self notify( "returned", "timeout" );
|
self notify( "returned", "timeout" );
|
||||||
}
|
}
|
||||||
@ -554,27 +554,27 @@ _timeout( delay )
|
|||||||
getBotToKick()
|
getBotToKick()
|
||||||
{
|
{
|
||||||
bots = getBotArray();
|
bots = getBotArray();
|
||||||
|
|
||||||
if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[ 0 ] ) )
|
if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[ 0 ] ) )
|
||||||
{
|
{
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
tokick = undefined;
|
tokick = undefined;
|
||||||
axis = 0;
|
axis = 0;
|
||||||
allies = 0;
|
allies = 0;
|
||||||
team = getdvar( "bots_team" );
|
team = getdvar( "bots_team" );
|
||||||
|
|
||||||
// count teams
|
// count teams
|
||||||
for ( i = 0; i < bots.size; i++ )
|
for ( i = 0; i < bots.size; i++ )
|
||||||
{
|
{
|
||||||
bot = bots[ i ];
|
bot = bots[ i ];
|
||||||
|
|
||||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( bot.team == "allies" )
|
if ( bot.team == "allies" )
|
||||||
{
|
{
|
||||||
allies++;
|
allies++;
|
||||||
@ -588,7 +588,7 @@ getBotToKick()
|
|||||||
return bot;
|
return bot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// search for a bot on the other team
|
// search for a bot on the other team
|
||||||
if ( team == "custom" || team == "axis" )
|
if ( team == "custom" || team == "axis" )
|
||||||
{
|
{
|
||||||
@ -598,7 +598,7 @@ getBotToKick()
|
|||||||
{
|
{
|
||||||
// get the team with the most bots
|
// get the team with the most bots
|
||||||
team = "allies";
|
team = "allies";
|
||||||
|
|
||||||
if ( axis > allies )
|
if ( axis > allies )
|
||||||
{
|
{
|
||||||
team = "axis";
|
team = "axis";
|
||||||
@ -608,43 +608,43 @@ getBotToKick()
|
|||||||
{
|
{
|
||||||
team = "axis";
|
team = "axis";
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the bot on this team with lowest skill
|
// get the bot on this team with lowest skill
|
||||||
for ( i = 0; i < bots.size; i++ )
|
for ( i = 0; i < bots.size; i++ )
|
||||||
{
|
{
|
||||||
bot = bots[ i ];
|
bot = bots[ i ];
|
||||||
|
|
||||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( bot.team != team )
|
if ( bot.team != team )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
tokick = bot;
|
tokick = bot;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isdefined( tokick ) )
|
if ( isdefined( tokick ) )
|
||||||
{
|
{
|
||||||
return tokick;
|
return tokick;
|
||||||
}
|
}
|
||||||
|
|
||||||
// just kick lowest skill
|
// just kick lowest skill
|
||||||
for ( i = 0; i < bots.size; i++ )
|
for ( i = 0; i < bots.size; i++ )
|
||||||
{
|
{
|
||||||
bot = bots[ i ];
|
bot = bots[ i ];
|
||||||
|
|
||||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
tokick = bot;
|
tokick = bot;
|
||||||
}
|
}
|
||||||
|
|
||||||
return tokick;
|
return tokick;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -654,51 +654,51 @@ getBotToKick()
|
|||||||
bot_wait_for_host()
|
bot_wait_for_host()
|
||||||
{
|
{
|
||||||
host = undefined;
|
host = undefined;
|
||||||
|
|
||||||
while ( !isdefined( level ) || !isdefined( level.players ) )
|
while ( !isdefined( level ) || !isdefined( level.players ) )
|
||||||
{
|
{
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||||
{
|
{
|
||||||
host = gethostplayer();
|
host = gethostplayer();
|
||||||
|
|
||||||
if ( isdefined( host ) )
|
if ( isdefined( host ) )
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !isdefined( host ) )
|
if ( !isdefined( host ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||||
{
|
{
|
||||||
if ( isdefined( host.pers[ "team" ] ) )
|
if ( isdefined( host.pers[ "team" ] ) )
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !isdefined( host.pers[ "team" ] ) )
|
if ( !isdefined( host.pers[ "team" ] ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||||
{
|
{
|
||||||
if ( host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis" )
|
if ( host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis" )
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -770,17 +770,17 @@ botStopMove2( what )
|
|||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
level endon( "game_ended" );
|
level endon( "game_ended" );
|
||||||
|
|
||||||
self notify( "botStopMove" );
|
self notify( "botStopMove" );
|
||||||
self endon( "botStopMove" );
|
self endon( "botStopMove" );
|
||||||
|
|
||||||
if ( !what )
|
if ( !what )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
og = self.origin;
|
og = self.origin;
|
||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
self setvelocity( ( 0, 0, 0 ) );
|
self setvelocity( ( 0, 0, 0 ) );
|
||||||
@ -803,122 +803,122 @@ BotNotifyBotEvent( msg, a, b, c, d, e, f, g )
|
|||||||
keyCodeToString( a )
|
keyCodeToString( a )
|
||||||
{
|
{
|
||||||
b = "";
|
b = "";
|
||||||
|
|
||||||
switch ( a )
|
switch ( a )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
b = "a";
|
b = "a";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
b = "b";
|
b = "b";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
b = "c";
|
b = "c";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
b = "d";
|
b = "d";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
b = "e";
|
b = "e";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
b = "f";
|
b = "f";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
b = "g";
|
b = "g";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
b = "h";
|
b = "h";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
b = "i";
|
b = "i";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9:
|
case 9:
|
||||||
b = "j";
|
b = "j";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
b = "k";
|
b = "k";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 11:
|
case 11:
|
||||||
b = "l";
|
b = "l";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 12:
|
case 12:
|
||||||
b = "m";
|
b = "m";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 13:
|
case 13:
|
||||||
b = "n";
|
b = "n";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 14:
|
case 14:
|
||||||
b = "o";
|
b = "o";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 15:
|
case 15:
|
||||||
b = "p";
|
b = "p";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16:
|
case 16:
|
||||||
b = "q";
|
b = "q";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 17:
|
case 17:
|
||||||
b = "r";
|
b = "r";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 18:
|
case 18:
|
||||||
b = "s";
|
b = "s";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 19:
|
case 19:
|
||||||
b = "t";
|
b = "t";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 20:
|
case 20:
|
||||||
b = "u";
|
b = "u";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 21:
|
case 21:
|
||||||
b = "v";
|
b = "v";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 22:
|
case 22:
|
||||||
b = "w";
|
b = "w";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 23:
|
case 23:
|
||||||
b = "x";
|
b = "x";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 24:
|
case 24:
|
||||||
b = "y";
|
b = "y";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 25:
|
case 25:
|
||||||
b = "z";
|
b = "z";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 26:
|
case 26:
|
||||||
b = ".";
|
b = ".";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 27:
|
case 27:
|
||||||
b = " ";
|
b = " ";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -950,7 +950,7 @@ bot_onUsePlantObjectFix( player )
|
|||||||
{
|
{
|
||||||
level thread bot_bombPlanted( self, player );
|
level thread bot_bombPlanted( self, player );
|
||||||
player logstring( "bomb planted: " + self.label );
|
player logstring( "bomb planted: " + self.label );
|
||||||
|
|
||||||
// disable all bomb zones except this one
|
// disable all bomb zones except this one
|
||||||
for ( index = 0; index < level.bombzones.size; index++ )
|
for ( index = 0; index < level.bombzones.size; index++ )
|
||||||
{
|
{
|
||||||
@ -958,28 +958,28 @@ bot_onUsePlantObjectFix( player )
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
level.bombzones[ index ] maps\mp\gametypes\_gameobjects::disableobject();
|
level.bombzones[ index ] maps\mp\gametypes\_gameobjects::disableobject();
|
||||||
}
|
}
|
||||||
|
|
||||||
thread playsoundonplayers( "mus_sd_planted" + "_" + level.teampostfix[ player.pers[ "team" ] ] );
|
thread playsoundonplayers( "mus_sd_planted" + "_" + level.teampostfix[ player.pers[ "team" ] ] );
|
||||||
// removed plant audio until finalization of assest TODO : new plant sounds when assests are online
|
// removed plant audio until finalization of assest TODO : new plant sounds when assests are online
|
||||||
// player playsound( "mpl_sd_bomb_plant" );
|
// player playsound( "mpl_sd_bomb_plant" );
|
||||||
player notify ( "bomb_planted" );
|
player notify ( "bomb_planted" );
|
||||||
|
|
||||||
level thread maps\mp\_popups::displayteammessagetoall( &"MP_EXPLOSIVES_PLANTED_BY", player );
|
level thread maps\mp\_popups::displayteammessagetoall( &"MP_EXPLOSIVES_PLANTED_BY", player );
|
||||||
|
|
||||||
if ( isdefined( player.pers[ "plants" ] ) )
|
if ( isdefined( player.pers[ "plants" ] ) )
|
||||||
{
|
{
|
||||||
player.pers[ "plants" ]++;
|
player.pers[ "plants" ]++;
|
||||||
player.plants = player.pers[ "plants" ];
|
player.plants = player.pers[ "plants" ];
|
||||||
}
|
}
|
||||||
|
|
||||||
player maps\mp\_medals::saboteur();
|
player maps\mp\_medals::saboteur();
|
||||||
player maps\mp\gametypes\_persistence::stataddwithgametype( "PLANTS", 1 );
|
player maps\mp\gametypes\_persistence::stataddwithgametype( "PLANTS", 1 );
|
||||||
|
|
||||||
maps\mp\gametypes\_globallogic_audio::leaderdialog( "bomb_planted" );
|
maps\mp\gametypes\_globallogic_audio::leaderdialog( "bomb_planted" );
|
||||||
|
|
||||||
maps\mp\gametypes\_globallogic_score::giveplayerscore( "plant", player );
|
maps\mp\gametypes\_globallogic_score::giveplayerscore( "plant", player );
|
||||||
// player thread [[ level.onxpevent ]]( "plant" );
|
// player thread [[ level.onxpevent ]]( "plant" );
|
||||||
}
|
}
|
||||||
@ -992,19 +992,19 @@ bot_bombPlanted( destroyedObj, player )
|
|||||||
{
|
{
|
||||||
maps\mp\gametypes\_globallogic_utils::pausetimer();
|
maps\mp\gametypes\_globallogic_utils::pausetimer();
|
||||||
level.bombplanted = true;
|
level.bombplanted = true;
|
||||||
|
|
||||||
destroyedObj.visuals[ 0 ] thread maps\mp\gametypes\_globallogic_utils::playtickingsound( "mpl_sab_ui_suitcasebomb_timer" );
|
destroyedObj.visuals[ 0 ] thread maps\mp\gametypes\_globallogic_utils::playtickingsound( "mpl_sab_ui_suitcasebomb_timer" );
|
||||||
// Play suspense music
|
// Play suspense music
|
||||||
level thread maps\mp\gametypes\sd::bombplantedmusicdelay();
|
level thread maps\mp\gametypes\sd::bombplantedmusicdelay();
|
||||||
|
|
||||||
// thread maps\mp\gametypes\_globallogic_audio::actionmusicset();
|
// thread maps\mp\gametypes\_globallogic_audio::actionmusicset();
|
||||||
|
|
||||||
level.tickingobject = destroyedObj.visuals[ 0 ];
|
level.tickingobject = destroyedObj.visuals[ 0 ];
|
||||||
|
|
||||||
level.timelimitoverride = true;
|
level.timelimitoverride = true;
|
||||||
setgameendtime( int( gettime() + ( level.bombtimer * 1000 ) ) );
|
setgameendtime( int( gettime() + ( level.bombtimer * 1000 ) ) );
|
||||||
setmatchflag( "bomb_timer", 1 );
|
setmatchflag( "bomb_timer", 1 );
|
||||||
|
|
||||||
if ( !level.multibomb )
|
if ( !level.multibomb )
|
||||||
{
|
{
|
||||||
level.sdbomb maps\mp\gametypes\_gameobjects::allowcarry( "none" );
|
level.sdbomb maps\mp\gametypes\_gameobjects::allowcarry( "none" );
|
||||||
@ -1014,7 +1014,7 @@ bot_bombPlanted( destroyedObj, player )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
for ( index = 0; index < level.players.size; index++ )
|
for ( index = 0; index < level.players.size; index++ )
|
||||||
{
|
{
|
||||||
if ( isdefined( level.players[ index ].carryicon ) )
|
if ( isdefined( level.players[ index ].carryicon ) )
|
||||||
@ -1022,19 +1022,19 @@ bot_bombPlanted( destroyedObj, player )
|
|||||||
level.players[ index ].carryicon destroyelem();
|
level.players[ index ].carryicon destroyelem();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trace = bullettrace( player.origin + ( 0, 0, 20 ), player.origin - ( 0, 0, 2000 ), false, player );
|
trace = bullettrace( player.origin + ( 0, 0, 20 ), player.origin - ( 0, 0, 2000 ), false, player );
|
||||||
|
|
||||||
tempAngle = randomfloat( 360 );
|
tempAngle = randomfloat( 360 );
|
||||||
forward = ( cos( tempAngle ), sin( tempAngle ), 0 );
|
forward = ( cos( tempAngle ), sin( tempAngle ), 0 );
|
||||||
forward = vectornormalize( forward - vector_scale( trace[ "normal" ], vectordot( forward, trace[ "normal" ] ) ) );
|
forward = vectornormalize( forward - vector_scale( trace[ "normal" ], vectordot( forward, trace[ "normal" ] ) ) );
|
||||||
dropAngles = vectortoangles( forward );
|
dropAngles = vectortoangles( forward );
|
||||||
|
|
||||||
level.sdbombmodel = spawn( "script_model", trace[ "position" ] );
|
level.sdbombmodel = spawn( "script_model", trace[ "position" ] );
|
||||||
level.sdbombmodel.angles = dropAngles;
|
level.sdbombmodel.angles = dropAngles;
|
||||||
level.sdbombmodel setmodel( "prop_suitcase_bomb" );
|
level.sdbombmodel setmodel( "prop_suitcase_bomb" );
|
||||||
}
|
}
|
||||||
|
|
||||||
destroyedObj maps\mp\gametypes\_gameobjects::allowuse( "none" );
|
destroyedObj maps\mp\gametypes\_gameobjects::allowuse( "none" );
|
||||||
destroyedObj maps\mp\gametypes\_gameobjects::setvisibleteam( "none" );
|
destroyedObj maps\mp\gametypes\_gameobjects::setvisibleteam( "none" );
|
||||||
/*
|
/*
|
||||||
@ -1044,7 +1044,7 @@ bot_bombPlanted( destroyedObj, player )
|
|||||||
destroyedObj maps\mp\gametypes\_gameobjects::set3dicon( "enemy", undefined );
|
destroyedObj maps\mp\gametypes\_gameobjects::set3dicon( "enemy", undefined );
|
||||||
*/
|
*/
|
||||||
label = destroyedObj maps\mp\gametypes\_gameobjects::getlabel();
|
label = destroyedObj maps\mp\gametypes\_gameobjects::getlabel();
|
||||||
|
|
||||||
// create a new object to defuse with.
|
// create a new object to defuse with.
|
||||||
trigger = destroyedObj.bombdefusetrig;
|
trigger = destroyedObj.bombdefusetrig;
|
||||||
trigger.origin = level.sdbombmodel.origin;
|
trigger.origin = level.sdbombmodel.origin;
|
||||||
@ -1064,28 +1064,27 @@ bot_bombPlanted( destroyedObj, player )
|
|||||||
defuseObject.onenduse = maps\mp\gametypes\sd::onenduse;
|
defuseObject.onenduse = maps\mp\gametypes\sd::onenduse;
|
||||||
defuseObject.onuse = maps\mp\gametypes\sd::onusedefuseobject;
|
defuseObject.onuse = maps\mp\gametypes\sd::onusedefuseobject;
|
||||||
defuseObject.useweapon = "briefcase_bomb_defuse_mp";
|
defuseObject.useweapon = "briefcase_bomb_defuse_mp";
|
||||||
|
|
||||||
level.defuseobject = defuseObject; // every cod...
|
level.defuseobject = defuseObject; // every cod...
|
||||||
|
|
||||||
player.isbombcarrier = false;
|
player.isbombcarrier = false;
|
||||||
|
|
||||||
maps\mp\gametypes\sd::bombtimerwait();
|
maps\mp\gametypes\sd::bombtimerwait();
|
||||||
setmatchflag( "bomb_timer", 0 );
|
setmatchflag( "bomb_timer", 0 );
|
||||||
|
|
||||||
destroyedObj.visuals[ 0 ] maps\mp\gametypes\_globallogic_utils::stoptickingsound();
|
destroyedObj.visuals[ 0 ] maps\mp\gametypes\_globallogic_utils::stoptickingsound();
|
||||||
|
|
||||||
if ( level.gameended || level.bombdefused )
|
if ( level.gameended || level.bombdefused )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
level.bombexploded = true;
|
level.bombexploded = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
explosionOrigin = level.sdbombmodel.origin + ( 0, 0, 12 );
|
explosionOrigin = level.sdbombmodel.origin + ( 0, 0, 12 );
|
||||||
level.sdbombmodel hide();
|
level.sdbombmodel hide();
|
||||||
|
|
||||||
if ( isdefined( player ) )
|
if ( isdefined( player ) )
|
||||||
{
|
{
|
||||||
destroyedObj.visuals[ 0 ] radiusdamage( explosionOrigin, 512, 200, 20, player, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
destroyedObj.visuals[ 0 ] radiusdamage( explosionOrigin, 512, 200, 20, player, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
||||||
@ -1097,29 +1096,29 @@ bot_bombPlanted( destroyedObj, player )
|
|||||||
{
|
{
|
||||||
destroyedObj.visuals[ 0 ] radiusdamage( explosionOrigin, 512, 200, 20, undefined, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
destroyedObj.visuals[ 0 ] radiusdamage( explosionOrigin, 512, 200, 20, undefined, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
||||||
}
|
}
|
||||||
|
|
||||||
rot = randomfloat( 360 );
|
rot = randomfloat( 360 );
|
||||||
explosionEffect = spawnfx( level._effect[ "bombexplosion" ], explosionOrigin + ( 0, 0, 50 ), ( 0, 0, 1 ), ( cos( rot ), sin( rot ), 0 ) );
|
explosionEffect = spawnfx( level._effect[ "bombexplosion" ], explosionOrigin + ( 0, 0, 50 ), ( 0, 0, 1 ), ( cos( rot ), sin( rot ), 0 ) );
|
||||||
triggerfx( explosionEffect );
|
triggerfx( explosionEffect );
|
||||||
|
|
||||||
thread playsoundinspace( "mpl_sd_exp_suitcase_bomb_main", explosionOrigin );
|
thread playsoundinspace( "mpl_sd_exp_suitcase_bomb_main", explosionOrigin );
|
||||||
// thread maps\mp\gametypes\_globallogic_audio::set_music_on_team( "SILENT", "both" );
|
// thread maps\mp\gametypes\_globallogic_audio::set_music_on_team( "SILENT", "both" );
|
||||||
|
|
||||||
if ( isdefined( destroyedObj.exploderindex ) )
|
if ( isdefined( destroyedObj.exploderindex ) )
|
||||||
{
|
{
|
||||||
exploder( destroyedObj.exploderindex );
|
exploder( destroyedObj.exploderindex );
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( index = 0; index < level.bombzones.size; index++ )
|
for ( index = 0; index < level.bombzones.size; index++ )
|
||||||
{
|
{
|
||||||
level.bombzones[ index ] maps\mp\gametypes\_gameobjects::disableobject();
|
level.bombzones[ index ] maps\mp\gametypes\_gameobjects::disableobject();
|
||||||
}
|
}
|
||||||
|
|
||||||
defuseObject maps\mp\gametypes\_gameobjects::disableobject();
|
defuseObject maps\mp\gametypes\_gameobjects::disableobject();
|
||||||
|
|
||||||
setgameendtime( 0 );
|
setgameendtime( 0 );
|
||||||
|
|
||||||
wait 3;
|
wait 3;
|
||||||
|
|
||||||
maps\mp\gametypes\sd::sd_endgame( game[ "attackers" ], game[ "strings" ][ "target_destroyed" ] );
|
maps\mp\gametypes\sd::sd_endgame( game[ "attackers" ], game[ "strings" ][ "target_destroyed" ] );
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user