mirror of
https://github.com/ineedbots/iw5_bot_warfare.git
synced 2025-04-26 07:34:50 +00:00
hacking but working
This commit is contained in:
parent
6b3e3bea70
commit
c7003a93c1
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
_bot
|
_bot
|
||||||
Author: INeedGames
|
Author: INeedGames
|
||||||
Date: 09/26/2020
|
Date: 05/07/2021
|
||||||
The entry point and manager of the bots.
|
The entry point and manager of the bots.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -123,39 +123,11 @@ init()
|
|||||||
level.bots = [];
|
level.bots = [];
|
||||||
|
|
||||||
level.bots_fullautoguns = [];
|
level.bots_fullautoguns = [];
|
||||||
level.bots_fullautoguns["aa12"] = true;
|
|
||||||
level.bots_fullautoguns["ak47"] = true;
|
|
||||||
level.bots_fullautoguns["aug"] = true;
|
|
||||||
level.bots_fullautoguns["fn2000"] = true;
|
|
||||||
level.bots_fullautoguns["glock"] = true;
|
|
||||||
level.bots_fullautoguns["kriss"] = true;
|
|
||||||
level.bots_fullautoguns["m4"] = true;
|
|
||||||
level.bots_fullautoguns["m240"] = true;
|
|
||||||
level.bots_fullautoguns["masada"] = true;
|
|
||||||
level.bots_fullautoguns["mg4"] = true;
|
|
||||||
level.bots_fullautoguns["mp5k"] = true;
|
|
||||||
level.bots_fullautoguns["p90"] = true;
|
|
||||||
level.bots_fullautoguns["pp2000"] = true;
|
|
||||||
level.bots_fullautoguns["rpd"] = true;
|
|
||||||
level.bots_fullautoguns["sa80"] = true;
|
|
||||||
level.bots_fullautoguns["scar"] = true;
|
|
||||||
level.bots_fullautoguns["tavor"] = true;
|
|
||||||
level.bots_fullautoguns["tmp"] = true;
|
|
||||||
level.bots_fullautoguns["ump45"] = true;
|
|
||||||
level.bots_fullautoguns["uzi"] = true;
|
|
||||||
|
|
||||||
level.bots_fullautoguns["ac130"] = true;
|
|
||||||
level.bots_fullautoguns["heli"] = true;
|
|
||||||
|
|
||||||
level.bots_fullautoguns["ak47classic"] = true;
|
|
||||||
level.bots_fullautoguns["ak74u"] = true;
|
|
||||||
level.bots_fullautoguns["peacekeeper"] = true;
|
|
||||||
|
|
||||||
level thread fixGamemodes();
|
level thread fixGamemodes();
|
||||||
|
|
||||||
level thread onPlayerConnect();
|
level thread onPlayerConnect();
|
||||||
level thread addNotifyOnAirdrops();
|
level thread addNotifyOnAirdrops();
|
||||||
level thread watchScrabler();
|
|
||||||
|
|
||||||
level thread handleBots();
|
level thread handleBots();
|
||||||
|
|
||||||
@ -359,50 +331,6 @@ onPlayerConnect()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Watches players with scrambler perk
|
|
||||||
*/
|
|
||||||
watchScrabler()
|
|
||||||
{
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
wait 1;
|
|
||||||
|
|
||||||
for ( i = level.players.size - 1; i >= 0; i-- )
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
player.bot_isScrambled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( i = level.players.size - 1; i >= 0; i-- )
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if (!player _HasPerk("specialty_localjammer") || !isReallyAlive(player))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (player isEMPed())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for ( h = level.players.size - 1; h >= 0; h-- )
|
|
||||||
{
|
|
||||||
player2 = level.players[h];
|
|
||||||
|
|
||||||
if (player2 == player)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(level.teamBased && player2.team == player.team)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (DistanceSquared(player2.origin, player.origin) > 256*256)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
player2.bot_isScrambled = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
When a bot disconnects.
|
When a bot disconnects.
|
||||||
*/
|
*/
|
||||||
@ -463,14 +391,14 @@ added()
|
|||||||
*/
|
*/
|
||||||
add_bot()
|
add_bot()
|
||||||
{
|
{
|
||||||
bot = addtestclient();
|
setDvar("addBots", 1);
|
||||||
|
|
||||||
if (isdefined(bot))
|
/*if (isdefined(bot))
|
||||||
{
|
{
|
||||||
bot.pers["isBot"] = true;
|
bot.pers["isBot"] = true;
|
||||||
bot.pers["isBotWarfare"] = true;
|
bot.pers["isBotWarfare"] = true;
|
||||||
bot thread added();
|
bot thread added();
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -793,7 +721,7 @@ addBots()
|
|||||||
{
|
{
|
||||||
tempBot = random(getBotArray());
|
tempBot = random(getBotArray());
|
||||||
if (isDefined(tempBot))
|
if (isDefined(tempBot))
|
||||||
kick( tempBot getEntityNumber(), "EXE_PLAYERKICKED" );
|
setDvar("removeBot", tempBot getEntityNumber());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -883,6 +883,9 @@ load_waypoints()
|
|||||||
{
|
{
|
||||||
switch(mapname)
|
switch(mapname)
|
||||||
{
|
{
|
||||||
|
case "mp_dome":
|
||||||
|
level.waypoints = maps\mp\bots\waypoints\dome::Dome();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
//maps\mp\bots\waypoints\_custom_map::main(mapname);
|
//maps\mp\bots\waypoints\_custom_map::main(mapname);
|
||||||
break;
|
break;
|
||||||
@ -946,6 +949,8 @@ getMapName(mapname)
|
|||||||
{
|
{
|
||||||
switch(mapname)
|
switch(mapname)
|
||||||
{
|
{
|
||||||
|
case "mp_dome":
|
||||||
|
return "Dome";
|
||||||
default:
|
default:
|
||||||
return mapname;
|
return mapname;
|
||||||
}
|
}
|
||||||
@ -958,6 +963,11 @@ getGoodMapAmount()
|
|||||||
{
|
{
|
||||||
switch(getdvar("mapname"))
|
switch(getdvar("mapname"))
|
||||||
{
|
{
|
||||||
|
case "mp_dome":
|
||||||
|
if (level.teambased)
|
||||||
|
return 8;
|
||||||
|
else
|
||||||
|
return 5;
|
||||||
default:
|
default:
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
851
maps/mp/bots/_hud_util.gsc
Normal file
851
maps/mp/bots/_hud_util.gsc
Normal file
@ -0,0 +1,851 @@
|
|||||||
|
|
||||||
|
// IW5 PC GSC
|
||||||
|
// Decompiled by https://github.com/xensik/gsc-tool
|
||||||
|
|
||||||
|
setParent( var_0 )
|
||||||
|
{
|
||||||
|
if ( isdefined( self.parent ) && self.parent == var_0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ( isdefined( self.parent ) )
|
||||||
|
self.parent removeChild( self );
|
||||||
|
|
||||||
|
self.parent = var_0;
|
||||||
|
self.parent addChild( self );
|
||||||
|
|
||||||
|
if ( isdefined( self.point ) )
|
||||||
|
setPoint( self.point, self.relativePoint, self.xOffset, self.yOffset );
|
||||||
|
else
|
||||||
|
setPoint( "TOPLEFT" );
|
||||||
|
}
|
||||||
|
|
||||||
|
getParent()
|
||||||
|
{
|
||||||
|
return self.parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
addChild( var_0 )
|
||||||
|
{
|
||||||
|
var_0.index = self.children.size;
|
||||||
|
self.children[self.children.size] = var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
removeChild( var_0 )
|
||||||
|
{
|
||||||
|
var_0.parent = undefined;
|
||||||
|
|
||||||
|
if ( self.children[self.children.size - 1] != var_0 )
|
||||||
|
{
|
||||||
|
self.children[var_0.index] = self.children[self.children.size - 1];
|
||||||
|
self.children[var_0.index].index = var_0.index;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.children[self.children.size - 1] = undefined;
|
||||||
|
var_0.index = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
setPoint( var_0, var_1, var_2, var_3, var_4 )
|
||||||
|
{
|
||||||
|
if ( !isdefined( var_4 ) )
|
||||||
|
var_4 = 0;
|
||||||
|
|
||||||
|
var_5 = getParent();
|
||||||
|
|
||||||
|
if ( var_4 )
|
||||||
|
self moveovertime( var_4 );
|
||||||
|
|
||||||
|
if ( !isdefined( var_2 ) )
|
||||||
|
var_2 = 0;
|
||||||
|
|
||||||
|
self.xOffset = var_2;
|
||||||
|
|
||||||
|
if ( !isdefined( var_3 ) )
|
||||||
|
var_3 = 0;
|
||||||
|
|
||||||
|
self.yOffset = var_3;
|
||||||
|
self.point = var_0;
|
||||||
|
self.alignx = "center";
|
||||||
|
self.aligny = "middle";
|
||||||
|
|
||||||
|
if ( issubstr( var_0, "TOP" ) )
|
||||||
|
self.aligny = "top";
|
||||||
|
|
||||||
|
if ( issubstr( var_0, "BOTTOM" ) )
|
||||||
|
self.aligny = "bottom";
|
||||||
|
|
||||||
|
if ( issubstr( var_0, "LEFT" ) )
|
||||||
|
self.alignx = "left";
|
||||||
|
|
||||||
|
if ( issubstr( var_0, "RIGHT" ) )
|
||||||
|
self.alignx = "right";
|
||||||
|
|
||||||
|
if ( !isdefined( var_1 ) )
|
||||||
|
var_1 = var_0;
|
||||||
|
|
||||||
|
self.relativePoint = var_1;
|
||||||
|
var_6 = "center_adjustable";
|
||||||
|
var_7 = "middle";
|
||||||
|
|
||||||
|
if ( issubstr( var_1, "TOP" ) )
|
||||||
|
var_7 = "top_adjustable";
|
||||||
|
|
||||||
|
if ( issubstr( var_1, "BOTTOM" ) )
|
||||||
|
var_7 = "bottom_adjustable";
|
||||||
|
|
||||||
|
if ( issubstr( var_1, "LEFT" ) )
|
||||||
|
var_6 = "left_adjustable";
|
||||||
|
|
||||||
|
if ( issubstr( var_1, "RIGHT" ) )
|
||||||
|
var_6 = "right_adjustable";
|
||||||
|
|
||||||
|
if ( var_5 == level.uiParent )
|
||||||
|
{
|
||||||
|
self.horzalign = var_6;
|
||||||
|
self.vertalign = var_7;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self.horzalign = var_5.horzalign;
|
||||||
|
self.vertalign = var_5.vertalign;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( maps\mp\_utility::strip_suffix( var_6, "_adjustable" ) == var_5.alignx )
|
||||||
|
{
|
||||||
|
var_8 = 0;
|
||||||
|
var_9 = 0;
|
||||||
|
}
|
||||||
|
else if ( var_6 == "center" || var_5.alignx == "center" )
|
||||||
|
{
|
||||||
|
var_8 = int( var_5.width / 2 );
|
||||||
|
|
||||||
|
if ( var_6 == "left_adjustable" || var_5.alignx == "right" )
|
||||||
|
var_9 = -1;
|
||||||
|
else
|
||||||
|
var_9 = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var_8 = var_5.width;
|
||||||
|
|
||||||
|
if ( var_6 == "left_adjustable" )
|
||||||
|
var_9 = -1;
|
||||||
|
else
|
||||||
|
var_9 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.x = var_5.x + var_8 * var_9;
|
||||||
|
|
||||||
|
if ( maps\mp\_utility::strip_suffix( var_7, "_adjustable" ) == var_5.aligny )
|
||||||
|
{
|
||||||
|
var_10 = 0;
|
||||||
|
var_11 = 0;
|
||||||
|
}
|
||||||
|
else if ( var_7 == "middle" || var_5.aligny == "middle" )
|
||||||
|
{
|
||||||
|
var_10 = int( var_5.height / 2 );
|
||||||
|
|
||||||
|
if ( var_7 == "top_adjustable" || var_5.aligny == "bottom" )
|
||||||
|
var_11 = -1;
|
||||||
|
else
|
||||||
|
var_11 = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var_10 = var_5.height;
|
||||||
|
|
||||||
|
if ( var_7 == "top_adjustable" )
|
||||||
|
var_11 = -1;
|
||||||
|
else
|
||||||
|
var_11 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.y = var_5.y + var_10 * var_11;
|
||||||
|
self.x = self.x + self.xOffset;
|
||||||
|
self.y = self.y + self.yOffset;
|
||||||
|
|
||||||
|
switch ( self.elemType )
|
||||||
|
{
|
||||||
|
case "bar":
|
||||||
|
setPointBar( var_0, var_1, var_2, var_3 );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateChildren();
|
||||||
|
}
|
||||||
|
|
||||||
|
setPointBar( var_0, var_1, var_2, var_3 )
|
||||||
|
{
|
||||||
|
self.bar.horzalign = self.horzalign;
|
||||||
|
self.bar.vertalign = self.vertalign;
|
||||||
|
self.bar.alignx = "left";
|
||||||
|
self.bar.aligny = self.aligny;
|
||||||
|
self.bar.y = self.y;
|
||||||
|
|
||||||
|
if ( self.alignx == "left" )
|
||||||
|
self.bar.x = self.x;
|
||||||
|
else if ( self.alignx == "right" )
|
||||||
|
self.bar.x = self.x - self.width;
|
||||||
|
else
|
||||||
|
self.bar.x = self.x - int( self.width / 2 );
|
||||||
|
|
||||||
|
if ( self.aligny == "top" )
|
||||||
|
self.bar.y = self.y;
|
||||||
|
else if ( self.aligny == "bottom" )
|
||||||
|
self.bar.y = self.y;
|
||||||
|
|
||||||
|
updateBar( self.bar.frac );
|
||||||
|
}
|
||||||
|
|
||||||
|
updateBar( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( self.elemType == "bar" )
|
||||||
|
updateBarScale( var_0, var_1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
updateBarScale( var_0, var_1 )
|
||||||
|
{
|
||||||
|
var_2 = int( self.width * var_0 + 0.5 );
|
||||||
|
|
||||||
|
if ( !var_2 )
|
||||||
|
var_2 = 1;
|
||||||
|
|
||||||
|
self.bar.frac = var_0;
|
||||||
|
self.bar setshader( self.bar.shader, var_2, self.height );
|
||||||
|
|
||||||
|
if ( isdefined( var_1 ) && var_2 < self.width )
|
||||||
|
{
|
||||||
|
if ( var_1 > 0 )
|
||||||
|
self.bar scaleovertime( 1 - var_0 / var_1, self.width, self.height );
|
||||||
|
else if ( var_1 < 0 )
|
||||||
|
self.bar scaleovertime( var_0 / -1 * var_1, 1, self.height );
|
||||||
|
}
|
||||||
|
|
||||||
|
self.bar.rateOfChange = var_1;
|
||||||
|
self.bar.lastUpdateTime = gettime();
|
||||||
|
}
|
||||||
|
|
||||||
|
createFontString( var_0, var_1 )
|
||||||
|
{
|
||||||
|
var_2 = newclienthudelem( self );
|
||||||
|
var_2.elemType = "font";
|
||||||
|
var_2.font = var_0;
|
||||||
|
var_2.fontScale = var_1;
|
||||||
|
var_2.baseFontScale = var_1;
|
||||||
|
var_2.x = 0;
|
||||||
|
var_2.y = 0;
|
||||||
|
var_2.width = 0;
|
||||||
|
var_2.height = int( level.fontHeight * var_1 );
|
||||||
|
var_2.xOffset = 0;
|
||||||
|
var_2.yOffset = 0;
|
||||||
|
var_2.children = [];
|
||||||
|
var_2 setParent( level.uiParent );
|
||||||
|
var_2.hidden = 0;
|
||||||
|
return var_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
createServerFontString( var_0, var_1, var_2 )
|
||||||
|
{
|
||||||
|
if ( isdefined( var_2 ) )
|
||||||
|
var_3 = newteamhudelem( var_2 );
|
||||||
|
else
|
||||||
|
var_3 = newhudelem();
|
||||||
|
|
||||||
|
var_3.elemType = "font";
|
||||||
|
var_3.font = var_0;
|
||||||
|
var_3.fontScale = var_1;
|
||||||
|
var_3.baseFontScale = var_1;
|
||||||
|
var_3.x = 0;
|
||||||
|
var_3.y = 0;
|
||||||
|
var_3.width = 0;
|
||||||
|
var_3.height = int( level.fontHeight * var_1 );
|
||||||
|
var_3.xOffset = 0;
|
||||||
|
var_3.yOffset = 0;
|
||||||
|
var_3.children = [];
|
||||||
|
var_3 setParent( level.uiParent );
|
||||||
|
var_3.hidden = 0;
|
||||||
|
return var_3;
|
||||||
|
}
|
||||||
|
|
||||||
|
createServerTimer( var_0, var_1, var_2 )
|
||||||
|
{
|
||||||
|
if ( isdefined( var_2 ) )
|
||||||
|
var_3 = newteamhudelem( var_2 );
|
||||||
|
else
|
||||||
|
var_3 = newhudelem();
|
||||||
|
|
||||||
|
var_3.elemType = "timer";
|
||||||
|
var_3.font = var_0;
|
||||||
|
var_3.fontScale = var_1;
|
||||||
|
var_3.baseFontScale = var_1;
|
||||||
|
var_3.x = 0;
|
||||||
|
var_3.y = 0;
|
||||||
|
var_3.width = 0;
|
||||||
|
var_3.height = int( level.fontHeight * var_1 );
|
||||||
|
var_3.xOffset = 0;
|
||||||
|
var_3.yOffset = 0;
|
||||||
|
var_3.children = [];
|
||||||
|
var_3 setParent( level.uiParent );
|
||||||
|
var_3.hidden = 0;
|
||||||
|
return var_3;
|
||||||
|
}
|
||||||
|
|
||||||
|
createTimer( var_0, var_1 )
|
||||||
|
{
|
||||||
|
var_2 = newclienthudelem( self );
|
||||||
|
var_2.elemType = "timer";
|
||||||
|
var_2.font = var_0;
|
||||||
|
var_2.fontScale = var_1;
|
||||||
|
var_2.baseFontScale = var_1;
|
||||||
|
var_2.x = 0;
|
||||||
|
var_2.y = 0;
|
||||||
|
var_2.width = 0;
|
||||||
|
var_2.height = int( level.fontHeight * var_1 );
|
||||||
|
var_2.xOffset = 0;
|
||||||
|
var_2.yOffset = 0;
|
||||||
|
var_2.children = [];
|
||||||
|
var_2 setParent( level.uiParent );
|
||||||
|
var_2.hidden = 0;
|
||||||
|
return var_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
createIcon( var_0, var_1, var_2 )
|
||||||
|
{
|
||||||
|
var_3 = newclienthudelem( self );
|
||||||
|
var_3.elemType = "icon";
|
||||||
|
var_3.x = 0;
|
||||||
|
var_3.y = 0;
|
||||||
|
var_3.width = var_1;
|
||||||
|
var_3.height = var_2;
|
||||||
|
var_3.baseWidth = var_3.width;
|
||||||
|
var_3.baseHeight = var_3.height;
|
||||||
|
var_3.xOffset = 0;
|
||||||
|
var_3.yOffset = 0;
|
||||||
|
var_3.children = [];
|
||||||
|
var_3 setParent( level.uiParent );
|
||||||
|
var_3.hidden = 0;
|
||||||
|
|
||||||
|
if ( isdefined( var_0 ) )
|
||||||
|
{
|
||||||
|
var_3 setshader( var_0, var_1, var_2 );
|
||||||
|
var_3.shader = var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return var_3;
|
||||||
|
}
|
||||||
|
|
||||||
|
createServerIcon( var_0, var_1, var_2, var_3 )
|
||||||
|
{
|
||||||
|
if ( isdefined( var_3 ) )
|
||||||
|
var_4 = newteamhudelem( var_3 );
|
||||||
|
else
|
||||||
|
var_4 = newhudelem();
|
||||||
|
|
||||||
|
var_4.elemType = "icon";
|
||||||
|
var_4.x = 0;
|
||||||
|
var_4.y = 0;
|
||||||
|
var_4.width = var_1;
|
||||||
|
var_4.height = var_2;
|
||||||
|
var_4.baseWidth = var_4.width;
|
||||||
|
var_4.baseHeight = var_4.height;
|
||||||
|
var_4.xOffset = 0;
|
||||||
|
var_4.yOffset = 0;
|
||||||
|
var_4.children = [];
|
||||||
|
var_4 setParent( level.uiParent );
|
||||||
|
var_4.hidden = 0;
|
||||||
|
|
||||||
|
if ( isdefined( var_0 ) )
|
||||||
|
{
|
||||||
|
var_4 setshader( var_0, var_1, var_2 );
|
||||||
|
var_4.shader = var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return var_4;
|
||||||
|
}
|
||||||
|
|
||||||
|
createServerBar( var_0, var_1, var_2, var_3, var_4, var_5 )
|
||||||
|
{
|
||||||
|
if ( isdefined( var_4 ) )
|
||||||
|
var_6 = newteamhudelem( var_4 );
|
||||||
|
else
|
||||||
|
var_6 = newhudelem();
|
||||||
|
|
||||||
|
var_6.x = 0;
|
||||||
|
var_6.y = 0;
|
||||||
|
var_6.frac = 0;
|
||||||
|
var_6.color = var_0;
|
||||||
|
var_6.sort = -2;
|
||||||
|
var_6.shader = "progress_bar_fill";
|
||||||
|
var_6 setshader( "progress_bar_fill", var_1, var_2 );
|
||||||
|
var_6.hidden = 0;
|
||||||
|
|
||||||
|
if ( isdefined( var_3 ) )
|
||||||
|
var_6.flashFrac = var_3;
|
||||||
|
|
||||||
|
if ( isdefined( var_4 ) )
|
||||||
|
var_7 = newteamhudelem( var_4 );
|
||||||
|
else
|
||||||
|
var_7 = newhudelem();
|
||||||
|
|
||||||
|
var_7.elemType = "bar";
|
||||||
|
var_7.x = 0;
|
||||||
|
var_7.y = 0;
|
||||||
|
var_7.width = var_1;
|
||||||
|
var_7.height = var_2;
|
||||||
|
var_7.xOffset = 0;
|
||||||
|
var_7.yOffset = 0;
|
||||||
|
var_7.bar = var_6;
|
||||||
|
var_7.children = [];
|
||||||
|
var_7.sort = -3;
|
||||||
|
var_7.color = ( 0, 0, 0 );
|
||||||
|
var_7.alpha = 0.5;
|
||||||
|
var_7 setParent( level.uiParent );
|
||||||
|
var_7 setshader( "progress_bar_bg", var_1, var_2 );
|
||||||
|
var_7.hidden = 0;
|
||||||
|
return var_7;
|
||||||
|
}
|
||||||
|
|
||||||
|
createBar( var_0, var_1, var_2, var_3 )
|
||||||
|
{
|
||||||
|
var_4 = newclienthudelem( self );
|
||||||
|
var_4.x = 0;
|
||||||
|
var_4.y = 0;
|
||||||
|
var_4.frac = 0;
|
||||||
|
var_4.color = var_0;
|
||||||
|
var_4.sort = -2;
|
||||||
|
var_4.shader = "progress_bar_fill";
|
||||||
|
var_4 setshader( "progress_bar_fill", var_1, var_2 );
|
||||||
|
var_4.hidden = 0;
|
||||||
|
|
||||||
|
if ( isdefined( var_3 ) )
|
||||||
|
var_4.flashFrac = var_3;
|
||||||
|
|
||||||
|
var_5 = newclienthudelem( self );
|
||||||
|
var_5.elemType = "bar";
|
||||||
|
var_5.width = var_1;
|
||||||
|
var_5.height = var_2;
|
||||||
|
var_5.xOffset = 0;
|
||||||
|
var_5.yOffset = 0;
|
||||||
|
var_5.bar = var_4;
|
||||||
|
var_5.children = [];
|
||||||
|
var_5.sort = -3;
|
||||||
|
var_5.color = ( 0, 0, 0 );
|
||||||
|
var_5.alpha = 0.5;
|
||||||
|
var_5 setParent( level.uiParent );
|
||||||
|
var_5 setshader( "progress_bar_bg", var_1 + 4, var_2 + 4 );
|
||||||
|
var_5.hidden = 0;
|
||||||
|
return var_5;
|
||||||
|
}
|
||||||
|
|
||||||
|
getCurrentFraction()
|
||||||
|
{
|
||||||
|
var_0 = self.bar.frac;
|
||||||
|
|
||||||
|
if ( isdefined( self.bar.rateOfChange ) )
|
||||||
|
{
|
||||||
|
var_0 = var_0 + gettime() - self.bar.lastUpdateTime * self.bar.rateOfChange;
|
||||||
|
|
||||||
|
if ( var_0 > 1 )
|
||||||
|
var_0 = 1;
|
||||||
|
|
||||||
|
if ( var_0 < 0 )
|
||||||
|
var_0 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
createPrimaryProgressBar( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( !isdefined( var_0 ) )
|
||||||
|
var_0 = 0;
|
||||||
|
|
||||||
|
if ( !isdefined( var_1 ) )
|
||||||
|
var_1 = 0;
|
||||||
|
|
||||||
|
if ( self issplitscreenplayer() )
|
||||||
|
var_1 = var_1 + 20;
|
||||||
|
|
||||||
|
var_2 = createBar( ( 1, 1, 1 ), level.primaryProgressBarWidth, level.primaryProgressBarHeight );
|
||||||
|
var_2 setPoint( "CENTER", undefined, level.primaryProgressBarX + var_0, level.primaryProgressBarY + var_1 );
|
||||||
|
return var_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
createPrimaryProgressBarText( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( !isdefined( var_0 ) )
|
||||||
|
var_0 = 0;
|
||||||
|
|
||||||
|
if ( !isdefined( var_1 ) )
|
||||||
|
var_1 = 0;
|
||||||
|
|
||||||
|
if ( self issplitscreenplayer() )
|
||||||
|
var_1 = var_1 + 20;
|
||||||
|
|
||||||
|
var_2 = createFontString( "hudbig", level.primaryProgressBarFontSize );
|
||||||
|
var_2 setPoint( "CENTER", undefined, level.primaryProgressBarTextX + var_0, level.primaryProgressBarTextY + var_1 );
|
||||||
|
var_2.sort = -1;
|
||||||
|
return var_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
createTeamProgressBar( var_0 )
|
||||||
|
{
|
||||||
|
var_1 = createServerBar( ( 1, 0, 0 ), level.teamProgressBarWidth, level.teamProgressBarHeight, undefined, var_0 );
|
||||||
|
var_1 setPoint( "TOP", undefined, 0, level.teamProgressBarY );
|
||||||
|
return var_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
createTeamProgressBarText( var_0 )
|
||||||
|
{
|
||||||
|
var_1 = createServerFontString( "default", level.teamProgressBarFontSize, var_0 );
|
||||||
|
var_1 setPoint( "TOP", undefined, 0, level.teamProgressBarTextY );
|
||||||
|
return var_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
setFlashFrac( var_0 )
|
||||||
|
{
|
||||||
|
self.bar.flashFrac = var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
hideElem()
|
||||||
|
{
|
||||||
|
if ( self.hidden )
|
||||||
|
return;
|
||||||
|
|
||||||
|
self.hidden = 1;
|
||||||
|
|
||||||
|
if ( self.alpha != 0 )
|
||||||
|
self.alpha = 0;
|
||||||
|
|
||||||
|
if ( self.elemType == "bar" || self.elemType == "bar_shader" )
|
||||||
|
{
|
||||||
|
self.bar.hidden = 1;
|
||||||
|
|
||||||
|
if ( self.bar.alpha != 0 )
|
||||||
|
self.bar.alpha = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
showElem()
|
||||||
|
{
|
||||||
|
if ( !self.hidden )
|
||||||
|
return;
|
||||||
|
|
||||||
|
self.hidden = 0;
|
||||||
|
|
||||||
|
if ( self.elemType == "bar" || self.elemType == "bar_shader" )
|
||||||
|
{
|
||||||
|
if ( self.alpha != 0.5 )
|
||||||
|
self.alpha = 0.5;
|
||||||
|
|
||||||
|
self.bar.hidden = 0;
|
||||||
|
|
||||||
|
if ( self.bar.alpha != 1 )
|
||||||
|
self.bar.alpha = 1;
|
||||||
|
}
|
||||||
|
else if ( self.alpha != 1 )
|
||||||
|
self.alpha = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
flashThread()
|
||||||
|
{
|
||||||
|
self endon( "death" );
|
||||||
|
|
||||||
|
if ( !self.hidden )
|
||||||
|
self.alpha = 1;
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
if ( self.frac >= self.flashFrac )
|
||||||
|
{
|
||||||
|
if ( !self.hidden )
|
||||||
|
{
|
||||||
|
self fadeovertime( 0.3 );
|
||||||
|
self.alpha = 0.2;
|
||||||
|
wait 0.35;
|
||||||
|
self fadeovertime( 0.3 );
|
||||||
|
self.alpha = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
wait 0.7;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !self.hidden && self.alpha != 1 )
|
||||||
|
self.alpha = 1;
|
||||||
|
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyElem()
|
||||||
|
{
|
||||||
|
var_0 = [];
|
||||||
|
|
||||||
|
for ( var_1 = 0; var_1 < self.children.size; var_1++ )
|
||||||
|
{
|
||||||
|
if ( isdefined( self.children[var_1] ) )
|
||||||
|
var_0[var_0.size] = self.children[var_1];
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( var_1 = 0; var_1 < var_0.size; var_1++ )
|
||||||
|
var_0[var_1] setParent( getParent() );
|
||||||
|
|
||||||
|
if ( self.elemType == "bar" || self.elemType == "bar_shader" )
|
||||||
|
self.bar destroy();
|
||||||
|
|
||||||
|
self destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
setIconShader( var_0 )
|
||||||
|
{
|
||||||
|
self setshader( var_0, self.width, self.height );
|
||||||
|
self.shader = var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
getIconShader( var_0 )
|
||||||
|
{
|
||||||
|
return self.shader;
|
||||||
|
}
|
||||||
|
|
||||||
|
setIconSize( var_0, var_1 )
|
||||||
|
{
|
||||||
|
self setshader( self.shader, var_0, var_1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
setWidth( var_0 )
|
||||||
|
{
|
||||||
|
self.width = var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
setHeight( var_0 )
|
||||||
|
{
|
||||||
|
self.height = var_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
setSize( var_0, var_1 )
|
||||||
|
{
|
||||||
|
self.width = var_0;
|
||||||
|
self.height = var_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateChildren()
|
||||||
|
{
|
||||||
|
for ( var_0 = 0; var_0 < self.children.size; var_0++ )
|
||||||
|
{
|
||||||
|
var_1 = self.children[var_0];
|
||||||
|
var_1 setPoint( var_1.point, var_1.relativePoint, var_1.xOffset, var_1.yOffset );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionReset()
|
||||||
|
{
|
||||||
|
self.x = self.xOffset;
|
||||||
|
self.y = self.yOffset;
|
||||||
|
|
||||||
|
if ( self.elemType == "font" )
|
||||||
|
{
|
||||||
|
self.fontScale = self.baseFontScale;
|
||||||
|
self.label = &"";
|
||||||
|
}
|
||||||
|
else if ( self.elemType == "icon" )
|
||||||
|
self setshader( self.shader, self.width, self.height );
|
||||||
|
|
||||||
|
self.alpha = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionZoomIn( var_0 )
|
||||||
|
{
|
||||||
|
switch ( self.elemType )
|
||||||
|
{
|
||||||
|
case "font":
|
||||||
|
case "timer":
|
||||||
|
self.fontScale = 6.3;
|
||||||
|
self changefontscaleovertime( var_0 );
|
||||||
|
self.fontScale = self.baseFontScale;
|
||||||
|
break;
|
||||||
|
case "icon":
|
||||||
|
self setshader( self.shader, self.width * 6, self.height * 6 );
|
||||||
|
self scaleovertime( var_0, self.width, self.height );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionPulseFXIn( var_0, var_1 )
|
||||||
|
{
|
||||||
|
var_2 = int( var_0 ) * 1000;
|
||||||
|
var_3 = int( var_1 ) * 1000;
|
||||||
|
|
||||||
|
switch ( self.elemType )
|
||||||
|
{
|
||||||
|
case "font":
|
||||||
|
case "timer":
|
||||||
|
self setpulsefx( var_2 + 250, var_3 + var_2, var_2 + 250 );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionSlideIn( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( !isdefined( var_1 ) )
|
||||||
|
var_1 = "left";
|
||||||
|
|
||||||
|
switch ( var_1 )
|
||||||
|
{
|
||||||
|
case "left":
|
||||||
|
self.x = self.x + 1000;
|
||||||
|
break;
|
||||||
|
case "right":
|
||||||
|
self.x = self.x - 1000;
|
||||||
|
break;
|
||||||
|
case "up":
|
||||||
|
self.y = self.y - 1000;
|
||||||
|
break;
|
||||||
|
case "down":
|
||||||
|
self.y = self.y + 1000;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
self moveovertime( var_0 );
|
||||||
|
self.x = self.xOffset;
|
||||||
|
self.y = self.yOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionSlideOut( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( !isdefined( var_1 ) )
|
||||||
|
var_1 = "left";
|
||||||
|
|
||||||
|
var_2 = self.xOffset;
|
||||||
|
var_3 = self.yOffset;
|
||||||
|
|
||||||
|
switch ( var_1 )
|
||||||
|
{
|
||||||
|
case "left":
|
||||||
|
var_2 = var_2 + 1000;
|
||||||
|
break;
|
||||||
|
case "right":
|
||||||
|
var_2 = var_2 - 1000;
|
||||||
|
break;
|
||||||
|
case "up":
|
||||||
|
var_3 = var_3 - 1000;
|
||||||
|
break;
|
||||||
|
case "down":
|
||||||
|
var_3 = var_3 + 1000;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.alpha = 1;
|
||||||
|
self moveovertime( var_0 );
|
||||||
|
self.x = var_2;
|
||||||
|
self.y = var_3;
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionZoomOut( var_0 )
|
||||||
|
{
|
||||||
|
switch ( self.elemType )
|
||||||
|
{
|
||||||
|
case "font":
|
||||||
|
case "timer":
|
||||||
|
self changefontscaleovertime( var_0 );
|
||||||
|
self.fontScale = 6.3;
|
||||||
|
case "icon":
|
||||||
|
self scaleovertime( var_0, self.width * 6, self.height * 6 );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionFadeIn( var_0 )
|
||||||
|
{
|
||||||
|
self fadeovertime( var_0 );
|
||||||
|
|
||||||
|
if ( isdefined( self.maxAlpha ) )
|
||||||
|
self.alpha = self.maxAlpha;
|
||||||
|
else
|
||||||
|
self.alpha = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
transitionFadeOut( var_0 )
|
||||||
|
{
|
||||||
|
self fadeovertime( 0.15 );
|
||||||
|
self.alpha = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
getWeeklyRef( var_0 )
|
||||||
|
{
|
||||||
|
for ( var_1 = 0; var_1 < 3; var_1++ )
|
||||||
|
{
|
||||||
|
var_2 = self getplayerdata( "weeklyChallengeId", var_1 );
|
||||||
|
var_3 = tablelookupbyrow( "mp/weeklyChallengesTable.csv", var_2, 0 );
|
||||||
|
|
||||||
|
if ( var_3 == var_0 )
|
||||||
|
return "ch_weekly_" + var_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
getDailyRef( var_0 )
|
||||||
|
{
|
||||||
|
for ( var_1 = 0; var_1 < 3; var_1++ )
|
||||||
|
{
|
||||||
|
var_2 = self getplayerdata( "dailyChallengeId", var_1 );
|
||||||
|
var_3 = tablelookupbyrow( "mp/dailyChallengesTable.csv", var_2, 0 );
|
||||||
|
|
||||||
|
if ( var_3 == var_0 )
|
||||||
|
return "ch_daily_" + var_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
ch_getProgress( var_0 )
|
||||||
|
{
|
||||||
|
if ( level.challengeInfo[var_0]["type"] == 0 )
|
||||||
|
return self getplayerdata( "challengeProgress", var_0 );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 1 )
|
||||||
|
return self getplayerdata( "challengeProgress", getDailyRef( var_0 ) );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 2 )
|
||||||
|
return self getplayerdata( "challengeProgress", getWeeklyRef( var_0 ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
ch_getState( var_0 )
|
||||||
|
{
|
||||||
|
if ( level.challengeInfo[var_0]["type"] == 0 )
|
||||||
|
return self getplayerdata( "challengeState", var_0 );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 1 )
|
||||||
|
return self getplayerdata( "challengeState", getDailyRef( var_0 ) );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 2 )
|
||||||
|
return self getplayerdata( "challengeState", getWeeklyRef( var_0 ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
ch_setProgress( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( level.challengeInfo[var_0]["type"] == 0 )
|
||||||
|
return self setplayerdata( "challengeProgress", var_0, var_1 );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 1 )
|
||||||
|
return self setplayerdata( "challengeProgress", getDailyRef( var_0 ), var_1 );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 2 )
|
||||||
|
return self setplayerdata( "challengeProgress", getWeeklyRef( var_0 ), var_1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
ch_setState( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( level.challengeInfo[var_0]["type"] == 0 )
|
||||||
|
return self setplayerdata( "challengeState", var_0, var_1 );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 1 )
|
||||||
|
return self setplayerdata( "challengeState", getDailyRef( var_0 ), var_1 );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 2 )
|
||||||
|
return self setplayerdata( "challengeState", getWeeklyRef( var_0 ), var_1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
ch_getTarget( var_0, var_1 )
|
||||||
|
{
|
||||||
|
if ( level.challengeInfo[var_0]["type"] == 0 )
|
||||||
|
return int( tablelookup( "mp/allChallengesTable.csv", 0, var_0, 6 + var_1 - 1 * 2 ) );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 1 )
|
||||||
|
return int( tablelookup( "mp/dailyChallengesTable.csv", 0, var_0, 6 + var_1 - 1 * 2 ) );
|
||||||
|
else if ( level.challengeInfo[var_0]["type"] == 2 )
|
||||||
|
return int( tablelookup( "mp/weeklyChallengesTable.csv", 0, var_0, 6 + var_1 - 1 * 2 ) );
|
||||||
|
}
|
919
maps/mp/bots/_wp_editor.gsc
Normal file
919
maps/mp/bots/_wp_editor.gsc
Normal file
@ -0,0 +1,919 @@
|
|||||||
|
/*
|
||||||
|
_wp_editor
|
||||||
|
Author: INeedGames
|
||||||
|
Date: 05/08/2021
|
||||||
|
The ingame waypoint editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include common_scripts\utility;
|
||||||
|
#include maps\mp\_utility;
|
||||||
|
#include maps\mp\bots\_hud_util; // COMPILER needs the original in its list of includes!
|
||||||
|
#include maps\mp\bots\_bot_utility;
|
||||||
|
|
||||||
|
init()
|
||||||
|
{
|
||||||
|
if(getDvar("bots_main_debug") == "")
|
||||||
|
setDvar("bots_main_debug", 0);
|
||||||
|
|
||||||
|
if(!getDVarint("bots_main_debug"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*if(!getDVarint("developer"))
|
||||||
|
{
|
||||||
|
setdvar("developer_script", 1);
|
||||||
|
setdvar("developer", 1);
|
||||||
|
|
||||||
|
setdvar("sv_mapRotation", "map "+getDvar("mapname"));
|
||||||
|
exitLevel(false);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
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_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_updateRate") == "")
|
||||||
|
setDvar("bots_main_debug_updateRate", 500);
|
||||||
|
|
||||||
|
if (getDvar("bots_main_debug_dashAmount") == "")
|
||||||
|
setDvar("bots_main_debug_dashAmount", 35.0);
|
||||||
|
|
||||||
|
setDvar("player_sustainAmmo", 1);
|
||||||
|
|
||||||
|
level.waypoints = [];
|
||||||
|
level.waypointCount = 0;
|
||||||
|
|
||||||
|
level waittill( "connected", player);
|
||||||
|
player thread onPlayerSpawned();
|
||||||
|
}
|
||||||
|
|
||||||
|
onPlayerSpawned()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
for(;;)
|
||||||
|
{
|
||||||
|
self waittill("spawned_player");
|
||||||
|
self thread startDev();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StartDev()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
level.wpToLink = -1;
|
||||||
|
level.autoLink = false;
|
||||||
|
self.nearest = -1;
|
||||||
|
|
||||||
|
self takeAllWeapons();
|
||||||
|
self giveWeapon("iw5_m16_mp_gl");//to knife windows
|
||||||
|
self giveWeapon("javelin_mp");//to mark jav spots
|
||||||
|
self SetOffhandPrimaryClass( "other" );
|
||||||
|
self giveWeapon("semtex_mp");
|
||||||
|
self _clearperks();
|
||||||
|
self.specialty = [];
|
||||||
|
/*self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||||
|
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
|
||||||
|
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||||
|
self maps\mp\perks\_perks::givePerk("specialty_lightweight");*/
|
||||||
|
self freezecontrols(false);
|
||||||
|
|
||||||
|
self thread watchAddWaypointCommand();
|
||||||
|
self thread watchDeleteAllWaypointsCommand();
|
||||||
|
self thread watchDeleteWaypointCommand();
|
||||||
|
self thread watchLinkWaypointCommand();
|
||||||
|
self thread watchLoadWaypointsCommand();
|
||||||
|
self thread watchSaveWaypointsCommand();
|
||||||
|
self thread watchUnlinkWaypointCommand();
|
||||||
|
self thread watchAutoLinkCommand();
|
||||||
|
self thread updateWaypointsStats();
|
||||||
|
self thread watchAstarCommand();
|
||||||
|
|
||||||
|
self thread sayExtras();
|
||||||
|
|
||||||
|
//self LoadWaypoints(); // actionslot 2 not working?
|
||||||
|
level.waypoints = maps\mp\bots\waypoints\dome::Dome();
|
||||||
|
level.waypointCount = level.waypoints.size;
|
||||||
|
}
|
||||||
|
|
||||||
|
sayExtras()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
self iprintln("Before adding waypoints, holding buttons:");
|
||||||
|
wait 4;
|
||||||
|
self iprintln("ADS - climb");
|
||||||
|
self iprintln("Use + Attack - tube");
|
||||||
|
self iprintln("Attack - grenade");
|
||||||
|
self iprintln("Use - claymore");
|
||||||
|
wait 4;
|
||||||
|
self iprintln("Else the waypoint will be your stance.");
|
||||||
|
self iprintln("Making a crouch waypoint with only one link...");
|
||||||
|
self iprintln("Makes a camping waypoint.");
|
||||||
|
}
|
||||||
|
|
||||||
|
watchAstarCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("astar", "+gostand");
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
self waittill("astar");
|
||||||
|
|
||||||
|
if (1)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
self iprintln("Start AStar");
|
||||||
|
self.astar = undefined;
|
||||||
|
astar = spawnStruct();
|
||||||
|
astar.start = self.origin;
|
||||||
|
|
||||||
|
self waittill("astar");
|
||||||
|
self iprintln("End AStar");
|
||||||
|
astar.goal = self.origin;
|
||||||
|
|
||||||
|
astar.nodes = AStarSearch(astar.start, astar.goal, undefined, true);
|
||||||
|
self iprintln("AStar size: " + astar.nodes.size);
|
||||||
|
|
||||||
|
self.astar = astar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
drawWaypoint(i)
|
||||||
|
{
|
||||||
|
if (!isDefined(level.drawn_wps))
|
||||||
|
level.drawn_wps = [];
|
||||||
|
|
||||||
|
newdeathicon = newHudElem();
|
||||||
|
newdeathicon.x = level.waypoints[i].origin[0];
|
||||||
|
newdeathicon.y = level.waypoints[i].origin[1];
|
||||||
|
newdeathicon.z = level.waypoints[i].origin[2] + 50;
|
||||||
|
newdeathicon.alpha = .61;
|
||||||
|
newdeathicon.archived = true;
|
||||||
|
newdeathicon setShader("headicon_dead", 5, 5);
|
||||||
|
newdeathicon setwaypoint( true, false );
|
||||||
|
|
||||||
|
level.drawn_wps[level.drawn_wps.size] = newdeathicon;
|
||||||
|
}
|
||||||
|
|
||||||
|
clearWaypoints()
|
||||||
|
{
|
||||||
|
if (!isDefined(level.drawn_wps))
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (i = 0; i < level.drawn_wps.size; i++)
|
||||||
|
{
|
||||||
|
level.drawn_wps[i] destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
level.drawn_wps = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
clearWpLinks()
|
||||||
|
{
|
||||||
|
if (!isDefined(level.drawn_links))
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (i = 0; i < level.waypointCount; i++)
|
||||||
|
{
|
||||||
|
level.waypoints[i].drawn_links = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < level.drawn_links.size; i++)
|
||||||
|
{
|
||||||
|
level.drawn_links[i] delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
level.drawn_links = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
showWpLink(i, h)
|
||||||
|
{
|
||||||
|
if (!isDefined(level.drawn_links))
|
||||||
|
level.drawn_links = [];
|
||||||
|
|
||||||
|
if (!isDefined(level.waypoints[i].drawn_links))
|
||||||
|
level.waypoints[i].drawn_links = [];
|
||||||
|
|
||||||
|
if (!isDefined(level.waypoints[h].drawn_links))
|
||||||
|
level.waypoints[h].drawn_links = [];
|
||||||
|
|
||||||
|
if (isDefined(level.waypoints[h].drawn_links["" + i]) || isDefined(level.waypoints[i].drawn_links["" + h]))
|
||||||
|
return;
|
||||||
|
|
||||||
|
level.waypoints[h].drawn_links["" + i] = true;
|
||||||
|
level.waypoints[i].drawn_links["" + h] = true;
|
||||||
|
|
||||||
|
start = level.waypoints[i].origin + (0, 0, 45);
|
||||||
|
end = level.waypoints[h].origin + (0, 0, 45);
|
||||||
|
diff = end-start;
|
||||||
|
dir = VectorToAngles(diff);
|
||||||
|
|
||||||
|
dist = distance(start, end);
|
||||||
|
dash_count = int(dist / getDvarFloat("bots_main_debug_dashAmount"));
|
||||||
|
|
||||||
|
for (j = 0; j < dash_count; j++)
|
||||||
|
{
|
||||||
|
dash = spawn( "script_model", start + ((diff * j)/dash_count));
|
||||||
|
dash setModel("weapon_parabolic_knife");
|
||||||
|
dash.angles = dir;
|
||||||
|
|
||||||
|
level.drawn_links[level.drawn_links.size] = dash;
|
||||||
|
}
|
||||||
|
|
||||||
|
dash = spawn( "script_model", end);
|
||||||
|
dash setModel("weapon_parabolic_knife");
|
||||||
|
//dash.angles = dir; // COMPILER
|
||||||
|
|
||||||
|
level.drawn_links[level.drawn_links.size] = dash;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateWaypointsStats()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self initHudElem("TotalWps:",102,5);
|
||||||
|
totalWpsHud = self initHudElem("",180,5);
|
||||||
|
self initHudElem("NearestWP:",102,15);
|
||||||
|
nearestWP = self initHudElem("",180,15);
|
||||||
|
self initHudElem("Childs:",102,25);
|
||||||
|
children = self initHudElem("",160,25);
|
||||||
|
self initHudElem("Type:",102,35);
|
||||||
|
type = self initHudElem("",160,35);
|
||||||
|
self initHudElem("ToLink:",102,45);
|
||||||
|
wpToLink = self initHudElem("",160,45);
|
||||||
|
|
||||||
|
infotext = self initHudElem2();
|
||||||
|
self initHudElem3();
|
||||||
|
self initHudElem4();
|
||||||
|
|
||||||
|
intTimer = 0;
|
||||||
|
for(time=0;;time+=0.05)
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
intTimer += 50;
|
||||||
|
|
||||||
|
totalWpsHud setText(level.waypointCount);
|
||||||
|
|
||||||
|
closest = -1;
|
||||||
|
myEye = self getEye();
|
||||||
|
myAngles = self GetPlayerAngles();
|
||||||
|
timeToUpdate = ((intTimer % getDvarInt("bots_main_debug_updateRate")) == 0);
|
||||||
|
|
||||||
|
if (timeToUpdate)
|
||||||
|
{
|
||||||
|
clearWaypoints();
|
||||||
|
clearWpLinks();
|
||||||
|
}
|
||||||
|
|
||||||
|
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 (timeToUpdate)
|
||||||
|
{
|
||||||
|
if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone"))
|
||||||
|
{
|
||||||
|
drawWaypoint(i);
|
||||||
|
|
||||||
|
for(h = 0; h < level.waypoints[i].childCount; h++)
|
||||||
|
showWpLink(i, level.waypoints[i].children[h]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*for(h = 0; h < level.waypoints[i].childCount; h++)
|
||||||
|
line(wpOrg, level.waypoints[level.waypoints[i].children[h]].origin + (0, 0, 25), (1,0,1));
|
||||||
|
|
||||||
|
if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone"))
|
||||||
|
print3d(wpOrg, i, (1,0,0), 2);
|
||||||
|
|
||||||
|
if (isDefined(level.waypoints[i].angles) && level.waypoints[i].type != "stand")
|
||||||
|
line(wpOrg, wpOrg + AnglesToForward(level.waypoints[i].angles) * 64, (1,1,1));
|
||||||
|
|
||||||
|
if (isDefined(level.waypoints[i].jav_point))
|
||||||
|
line(wpOrg, level.waypoints[i].jav_point, (0,0,0));*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.nearest = closest;
|
||||||
|
|
||||||
|
nearestWP setText(self.nearest);
|
||||||
|
|
||||||
|
children setText(buildChildCountString(self.nearest));
|
||||||
|
|
||||||
|
type setText(buildTypeString(self.nearest));
|
||||||
|
|
||||||
|
wpToLink setText(level.wpToLink);
|
||||||
|
|
||||||
|
infotext.x = infotext.x - 2;
|
||||||
|
if(infotext.x <= -800)
|
||||||
|
infotext.x = 800;
|
||||||
|
|
||||||
|
if (time > 2 && self UseButtonPressed())
|
||||||
|
{
|
||||||
|
time = 0;
|
||||||
|
self iPrintLnBold(self.nearest + " children: " + buildChildString(self.nearest));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isDefined(self.astar))
|
||||||
|
{
|
||||||
|
print3d(self.astar.start + (0, 0, 35), "start", (0,0,1), 2);
|
||||||
|
print3d(self.astar.goal + (0, 0, 35), "goal", (0,0,1), 2);
|
||||||
|
|
||||||
|
prev = self.astar.start + (0, 0, 35);
|
||||||
|
|
||||||
|
for (i = self.astar.nodes.size - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
node = self.astar.nodes[i];
|
||||||
|
|
||||||
|
line(prev, level.waypoints[node].origin + (0, 0, 35), (0,1,1));
|
||||||
|
|
||||||
|
prev = level.waypoints[node].origin + (0, 0, 35);
|
||||||
|
}
|
||||||
|
|
||||||
|
line(prev, self.astar.goal + (0, 0, 35), (0,1,1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchLoadWaypointsCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+actionslot 2}]", "+actionslot 2");
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
self waittill("[{+actionslot 2}]");
|
||||||
|
self LoadWaypoints();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchAddWaypointCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+smoke}]", "+smoke");
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
self waittill("[{+smoke}]");
|
||||||
|
self AddWaypoint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchAutoLinkCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+frag}]", "+frag");
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
self waittill("[{+frag}]");
|
||||||
|
if(level.autoLink)
|
||||||
|
{
|
||||||
|
self iPrintlnBold("Auto link disabled");
|
||||||
|
level.autoLink = false;
|
||||||
|
level.wpToLink = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self iPrintlnBold("Auto link enabled");
|
||||||
|
level.autoLink = true;
|
||||||
|
level.wpToLink = self.nearest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchLinkWaypointCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+melee_zoom}]", "+melee_zoom");
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
self waittill("[{+melee_zoom}]");
|
||||||
|
self LinkWaypoint(self.nearest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchUnlinkWaypointCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+reload}]", "+reload");
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
self waittill("[{+reload}]");
|
||||||
|
self UnLinkWaypoint(self.nearest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchDeleteWaypointCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+actionslot 3}]", "+actionslot 3");
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
self waittill("[{+actionslot 3}]");
|
||||||
|
self DeleteWaypoint(self.nearest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchDeleteAllWaypointsCommand()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
self endon("death");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+actionslot 4}]", "+actionslot 4");
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
self waittill("[{+actionslot 4}]");
|
||||||
|
self DeleteAllWaypoints();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchSaveWaypointsCommand()
|
||||||
|
{
|
||||||
|
self endon("death");
|
||||||
|
self endon("disconnect");
|
||||||
|
|
||||||
|
self notifyOnPlayerCommand("[{+actionslot 1}]", "+actionslot 1");
|
||||||
|
for(;;)
|
||||||
|
{
|
||||||
|
self waittill("[{+actionslot 1}]");
|
||||||
|
|
||||||
|
self checkForWarnings();
|
||||||
|
wait 1;
|
||||||
|
|
||||||
|
logprint("***********ABiliTy's WPDump**************\n\n");
|
||||||
|
logprint("\n\n\n\n");
|
||||||
|
mpnm=getMapName(getdvar("mapname"));
|
||||||
|
logprint("\n\n"+mpnm+"()\n{\n/*");
|
||||||
|
logprint("*/waypoints = [];\n/*");
|
||||||
|
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+"].childCount = "+level.waypoints[i].childCount+";\n/*");
|
||||||
|
for(c = 0; c < level.waypoints[i].childCount; c++)
|
||||||
|
{
|
||||||
|
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].childCount == 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].jav_point) && level.waypoints[i].type == "javelin")
|
||||||
|
logprint("*/waypoints["+i+"].jav_point = "+level.waypoints[i].jav_point+";\n/*");
|
||||||
|
}
|
||||||
|
logprint("*/return waypoints;\n}\n\n\n\n");
|
||||||
|
|
||||||
|
filename = "waypoints/" + getdvar("mapname") + "_wp.csv";
|
||||||
|
|
||||||
|
PrintLn("********* Start Bot Warfare WPDump *********");
|
||||||
|
PrintLn(level.waypointCount);
|
||||||
|
|
||||||
|
//fileWrite(filename, level.waypointCount+"\n", "write");
|
||||||
|
for(i = 0; i < level.waypointCount; i++)
|
||||||
|
{
|
||||||
|
str = "";
|
||||||
|
wp = level.waypoints[i];
|
||||||
|
|
||||||
|
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
|
||||||
|
|
||||||
|
for(h = 0; h < wp.childCount; h++)
|
||||||
|
{
|
||||||
|
str += wp.children[h];
|
||||||
|
|
||||||
|
if (h < wp.childCount - 1)
|
||||||
|
str += " ";
|
||||||
|
}
|
||||||
|
str += "," + wp.type + ",";
|
||||||
|
|
||||||
|
if (isDefined(wp.angles))
|
||||||
|
str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ",";
|
||||||
|
else
|
||||||
|
str += ",";
|
||||||
|
|
||||||
|
if (isDefined(wp.jav_point))
|
||||||
|
str += wp.jav_point[0] + " " + wp.jav_point[1] + " " + wp.jav_point[2] + ",";
|
||||||
|
else
|
||||||
|
str += ",";
|
||||||
|
|
||||||
|
PrintLn(str);
|
||||||
|
//fileWrite(filename, str+"\n", "append");
|
||||||
|
}
|
||||||
|
PrintLn("\n\n\n\n\n\n");
|
||||||
|
|
||||||
|
self iprintln("Saved!!! to " + filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadWaypoints()
|
||||||
|
{
|
||||||
|
self DeleteAllWaypoints();
|
||||||
|
self iPrintlnBold("Loading WPS...");
|
||||||
|
load_waypoints();
|
||||||
|
|
||||||
|
wait 1;
|
||||||
|
|
||||||
|
self checkForWarnings();
|
||||||
|
}
|
||||||
|
|
||||||
|
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(!isDefined(level.waypoints[i]))
|
||||||
|
{
|
||||||
|
self iprintln("WARNING: waypoint "+i+" is undefined");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(level.waypoints[i].childCount <= 0)
|
||||||
|
self iprintln("WARNING: waypoint "+i+" childCount is "+level.waypoints[i].childCount);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!isDefined(level.waypoints[i].children) || !isDefined(level.waypoints[i].children.size))
|
||||||
|
{
|
||||||
|
self iprintln("WARNING: waypoint "+i+" children is not defined");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(level.waypoints[i].childCount != level.waypoints[i].children.size)
|
||||||
|
self iprintln("WARNING: waypoint "+i+" childCount is not "+level.waypoints[i].children.size);
|
||||||
|
|
||||||
|
for (h = 0; h < level.waypoints[i].childCount; h++)
|
||||||
|
{
|
||||||
|
child = level.waypoints[i].children[h];
|
||||||
|
|
||||||
|
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))
|
||||||
|
{
|
||||||
|
self iprintln("WARNING: waypoint "+i+" type is undefined");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level.waypoints[i].type == "javelin" && !isDefined(level.waypoints[i].jav_point))
|
||||||
|
self iprintln("WARNING: waypoint "+i+" jav_point is undefined");
|
||||||
|
|
||||||
|
if(!isDefined(level.waypoints[i].angles) && (level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || (level.waypoints[i].type == "crouch" && level.waypoints[i].childCount == 1) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade"))
|
||||||
|
self iprintln("WARNING: waypoint "+i+" angles is undefined");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UnLinkWaypoint(nwp)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
||||||
|
{
|
||||||
|
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].childCount = level.waypoints[nwp].children.size;
|
||||||
|
level.waypoints[level.wpToLink].childCount = level.waypoints[level.wpToLink].children.size;
|
||||||
|
|
||||||
|
self iprintln("Waypoint " + nwp + " Broken to " + level.wpToLink);
|
||||||
|
level.wpToLink = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
LinkWaypoint(nwp)
|
||||||
|
{
|
||||||
|
level.temp_vars = [];
|
||||||
|
level.temp_vars[0] = nwp;
|
||||||
|
level.temp_vars[1] = true;
|
||||||
|
if(level.temp_vars[0] == -1 || distance(self.origin, level.waypoints[level.temp_vars[0]].origin) > getDvarFloat("bots_main_debug_minDist"))
|
||||||
|
{
|
||||||
|
self iprintln("Waypoint Link Cancelled "+level.wpToLink);
|
||||||
|
level.wpToLink = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(level.wpToLink == -1 || level.temp_vars[0] == level.wpToLink)
|
||||||
|
{
|
||||||
|
level.wpToLink = level.temp_vars[0];
|
||||||
|
self iprintln("Waypoint Link Started "+level.temp_vars[0]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < level.waypoints[level.wpToLink].childCount; i++)
|
||||||
|
{
|
||||||
|
child = level.waypoints[level.wpToLink].children[i];
|
||||||
|
|
||||||
|
if(child == level.temp_vars[0])
|
||||||
|
{
|
||||||
|
level.temp_vars[1] = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(level.temp_vars[1])
|
||||||
|
{
|
||||||
|
for (i = 0; i < level.waypoints[level.temp_vars[0]].childCount; i++)
|
||||||
|
{
|
||||||
|
child = level.waypoints[level.temp_vars[0]].children[i];
|
||||||
|
|
||||||
|
if(child == level.wpToLink)
|
||||||
|
{
|
||||||
|
level.temp_vars[1] = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// COMPILER BUG ATM!! nwp getting over written, using level.temp_vars for now
|
||||||
|
|
||||||
|
if (!level.temp_vars[1] )
|
||||||
|
{
|
||||||
|
self iprintln("Waypoint Link Cancelled "+level.temp_vars[0]+" and "+level.wpToLink+" already linked.");
|
||||||
|
level.wpToLink = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypoints[level.wpToLink].children[level.waypoints[level.wpToLink].childcount] = level.temp_vars[0];
|
||||||
|
level.waypoints[level.wpToLink].childcount++;
|
||||||
|
level.waypoints[level.temp_vars[0]].children[level.waypoints[level.temp_vars[0]].childcount] = level.wpToLink;
|
||||||
|
level.waypoints[level.temp_vars[0]].childcount++;
|
||||||
|
|
||||||
|
self iprintln("Waypoint " + level.temp_vars[0] + " Linked to " + level.wpToLink);
|
||||||
|
level.wpToLink = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
DeleteWaypoint(nwp)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
|
||||||
|
for (i = 0; i < level.waypoints[nwp].childCount; i++)
|
||||||
|
{
|
||||||
|
child = level.waypoints[nwp].children[i];
|
||||||
|
|
||||||
|
level.waypoints[child].children = array_remove(level.waypoints[child].children, nwp);
|
||||||
|
|
||||||
|
level.waypoints[child].childCount = level.waypoints[child].children.size;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(i = 0; i < level.waypointCount; i++)
|
||||||
|
{
|
||||||
|
for(h = 0; h < level.waypoints[i].childCount; h++)
|
||||||
|
{
|
||||||
|
if(level.waypoints[i].children[h] > nwp)
|
||||||
|
level.waypoints[i].children[h]--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( entry = 0; entry < level.waypointCount; entry++ )
|
||||||
|
{
|
||||||
|
if ( entry == nwp )
|
||||||
|
{
|
||||||
|
while ( entry < level.waypointCount-1 )
|
||||||
|
{
|
||||||
|
level.waypoints[entry] = level.waypoints[entry+1];
|
||||||
|
entry++;
|
||||||
|
}
|
||||||
|
level.waypoints[entry] = undefined;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
level.waypointCount--;
|
||||||
|
|
||||||
|
self iprintln("DelWp "+nwp);
|
||||||
|
}
|
||||||
|
|
||||||
|
AddWaypoint()
|
||||||
|
{
|
||||||
|
level.waypoints[level.waypointCount] = spawnstruct();
|
||||||
|
|
||||||
|
pos = self getOrigin();
|
||||||
|
level.waypoints[level.waypointCount].origin = pos;
|
||||||
|
|
||||||
|
if (isDefined(self.javelinTargetPoint))
|
||||||
|
level.waypoints[level.waypointCount].type = "javelin";
|
||||||
|
else 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 = [];
|
||||||
|
level.waypoints[level.waypointCount].childCount = 0;
|
||||||
|
|
||||||
|
if (level.waypoints[level.waypointCount].type == "javelin")
|
||||||
|
{
|
||||||
|
level.waypoints[level.waypointCount].jav_point = self.javelinTargetPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
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++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DeleteAllWaypoints()
|
||||||
|
{
|
||||||
|
level.waypoints = [];
|
||||||
|
level.waypointCount = 0;
|
||||||
|
|
||||||
|
self iprintln("DelAllWps");
|
||||||
|
}
|
||||||
|
|
||||||
|
buildChildCountString ( wp )
|
||||||
|
{
|
||||||
|
if ( wp == -1 )
|
||||||
|
return "";
|
||||||
|
|
||||||
|
wpstr = level.waypoints[wp].childCount + "";
|
||||||
|
|
||||||
|
return wpstr;
|
||||||
|
}
|
||||||
|
|
||||||
|
buildChildString( wp )
|
||||||
|
{
|
||||||
|
if ( wp == -1 )
|
||||||
|
return "";
|
||||||
|
|
||||||
|
wpstr = "";
|
||||||
|
|
||||||
|
for(i = 0; i < level.waypoints[wp].childCount; i++)
|
||||||
|
{
|
||||||
|
if(i != 0)
|
||||||
|
wpstr = wpstr + "," + level.waypoints[wp].children[i];
|
||||||
|
else
|
||||||
|
wpstr= wpstr + level.waypoints[wp].children[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return wpstr;
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypeString( wp )
|
||||||
|
{
|
||||||
|
if ( wp == -1 )
|
||||||
|
return "";
|
||||||
|
|
||||||
|
return level.waypoints[wp].type;
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyOnDeath(hud)
|
||||||
|
{
|
||||||
|
hud endon("death");
|
||||||
|
self waittill_either("death","disconnect");
|
||||||
|
hud notify("death");
|
||||||
|
hud destroy();
|
||||||
|
hud = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
initHudElem(txt, xl, yl)
|
||||||
|
{
|
||||||
|
hud = NewClientHudElem( self );
|
||||||
|
hud setText(txt);
|
||||||
|
hud.alignX = "left";
|
||||||
|
hud.alignY = "top";
|
||||||
|
hud.horzAlign = "left";
|
||||||
|
hud.vertAlign = "top";
|
||||||
|
hud.x = xl;
|
||||||
|
hud.y = yl;
|
||||||
|
hud.foreground = true;
|
||||||
|
hud.fontScale = 1;
|
||||||
|
hud.font = "objective";
|
||||||
|
hud.alpha = 1;
|
||||||
|
hud.glow = 0;
|
||||||
|
hud.glowColor = ( 0, 0, 0 );
|
||||||
|
hud.glowAlpha = 1;
|
||||||
|
hud.color = ( 1.0, 1.0, 1.0 );
|
||||||
|
|
||||||
|
self thread destroyOnDeath( hud );
|
||||||
|
|
||||||
|
return hud;
|
||||||
|
}
|
||||||
|
|
||||||
|
initHudElem2()
|
||||||
|
{
|
||||||
|
infotext = NewHudElem();
|
||||||
|
infotext setText("^1Welcome to the MW3 Waypoint Editor for Bot Warfare!"); // not working??
|
||||||
|
infotext.alignX = "center";
|
||||||
|
infotext.alignY = "bottom";
|
||||||
|
infotext.horzAlign = "center";
|
||||||
|
infotext.vertAlign = "bottom";
|
||||||
|
infotext.x = -800;
|
||||||
|
infotext.y = 25;
|
||||||
|
infotext.foreground = true;
|
||||||
|
infotext.fontScale = 1.35;
|
||||||
|
infotext.font = "objective";
|
||||||
|
infotext.alpha = 1;
|
||||||
|
infotext.glow = 0;
|
||||||
|
infotext.glowColor = ( 0, 0, 0 );
|
||||||
|
infotext.glowAlpha = 1;
|
||||||
|
infotext.color = ( 1.0, 1.0, 1.0 );
|
||||||
|
|
||||||
|
self thread destroyOnDeath( infotext );
|
||||||
|
|
||||||
|
return infotext;
|
||||||
|
}
|
||||||
|
|
||||||
|
initHudElem3()
|
||||||
|
{
|
||||||
|
bar = level createServerBar((0.5, 0.5, 0.5), 1000, 25);
|
||||||
|
bar.alignX = "center";
|
||||||
|
bar.alignY = "bottom";
|
||||||
|
bar.horzAlign = "center";
|
||||||
|
bar.vertAlign = "bottom";
|
||||||
|
bar.y = 30;
|
||||||
|
bar.foreground = true;
|
||||||
|
|
||||||
|
self thread destroyOnDeath( bar );
|
||||||
|
|
||||||
|
return bar;
|
||||||
|
}
|
||||||
|
|
||||||
|
initHudElem4()
|
||||||
|
{
|
||||||
|
OptionsBG = NewClientHudElem( self );
|
||||||
|
OptionsBG.x = 100;
|
||||||
|
OptionsBG.y = 2;
|
||||||
|
OptionsBG.alignX = "left";
|
||||||
|
OptionsBG.alignY = "top";
|
||||||
|
OptionsBG.horzAlign = "left";
|
||||||
|
OptionsBG.vertAlign = "top";
|
||||||
|
OptionsBG setshader("black", 200, 60);
|
||||||
|
OptionsBG.alpha = 0.4;
|
||||||
|
|
||||||
|
self thread destroyOnDeath( OptionsBG );
|
||||||
|
|
||||||
|
return OptionsBG;
|
||||||
|
}
|
985
maps/mp/bots/waypoints/dome.gsc
Normal file
985
maps/mp/bots/waypoints/dome.gsc
Normal file
@ -0,0 +1,985 @@
|
|||||||
|
Dome()
|
||||||
|
{
|
||||||
|
/* 0:48 */waypoints = [];
|
||||||
|
/* 0:48 */waypoints[0] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[0].origin = (-140.626, 2103.48, -290.875);
|
||||||
|
/* 0:48 */waypoints[0].type = "stand";
|
||||||
|
/* 0:48 */waypoints[0].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[0].children[0] = 1;
|
||||||
|
/* 0:48 */waypoints[0].children[1] = 45;
|
||||||
|
/* 0:48 */waypoints[1] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[1].origin = (141.937, 2091.96, -290.875);
|
||||||
|
/* 0:48 */waypoints[1].type = "stand";
|
||||||
|
/* 0:48 */waypoints[1].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[1].children[0] = 0;
|
||||||
|
/* 0:48 */waypoints[1].children[1] = 2;
|
||||||
|
/* 0:48 */waypoints[1].children[2] = 47;
|
||||||
|
/* 0:48 */waypoints[2] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[2].origin = (451.907, 2066.25, -254.875);
|
||||||
|
/* 0:48 */waypoints[2].type = "stand";
|
||||||
|
/* 0:48 */waypoints[2].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[2].children[0] = 1;
|
||||||
|
/* 0:48 */waypoints[2].children[1] = 3;
|
||||||
|
/* 0:48 */waypoints[2].children[2] = 77;
|
||||||
|
/* 0:48 */waypoints[2].children[3] = 74;
|
||||||
|
/* 0:48 */waypoints[3] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[3].origin = (430.25, 1747.91, -254.875);
|
||||||
|
/* 0:48 */waypoints[3].type = "stand";
|
||||||
|
/* 0:48 */waypoints[3].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[3].children[0] = 2;
|
||||||
|
/* 0:48 */waypoints[3].children[1] = 4;
|
||||||
|
/* 0:48 */waypoints[3].children[2] = 79;
|
||||||
|
/* 0:48 */waypoints[4] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[4].origin = (636.671, 1713.11, -247.381);
|
||||||
|
/* 0:48 */waypoints[4].type = "stand";
|
||||||
|
/* 0:48 */waypoints[4].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[4].children[0] = 3;
|
||||||
|
/* 0:48 */waypoints[4].children[1] = 5;
|
||||||
|
/* 0:48 */waypoints[4].children[2] = 74;
|
||||||
|
/* 0:48 */waypoints[5] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[5].origin = (1115.07, 1698.27, -254.875);
|
||||||
|
/* 0:48 */waypoints[5].type = "stand";
|
||||||
|
/* 0:48 */waypoints[5].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[5].children[0] = 4;
|
||||||
|
/* 0:48 */waypoints[5].children[1] = 6;
|
||||||
|
/* 0:48 */waypoints[5].children[2] = 71;
|
||||||
|
/* 0:48 */waypoints[6] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[6].origin = (1333.3, 1679.45, -254.875);
|
||||||
|
/* 0:48 */waypoints[6].type = "stand";
|
||||||
|
/* 0:48 */waypoints[6].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[6].children[0] = 5;
|
||||||
|
/* 0:48 */waypoints[6].children[1] = 7;
|
||||||
|
/* 0:48 */waypoints[6].children[2] = 64;
|
||||||
|
/* 0:48 */waypoints[7] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[7].origin = (1319.74, 1407.28, -254.875);
|
||||||
|
/* 0:48 */waypoints[7].type = "stand";
|
||||||
|
/* 0:48 */waypoints[7].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[7].children[0] = 6;
|
||||||
|
/* 0:48 */waypoints[7].children[1] = 8;
|
||||||
|
/* 0:48 */waypoints[7].children[2] = 63;
|
||||||
|
/* 0:48 */waypoints[8] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[8].origin = (1307.68, 1285.36, -254.875);
|
||||||
|
/* 0:48 */waypoints[8].type = "stand";
|
||||||
|
/* 0:48 */waypoints[8].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[8].children[0] = 7;
|
||||||
|
/* 0:48 */waypoints[8].children[1] = 9;
|
||||||
|
/* 0:48 */waypoints[9] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[9].origin = (1557.19, 1283.13, -254.875);
|
||||||
|
/* 0:48 */waypoints[9].type = "stand";
|
||||||
|
/* 0:48 */waypoints[9].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[9].children[0] = 8;
|
||||||
|
/* 0:48 */waypoints[9].children[1] = 10;
|
||||||
|
/* 0:48 */waypoints[9].children[2] = 62;
|
||||||
|
/* 0:48 */waypoints[9].children[3] = 78;
|
||||||
|
/* 0:48 */waypoints[10] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[10].origin = (1588.16, 1082.51, -254.875);
|
||||||
|
/* 0:48 */waypoints[10].type = "stand";
|
||||||
|
/* 0:48 */waypoints[10].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[10].children[0] = 9;
|
||||||
|
/* 0:48 */waypoints[10].children[1] = 11;
|
||||||
|
/* 0:48 */waypoints[10].children[2] = 61;
|
||||||
|
/* 0:48 */waypoints[11] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[11].origin = (1533.04, 589.068, -318.312);
|
||||||
|
/* 0:48 */waypoints[11].type = "stand";
|
||||||
|
/* 0:48 */waypoints[11].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[11].children[0] = 10;
|
||||||
|
/* 0:48 */waypoints[11].children[1] = 12;
|
||||||
|
/* 0:48 */waypoints[12] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[12].origin = (1390.95, 607.894, -324.887);
|
||||||
|
/* 0:48 */waypoints[12].type = "stand";
|
||||||
|
/* 0:48 */waypoints[12].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[12].children[0] = 11;
|
||||||
|
/* 0:48 */waypoints[12].children[1] = 13;
|
||||||
|
/* 0:48 */waypoints[12].children[2] = 57;
|
||||||
|
/* 0:48 */waypoints[12].children[3] = 56;
|
||||||
|
/* 0:48 */waypoints[13] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[13].origin = (1331.41, 286.146, -377.336);
|
||||||
|
/* 0:48 */waypoints[13].type = "stand";
|
||||||
|
/* 0:48 */waypoints[13].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[13].children[0] = 12;
|
||||||
|
/* 0:48 */waypoints[13].children[1] = 14;
|
||||||
|
/* 0:48 */waypoints[13].children[2] = 81;
|
||||||
|
/* 0:48 */waypoints[14] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[14].origin = (1297.26, 38.176, -394.269);
|
||||||
|
/* 0:48 */waypoints[14].type = "stand";
|
||||||
|
/* 0:48 */waypoints[14].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[14].children[0] = 13;
|
||||||
|
/* 0:48 */waypoints[14].children[1] = 15;
|
||||||
|
/* 0:48 */waypoints[14].children[2] = 89;
|
||||||
|
/* 0:48 */waypoints[14].children[3] = 92;
|
||||||
|
/* 0:48 */waypoints[15] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[15].origin = (1361.5, -124.966, -387.006);
|
||||||
|
/* 0:48 */waypoints[15].type = "stand";
|
||||||
|
/* 0:48 */waypoints[15].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[15].children[0] = 14;
|
||||||
|
/* 0:48 */waypoints[15].children[1] = 16;
|
||||||
|
/* 0:48 */waypoints[15].children[2] = 92;
|
||||||
|
/* 0:48 */waypoints[16] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[16].origin = (1349.18, -431.243, -379.903);
|
||||||
|
/* 0:48 */waypoints[16].type = "stand";
|
||||||
|
/* 0:48 */waypoints[16].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[16].children[0] = 15;
|
||||||
|
/* 0:48 */waypoints[16].children[1] = 17;
|
||||||
|
/* 0:48 */waypoints[17] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[17].origin = (1040.8, -499.492, -384.345);
|
||||||
|
/* 0:48 */waypoints[17].type = "stand";
|
||||||
|
/* 0:48 */waypoints[17].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[17].children[0] = 16;
|
||||||
|
/* 0:48 */waypoints[17].children[1] = 18;
|
||||||
|
/* 0:48 */waypoints[17].children[2] = 91;
|
||||||
|
/* 0:48 */waypoints[17].children[3] = 93;
|
||||||
|
/* 0:48 */waypoints[18] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[18].origin = (725.226, -547.766, -391.437);
|
||||||
|
/* 0:48 */waypoints[18].type = "stand";
|
||||||
|
/* 0:48 */waypoints[18].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[18].children[0] = 17;
|
||||||
|
/* 0:48 */waypoints[18].children[1] = 19;
|
||||||
|
/* 0:48 */waypoints[18].children[2] = 93;
|
||||||
|
/* 0:48 */waypoints[18].children[3] = 128;
|
||||||
|
/* 0:48 */waypoints[19] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[19].origin = (550.345, -653.288, -382.519);
|
||||||
|
/* 0:48 */waypoints[19].type = "stand";
|
||||||
|
/* 0:48 */waypoints[19].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[19].children[0] = 18;
|
||||||
|
/* 0:48 */waypoints[19].children[1] = 20;
|
||||||
|
/* 0:48 */waypoints[20] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[20].origin = (431.707, -414.067, -393.9);
|
||||||
|
/* 0:48 */waypoints[20].type = "stand";
|
||||||
|
/* 0:48 */waypoints[20].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[20].children[0] = 19;
|
||||||
|
/* 0:48 */waypoints[20].children[1] = 21;
|
||||||
|
/* 0:48 */waypoints[20].children[2] = 128;
|
||||||
|
/* 0:48 */waypoints[21] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[21].origin = (474.186, -181.671, -390.375);
|
||||||
|
/* 0:48 */waypoints[21].type = "stand";
|
||||||
|
/* 0:48 */waypoints[21].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[21].children[0] = 20;
|
||||||
|
/* 0:48 */waypoints[21].children[1] = 22;
|
||||||
|
/* 0:48 */waypoints[21].children[2] = 94;
|
||||||
|
/* 0:48 */waypoints[21].children[3] = 95;
|
||||||
|
/* 0:48 */waypoints[22] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[22].origin = (315.047, -105.259, -390.375);
|
||||||
|
/* 0:48 */waypoints[22].type = "stand";
|
||||||
|
/* 0:48 */waypoints[22].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[22].children[0] = 21;
|
||||||
|
/* 0:48 */waypoints[22].children[1] = 23;
|
||||||
|
/* 0:48 */waypoints[22].children[2] = 96;
|
||||||
|
/* 0:48 */waypoints[23] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[23].origin = (35.6547, -281.57, -390.375);
|
||||||
|
/* 0:48 */waypoints[23].type = "stand";
|
||||||
|
/* 0:48 */waypoints[23].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[23].children[0] = 22;
|
||||||
|
/* 0:48 */waypoints[23].children[1] = 24;
|
||||||
|
/* 0:48 */waypoints[24] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[24].origin = (-142.765, 23.3263, -390.375);
|
||||||
|
/* 0:48 */waypoints[24].type = "stand";
|
||||||
|
/* 0:48 */waypoints[24].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[24].children[0] = 23;
|
||||||
|
/* 0:48 */waypoints[24].children[1] = 25;
|
||||||
|
/* 0:48 */waypoints[24].children[2] = 96;
|
||||||
|
/* 0:48 */waypoints[25] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[25].origin = (-250.261, 216.223, -402.466);
|
||||||
|
/* 0:48 */waypoints[25].type = "stand";
|
||||||
|
/* 0:48 */waypoints[25].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[25].children[0] = 24;
|
||||||
|
/* 0:48 */waypoints[25].children[1] = 26;
|
||||||
|
/* 0:48 */waypoints[25].children[2] = 113;
|
||||||
|
/* 0:48 */waypoints[25].children[3] = 118;
|
||||||
|
/* 0:48 */waypoints[25].children[4] = 127;
|
||||||
|
/* 0:48 */waypoints[25].children[5] = 116;
|
||||||
|
/* 0:48 */waypoints[26] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[26].origin = (-400.662, 138.364, -404.402);
|
||||||
|
/* 0:48 */waypoints[26].type = "stand";
|
||||||
|
/* 0:48 */waypoints[26].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[26].children[0] = 25;
|
||||||
|
/* 0:48 */waypoints[26].children[1] = 27;
|
||||||
|
/* 0:48 */waypoints[26].children[2] = 116;
|
||||||
|
/* 0:48 */waypoints[26].children[3] = 117;
|
||||||
|
/* 0:48 */waypoints[27] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[27].origin = (-308.795, -18.5752, -394.814);
|
||||||
|
/* 0:48 */waypoints[27].type = "stand";
|
||||||
|
/* 0:48 */waypoints[27].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[27].children[0] = 26;
|
||||||
|
/* 0:48 */waypoints[27].children[1] = 28;
|
||||||
|
/* 0:48 */waypoints[28] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[28].origin = (-401.572, -58.4085, -401.87);
|
||||||
|
/* 0:48 */waypoints[28].type = "stand";
|
||||||
|
/* 0:48 */waypoints[28].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[28].children[0] = 27;
|
||||||
|
/* 0:48 */waypoints[28].children[1] = 29;
|
||||||
|
/* 0:48 */waypoints[28].children[2] = 97;
|
||||||
|
/* 0:48 */waypoints[29] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[29].origin = (-719.427, -171.456, -409.2);
|
||||||
|
/* 0:48 */waypoints[29].type = "stand";
|
||||||
|
/* 0:48 */waypoints[29].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[29].children[0] = 28;
|
||||||
|
/* 0:48 */waypoints[29].children[1] = 30;
|
||||||
|
/* 0:48 */waypoints[29].children[2] = 117;
|
||||||
|
/* 0:48 */waypoints[30] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[30].origin = (-837.206, -67.7813, -405.806);
|
||||||
|
/* 0:48 */waypoints[30].type = "stand";
|
||||||
|
/* 0:48 */waypoints[30].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[30].children[0] = 29;
|
||||||
|
/* 0:48 */waypoints[30].children[1] = 31;
|
||||||
|
/* 0:48 */waypoints[30].children[2] = 117;
|
||||||
|
/* 0:48 */waypoints[31] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[31].origin = (-925.286, 121.522, -416.663);
|
||||||
|
/* 0:48 */waypoints[31].type = "stand";
|
||||||
|
/* 0:48 */waypoints[31].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[31].children[0] = 30;
|
||||||
|
/* 0:48 */waypoints[31].children[1] = 32;
|
||||||
|
/* 0:48 */waypoints[31].children[2] = 33;
|
||||||
|
/* 0:48 */waypoints[32] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[32].origin = (-761.614, 254.802, -414.962);
|
||||||
|
/* 0:48 */waypoints[32].type = "stand";
|
||||||
|
/* 0:48 */waypoints[32].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[32].children[0] = 31;
|
||||||
|
/* 0:48 */waypoints[32].children[1] = 33;
|
||||||
|
/* 0:48 */waypoints[32].children[2] = 116;
|
||||||
|
/* 0:48 */waypoints[32].children[3] = 117;
|
||||||
|
/* 0:48 */waypoints[33] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[33].origin = (-847.034, 449.476, -451.875);
|
||||||
|
/* 0:48 */waypoints[33].type = "stand";
|
||||||
|
/* 0:48 */waypoints[33].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[33].children[0] = 32;
|
||||||
|
/* 0:48 */waypoints[33].children[1] = 34;
|
||||||
|
/* 0:48 */waypoints[33].children[2] = 31;
|
||||||
|
/* 0:48 */waypoints[33].children[3] = 116;
|
||||||
|
/* 0:48 */waypoints[34] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[34].origin = (-969.523, 664.428, -451.875);
|
||||||
|
/* 0:48 */waypoints[34].type = "stand";
|
||||||
|
/* 0:48 */waypoints[34].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[34].children[0] = 33;
|
||||||
|
/* 0:48 */waypoints[34].children[1] = 35;
|
||||||
|
/* 0:48 */waypoints[35] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[35].origin = (-1111.27, 873.424, -451.875);
|
||||||
|
/* 0:48 */waypoints[35].type = "stand";
|
||||||
|
/* 0:48 */waypoints[35].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[35].children[0] = 34;
|
||||||
|
/* 0:48 */waypoints[35].children[1] = 36;
|
||||||
|
/* 0:48 */waypoints[35].children[2] = 124;
|
||||||
|
/* 0:48 */waypoints[35].children[3] = 125;
|
||||||
|
/* 0:48 */waypoints[36] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[36].origin = (-1287.73, 801.399, -451.875);
|
||||||
|
/* 0:48 */waypoints[36].type = "stand";
|
||||||
|
/* 0:48 */waypoints[36].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[36].children[0] = 35;
|
||||||
|
/* 0:48 */waypoints[36].children[1] = 37;
|
||||||
|
/* 0:48 */waypoints[37] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[37].origin = (-1417.17, 1073.99, -423.891);
|
||||||
|
/* 0:48 */waypoints[37].type = "stand";
|
||||||
|
/* 0:48 */waypoints[37].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[37].children[0] = 36;
|
||||||
|
/* 0:48 */waypoints[37].children[1] = 38;
|
||||||
|
/* 0:48 */waypoints[38] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[38].origin = (-1521.36, 1354.2, -427.875);
|
||||||
|
/* 0:48 */waypoints[38].type = "stand";
|
||||||
|
/* 0:48 */waypoints[38].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[38].children[0] = 37;
|
||||||
|
/* 0:48 */waypoints[38].children[1] = 39;
|
||||||
|
/* 0:48 */waypoints[39] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[39].origin = (-1327.86, 1433.06, -451.875);
|
||||||
|
/* 0:48 */waypoints[39].type = "stand";
|
||||||
|
/* 0:48 */waypoints[39].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[39].children[0] = 38;
|
||||||
|
/* 0:48 */waypoints[39].children[1] = 40;
|
||||||
|
/* 0:48 */waypoints[39].children[2] = 125;
|
||||||
|
/* 0:48 */waypoints[40] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[40].origin = (-1173.54, 1511.18, -427.875);
|
||||||
|
/* 0:48 */waypoints[40].type = "stand";
|
||||||
|
/* 0:48 */waypoints[40].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[40].children[0] = 39;
|
||||||
|
/* 0:48 */waypoints[40].children[1] = 41;
|
||||||
|
/* 0:48 */waypoints[40].children[2] = 126;
|
||||||
|
/* 0:48 */waypoints[41] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[41].origin = (-911.663, 1631.31, -355.875);
|
||||||
|
/* 0:48 */waypoints[41].type = "stand";
|
||||||
|
/* 0:48 */waypoints[41].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[41].children[0] = 40;
|
||||||
|
/* 0:48 */waypoints[41].children[1] = 42;
|
||||||
|
/* 0:48 */waypoints[42] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[42].origin = (-691.944, 1653.04, -347.875);
|
||||||
|
/* 0:48 */waypoints[42].type = "stand";
|
||||||
|
/* 0:48 */waypoints[42].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[42].children[0] = 41;
|
||||||
|
/* 0:48 */waypoints[42].children[1] = 43;
|
||||||
|
/* 0:48 */waypoints[43] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[43].origin = (-526.375, 1682.81, -283.875);
|
||||||
|
/* 0:48 */waypoints[43].type = "stand";
|
||||||
|
/* 0:48 */waypoints[43].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[43].children[0] = 42;
|
||||||
|
/* 0:48 */waypoints[43].children[1] = 44;
|
||||||
|
/* 0:48 */waypoints[44] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[44].origin = (-382.993, 1695.68, -286.993);
|
||||||
|
/* 0:48 */waypoints[44].type = "stand";
|
||||||
|
/* 0:48 */waypoints[44].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[44].children[0] = 43;
|
||||||
|
/* 0:48 */waypoints[44].children[1] = 45;
|
||||||
|
/* 0:48 */waypoints[44].children[2] = 46;
|
||||||
|
/* 0:48 */waypoints[44].children[3] = 119;
|
||||||
|
/* 0:48 */waypoints[44].children[4] = 120;
|
||||||
|
/* 0:48 */waypoints[45] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[45].origin = (-168.297, 1825.4, -290.875);
|
||||||
|
/* 0:48 */waypoints[45].type = "stand";
|
||||||
|
/* 0:48 */waypoints[45].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[45].children[0] = 44;
|
||||||
|
/* 0:48 */waypoints[45].children[1] = 0;
|
||||||
|
/* 0:48 */waypoints[45].children[2] = 46;
|
||||||
|
/* 0:48 */waypoints[46] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[46].origin = (-89.693, 1677.63, -290.875);
|
||||||
|
/* 0:48 */waypoints[46].type = "stand";
|
||||||
|
/* 0:48 */waypoints[46].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[46].children[0] = 45;
|
||||||
|
/* 0:48 */waypoints[46].children[1] = 47;
|
||||||
|
/* 0:48 */waypoints[46].children[2] = 44;
|
||||||
|
/* 0:48 */waypoints[46].children[3] = 48;
|
||||||
|
/* 0:48 */waypoints[46].children[4] = 120;
|
||||||
|
/* 0:48 */waypoints[47] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[47].origin = (114.637, 1707.08, -290.875);
|
||||||
|
/* 0:48 */waypoints[47].type = "stand";
|
||||||
|
/* 0:48 */waypoints[47].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[47].children[0] = 46;
|
||||||
|
/* 0:48 */waypoints[47].children[1] = 1;
|
||||||
|
/* 0:48 */waypoints[48] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[48].origin = (-101.491, 1476.55, -290.875);
|
||||||
|
/* 0:48 */waypoints[48].type = "stand";
|
||||||
|
/* 0:48 */waypoints[48].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[48].children[0] = 46;
|
||||||
|
/* 0:48 */waypoints[48].children[1] = 120;
|
||||||
|
/* 0:48 */waypoints[48].children[2] = 135;
|
||||||
|
/* 0:48 */waypoints[49] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[49].origin = (107.344, 1440.72, -290.875);
|
||||||
|
/* 0:48 */waypoints[49].type = "stand";
|
||||||
|
/* 0:48 */waypoints[49].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[49].children[0] = 50;
|
||||||
|
/* 0:48 */waypoints[49].children[1] = 135;
|
||||||
|
/* 0:48 */waypoints[50] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[50].origin = (39.3621, 1200.41, -294.064);
|
||||||
|
/* 0:48 */waypoints[50].type = "stand";
|
||||||
|
/* 0:48 */waypoints[50].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[50].children[0] = 49;
|
||||||
|
/* 0:48 */waypoints[50].children[1] = 51;
|
||||||
|
/* 0:48 */waypoints[50].children[2] = 52;
|
||||||
|
/* 0:48 */waypoints[50].children[3] = 109;
|
||||||
|
/* 0:48 */waypoints[50].children[4] = 110;
|
||||||
|
/* 0:48 */waypoints[50].children[5] = 135;
|
||||||
|
/* 0:48 */waypoints[51] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[51].origin = (258.337, 952.614, -312.547);
|
||||||
|
/* 0:48 */waypoints[51].type = "stand";
|
||||||
|
/* 0:48 */waypoints[51].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[51].children[0] = 50;
|
||||||
|
/* 0:48 */waypoints[51].children[1] = 52;
|
||||||
|
/* 0:48 */waypoints[51].children[2] = 110;
|
||||||
|
/* 0:48 */waypoints[52] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[52].origin = (280.264, 1158.05, -310.61);
|
||||||
|
/* 0:48 */waypoints[52].type = "stand";
|
||||||
|
/* 0:48 */waypoints[52].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[52].children[0] = 51;
|
||||||
|
/* 0:48 */waypoints[52].children[1] = 53;
|
||||||
|
/* 0:48 */waypoints[52].children[2] = 50;
|
||||||
|
/* 0:48 */waypoints[52].children[3] = 136;
|
||||||
|
/* 0:48 */waypoints[52].children[4] = 109;
|
||||||
|
/* 0:48 */waypoints[53] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[53].origin = (526.268, 1166.44, -310.556);
|
||||||
|
/* 0:48 */waypoints[53].type = "stand";
|
||||||
|
/* 0:48 */waypoints[53].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[53].children[0] = 52;
|
||||||
|
/* 0:48 */waypoints[53].children[1] = 54;
|
||||||
|
/* 0:48 */waypoints[53].children[2] = 108;
|
||||||
|
/* 0:48 */waypoints[54] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[54].origin = (994.21, 1145.78, -262.875);
|
||||||
|
/* 0:48 */waypoints[54].type = "stand";
|
||||||
|
/* 0:48 */waypoints[54].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[54].children[0] = 53;
|
||||||
|
/* 0:48 */waypoints[54].children[1] = 55;
|
||||||
|
/* 0:48 */waypoints[55] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[55].origin = (949.323, 933.281, -321.75);
|
||||||
|
/* 0:48 */waypoints[55].type = "stand";
|
||||||
|
/* 0:48 */waypoints[55].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[55].children[0] = 54;
|
||||||
|
/* 0:48 */waypoints[55].children[1] = 56;
|
||||||
|
/* 0:48 */waypoints[55].children[2] = 108;
|
||||||
|
/* 0:48 */waypoints[56] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[56].origin = (1010.72, 809.411, -328.52);
|
||||||
|
/* 0:48 */waypoints[56].type = "stand";
|
||||||
|
/* 0:48 */waypoints[56].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[56].children[0] = 55;
|
||||||
|
/* 0:48 */waypoints[56].children[1] = 57;
|
||||||
|
/* 0:48 */waypoints[56].children[2] = 12;
|
||||||
|
/* 0:48 */waypoints[56].children[3] = 81;
|
||||||
|
/* 0:48 */waypoints[57] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[57].origin = (1308.6, 753.461, -321.163);
|
||||||
|
/* 0:48 */waypoints[57].type = "stand";
|
||||||
|
/* 0:48 */waypoints[57].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[57].children[0] = 56;
|
||||||
|
/* 0:48 */waypoints[57].children[1] = 12;
|
||||||
|
/* 0:48 */waypoints[57].children[2] = 58;
|
||||||
|
/* 0:48 */waypoints[58] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[58].origin = (1356.77, 997.187, -313.694);
|
||||||
|
/* 0:48 */waypoints[58].type = "stand";
|
||||||
|
/* 0:48 */waypoints[58].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[58].children[0] = 57;
|
||||||
|
/* 0:48 */waypoints[58].children[1] = 59;
|
||||||
|
/* 0:48 */waypoints[59] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[59].origin = (1366.64, 1045.85, -311.667);
|
||||||
|
/* 0:48 */waypoints[59].type = "climb";
|
||||||
|
/* 0:48 */waypoints[59].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[59].children[0] = 58;
|
||||||
|
/* 0:48 */waypoints[59].children[1] = 60;
|
||||||
|
/* 0:48 */waypoints[59].angles = (0.284424, 82.8207, 0);
|
||||||
|
/* 0:48 */waypoints[60] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[60].origin = (1371.74, 1061.79, -254.875);
|
||||||
|
/* 0:48 */waypoints[60].type = "climb";
|
||||||
|
/* 0:48 */waypoints[60].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[60].children[0] = 59;
|
||||||
|
/* 0:48 */waypoints[60].children[1] = 61;
|
||||||
|
/* 0:48 */waypoints[60].angles = (5.55786, 82.6065, 0);
|
||||||
|
/* 0:48 */waypoints[61] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[61].origin = (1377.94, 1096, -254.875);
|
||||||
|
/* 0:48 */waypoints[61].type = "stand";
|
||||||
|
/* 0:48 */waypoints[61].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[61].children[0] = 60;
|
||||||
|
/* 0:48 */waypoints[61].children[1] = 10;
|
||||||
|
/* 0:48 */waypoints[62] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[62].origin = (1714.13, 1296.49, -254.875);
|
||||||
|
/* 0:48 */waypoints[62].type = "stand";
|
||||||
|
/* 0:48 */waypoints[62].childCount = 1;
|
||||||
|
/* 0:48 */waypoints[62].children[0] = 9;
|
||||||
|
/* 0:48 */waypoints[63] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[63].origin = (1202.76, 1421.01, -254.875);
|
||||||
|
/* 0:48 */waypoints[63].type = "stand";
|
||||||
|
/* 0:48 */waypoints[63].childCount = 1;
|
||||||
|
/* 0:48 */waypoints[63].children[0] = 7;
|
||||||
|
/* 0:48 */waypoints[64] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[64].origin = (1355.06, 1907.43, -254.875);
|
||||||
|
/* 0:48 */waypoints[64].type = "stand";
|
||||||
|
/* 0:48 */waypoints[64].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[64].children[0] = 6;
|
||||||
|
/* 0:48 */waypoints[64].children[1] = 65;
|
||||||
|
/* 0:48 */waypoints[65] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[65].origin = (1393.57, 2328.93, -254.875);
|
||||||
|
/* 0:48 */waypoints[65].type = "stand";
|
||||||
|
/* 0:48 */waypoints[65].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[65].children[0] = 64;
|
||||||
|
/* 0:48 */waypoints[65].children[1] = 66;
|
||||||
|
/* 0:48 */waypoints[66] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[66].origin = (1170.13, 2381.39, -254.875);
|
||||||
|
/* 0:48 */waypoints[66].type = "stand";
|
||||||
|
/* 0:48 */waypoints[66].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[66].children[0] = 65;
|
||||||
|
/* 0:48 */waypoints[66].children[1] = 67;
|
||||||
|
/* 0:48 */waypoints[66].children[2] = 72;
|
||||||
|
/* 0:48 */waypoints[67] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[67].origin = (1014.51, 2377.43, -254.875);
|
||||||
|
/* 0:48 */waypoints[67].type = "stand";
|
||||||
|
/* 0:48 */waypoints[67].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[67].children[0] = 66;
|
||||||
|
/* 0:48 */waypoints[67].children[1] = 73;
|
||||||
|
/* 0:48 */waypoints[67].children[2] = 75;
|
||||||
|
/* 0:48 */waypoints[68] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[68].origin = (979.227, 2084.34, -254.875);
|
||||||
|
/* 0:48 */waypoints[68].type = "stand";
|
||||||
|
/* 0:48 */waypoints[68].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[68].children[0] = 69;
|
||||||
|
/* 0:48 */waypoints[68].children[1] = 73;
|
||||||
|
/* 0:48 */waypoints[69] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[69].origin = (902.656, 2024.9, -254.875);
|
||||||
|
/* 0:48 */waypoints[69].type = "stand";
|
||||||
|
/* 0:48 */waypoints[69].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[69].children[0] = 68;
|
||||||
|
/* 0:48 */waypoints[69].children[1] = 70;
|
||||||
|
/* 0:48 */waypoints[69].children[2] = 74;
|
||||||
|
/* 0:48 */waypoints[70] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[70].origin = (996.304, 1906.7, -254.875);
|
||||||
|
/* 0:48 */waypoints[70].type = "stand";
|
||||||
|
/* 0:48 */waypoints[70].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[70].children[0] = 69;
|
||||||
|
/* 0:48 */waypoints[70].children[1] = 71;
|
||||||
|
/* 0:48 */waypoints[71] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[71].origin = (1139.33, 1889.9, -254.875);
|
||||||
|
/* 0:48 */waypoints[71].type = "stand";
|
||||||
|
/* 0:48 */waypoints[71].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[71].children[0] = 70;
|
||||||
|
/* 0:48 */waypoints[71].children[1] = 72;
|
||||||
|
/* 0:48 */waypoints[71].children[2] = 5;
|
||||||
|
/* 0:48 */waypoints[72] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[72].origin = (1163.52, 2236.09, -254.875);
|
||||||
|
/* 0:48 */waypoints[72].type = "stand";
|
||||||
|
/* 0:48 */waypoints[72].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[72].children[0] = 71;
|
||||||
|
/* 0:48 */waypoints[72].children[1] = 66;
|
||||||
|
/* 0:48 */waypoints[72].children[2] = 73;
|
||||||
|
/* 0:48 */waypoints[73] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[73].origin = (994.506, 2264.26, -254.875);
|
||||||
|
/* 0:48 */waypoints[73].type = "stand";
|
||||||
|
/* 0:48 */waypoints[73].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[73].children[0] = 68;
|
||||||
|
/* 0:48 */waypoints[73].children[1] = 67;
|
||||||
|
/* 0:48 */waypoints[73].children[2] = 72;
|
||||||
|
/* 0:48 */waypoints[74] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[74].origin = (682.072, 2050.36, -251.554);
|
||||||
|
/* 0:48 */waypoints[74].type = "stand";
|
||||||
|
/* 0:48 */waypoints[74].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[74].children[0] = 69;
|
||||||
|
/* 0:48 */waypoints[74].children[1] = 75;
|
||||||
|
/* 0:48 */waypoints[74].children[2] = 2;
|
||||||
|
/* 0:48 */waypoints[74].children[3] = 4;
|
||||||
|
/* 0:48 */waypoints[75] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[75].origin = (701.443, 2361.35, -254.875);
|
||||||
|
/* 0:48 */waypoints[75].type = "stand";
|
||||||
|
/* 0:48 */waypoints[75].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[75].children[0] = 74;
|
||||||
|
/* 0:48 */waypoints[75].children[1] = 67;
|
||||||
|
/* 0:48 */waypoints[75].children[2] = 76;
|
||||||
|
/* 0:48 */waypoints[76] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[76].origin = (515.645, 2387.23, -254.875);
|
||||||
|
/* 0:48 */waypoints[76].type = "stand";
|
||||||
|
/* 0:48 */waypoints[76].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[76].children[0] = 75;
|
||||||
|
/* 0:48 */waypoints[76].children[1] = 77;
|
||||||
|
/* 0:48 */waypoints[76].children[2] = 80;
|
||||||
|
/* 0:48 */waypoints[77] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[77].origin = (473.813, 2258.23, -254.875);
|
||||||
|
/* 0:48 */waypoints[77].type = "stand";
|
||||||
|
/* 0:48 */waypoints[77].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[77].children[0] = 76;
|
||||||
|
/* 0:48 */waypoints[77].children[1] = 2;
|
||||||
|
/* 0:48 */waypoints[78] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[78].origin = (1525.34, 1407.82, -254.875);
|
||||||
|
/* 0:48 */waypoints[78].type = "stand";
|
||||||
|
/* 0:48 */waypoints[78].childCount = 1;
|
||||||
|
/* 0:48 */waypoints[78].children[0] = 9;
|
||||||
|
/* 0:48 */waypoints[79] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[79].origin = (451.671, 1655.78, -254.875);
|
||||||
|
/* 0:48 */waypoints[79].type = "stand";
|
||||||
|
/* 0:48 */waypoints[79].childCount = 1;
|
||||||
|
/* 0:48 */waypoints[79].children[0] = 3;
|
||||||
|
/* 0:48 */waypoints[80] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[80].origin = (490.071, 2487.04, -254.875);
|
||||||
|
/* 0:48 */waypoints[80].type = "stand";
|
||||||
|
/* 0:48 */waypoints[80].childCount = 1;
|
||||||
|
/* 0:48 */waypoints[80].children[0] = 76;
|
||||||
|
/* 0:48 */waypoints[81] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[81].origin = (913.091, 370.703, -387.799);
|
||||||
|
/* 0:48 */waypoints[81].type = "stand";
|
||||||
|
/* 0:48 */waypoints[81].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[81].children[0] = 56;
|
||||||
|
/* 0:48 */waypoints[81].children[1] = 13;
|
||||||
|
/* 0:48 */waypoints[81].children[2] = 82;
|
||||||
|
/* 0:48 */waypoints[81].children[3] = 89;
|
||||||
|
/* 0:48 */waypoints[82] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[82].origin = (797.453, 371.782, -392.174);
|
||||||
|
/* 0:48 */waypoints[82].type = "stand";
|
||||||
|
/* 0:48 */waypoints[82].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[82].children[0] = 81;
|
||||||
|
/* 0:48 */waypoints[82].children[1] = 83;
|
||||||
|
/* 0:48 */waypoints[82].children[2] = 85;
|
||||||
|
/* 0:48 */waypoints[82].children[3] = 88;
|
||||||
|
/* 0:48 */waypoints[83] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[83].origin = (856.362, 694.132, -375.049);
|
||||||
|
/* 0:48 */waypoints[83].type = "stand";
|
||||||
|
/* 0:48 */waypoints[83].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[83].children[0] = 82;
|
||||||
|
/* 0:48 */waypoints[83].children[1] = 84;
|
||||||
|
/* 0:48 */waypoints[84] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[84].origin = (538.862, 742.707, -380.796);
|
||||||
|
/* 0:48 */waypoints[84].type = "stand";
|
||||||
|
/* 0:48 */waypoints[84].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[84].children[0] = 83;
|
||||||
|
/* 0:48 */waypoints[84].children[1] = 85;
|
||||||
|
/* 0:48 */waypoints[85] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[85].origin = (500.164, 476.458, -387.518);
|
||||||
|
/* 0:48 */waypoints[85].type = "stand";
|
||||||
|
/* 0:48 */waypoints[85].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[85].children[0] = 84;
|
||||||
|
/* 0:48 */waypoints[85].children[1] = 82;
|
||||||
|
/* 0:48 */waypoints[85].children[2] = 86;
|
||||||
|
/* 0:48 */waypoints[86] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[86].origin = (407.621, 398.096, -383.07);
|
||||||
|
/* 0:48 */waypoints[86].type = "stand";
|
||||||
|
/* 0:48 */waypoints[86].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[86].children[0] = 85;
|
||||||
|
/* 0:48 */waypoints[86].children[1] = 87;
|
||||||
|
/* 0:48 */waypoints[87] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[87].origin = (508.517, 178.557, -396.049);
|
||||||
|
/* 0:48 */waypoints[87].type = "stand";
|
||||||
|
/* 0:48 */waypoints[87].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[87].children[0] = 86;
|
||||||
|
/* 0:48 */waypoints[87].children[1] = 88;
|
||||||
|
/* 0:48 */waypoints[87].children[2] = 95;
|
||||||
|
/* 0:48 */waypoints[88] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[88].origin = (643.868, 200.858, -400.038);
|
||||||
|
/* 0:48 */waypoints[88].type = "stand";
|
||||||
|
/* 0:48 */waypoints[88].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[88].children[0] = 87;
|
||||||
|
/* 0:48 */waypoints[88].children[1] = 82;
|
||||||
|
/* 0:48 */waypoints[88].children[2] = 89;
|
||||||
|
/* 0:48 */waypoints[88].children[3] = 90;
|
||||||
|
/* 0:48 */waypoints[89] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[89].origin = (894.341, 137.528, -402.816);
|
||||||
|
/* 0:48 */waypoints[89].type = "stand";
|
||||||
|
/* 0:48 */waypoints[89].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[89].children[0] = 88;
|
||||||
|
/* 0:48 */waypoints[89].children[1] = 81;
|
||||||
|
/* 0:48 */waypoints[89].children[2] = 14;
|
||||||
|
/* 0:48 */waypoints[89].children[3] = 90;
|
||||||
|
/* 0:48 */waypoints[89].children[4] = 92;
|
||||||
|
/* 0:48 */waypoints[90] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[90].origin = (741.433, 80.7025, -400.823);
|
||||||
|
/* 0:48 */waypoints[90].type = "stand";
|
||||||
|
/* 0:48 */waypoints[90].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[90].children[0] = 89;
|
||||||
|
/* 0:48 */waypoints[90].children[1] = 91;
|
||||||
|
/* 0:48 */waypoints[90].children[2] = 88;
|
||||||
|
/* 0:48 */waypoints[90].children[3] = 95;
|
||||||
|
/* 0:48 */waypoints[90].children[4] = 129;
|
||||||
|
/* 0:48 */waypoints[91] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[91].origin = (994.47, -194.488, -402.978);
|
||||||
|
/* 0:48 */waypoints[91].type = "stand";
|
||||||
|
/* 0:48 */waypoints[91].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[91].children[0] = 90;
|
||||||
|
/* 0:48 */waypoints[91].children[1] = 92;
|
||||||
|
/* 0:48 */waypoints[91].children[2] = 17;
|
||||||
|
/* 0:48 */waypoints[91].children[3] = 93;
|
||||||
|
/* 0:48 */waypoints[92] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[92].origin = (1117.71, -99.9487, -401.085);
|
||||||
|
/* 0:48 */waypoints[92].type = "stand";
|
||||||
|
/* 0:48 */waypoints[92].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[92].children[0] = 91;
|
||||||
|
/* 0:48 */waypoints[92].children[1] = 14;
|
||||||
|
/* 0:48 */waypoints[92].children[2] = 89;
|
||||||
|
/* 0:48 */waypoints[92].children[3] = 15;
|
||||||
|
/* 0:48 */waypoints[93] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[93].origin = (863.089, -314.854, -397.504);
|
||||||
|
/* 0:48 */waypoints[93].type = "stand";
|
||||||
|
/* 0:48 */waypoints[93].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[93].children[0] = 91;
|
||||||
|
/* 0:48 */waypoints[93].children[1] = 94;
|
||||||
|
/* 0:48 */waypoints[93].children[2] = 18;
|
||||||
|
/* 0:48 */waypoints[93].children[3] = 17;
|
||||||
|
/* 0:48 */waypoints[93].children[4] = 128;
|
||||||
|
/* 0:48 */waypoints[93].children[5] = 129;
|
||||||
|
/* 0:48 */waypoints[94] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[94].origin = (587.945, -193.994, -394.219);
|
||||||
|
/* 0:48 */waypoints[94].type = "stand";
|
||||||
|
/* 0:48 */waypoints[94].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[94].children[0] = 93;
|
||||||
|
/* 0:48 */waypoints[94].children[1] = 21;
|
||||||
|
/* 0:48 */waypoints[94].children[2] = 95;
|
||||||
|
/* 0:48 */waypoints[94].children[3] = 128;
|
||||||
|
/* 0:48 */waypoints[95] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[95].origin = (496.864, 30.3787, -395.699);
|
||||||
|
/* 0:48 */waypoints[95].type = "stand";
|
||||||
|
/* 0:48 */waypoints[95].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[95].children[0] = 94;
|
||||||
|
/* 0:48 */waypoints[95].children[1] = 87;
|
||||||
|
/* 0:48 */waypoints[95].children[2] = 90;
|
||||||
|
/* 0:48 */waypoints[95].children[3] = 21;
|
||||||
|
/* 0:48 */waypoints[95].children[4] = 107;
|
||||||
|
/* 0:48 */waypoints[95].children[5] = 129;
|
||||||
|
/* 0:48 */waypoints[96] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[96].origin = (167.797, 177.289, -390.375);
|
||||||
|
/* 0:48 */waypoints[96].type = "stand";
|
||||||
|
/* 0:48 */waypoints[96].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[96].children[0] = 22;
|
||||||
|
/* 0:48 */waypoints[96].children[1] = 24;
|
||||||
|
/* 0:48 */waypoints[97] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[97].origin = (-383.358, -92.625, -401.699);
|
||||||
|
/* 0:48 */waypoints[97].type = "climb";
|
||||||
|
/* 0:48 */waypoints[97].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[97].children[0] = 28;
|
||||||
|
/* 0:48 */waypoints[97].children[1] = 98;
|
||||||
|
/* 0:48 */waypoints[97].angles = (1.11511, -65.4066, 0);
|
||||||
|
/* 0:48 */waypoints[98] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[98].origin = (-382.828, -93.9653, -179.875);
|
||||||
|
/* 0:48 */waypoints[98].type = "climb";
|
||||||
|
/* 0:48 */waypoints[98].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[98].children[0] = 97;
|
||||||
|
/* 0:48 */waypoints[98].children[1] = 99;
|
||||||
|
/* 0:48 */waypoints[98].angles = (-6.50269, -63.3796, 0);
|
||||||
|
/* 0:48 */waypoints[99] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[99].origin = (-340.253, -163.489, -194.375);
|
||||||
|
/* 0:48 */waypoints[99].type = "stand";
|
||||||
|
/* 0:48 */waypoints[99].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[99].children[0] = 98;
|
||||||
|
/* 0:48 */waypoints[99].children[1] = 100;
|
||||||
|
/* 0:48 */waypoints[100] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[100].origin = (-275.16, -140.512, -194.375);
|
||||||
|
/* 0:48 */waypoints[100].type = "stand";
|
||||||
|
/* 0:48 */waypoints[100].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[100].children[0] = 99;
|
||||||
|
/* 0:48 */waypoints[100].children[1] = 101;
|
||||||
|
/* 0:48 */waypoints[101] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[101].origin = (-305.948, 98.6066, -194.375);
|
||||||
|
/* 0:48 */waypoints[101].type = "stand";
|
||||||
|
/* 0:48 */waypoints[101].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[101].children[0] = 100;
|
||||||
|
/* 0:48 */waypoints[101].children[1] = 102;
|
||||||
|
/* 0:48 */waypoints[102] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[102].origin = (-122.798, 309.559, -194.375);
|
||||||
|
/* 0:48 */waypoints[102].type = "stand";
|
||||||
|
/* 0:48 */waypoints[102].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[102].children[0] = 101;
|
||||||
|
/* 0:48 */waypoints[102].children[1] = 103;
|
||||||
|
/* 0:48 */waypoints[103] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[103].origin = (133.673, 380.693, -194.375);
|
||||||
|
/* 0:48 */waypoints[103].type = "stand";
|
||||||
|
/* 0:48 */waypoints[103].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[103].children[0] = 102;
|
||||||
|
/* 0:48 */waypoints[103].children[1] = 104;
|
||||||
|
/* 0:48 */waypoints[104] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[104].origin = (325.663, 330.752, -194.375);
|
||||||
|
/* 0:48 */waypoints[104].type = "stand";
|
||||||
|
/* 0:48 */waypoints[104].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[104].children[0] = 103;
|
||||||
|
/* 0:48 */waypoints[104].children[1] = 105;
|
||||||
|
/* 0:48 */waypoints[105] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[105].origin = (445.029, 167.173, -194.375);
|
||||||
|
/* 0:48 */waypoints[105].type = "stand";
|
||||||
|
/* 0:48 */waypoints[105].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[105].children[0] = 104;
|
||||||
|
/* 0:48 */waypoints[105].children[1] = 106;
|
||||||
|
/* 0:48 */waypoints[106] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[106].origin = (468.042, 105.494, -179.875);
|
||||||
|
/* 0:48 */waypoints[106].type = "climb";
|
||||||
|
/* 0:48 */waypoints[106].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[106].children[0] = 105;
|
||||||
|
/* 0:48 */waypoints[106].children[1] = 107;
|
||||||
|
/* 0:48 */waypoints[106].angles = (-1.026, 115.725, 0);
|
||||||
|
/* 0:48 */waypoints[107] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[107].origin = (471.229, 103.116, -395.515);
|
||||||
|
/* 0:48 */waypoints[107].type = "climb";
|
||||||
|
/* 0:48 */waypoints[107].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[107].children[0] = 106;
|
||||||
|
/* 0:48 */waypoints[107].children[1] = 95;
|
||||||
|
/* 0:48 */waypoints[107].angles = (2.92908, 115.011, 0);
|
||||||
|
/* 0:48 */waypoints[108] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[108].origin = (642.994, 983.978, -317.816);
|
||||||
|
/* 0:48 */waypoints[108].type = "stand";
|
||||||
|
/* 0:48 */waypoints[108].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[108].children[0] = 55;
|
||||||
|
/* 0:48 */waypoints[108].children[1] = 53;
|
||||||
|
/* 0:48 */waypoints[108].children[2] = 136;
|
||||||
|
/* 0:48 */waypoints[108].children[3] = 137;
|
||||||
|
/* 0:48 */waypoints[109] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[109].origin = (-243.877, 963.082, -283.192);
|
||||||
|
/* 0:48 */waypoints[109].type = "stand";
|
||||||
|
/* 0:48 */waypoints[109].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[109].children[0] = 50;
|
||||||
|
/* 0:48 */waypoints[109].children[1] = 110;
|
||||||
|
/* 0:48 */waypoints[109].children[2] = 130;
|
||||||
|
/* 0:48 */waypoints[109].children[3] = 134;
|
||||||
|
/* 0:48 */waypoints[109].children[4] = 121;
|
||||||
|
/* 0:48 */waypoints[109].children[5] = 52;
|
||||||
|
/* 0:48 */waypoints[110] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[110].origin = (205.911, 883.668, -307.23);
|
||||||
|
/* 0:48 */waypoints[110].type = "stand";
|
||||||
|
/* 0:48 */waypoints[110].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[110].children[0] = 109;
|
||||||
|
/* 0:48 */waypoints[110].children[1] = 51;
|
||||||
|
/* 0:48 */waypoints[110].children[2] = 111;
|
||||||
|
/* 0:48 */waypoints[110].children[3] = 50;
|
||||||
|
/* 0:48 */waypoints[111] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[111].origin = (-84.5282, 700.434, -344.46);
|
||||||
|
/* 0:48 */waypoints[111].type = "stand";
|
||||||
|
/* 0:48 */waypoints[111].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[111].children[0] = 110;
|
||||||
|
/* 0:48 */waypoints[111].children[1] = 112;
|
||||||
|
/* 0:48 */waypoints[112] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[112].origin = (-115.248, 554.238, -371.893);
|
||||||
|
/* 0:48 */waypoints[112].type = "stand";
|
||||||
|
/* 0:48 */waypoints[112].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[112].children[0] = 111;
|
||||||
|
/* 0:48 */waypoints[112].children[1] = 113;
|
||||||
|
/* 0:48 */waypoints[112].children[2] = 114;
|
||||||
|
/* 0:48 */waypoints[112].children[3] = 127;
|
||||||
|
/* 0:48 */waypoints[113] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[113].origin = (68.356, 381.081, -379.74);
|
||||||
|
/* 0:48 */waypoints[113].type = "stand";
|
||||||
|
/* 0:48 */waypoints[113].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[113].children[0] = 112;
|
||||||
|
/* 0:48 */waypoints[113].children[1] = 25;
|
||||||
|
/* 0:48 */waypoints[114] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[114].origin = (-370.804, 550.571, -384.103);
|
||||||
|
/* 0:48 */waypoints[114].type = "stand";
|
||||||
|
/* 0:48 */waypoints[114].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[114].children[0] = 112;
|
||||||
|
/* 0:48 */waypoints[114].children[1] = 115;
|
||||||
|
/* 0:48 */waypoints[114].children[2] = 118;
|
||||||
|
/* 0:48 */waypoints[115] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[115].origin = (-622.699, 491.826, -399.676);
|
||||||
|
/* 0:48 */waypoints[115].type = "stand";
|
||||||
|
/* 0:48 */waypoints[115].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[115].children[0] = 114;
|
||||||
|
/* 0:48 */waypoints[115].children[1] = 116;
|
||||||
|
/* 0:48 */waypoints[116] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[116].origin = (-636.888, 301.869, -417.383);
|
||||||
|
/* 0:48 */waypoints[116].type = "stand";
|
||||||
|
/* 0:48 */waypoints[116].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[116].children[0] = 115;
|
||||||
|
/* 0:48 */waypoints[116].children[1] = 32;
|
||||||
|
/* 0:48 */waypoints[116].children[2] = 26;
|
||||||
|
/* 0:48 */waypoints[116].children[3] = 118;
|
||||||
|
/* 0:48 */waypoints[116].children[4] = 25;
|
||||||
|
/* 0:48 */waypoints[116].children[5] = 33;
|
||||||
|
/* 0:48 */waypoints[117] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[117].origin = (-636.804, 44.4847, -413.49);
|
||||||
|
/* 0:48 */waypoints[117].type = "stand";
|
||||||
|
/* 0:48 */waypoints[117].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[117].children[0] = 29;
|
||||||
|
/* 0:48 */waypoints[117].children[1] = 32;
|
||||||
|
/* 0:48 */waypoints[117].children[2] = 118;
|
||||||
|
/* 0:48 */waypoints[117].children[3] = 30;
|
||||||
|
/* 0:48 */waypoints[117].children[4] = 26;
|
||||||
|
/* 0:48 */waypoints[118] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[118].origin = (-404.56, 334.421, -403.183);
|
||||||
|
/* 0:48 */waypoints[118].type = "stand";
|
||||||
|
/* 0:48 */waypoints[118].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[118].children[0] = 117;
|
||||||
|
/* 0:48 */waypoints[118].children[1] = 25;
|
||||||
|
/* 0:48 */waypoints[118].children[2] = 116;
|
||||||
|
/* 0:48 */waypoints[118].children[3] = 114;
|
||||||
|
/* 0:48 */waypoints[118].children[4] = 127;
|
||||||
|
/* 0:48 */waypoints[119] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[119].origin = (-423.306, 1480.43, -275.509);
|
||||||
|
/* 0:48 */waypoints[119].type = "stand";
|
||||||
|
/* 0:48 */waypoints[119].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[119].children[0] = 44;
|
||||||
|
/* 0:48 */waypoints[119].children[1] = 120;
|
||||||
|
/* 0:48 */waypoints[119].children[2] = 121;
|
||||||
|
/* 0:48 */waypoints[119].children[3] = 122;
|
||||||
|
/* 0:48 */waypoints[119].children[4] = 123;
|
||||||
|
/* 0:48 */waypoints[120] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[120].origin = (-206.077, 1495.28, -290.875);
|
||||||
|
/* 0:48 */waypoints[120].type = "stand";
|
||||||
|
/* 0:48 */waypoints[120].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[120].children[0] = 119;
|
||||||
|
/* 0:48 */waypoints[120].children[1] = 48;
|
||||||
|
/* 0:48 */waypoints[120].children[2] = 46;
|
||||||
|
/* 0:48 */waypoints[120].children[3] = 121;
|
||||||
|
/* 0:48 */waypoints[120].children[4] = 44;
|
||||||
|
/* 0:48 */waypoints[121] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[121].origin = (-434.805, 1124.8, -295.25);
|
||||||
|
/* 0:48 */waypoints[121].type = "stand";
|
||||||
|
/* 0:48 */waypoints[121].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[121].children[0] = 120;
|
||||||
|
/* 0:48 */waypoints[121].children[1] = 119;
|
||||||
|
/* 0:48 */waypoints[121].children[2] = 109;
|
||||||
|
/* 0:48 */waypoints[121].children[3] = 134;
|
||||||
|
/* 0:48 */waypoints[121].children[4] = 123;
|
||||||
|
/* 0:48 */waypoints[121].children[5] = 133;
|
||||||
|
/* 0:48 */waypoints[122] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[122].origin = (-831.922, 1428.51, -258.958);
|
||||||
|
/* 0:48 */waypoints[122].type = "stand";
|
||||||
|
/* 0:48 */waypoints[122].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[122].children[0] = 119;
|
||||||
|
/* 0:48 */waypoints[122].children[1] = 123;
|
||||||
|
/* 0:48 */waypoints[123] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[123].origin = (-739.076, 1099.4, -362.637);
|
||||||
|
/* 0:48 */waypoints[123].type = "stand";
|
||||||
|
/* 0:48 */waypoints[123].childCount = 6;
|
||||||
|
/* 0:48 */waypoints[123].children[0] = 122;
|
||||||
|
/* 0:48 */waypoints[123].children[1] = 124;
|
||||||
|
/* 0:48 */waypoints[123].children[2] = 133;
|
||||||
|
/* 0:48 */waypoints[123].children[3] = 121;
|
||||||
|
/* 0:48 */waypoints[123].children[4] = 119;
|
||||||
|
/* 0:48 */waypoints[123].children[5] = 134;
|
||||||
|
/* 0:48 */waypoints[124] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[124].origin = (-948.116, 1043.17, -423.777);
|
||||||
|
/* 0:48 */waypoints[124].type = "stand";
|
||||||
|
/* 0:48 */waypoints[124].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[124].children[0] = 123;
|
||||||
|
/* 0:48 */waypoints[124].children[1] = 35;
|
||||||
|
/* 0:48 */waypoints[124].children[2] = 126;
|
||||||
|
/* 0:48 */waypoints[125] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[125].origin = (-1231.56, 1184.14, -435.875);
|
||||||
|
/* 0:48 */waypoints[125].type = "stand";
|
||||||
|
/* 0:48 */waypoints[125].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[125].children[0] = 35;
|
||||||
|
/* 0:48 */waypoints[125].children[1] = 39;
|
||||||
|
/* 0:48 */waypoints[126] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[126].origin = (-1034.11, 1238.07, -427.875);
|
||||||
|
/* 0:48 */waypoints[126].type = "stand";
|
||||||
|
/* 0:48 */waypoints[126].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[126].children[0] = 40;
|
||||||
|
/* 0:48 */waypoints[126].children[1] = 124;
|
||||||
|
/* 0:48 */waypoints[127] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[127].origin = (-155.102, 413.338, -393.544);
|
||||||
|
/* 0:48 */waypoints[127].type = "stand";
|
||||||
|
/* 0:48 */waypoints[127].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[127].children[0] = 118;
|
||||||
|
/* 0:48 */waypoints[127].children[1] = 112;
|
||||||
|
/* 0:48 */waypoints[127].children[2] = 25;
|
||||||
|
/* 0:48 */waypoints[128] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[128].origin = (658.248, -367.854, -394.062);
|
||||||
|
/* 0:48 */waypoints[128].type = "stand";
|
||||||
|
/* 0:48 */waypoints[128].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[128].children[0] = 20;
|
||||||
|
/* 0:48 */waypoints[128].children[1] = 94;
|
||||||
|
/* 0:48 */waypoints[128].children[2] = 18;
|
||||||
|
/* 0:48 */waypoints[128].children[3] = 93;
|
||||||
|
/* 0:48 */waypoints[129] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[129].origin = (663.152, -20.8519, -397.814);
|
||||||
|
/* 0:48 */waypoints[129].type = "stand";
|
||||||
|
/* 0:48 */waypoints[129].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[129].children[0] = 93;
|
||||||
|
/* 0:48 */waypoints[129].children[1] = 90;
|
||||||
|
/* 0:48 */waypoints[129].children[2] = 95;
|
||||||
|
/* 0:48 */waypoints[130] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[130].origin = (-294.536, 678.959, -279.34);
|
||||||
|
/* 0:48 */waypoints[130].type = "stand";
|
||||||
|
/* 0:48 */waypoints[130].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[130].children[0] = 109;
|
||||||
|
/* 0:48 */waypoints[130].children[1] = 131;
|
||||||
|
/* 0:48 */waypoints[131] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[131].origin = (-433.7, 636.783, -278.302);
|
||||||
|
/* 0:48 */waypoints[131].type = "stand";
|
||||||
|
/* 0:48 */waypoints[131].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[131].children[0] = 130;
|
||||||
|
/* 0:48 */waypoints[131].children[1] = 132;
|
||||||
|
/* 0:48 */waypoints[131].children[2] = 134;
|
||||||
|
/* 0:48 */waypoints[132] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[132].origin = (-617.004, 606.418, -272.533);
|
||||||
|
/* 0:48 */waypoints[132].type = "stand";
|
||||||
|
/* 0:48 */waypoints[132].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[132].children[0] = 131;
|
||||||
|
/* 0:48 */waypoints[132].children[1] = 133;
|
||||||
|
/* 0:48 */waypoints[133] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[133].origin = (-662.596, 900.245, -292.093);
|
||||||
|
/* 0:48 */waypoints[133].type = "stand";
|
||||||
|
/* 0:48 */waypoints[133].childCount = 4;
|
||||||
|
/* 0:48 */waypoints[133].children[0] = 132;
|
||||||
|
/* 0:48 */waypoints[133].children[1] = 123;
|
||||||
|
/* 0:48 */waypoints[133].children[2] = 134;
|
||||||
|
/* 0:48 */waypoints[133].children[3] = 121;
|
||||||
|
/* 0:48 */waypoints[134] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[134].origin = (-453.665, 953.718, -282.675);
|
||||||
|
/* 0:48 */waypoints[134].type = "stand";
|
||||||
|
/* 0:48 */waypoints[134].childCount = 5;
|
||||||
|
/* 0:48 */waypoints[134].children[0] = 133;
|
||||||
|
/* 0:48 */waypoints[134].children[1] = 109;
|
||||||
|
/* 0:48 */waypoints[134].children[2] = 121;
|
||||||
|
/* 0:48 */waypoints[134].children[3] = 131;
|
||||||
|
/* 0:48 */waypoints[134].children[4] = 123;
|
||||||
|
/* 0:48 */waypoints[135] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[135].origin = (-23.1219, 1462.42, -290.875);
|
||||||
|
/* 0:48 */waypoints[135].type = "stand";
|
||||||
|
/* 0:48 */waypoints[135].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[135].children[0] = 50;
|
||||||
|
/* 0:48 */waypoints[135].children[1] = 48;
|
||||||
|
/* 0:48 */waypoints[135].children[2] = 49;
|
||||||
|
/* 0:48 */waypoints[136] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[136].origin = (444.563, 995.776, -317.715);
|
||||||
|
/* 0:48 */waypoints[136].type = "stand";
|
||||||
|
/* 0:48 */waypoints[136].childCount = 3;
|
||||||
|
/* 0:48 */waypoints[136].children[0] = 108;
|
||||||
|
/* 0:48 */waypoints[136].children[1] = 52;
|
||||||
|
/* 0:48 */waypoints[136].children[2] = 137;
|
||||||
|
/* 0:48 */waypoints[137] = spawnstruct();
|
||||||
|
/* 0:48 */waypoints[137].origin = (618.363, 856.493, -314.043);
|
||||||
|
/* 0:48 */waypoints[137].type = "stand";
|
||||||
|
/* 0:48 */waypoints[137].childCount = 2;
|
||||||
|
/* 0:48 */waypoints[137].children[0] = 108;
|
||||||
|
/* 0:48 */waypoints[137].children[1] = 136;
|
||||||
|
/* 0:48 */return waypoints;
|
||||||
|
}
|
@ -5,7 +5,8 @@ init()
|
|||||||
{
|
{
|
||||||
level thread onPlayerConnect();
|
level thread onPlayerConnect();
|
||||||
|
|
||||||
level thread maps\mp\bots\_bot::init();
|
//level thread maps\mp\bots\_bot::init();
|
||||||
|
level thread maps\mp\bots\_wp_editor::init();
|
||||||
}
|
}
|
||||||
|
|
||||||
onPlayerConnect()
|
onPlayerConnect()
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
game:onplayerdamage(function(_self, inflictor, attacker, damage, dflags, mod, weapon, point, dir, hitloc)
|
|
||||||
if (game:isplayer(attacker) ~= 1 or _self.sessionteam == attacker.sessionteam or _self == attacker) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local huddamage = game:newclienthudelem(attacker)
|
|
||||||
huddamage.alignx = "center"
|
|
||||||
huddamage.horzalign = "center"
|
|
||||||
huddamage.x = 10
|
|
||||||
huddamage.y = 235
|
|
||||||
huddamage.fontscale = 1.6
|
|
||||||
huddamage.font = "objective"
|
|
||||||
huddamage:setvalue(damage)
|
|
||||||
|
|
||||||
if (hitloc == "head") then
|
|
||||||
huddamage.color = vector:new(1, 1, 0.25)
|
|
||||||
end
|
|
||||||
|
|
||||||
huddamage:moveovertime(1)
|
|
||||||
huddamage:fadeovertime(1)
|
|
||||||
huddamage.alpha = 0
|
|
||||||
huddamage.x = math.random(25, 70)
|
|
||||||
huddamage.y = 235 + math.random(25, 70) * (math.random(0, 1) == 1 and -1 or 1)
|
|
||||||
|
|
||||||
game:ontimeout(function()
|
|
||||||
huddamage:destroy()
|
|
||||||
end, 1000)
|
|
||||||
end)
|
|
@ -1,24 +0,0 @@
|
|||||||
init()
|
|
||||||
{
|
|
||||||
level thread onConnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
onConnect()
|
|
||||||
{
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
level waittill("connected", player);
|
|
||||||
|
|
||||||
player thread connected();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
connected()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
level:onnotify("connected", function(player)
|
|
||||||
print("Player connected: " .. player.name)
|
|
||||||
|
|
||||||
local onframe = game:oninterval(function()
|
|
||||||
if game:isalive(player) == 0 or not player:getguid():find("^bot") then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
game:setdvar("bot" .. player:getentitynumber() .. "_buttons", game:randomintrange(0, 16384))
|
|
||||||
game:setdvar("bot" .. player:getentitynumber() .. "_movement", game:randomintrange(-127, 127) .. " " .. game:randomintrange(-127, 127))
|
|
||||||
game:setdvar("bot" .. player:getentitynumber() .. "_ping", game:randomintrange(0, 999))
|
|
||||||
|
|
||||||
local weapons = player:getweaponslistall()
|
|
||||||
|
|
||||||
game:setdvar("bot" .. player:getentitynumber() .. "_weapon", weapons[1 + game:randomint(weapons.getkeys():size())])
|
|
||||||
|
|
||||||
player:setplayerangles(vector:new(game:randomfloatrange(-180, 180), game:randomfloatrange(-180, 180), 0))
|
|
||||||
end, 50)
|
|
||||||
|
|
||||||
player:onnotifyonce("disconnect", function()
|
|
||||||
onframe:clear()
|
|
||||||
end)
|
|
||||||
end)
|
|
Loading…
x
Reference in New Issue
Block a user