mirror of
https://github.com/ineedbots/iw2_bot_warfare.git
synced 2026-09-21 12:37:05 +00:00
Compare commits
8
Commits
fdeda6095e
...
94bf78b364
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94bf78b364 | ||
|
|
171d9e8e90 | ||
|
|
9c647cbe79 | ||
|
|
c6c87aabca | ||
|
|
538bb3f790 | ||
|
|
6afd9b56df | ||
|
|
956f3fafde | ||
|
|
a090088ab4 |
Vendored
+1
@@ -11,5 +11,6 @@
|
||||
"comments": true,
|
||||
"strings": true
|
||||
},
|
||||
"editor.wordBasedSuggestions": "allDocuments",
|
||||
"vscode-codscript.use_builtin_completionItems": false
|
||||
}
|
||||
|
||||
@@ -4,5 +4,4 @@ Bot Warfare for CoD2, in progress...
|
||||
|
||||
TODO:
|
||||
- _bot_script
|
||||
- _menu
|
||||
- _bot_chat
|
||||
|
||||
+341
-273
@@ -8,53 +8,6 @@
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\bots\_bot_utility;
|
||||
|
||||
|
||||
secondaryoffhandbuttonpressed()
|
||||
{
|
||||
return getcvarint( "smoke" );
|
||||
}
|
||||
|
||||
fragbuttonpressed()
|
||||
{
|
||||
return getcvarint( "frag" );
|
||||
}
|
||||
|
||||
adsbuttonpressed()
|
||||
{
|
||||
return getcvarint( "speed" ) || self playerads() > 0.05;
|
||||
}
|
||||
|
||||
setparent( parent )
|
||||
{
|
||||
}
|
||||
|
||||
setpoint(a, b, x, y)
|
||||
{
|
||||
}
|
||||
|
||||
createfontstring( font, fontScale )
|
||||
{
|
||||
fontElem = newclienthudelem( self );
|
||||
fontElem.elemType = "font";
|
||||
fontElem.font = font;
|
||||
fontElem.fontscale = fontScale;
|
||||
fontElem.x = 0;
|
||||
fontElem.y = 0;
|
||||
fontElem.width = 0;
|
||||
fontElem.height = int( 12 * fontScale );
|
||||
fontElem.xOffset = 0;
|
||||
fontElem.yOffset = 0;
|
||||
fontElem.children = [];
|
||||
fontElem setparent( level.uiparent );
|
||||
fontElem.hidden = false;
|
||||
return fontElem;
|
||||
}
|
||||
|
||||
destroyelem()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
init()
|
||||
{
|
||||
if ( getcvar( "bots_main_menu" ) == "" )
|
||||
@@ -68,6 +21,45 @@ init()
|
||||
}
|
||||
|
||||
precacheshader( "white" );
|
||||
precachestring( &"Bot Warfare" );
|
||||
precachestring( &"Toggle bots can ads" );
|
||||
precachestring( &"Toggle bots can jump and dropshot" );
|
||||
precachestring( &"Toggle bots can camp" );
|
||||
precachestring( &"Toggle bots play the objective" );
|
||||
precachestring( &"Toggle bots can nade" );
|
||||
precachestring( &"Toggle bots can fire" );
|
||||
precachestring( &"Toggle bots can knife" );
|
||||
precachestring( &"Toggle bots can move" );
|
||||
precachestring( &"Bot settings" );
|
||||
precachestring( &"Decrease amount of med bots on allies team" );
|
||||
precachestring( &"Increase amount of med bots on allies team" );
|
||||
precachestring( &"Decrease amount of hard bots on allies team" );
|
||||
precachestring( &"Increase amount of hard bots on allies team" );
|
||||
precachestring( &"Decrease amount of med bots on axis team" );
|
||||
precachestring( &"Increase amount of med bots on axis team" );
|
||||
precachestring( &"Decrease amount of hard bots on axis team" );
|
||||
precachestring( &"Increase amount of hard bots on axis team" );
|
||||
precachestring( &"Change bot difficulty" );
|
||||
precachestring( &"Toggle bot_team_bot" );
|
||||
precachestring( &"Toggle forcing bots on team" );
|
||||
precachestring( &"Decrease bots to be on axis team" );
|
||||
precachestring( &"Increase bots to be on axis team" );
|
||||
precachestring( &"Change bot team" );
|
||||
precachestring( &"Teams and difficulty" );
|
||||
precachestring( &"Toggle count players for fill on spectator" );
|
||||
precachestring( &"Decrease bots to keep in-game" );
|
||||
precachestring( &"Increase bots to keep in-game" );
|
||||
precachestring( &"Change bot_fill_mode" );
|
||||
precachestring( &"Toggle auto bot kicking" );
|
||||
precachestring( &"Kick all bots" );
|
||||
precachestring( &"Kick a bot" );
|
||||
precachestring( &"Add 17 bot" );
|
||||
precachestring( &"Add 11 bot" );
|
||||
precachestring( &"Add 7 bot" );
|
||||
precachestring( &"Add 3 bot" );
|
||||
precachestring( &"Add 1 bot" );
|
||||
precachestring( &"Manage bots" );
|
||||
|
||||
thread watchPlayers();
|
||||
}
|
||||
|
||||
@@ -120,47 +112,6 @@ init_menu()
|
||||
self thread doGreetings();
|
||||
}
|
||||
|
||||
destroyFixed()
|
||||
{
|
||||
if ( !isdefined( self ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self destroy();
|
||||
}
|
||||
|
||||
removeChildFixed( element )
|
||||
{
|
||||
temp = [];
|
||||
|
||||
for ( i = 0; i < self.children.size ; i++ )
|
||||
{
|
||||
if ( isdefined( self.children[ i ] ) && self.children[ i ] != element )
|
||||
{
|
||||
self.children[ i ].index = temp.size;
|
||||
temp[ temp.size ] = self.children[ i ];
|
||||
}
|
||||
}
|
||||
|
||||
self.children = temp;
|
||||
}
|
||||
|
||||
destroyElemFixed()
|
||||
{
|
||||
if ( !isdefined( self ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( isdefined( self.parent ) )
|
||||
{
|
||||
self.parent removeChildFixed( self );
|
||||
}
|
||||
|
||||
self destroyelem();
|
||||
}
|
||||
|
||||
kill_menu()
|
||||
{
|
||||
self notify( "bots_kill_menu" );
|
||||
@@ -179,7 +130,7 @@ watchDisconnect()
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
self.menutexty[ i ] destroyElemFixed();
|
||||
self.menutexty[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -190,7 +141,7 @@ watchDisconnect()
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
self.menutext[ i ] destroyElemFixed();
|
||||
self.menutext[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -199,18 +150,18 @@ watchDisconnect()
|
||||
{
|
||||
if ( isdefined( self.menu[ "X" ][ "Shader" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Shader" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Shader" ] destroy();
|
||||
}
|
||||
|
||||
if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Scroller" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Scroller" ] destroy();
|
||||
}
|
||||
}
|
||||
|
||||
if ( isdefined( self.menuversionhud ) )
|
||||
{
|
||||
self.menuversionhud destroyFixed();
|
||||
self.menuversionhud destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -222,7 +173,7 @@ doGreetings()
|
||||
wait 1;
|
||||
self iprintln( "Welcome to Bot Warfare " + self.name + "!" );
|
||||
wait 5;
|
||||
self iprintln( "Press [{+frag}] + [{+smoke}] to open menu!" );
|
||||
self iprintln( "Press [{+attack}] + [{+activate}] + [{+melee_breath}] to open menu!" );
|
||||
}
|
||||
|
||||
watchPlayerOpenMenu()
|
||||
@@ -232,7 +183,7 @@ watchPlayerOpenMenu()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self fragbuttonpressed() || !self secondaryoffhandbuttonpressed() )
|
||||
while ( !self attackbuttonpressed() || !self meleebuttonpressed() || !self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
@@ -265,7 +216,7 @@ watchPlayerOpenMenu()
|
||||
}
|
||||
}
|
||||
|
||||
while ( self fragbuttonpressed() && self secondaryoffhandbuttonpressed() )
|
||||
while ( self attackbuttonpressed() && self meleebuttonpressed() && self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
@@ -284,17 +235,20 @@ MenuSelect()
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( self.menuopen )
|
||||
if ( !self attackbuttonpressed() && !self usebuttonpressed() )
|
||||
{
|
||||
self playlocalsound( "mouse_click" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
if ( self.menuopen )
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] );
|
||||
self playlocalsound( "mouse_click" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -317,31 +271,34 @@ LeftMenu()
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( self.menuopen )
|
||||
if ( !self meleebuttonpressed() && !self usebuttonpressed() )
|
||||
{
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
if ( self.menuopen )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ]--;
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] < 0 )
|
||||
if ( self.submenu == "Main" )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
self.curs[ "Main" ][ "X" ]--;
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] < 0 )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ]--;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] < 0 )
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
self.curs[ self.submenu ][ "Y" ]--;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] < 0 )
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -359,40 +316,43 @@ RightMenu()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self adsbuttonpressed() )
|
||||
while ( !self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( self.menuopen )
|
||||
if ( !self attackbuttonpressed() && !self meleebuttonpressed() )
|
||||
{
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
if ( self.menuopen )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ]++;
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
if ( self.submenu == "Main" )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = 0;
|
||||
self.curs[ "Main" ][ "X" ]++;
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = 0;
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ]++;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = 0;
|
||||
self.curs[ self.submenu ][ "Y" ]++;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = 0;
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
}
|
||||
|
||||
while ( self adsbuttonpressed() )
|
||||
while ( self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
@@ -418,7 +378,7 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
self.menutext[ i ] destroyElemFixed();
|
||||
self.menutext[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -427,36 +387,36 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
if ( isdefined( self.menu[ "X" ][ "Shader" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Shader" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Shader" ] destroy();
|
||||
}
|
||||
|
||||
if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Scroller" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Scroller" ] destroy();
|
||||
}
|
||||
}
|
||||
|
||||
if ( isdefined( self.menuversionhud ) )
|
||||
{
|
||||
self.menuversionhud destroyFixed();
|
||||
self.menuversionhud destroy();
|
||||
}
|
||||
|
||||
for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
|
||||
{
|
||||
self.menutext[ i ] = self createfontstring( "default", 1.6 );
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 100 ), -226 );
|
||||
// self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 150 ), -226 );
|
||||
self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
|
||||
if ( logOldi )
|
||||
{
|
||||
self.oldi = i;
|
||||
}
|
||||
|
||||
if ( self.menutext[ i ].x > 300 )
|
||||
if ( self.menutext[ i ].x > 450 )
|
||||
{
|
||||
logOldi = false;
|
||||
x = i - self.oldi;
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", ( ( ( -300 ) - ( i * 100 ) ) + ( i * 100 ) ) + ( x * 100 ), -196 );
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", ( ( ( -300 ) - ( i * 150 ) ) + ( i * 150 ) ) + ( x * 150 ), -196 );
|
||||
}
|
||||
|
||||
self.menutext[ i ].alpha = 1;
|
||||
@@ -476,7 +436,7 @@ OpenSub( menu, menu2 )
|
||||
|
||||
self CursMove( "X" );
|
||||
|
||||
self.menuversionhud = initHudElem( "Bot Warfare " + level.bw_version, 0, 0 );
|
||||
self.menuversionhud = initHudElem( &"Bot Warfare", 0, 0 );
|
||||
|
||||
self.menuopen = true;
|
||||
}
|
||||
@@ -488,7 +448,7 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
self.menutexty[ i ] destroyElemFixed();
|
||||
self.menutexty[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -497,7 +457,7 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
self.menutexty[ i ] = self createfontstring( "default", 1.6 );
|
||||
self.menutexty[ i ] setpoint( "CENTER", "CENTER", self.menutext[ self.curs[ "Main" ][ "X" ] ].x, -160 + ( i * 20 ) );
|
||||
//self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutexty[ i ].alpha = 1;
|
||||
self.menutexty[ i ].sort = 999;
|
||||
}
|
||||
@@ -606,7 +566,7 @@ ShowOptionOn( variable )
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
// self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -633,7 +593,7 @@ ShowOptionOn( variable )
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
//self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -664,7 +624,7 @@ ExitSub()
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
self.menutexty[ i ] destroyElemFixed();
|
||||
self.menutexty[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -689,7 +649,7 @@ ExitMenu()
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
self.menutext[ i ] destroyElemFixed();
|
||||
self.menutext[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -698,18 +658,18 @@ ExitMenu()
|
||||
{
|
||||
if ( isdefined( self.menu[ "X" ][ "Shader" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Shader" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Shader" ] destroy();
|
||||
}
|
||||
|
||||
if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Scroller" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Scroller" ] destroy();
|
||||
}
|
||||
}
|
||||
|
||||
if ( isdefined( self.menuversionhud ) )
|
||||
{
|
||||
self.menuversionhud destroyFixed();
|
||||
self.menuversionhud destroy();
|
||||
}
|
||||
|
||||
self.menuopen = false;
|
||||
@@ -719,10 +679,192 @@ ExitMenu()
|
||||
self setclientcvar( "sc_blur", "2" );
|
||||
}
|
||||
|
||||
setpoint( point, relativePoint, xOffset, yOffset, moveTime )
|
||||
{
|
||||
if ( !isdefined( moveTime ) )
|
||||
{
|
||||
moveTime = 0;
|
||||
}
|
||||
|
||||
if ( moveTime )
|
||||
{
|
||||
self moveovertime( moveTime );
|
||||
}
|
||||
|
||||
if ( !isdefined( xOffset ) )
|
||||
{
|
||||
xOffset = 0;
|
||||
}
|
||||
|
||||
self.xOffset = xOffset;
|
||||
|
||||
if ( !isdefined( yOffset ) )
|
||||
{
|
||||
yOffset = 0;
|
||||
}
|
||||
|
||||
self.yOffset = yOffset;
|
||||
|
||||
self.point = point;
|
||||
|
||||
self.alignX = "center";
|
||||
self.alignY = "middle";
|
||||
|
||||
if ( issubstr( point, "TOP" ) )
|
||||
{
|
||||
self.alignY = "top";
|
||||
}
|
||||
|
||||
if ( issubstr( point, "BOTTOM" ) )
|
||||
{
|
||||
self.alignY = "bottom";
|
||||
}
|
||||
|
||||
if ( issubstr( point, "LEFT" ) )
|
||||
{
|
||||
self.alignX = "left";
|
||||
}
|
||||
|
||||
if ( issubstr( point, "RIGHT" ) )
|
||||
{
|
||||
self.alignX = "right";
|
||||
}
|
||||
|
||||
if ( !isdefined( relativePoint ) )
|
||||
{
|
||||
relativePoint = point;
|
||||
}
|
||||
|
||||
self.relativePoint = relativePoint;
|
||||
|
||||
relativeX = "center";
|
||||
relativeY = "middle";
|
||||
|
||||
if ( issubstr( relativePoint, "TOP" ) )
|
||||
{
|
||||
relativeY = "top";
|
||||
}
|
||||
|
||||
if ( issubstr( relativePoint, "BOTTOM" ) )
|
||||
{
|
||||
relativeY = "bottom";
|
||||
}
|
||||
|
||||
if ( issubstr( relativePoint, "LEFT" ) )
|
||||
{
|
||||
relativeX = "left";
|
||||
}
|
||||
|
||||
if ( issubstr( relativePoint, "RIGHT" ) )
|
||||
{
|
||||
relativeX = "right";
|
||||
}
|
||||
|
||||
self.horzAlign = relativeX;
|
||||
self.vertAlign = relativeY;
|
||||
|
||||
element = spawnstruct();
|
||||
element.horzAlign = "left";
|
||||
element.vertAlign = "top";
|
||||
element.alignX = "left";
|
||||
element.alignY = "top";
|
||||
element.x = 0;
|
||||
element.y = 0;
|
||||
element.width = 0;
|
||||
element.height = 0;
|
||||
|
||||
if ( relativeX == element.alignX )
|
||||
{
|
||||
offsetX = 0;
|
||||
xFactor = 0;
|
||||
}
|
||||
else if ( relativeX == "center" || element.alignX == "center" )
|
||||
{
|
||||
offsetX = int( element.width / 2 );
|
||||
|
||||
if ( relativeX == "left" || element.alignX == "right" )
|
||||
{
|
||||
xFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
xFactor = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
offsetX = element.width;
|
||||
|
||||
if ( relativeX == "left" )
|
||||
{
|
||||
xFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
xFactor = 1;
|
||||
}
|
||||
}
|
||||
|
||||
self.x = element.x + ( offsetX * xFactor );
|
||||
|
||||
if ( relativeY == element.alignY )
|
||||
{
|
||||
offsetY = 0;
|
||||
yFactor = 0;
|
||||
}
|
||||
else if ( relativeY == "middle" || element.alignY == "middle" )
|
||||
{
|
||||
offsetY = int( element.height / 2 );
|
||||
|
||||
if ( relativeY == "top" || element.alignY == "bottom" )
|
||||
{
|
||||
yFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
yFactor = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
offsetY = element.height;
|
||||
|
||||
if ( relativeY == "top" )
|
||||
{
|
||||
yFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
yFactor = 1;
|
||||
}
|
||||
}
|
||||
|
||||
self.y = element.y + ( offsetY * yFactor );
|
||||
|
||||
self.x += self.xOffset;
|
||||
self.y += self.yOffset;
|
||||
}
|
||||
|
||||
createfontstring( font, fontScale )
|
||||
{
|
||||
fontElem = newclienthudelem( self );
|
||||
fontElem.elemType = "font";
|
||||
fontElem.font = font;
|
||||
fontElem.fontscale = fontScale;
|
||||
fontElem.x = 0;
|
||||
fontElem.y = 0;
|
||||
fontElem.width = 0;
|
||||
fontElem.height = int( 12 * fontScale );
|
||||
fontElem.xOffset = 0;
|
||||
fontElem.yOffset = 0;
|
||||
fontElem.hidden = false;
|
||||
return fontElem;
|
||||
}
|
||||
|
||||
initHudElem( txt, xl, yl )
|
||||
{
|
||||
hud = newclienthudelem( self );
|
||||
//hud settext( txt );
|
||||
hud settext( txt );
|
||||
hud.alignx = "center";
|
||||
hud.aligny = "bottom";
|
||||
hud.horzalign = "center";
|
||||
@@ -751,11 +893,9 @@ createRectangle( align, relative, x, y, width, height, color, sort, alpha, shade
|
||||
barElemBG.relative = relative;
|
||||
barElemBG.xoffset = 0;
|
||||
barElemBG.yoffset = 0;
|
||||
barElemBG.children = [];
|
||||
barElemBG.sort = sort;
|
||||
barElemBG.color = color;
|
||||
barElemBG.alpha = alpha;
|
||||
barElemBG setparent( level.uiparent );
|
||||
barElemBG setshader( shader, width, height );
|
||||
barElemBG.hidden = false;
|
||||
barElemBG setpoint( align, relative, x, y );
|
||||
@@ -764,18 +904,18 @@ createRectangle( align, relative, x, y, width, height, color, sort, alpha, shade
|
||||
|
||||
AddOptions()
|
||||
{
|
||||
self AddMenu( "Main", 0, "Manage bots", ::OpenSub, "man_bots", "" );
|
||||
self AddMenu( "Main", 0, &"Manage bots", ::OpenSub, "man_bots", "" );
|
||||
self AddBack( "man_bots", "Main" );
|
||||
|
||||
_temp = "";
|
||||
_tempcvar = getcvarint( "bots_manage_add" );
|
||||
self AddMenu( "man_bots", 0, "Add 1 bot", ::man_bots, "add", 1 + _tempcvar );
|
||||
self AddMenu( "man_bots", 1, "Add 3 bot", ::man_bots, "add", 3 + _tempcvar );
|
||||
self AddMenu( "man_bots", 2, "Add 7 bot", ::man_bots, "add", 7 + _tempcvar );
|
||||
self AddMenu( "man_bots", 3, "Add 11 bot", ::man_bots, "add", 11 + _tempcvar );
|
||||
self AddMenu( "man_bots", 4, "Add 17 bot", ::man_bots, "add", 17 + _tempcvar );
|
||||
self AddMenu( "man_bots", 5, "Kick a bot", ::man_bots, "kick", 1 );
|
||||
self AddMenu( "man_bots", 6, "Kick all bots", ::man_bots, "kick", getBotArray().size );
|
||||
self AddMenu( "man_bots", 0, &"Add 1 bot", ::man_bots, "add", 1 + _tempcvar );
|
||||
self AddMenu( "man_bots", 1, &"Add 3 bot", ::man_bots, "add", 3 + _tempcvar );
|
||||
self AddMenu( "man_bots", 2, &"Add 7 bot", ::man_bots, "add", 7 + _tempcvar );
|
||||
self AddMenu( "man_bots", 3, &"Add 11 bot", ::man_bots, "add", 11 + _tempcvar );
|
||||
self AddMenu( "man_bots", 4, &"Add 17 bot", ::man_bots, "add", 17 + _tempcvar );
|
||||
self AddMenu( "man_bots", 5, &"Kick a bot", ::man_bots, "kick", 1 );
|
||||
self AddMenu( "man_bots", 6, &"Kick all bots", ::man_bots, "kick", getBotArray().size );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill_kick" );
|
||||
|
||||
@@ -788,7 +928,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "man_bots", 7, "Toggle auto bot kicking: " + _temp, ::man_bots, "autokick", _tempcvar );
|
||||
self AddMenu( "man_bots", 7, &"Toggle auto bot kicking", ::man_bots, "autokick", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill_mode" );
|
||||
|
||||
@@ -823,11 +963,11 @@ AddOptions()
|
||||
break;
|
||||
}
|
||||
|
||||
self AddMenu( "man_bots", 8, "Change bot_fill_mode: " + _temp, ::man_bots, "fillmode", _tempcvar );
|
||||
self AddMenu( "man_bots", 8, &"Change bot_fill_mode", ::man_bots, "fillmode", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill" );
|
||||
self AddMenu( "man_bots", 9, "Increase bots to keep in-game: " + _tempcvar, ::man_bots, "fillup", _tempcvar );
|
||||
self AddMenu( "man_bots", 10, "Decrease bots to keep in-game: " + _tempcvar, ::man_bots, "filldown", _tempcvar );
|
||||
self AddMenu( "man_bots", 9, &"Increase bots to keep in-game", ::man_bots, "fillup", _tempcvar );
|
||||
self AddMenu( "man_bots", 10, &"Decrease bots to keep in-game", ::man_bots, "filldown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill_spec" );
|
||||
|
||||
@@ -840,19 +980,19 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "man_bots", 11, "Count players for fill on spectator: " + _temp, ::man_bots, "fillspec", _tempcvar );
|
||||
self AddMenu( "man_bots", 11, &"Toggle count players for fill on spectator", ::man_bots, "fillspec", _tempcvar );
|
||||
|
||||
//
|
||||
|
||||
self AddMenu( "Main", 1, "Teams and difficulty", ::OpenSub, "man_team", "" );
|
||||
self AddMenu( "Main", 1, &"Teams and difficulty", ::OpenSub, "man_team", "" );
|
||||
self AddBack( "man_team", "Main" );
|
||||
|
||||
_tempcvar = getcvar( "bots_team" );
|
||||
self AddMenu( "man_team", 0, "Change bot team: " + _tempcvar, ::bot_teams, "team", _tempcvar );
|
||||
self AddMenu( "man_team", 0, &"Change bot team", ::bot_teams, "team", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_team_amount" );
|
||||
self AddMenu( "man_team", 1, "Increase bots to be on axis team: " + _tempcvar, ::bot_teams, "teamup", _tempcvar );
|
||||
self AddMenu( "man_team", 2, "Decrease bots to be on axis team: " + _tempcvar, ::bot_teams, "teamdown", _tempcvar );
|
||||
self AddMenu( "man_team", 1, &"Increase bots to be on axis team", ::bot_teams, "teamup", _tempcvar );
|
||||
self AddMenu( "man_team", 2, &"Decrease bots to be on axis team", ::bot_teams, "teamdown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_team_force" );
|
||||
|
||||
@@ -865,7 +1005,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "man_team", 3, "Toggle forcing bots on team: " + _temp, ::bot_teams, "teamforce", _tempcvar );
|
||||
self AddMenu( "man_team", 3, &"Toggle forcing bots on team", ::bot_teams, "teamforce", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_team_mode" );
|
||||
|
||||
@@ -878,7 +1018,7 @@ AddOptions()
|
||||
_temp = "everyone";
|
||||
}
|
||||
|
||||
self AddMenu( "man_team", 4, "Toggle bot_team_bot: " + _temp, ::bot_teams, "teammode", _tempcvar );
|
||||
self AddMenu( "man_team", 4, &"Toggle bot_team_bot", ::bot_teams, "teammode", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill" );
|
||||
|
||||
@@ -929,55 +1069,29 @@ AddOptions()
|
||||
break;
|
||||
}
|
||||
|
||||
self AddMenu( "man_team", 5, "Change bot difficulty: " + _temp, ::bot_teams, "skill", _tempcvar );
|
||||
self AddMenu( "man_team", 5, &"Change bot difficulty", ::bot_teams, "skill", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_axis_hard" );
|
||||
self AddMenu( "man_team", 6, "Increase amount of hard bots on axis team: " + _tempcvar, ::bot_teams, "axishardup", _tempcvar );
|
||||
self AddMenu( "man_team", 7, "Decrease amount of hard bots on axis team: " + _tempcvar, ::bot_teams, "axisharddown", _tempcvar );
|
||||
self AddMenu( "man_team", 6, &"Increase amount of hard bots on axis team", ::bot_teams, "axishardup", _tempcvar );
|
||||
self AddMenu( "man_team", 7, &"Decrease amount of hard bots on axis team", ::bot_teams, "axisharddown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_axis_med" );
|
||||
self AddMenu( "man_team", 8, "Increase amount of med bots on axis team: " + _tempcvar, ::bot_teams, "axismedup", _tempcvar );
|
||||
self AddMenu( "man_team", 9, "Decrease amount of med bots on axis team: " + _tempcvar, ::bot_teams, "axismeddown", _tempcvar );
|
||||
self AddMenu( "man_team", 8, &"Increase amount of med bots on axis team", ::bot_teams, "axismedup", _tempcvar );
|
||||
self AddMenu( "man_team", 9, &"Decrease amount of med bots on axis team", ::bot_teams, "axismeddown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_allies_hard" );
|
||||
self AddMenu( "man_team", 10, "Increase amount of hard bots on allies team: " + _tempcvar, ::bot_teams, "allieshardup", _tempcvar );
|
||||
self AddMenu( "man_team", 11, "Decrease amount of hard bots on allies team: " + _tempcvar, ::bot_teams, "alliesharddown", _tempcvar );
|
||||
self AddMenu( "man_team", 10, &"Increase amount of hard bots on allies team", ::bot_teams, "allieshardup", _tempcvar );
|
||||
self AddMenu( "man_team", 11, &"Decrease amount of hard bots on allies team", ::bot_teams, "alliesharddown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_allies_med" );
|
||||
self AddMenu( "man_team", 12, "Increase amount of med bots on allies team: " + _tempcvar, ::bot_teams, "alliesmedup", _tempcvar );
|
||||
self AddMenu( "man_team", 13, "Decrease amount of med bots on allies team: " + _tempcvar, ::bot_teams, "alliesmeddown", _tempcvar );
|
||||
self AddMenu( "man_team", 12, &"Increase amount of med bots on allies team", ::bot_teams, "alliesmedup", _tempcvar );
|
||||
self AddMenu( "man_team", 13, &"Decrease amount of med bots on allies team", ::bot_teams, "alliesmeddown", _tempcvar );
|
||||
|
||||
//
|
||||
|
||||
self AddMenu( "Main", 2, "Bot settings", ::OpenSub, "set1", "" );
|
||||
self AddMenu( "Main", 2, &"Bot settings", ::OpenSub, "set1", "" );
|
||||
self AddBack( "set1", "Main" );
|
||||
|
||||
_tempcvar = getcvarint( "bots_loadout_reasonable" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 0, "Bots use only good class setups: " + _temp, ::bot_func, "reasonable", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_loadout_allow_op" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 1, "Bots can use op and annoying class setups: " + _temp, ::bot_func, "op", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_move" );
|
||||
|
||||
if ( _tempcvar )
|
||||
@@ -989,7 +1103,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 2, "Bots can move: " + _temp, ::bot_func, "move", _tempcvar );
|
||||
self AddMenu( "set1", 0, &"Toggle bots can move", ::bot_func, "move", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_knife" );
|
||||
|
||||
@@ -1002,7 +1116,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 3, "Bots can knife: " + _temp, ::bot_func, "knife", _tempcvar );
|
||||
self AddMenu( "set1", 1, &"Toggle bots can knife", ::bot_func, "knife", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_fire" );
|
||||
|
||||
@@ -1015,7 +1129,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 4, "Bots can fire: " + _temp, ::bot_func, "fire", _tempcvar );
|
||||
self AddMenu( "set1", 2, &"Toggle bots can fire", ::bot_func, "fire", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_nade" );
|
||||
|
||||
@@ -1028,7 +1142,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 5, "Bots can nade: " + _temp, ::bot_func, "nade", _tempcvar );
|
||||
self AddMenu( "set1", 3, &"Toggle bots can nade", ::bot_func, "nade", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_obj" );
|
||||
|
||||
@@ -1041,7 +1155,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 6, "Bots play the objective: " + _temp, ::bot_func, "obj", _tempcvar );
|
||||
self AddMenu( "set1", 4, &"Toggle bots play the objective", ::bot_func, "obj", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_camp" );
|
||||
|
||||
@@ -1054,7 +1168,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 7, "Bots can camp: " + _temp, ::bot_func, "camp", _tempcvar );
|
||||
self AddMenu( "set1", 5, &"Toggle bots can camp", ::bot_func, "camp", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_jumpdrop" );
|
||||
|
||||
@@ -1067,33 +1181,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 8, "Bots can jump and dropshot: " + _temp, ::bot_func, "jump", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_target_other" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 9, "Bots can target other script objects: " + _temp, ::bot_func, "targetother", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_killstreak" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 10, "Bots can use killstreaks: " + _temp, ::bot_func, "killstreak", _tempcvar );
|
||||
self AddMenu( "set1", 6, &"Toggle bots can jump and dropshot", ::bot_func, "jump", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_ads" );
|
||||
|
||||
@@ -1106,23 +1194,13 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 11, "Bots can ads: " + _temp, ::bot_func, "ads", _tempcvar );
|
||||
self AddMenu( "set1", 7, &"Toggle bots can ads", ::bot_func, "ads", _tempcvar );
|
||||
}
|
||||
|
||||
bot_func( a, b )
|
||||
{
|
||||
switch ( a )
|
||||
{
|
||||
case "reasonable":
|
||||
setcvar( "bots_loadout_reasonable", !b );
|
||||
self iprintln( "Bots using reasonable setups: " + !b );
|
||||
break;
|
||||
|
||||
case "op":
|
||||
setcvar( "bots_loadout_allow_op", !b );
|
||||
self iprintln( "Bots using op setups: " + !b );
|
||||
break;
|
||||
|
||||
case "move":
|
||||
setcvar( "bots_play_move", !b );
|
||||
self iprintln( "Bots move: " + !b );
|
||||
@@ -1158,16 +1236,6 @@ bot_func( a, b )
|
||||
self iprintln( "Bots jump: " + !b );
|
||||
break;
|
||||
|
||||
case "targetother":
|
||||
setcvar( "bots_play_target_other", !b );
|
||||
self iprintln( "Bots target other: " + !b );
|
||||
break;
|
||||
|
||||
case "killstreak":
|
||||
setcvar( "bots_play_killstreak", !b );
|
||||
self iprintln( "Bots use killstreaks: " + !b );
|
||||
break;
|
||||
|
||||
case "ads":
|
||||
setcvar( "bots_play_ads", !b );
|
||||
self iprintln( "Bots ads: " + !b );
|
||||
|
||||
@@ -5,7 +5,7 @@ init()
|
||||
level thread onPlayerConnect();
|
||||
|
||||
// bootstrap
|
||||
//level thread scripts\mp\bots_adapter_libcod::init();
|
||||
level thread scripts\mp\bots_adapter_libcod::init();
|
||||
level thread scripts\mp\bots_wp_editor::init();
|
||||
level thread scripts\mp\bots::init();
|
||||
//level thread scripts\mp\bots_chat::init();
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
139
|
||||
1696.93 1548.18 4.125,1 35 36,stand,,,
|
||||
1725.54 1094.58 4.125,0 2 36,stand,,,
|
||||
1723.16 729.155 4.125,1 3 37,stand,,,
|
||||
1709.16 393.254 4.125,2 4 38,stand,,,
|
||||
1741.58 55.043 4.125,3 5 43,stand,,,
|
||||
1739.79 -215.646 4.125,4 6 44,stand,,,
|
||||
1764.25 -435.758 4.125,5 7 45,stand,,,
|
||||
1764.34 -643.186 4.125,6 8 46,stand,,,
|
||||
1764.46 -930.969 4.125,7 9 48,stand,,,
|
||||
1721.57 -1268.37 4.125,8 10 49,stand,,,
|
||||
1717.64 -1496.7 4.125,9 11 49,stand,,,
|
||||
1391.54 -1498.39 4.125,10 12 49,stand,,,
|
||||
1031.11 -1515.86 4.125,11 13 50,stand,,,
|
||||
692.927 -1453.41 4.125,12 14 102,stand,,,
|
||||
360.157 -1458.37 4.125,13 15 103,stand,,,
|
||||
60.8565 -1459.23 4.125,14 16,stand,,,
|
||||
-100.3 -1459.33 4.125,15 17 104,stand,,,
|
||||
-409.664 -1459.49 4.125,16 18 105,stand,,,
|
||||
-586.109 -1458.31 4.125,17 19 105,stand,,,
|
||||
-566.653 -1234.88 4.125,18 20 105,stand,,,
|
||||
-580.419 -1036.26 4.125,19 21 106,stand,,,
|
||||
-557.363 -842.658 4.125,20 22 68,stand,,,
|
||||
-579.359 -651.729 4.125,21 23 67,stand,,,
|
||||
-580.097 -458.301 4.125,22 24 66,stand,,,
|
||||
-597.424 -191.082 4.125,23 25 65,stand,,,
|
||||
-585.086 335.482 4.125,24 26 63,stand,,,
|
||||
-585.133 658.093 4.125,25 27 62,stand,,,
|
||||
-573.85 1014.37 4.125,26 28 61 134,stand,,,
|
||||
-584.864 1473.2 4.125,27 29,stand,,,
|
||||
-589.846 1587.69 4.125,28 30 134,stand,,,
|
||||
-334.067 1584.68 4.125,29 31,stand,,,
|
||||
15.759 1584.25 4.125,30 32 60 134,stand,,,
|
||||
354.987 1582.41 4.125,31 33 59,stand,,,
|
||||
622.36 1571.2 4.125,32 34 58,stand,,,
|
||||
941.902 1542.02 4.125,33 35 57,stand,,,
|
||||
1456.66 1545.19 4.125,34 0 36,stand,,,
|
||||
1414.6 1169 4.125,35 1 37 0 57 56,stand,,,
|
||||
1394.89 682.08 4.125,36 38 39 40 2,stand,,,
|
||||
1543.83 360.809 4.125,37 3 39 43,stand,,,
|
||||
1351.41 331.975 4.125,38 37 41 42,stand,,,
|
||||
1127.76 635.271 4.125,37 41 56 137,stand,,,
|
||||
1116.44 285.82 4.125,40 39 124 126 137,stand,,,
|
||||
1377.41 59.0109 4.125,39 43 108 125,stand,,,
|
||||
1633.05 59.101 4.125,42 38 4 44,stand,,,
|
||||
1562.74 -131.139 4.125,43 45 5,stand,,,
|
||||
1488.86 -265.92 4.125,44 46 55 6 108,stand,,,
|
||||
1498.04 -541.634 4.125,45 47 53 7,stand,,,
|
||||
1417.12 -757.097 4.125,46 48 52,stand,,,
|
||||
1541.75 -949.32 4.125,47 49 8,stand,,,
|
||||
1503.7 -1239.1 4.125,48 50 9 10 11 52,stand,,,
|
||||
1054.76 -1239.01 4.125,49 12 51 101 73,stand,,,
|
||||
1027.67 -971.994 4.125,50 52 54 73,stand,,,
|
||||
1323.87 -946.064 4.125,51 47 49 53,stand,,,
|
||||
1256.34 -552.924 4.125,52 54 55 46 110,stand,,,
|
||||
1024.3 -582.952 4.125,53 51 73 110 112,stand,,,
|
||||
1364.12 -312.35 4.125,53 45 108,stand,,,
|
||||
999.614 869.249 4.125,40 57 128 36 138,stand,,,
|
||||
951.004 1224.67 4.125,56 36 58 34 135 138,stand,,,
|
||||
640.96 1321.55 4.125,57 59 33 135,stand,,,
|
||||
281.931 1313.02 4.125,58 60 32 136,stand,,,
|
||||
32.0013 1272.68 4.125,59 61 85 31,stand,,,
|
||||
-309.157 1093.36 4.125,60 62 27 134 85,stand,,,
|
||||
-263.842 679.455 4.125,61 63 86 26,stand,,,
|
||||
-402.814 433.35 4.125,62 64 87 25,stand,,,
|
||||
-360.193 154.408 4.125,63 65 80,stand,,,
|
||||
-364.967 -112.863 4.125,64 66 79 24,stand,,,
|
||||
-346.194 -410.147 4.125,65 67 23 77,stand,,,
|
||||
-336.02 -645.851 4.125,66 68 76 22,stand,,,
|
||||
-325.827 -922.753 4.125,67 69 106 21,stand,,,
|
||||
-59.9142 -936.315 4.125,68 70 107 76,stand,,,
|
||||
163.461 -936.298 4.125,69 71 75,stand,,,
|
||||
368.033 -1068.65 4.125,70 72 103 74 107,stand,,,
|
||||
605.271 -1067.67 4.125,71 73 101,stand,,,
|
||||
646.274 -825.179 4.125,72 74 50 54 51 112,stand,,,
|
||||
383.737 -774.366 4.125,73 75 113 71,stand,,,
|
||||
124 -631.022 4.125,74 76 117 115 70 114,stand,,,
|
||||
-97.9295 -595.255 4.125,75 77 69 67 117,stand,,,
|
||||
-224.639 -365.855 4.125,76 78 66,stand,,,
|
||||
6.72999 -248.596 4.125,77 79 116 117 118,stand,,,
|
||||
-201.778 -35.4486 4.125,78 80 65 118,stand,,,
|
||||
-177.547 191.23 4.125,79 81 119 64,stand,,,
|
||||
-82.3823 457.955 4.125,80 82 87 119,stand,,,
|
||||
45.511 422.759 4.125,81 83 88 133,stand,,,
|
||||
97.3582 701.149 4.125,82 84 86,stand,,,
|
||||
236.182 814.827 4.125,83 130 85 136 132 129 133,stand,,,
|
||||
83.3179 1062.5 4.125,86 84 60 136 61,stand,,,
|
||||
-112.701 783.008 4.125,85 87 83 62,stand,,,
|
||||
-167.405 481.206 4.125,86 63 81,stand,,,
|
||||
227.861 264.562 4.125,82 89 100 90 119 133,stand,,,
|
||||
386.054 184.126 4.125,88 90 100,stand,,,
|
||||
379.27 336.997 4.125,89 91 88 133,stand,,,
|
||||
599.376 311.644 4.125,90 92 132 127 93,stand,,,
|
||||
635.35 147.518 4.125,91 93,stand,,,
|
||||
788.925 122.72 4.125,92 94 126 123 91,stand,,,
|
||||
760.482 -21.9992 4.125,93 95 96 123 121,stand,,,
|
||||
593.636 -33.657 4.125,94 96,stand,,,
|
||||
561.364 -201.594 4.125,95 97 113 120 94 114,stand,,,
|
||||
411.218 -175.57 4.125,96 98 116 99,stand,,,
|
||||
380.937 -30.0889 4.125,97 99,stand,,,
|
||||
184.234 -5.80866 4.125,98 100 116 118 97,stand,,,
|
||||
198.033 145.569 4.125,99 89 118 88,stand,,,
|
||||
806.149 -1286.82 4.125,50 102 72,stand,,,
|
||||
552.809 -1289.98 4.125,103 101 13,stand,,,
|
||||
280.205 -1298.35 4.125,104 102 14 71,stand,,,
|
||||
-6.84731 -1286.02 4.125,103 105 16 107,stand,,,
|
||||
-418.024 -1301.41 4.125,104 106 18 19 17,stand,,,
|
||||
-398.956 -961.733 4.125,105 68 20,stand,,,
|
||||
2.82539 -1161.64 4.125,69 104 71,stand,,,
|
||||
1329.44 -202.423 4.125,42 45 55 109,stand,,,
|
||||
1158.59 -216.664 4.125,108 110 125 121,stand,,,
|
||||
1105.77 -375.547 4.125,109 111 54 53 121,stand,,,
|
||||
823.151 -397.365 4.125,110 112 121 120,stand,,,
|
||||
722.069 -578.055 4.125,111 113 73 54,stand,,,
|
||||
497.436 -542.634 4.125,112 114 74 96,stand,,,
|
||||
427.044 -455.077 4.125,113 115 96 75,stand,,,
|
||||
204.221 -407.618 4.125,114 116 75,stand,,,
|
||||
197.919 -162.509 4.125,115 78 117 99 97,stand,,,
|
||||
51.3677 -497.134 4.125,116 78 75 76,stand,,,
|
||||
34.3807 -1.21536 4.125,119 78 100 99 79,stand,,,
|
||||
-14.0912 272.38 4.125,118 81 80 88,stand,,,
|
||||
751.417 -291.242 4.125,96 121 111,stand,,,
|
||||
935.506 -261.08 4.125,120 122 109 111 94 110,stand,,,
|
||||
1084.6 -75.5598 4.125,121 123 125,stand,,,
|
||||
921.626 76.5605 4.125,122 124 94 93 126,stand,,,
|
||||
1141.95 205.139 4.125,123 125 41,stand,,,
|
||||
1262.06 -0.234829 4.125,124 122 42 109,stand,,,
|
||||
934.629 255.483 4.125,93 127 41 137 123,stand,,,
|
||||
782.743 493.221 4.125,126 128 131 91 137,stand,,,
|
||||
814.916 648.716 4.125,127 129 137 56 138 131,stand,,,
|
||||
616.598 903.061 4.125,128 130 135 136 84 138,stand,,,
|
||||
427.028 746.926 4.125,129 131 84,stand,,,
|
||||
567.25 564.842 4.125,132 127 130 128,stand,,,
|
||||
400.265 545.005 4.125,133 131 84 91,stand,,,
|
||||
196.791 457.315 4.125,132 82 88 84 90,stand,,,
|
||||
-378.706 1372.93 4.125,61 31 27 29,stand,,,
|
||||
733.929 1084.48 4.125,57 129 58,stand,,,
|
||||
295.556 1077.57 4.125,129 59 85 84,stand,,,
|
||||
953.172 463.202 4.125,127 40 126 41 128,stand,,,
|
||||
838.886 940.497 4.125,57 128 129 56,stand,,,
|
||||
|
Reference in New Issue
Block a user