mirror of
https://github.com/ineedbots/iw2_bot_warfare.git
synced 2026-09-21 20:47:06 +00:00
Compare commits
15
Commits
fdeda6095e
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
225950c693 | ||
|
|
b0e3e1d384 | ||
|
|
b63b9544d1 | ||
|
|
1f54b30423 | ||
|
|
14d253445b | ||
|
|
e07fa6ad6d | ||
|
|
f1a24027d8 | ||
|
|
94bf78b364 | ||
|
|
171d9e8e90 | ||
|
|
9c647cbe79 | ||
|
|
c6c87aabca | ||
|
|
538bb3f790 | ||
|
|
6afd9b56df | ||
|
|
956f3fafde | ||
|
|
a090088ab4 |
Vendored
+1
@@ -11,5 +11,6 @@
|
||||
"comments": true,
|
||||
"strings": true
|
||||
},
|
||||
"editor.wordBasedSuggestions": "allDocuments",
|
||||
"vscode-codscript.use_builtin_completionItems": false
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# IW2 Bot Warfare
|
||||
|
||||
Bot Warfare for CoD2, in progress...
|
||||
Bot Warfare for CoD2.
|
||||
|
||||
TODO:
|
||||
- _bot_script
|
||||
- _menu
|
||||
- _bot_chat
|
||||
- docs
|
||||
|
||||
+37
-1
@@ -369,6 +369,8 @@ hook_callbacks()
|
||||
*/
|
||||
fixGamemodes()
|
||||
{
|
||||
level.gametype = getcvar( "g_gametype" );
|
||||
|
||||
for ( i = 0; i < 19; i++ )
|
||||
{
|
||||
wait 0.05;
|
||||
@@ -388,6 +390,7 @@ onPlayerConnect()
|
||||
player thread connected();
|
||||
player thread onDeath();
|
||||
player thread watchWeapons();
|
||||
player thread watchGrenades();
|
||||
player thread watchVelocity();
|
||||
player thread watchVars();
|
||||
player thread doPlayerModelFix();
|
||||
@@ -405,6 +408,39 @@ doPlayerModelFix()
|
||||
self.bot_model_fix = true;
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2
|
||||
*/
|
||||
watchGrenades()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
grenadeTypes = getGrenadeTypes();
|
||||
grenadeAmmoCount = [];
|
||||
|
||||
for ( i = 0; i < grenadeTypes.size; i++ )
|
||||
{
|
||||
grenadeAmmoCount[ i ] = 0;
|
||||
}
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
for ( i = 0; i < grenadeTypes.size; i++ )
|
||||
{
|
||||
frac = self getAmmoCount( grenadeTypes[ i ] );
|
||||
oldFrac = grenadeAmmoCount[ i ];
|
||||
grenadeAmmoCount[ i ] = frac;
|
||||
|
||||
if ( frac < oldFrac && isalive( self ) )
|
||||
{
|
||||
self notify( "grenade_fire", undefined, grenadeTypes[ i ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2
|
||||
*/
|
||||
@@ -596,7 +632,7 @@ connected()
|
||||
level.bots[ level.bots.size ] = self;
|
||||
self thread onDisconnect();
|
||||
self thread watchBotDebugEvent();
|
||||
|
||||
|
||||
waittillframeend; // wait for waittills to process
|
||||
level notify( "bot_connected", self );
|
||||
}
|
||||
|
||||
+54
-501
@@ -5,9 +5,7 @@
|
||||
Does bot chatter.
|
||||
*/
|
||||
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
#include maps\mp\bots\_bot_utility;
|
||||
|
||||
/*
|
||||
@@ -15,9 +13,9 @@
|
||||
*/
|
||||
init()
|
||||
{
|
||||
if ( getdvar( "bots_main_chat" ) == "" )
|
||||
if ( getcvar( "bots_main_chat" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_chat", 1.0 );
|
||||
setcvar( "bots_main_chat", 1.0 );
|
||||
}
|
||||
|
||||
level thread onBotConnected();
|
||||
@@ -41,7 +39,7 @@ onBotConnected()
|
||||
*/
|
||||
BotDoChat( chance, string, isTeam )
|
||||
{
|
||||
mod = getdvarfloat( "bots_main_chat" );
|
||||
mod = getcvarfloat( "bots_main_chat" );
|
||||
|
||||
if ( mod <= 0.0 )
|
||||
{
|
||||
@@ -88,7 +86,7 @@ start_death_watch()
|
||||
{
|
||||
self waittill( "death" );
|
||||
|
||||
self thread bot_chat_death_watch( self.lastattacker, self.bots_lastks );
|
||||
self thread bot_chat_death_watch( self.lastkiller, self.bots_lastks );
|
||||
|
||||
self.bots_lastks = 0;
|
||||
}
|
||||
@@ -169,10 +167,6 @@ start_chat_watch()
|
||||
|
||||
switch ( msg )
|
||||
{
|
||||
case "revive":
|
||||
self thread bot_chat_revive_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "killcam":
|
||||
self thread bot_chat_killcam_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
@@ -181,18 +175,6 @@ start_chat_watch()
|
||||
self thread bot_chat_stuck_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "tube":
|
||||
self thread bot_chat_tube_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "killstreak":
|
||||
self thread bot_chat_killstreak_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "attack_vehicle":
|
||||
self thread bot_chat_attack_vehicle_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "follow_threat":
|
||||
self thread bot_chat_follow_threat_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
@@ -205,18 +187,10 @@ start_chat_watch()
|
||||
self thread bot_chat_follow_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "equ":
|
||||
self thread bot_chat_equ_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "nade":
|
||||
self thread bot_chat_nade_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "throwback":
|
||||
self thread bot_chat_throwback_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "rage":
|
||||
self thread bot_chat_rage_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
@@ -237,22 +211,10 @@ start_chat_watch()
|
||||
self thread bot_chat_uav_target_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "attack_equ":
|
||||
self thread bot_chat_attack_equ_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "dom":
|
||||
self thread bot_chat_dom_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "hq":
|
||||
self thread bot_chat_hq_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "sab":
|
||||
self thread bot_chat_sab_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "sd":
|
||||
self thread bot_chat_sd_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
@@ -261,18 +223,10 @@ start_chat_watch()
|
||||
self thread bot_chat_cap_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "twar":
|
||||
self thread bot_chat_twar_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "attack_dog":
|
||||
self thread bot_chat_attack_dog_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "connection":
|
||||
self thread bot_chat_connection_player_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
|
||||
case "chat":
|
||||
self thread bot_chat_chat_player_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
@@ -316,7 +270,7 @@ start_startgame_watch()
|
||||
|
||||
switch ( level.gametype )
|
||||
{
|
||||
case "war":
|
||||
case "tdm":
|
||||
switch ( randomint( 3 ) )
|
||||
{
|
||||
case 0:
|
||||
@@ -334,24 +288,6 @@ start_startgame_watch()
|
||||
|
||||
break;
|
||||
|
||||
case "dom":
|
||||
switch ( randomint( 3 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 7, "Yaaayy!! I LOVE DOMINATION!!!!" );
|
||||
break;
|
||||
|
||||
case 1:
|
||||
self BotDoChat( 7, "Lets cap the flags and them." );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
self BotDoChat( 7, "Yeeeesss master..." );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "sd":
|
||||
switch ( randomint( 3 ) )
|
||||
{
|
||||
@@ -370,24 +306,6 @@ start_startgame_watch()
|
||||
|
||||
break;
|
||||
|
||||
case "sab":
|
||||
switch ( randomint( 3 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 7, "Soccer/Football! Lets play it!" );
|
||||
break;
|
||||
|
||||
case 1:
|
||||
self BotDoChat( 7, "Who plays sab these days." );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
self BotDoChat( 7, "I do not know what to say." );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "dm":
|
||||
switch ( randomint( 3 ) )
|
||||
{
|
||||
@@ -406,7 +324,7 @@ start_startgame_watch()
|
||||
|
||||
break;
|
||||
|
||||
case "koth":
|
||||
case "hq":
|
||||
self BotDoChat( 7, "HQ TIME!" );
|
||||
break;
|
||||
}
|
||||
@@ -426,42 +344,41 @@ doQuickMessage()
|
||||
soundalias = "";
|
||||
saytext = "";
|
||||
wait 2;
|
||||
self.spamdelay = true;
|
||||
|
||||
switch ( randomint( 11 ) )
|
||||
switch ( randomint( 4 ) )
|
||||
{
|
||||
case 4 :
|
||||
soundalias = "mp_cmd_suppressfire";
|
||||
saytext = "Suppressing fire!";
|
||||
case 0:
|
||||
soundalias = "quickcommands";
|
||||
saytext = ( randomint( 8 ) + 1 ) + "";
|
||||
break;
|
||||
|
||||
case 5 :
|
||||
soundalias = "mp_cmd_followme";
|
||||
saytext = "Follow Me!";
|
||||
case 1:
|
||||
soundalias = "quickstatements";
|
||||
saytext = ( randomint( 8 ) + 1 ) + "";
|
||||
break;
|
||||
|
||||
case 6 :
|
||||
soundalias = "mp_stm_enemyspotted";
|
||||
saytext = "Enemy spotted!";
|
||||
break;
|
||||
|
||||
case 7 :
|
||||
soundalias = "mp_cmd_fallback";
|
||||
saytext = "Fall back!";
|
||||
break;
|
||||
|
||||
case 8 :
|
||||
soundalias = "mp_stm_needreinforcements";
|
||||
saytext = "Need reinforcements!";
|
||||
case 2:
|
||||
soundalias = "quickresponses";
|
||||
saytext = ( randomint( 7 ) + 1 ) + "";
|
||||
break;
|
||||
}
|
||||
|
||||
if ( soundalias != "" && saytext != "" )
|
||||
{
|
||||
self maps\mp\gametypes\_quickmessages::saveheadicon();
|
||||
self maps\mp\gametypes\_quickmessages::doquickmessage( soundalias, saytext );
|
||||
wait 2;
|
||||
self maps\mp\gametypes\_quickmessages::restoreheadicon();
|
||||
switch ( soundalias )
|
||||
{
|
||||
case "quickcommands":
|
||||
self maps\mp\gametypes\_quickmessages::quickcommands( saytext );
|
||||
break;
|
||||
|
||||
case "quickstatements":
|
||||
self maps\mp\gametypes\_quickmessages::quickstatements( saytext );
|
||||
break;
|
||||
|
||||
case "quickresponses":
|
||||
self maps\mp\gametypes\_quickmessages::quickresponses( saytext );
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -471,7 +388,6 @@ doQuickMessage()
|
||||
}
|
||||
}
|
||||
|
||||
self.spamdelay = undefined;
|
||||
wait randomint( 5 );
|
||||
self.talking = false;
|
||||
}
|
||||
@@ -494,22 +410,33 @@ endgame_chat()
|
||||
{
|
||||
player = level.players[ i ];
|
||||
|
||||
if ( player.pers[ "score" ] > b )
|
||||
if ( player.score > b )
|
||||
{
|
||||
winner = player;
|
||||
b = player.pers[ "score" ];
|
||||
b = player.score;
|
||||
}
|
||||
|
||||
if ( player.pers[ "score" ] < w )
|
||||
if ( player.score < w )
|
||||
{
|
||||
loser = player;
|
||||
w = player.pers[ "score" ];
|
||||
w = player.score;
|
||||
}
|
||||
}
|
||||
|
||||
if ( level.teambased )
|
||||
{
|
||||
winningteam = maps\mp\gametypes\_globallogic::getwinningteam();
|
||||
winningteam = "none";
|
||||
alliedscore = getTeamScore( "allies" );
|
||||
axisscore = getTeamScore( "axis" );
|
||||
|
||||
if ( alliedscore > axisscore )
|
||||
{
|
||||
winningteam = "allies";
|
||||
}
|
||||
else if ( axisscore > alliedscore )
|
||||
{
|
||||
winningteam = "axis";
|
||||
}
|
||||
|
||||
if ( self.pers[ "team" ] == winningteam )
|
||||
{
|
||||
@@ -935,23 +862,6 @@ endgame_chat()
|
||||
bot_chat_streak( streakCount )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( streakCount == 7 )
|
||||
{
|
||||
if ( isdefined( self.pers[ "hardPointItem" ] ) && self.pers[ "hardPointItem" ] == "dogs_mp" )
|
||||
{
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 33, "Nice! I acheived the dogs!" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
self BotDoChat( 33, "Huh?? I dont got my dogs :((" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1107,11 +1017,11 @@ bot_chat_killed_watch( victim )
|
||||
break;
|
||||
|
||||
case 34:
|
||||
message = ( "i love " + getMapName( getdvar( "mapname" ) ) + "!" );
|
||||
message = ( "i love " + getMapName( getcvar( "mapname" ) ) + "!" );
|
||||
break;
|
||||
|
||||
case 35:
|
||||
message = ( getMapName( getdvar( "mapname" ) ) + " is my favorite map!" );
|
||||
message = ( getMapName( getcvar( "mapname" ) ) + " is my favorite map!" );
|
||||
break;
|
||||
|
||||
case 36:
|
||||
@@ -1329,7 +1239,7 @@ bot_chat_death_watch( killer, last_ks )
|
||||
break;
|
||||
|
||||
case 40:
|
||||
message = ( "wow " + getMapName( getdvar( "mapname" ) ) + " is messed up" );
|
||||
message = ( "wow " + getMapName( getcvar( "mapname" ) ) + " is messed up" );
|
||||
break;
|
||||
|
||||
case 41:
|
||||
@@ -1373,19 +1283,19 @@ bot_chat_death_watch( killer, last_ks )
|
||||
break;
|
||||
|
||||
case 51:
|
||||
message = ( "lol " + getMapName( getdvar( "mapname" ) ) + " sux" );
|
||||
message = ( "lol " + getMapName( getcvar( "mapname" ) ) + " sux" );
|
||||
break;
|
||||
|
||||
case 52:
|
||||
message = ( "why are we even playing on " + getMapName( getdvar( "mapname" ) ) + "?" );
|
||||
message = ( "why are we even playing on " + getMapName( getcvar( "mapname" ) ) + "?" );
|
||||
break;
|
||||
|
||||
case 53:
|
||||
message = ( getMapName( getdvar( "mapname" ) ) + " is such an unfair map!!" );
|
||||
message = ( getMapName( getcvar( "mapname" ) ) + " is such an unfair map!!" );
|
||||
break;
|
||||
|
||||
case 54:
|
||||
message = ( "what were they thinking when making " + getMapName( getdvar( "mapname" ) ) + "?!" );
|
||||
message = ( "what were they thinking when making " + getMapName( getcvar( "mapname" ) ) + "?!" );
|
||||
break;
|
||||
|
||||
case 55:
|
||||
@@ -1446,47 +1356,6 @@ bot_chat_death_watch( killer, last_ks )
|
||||
self BotDoChat( 8, message );
|
||||
}
|
||||
|
||||
/*
|
||||
Revive
|
||||
*/
|
||||
bot_chat_revive_watch( state, revive, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am going to revive " + revive.name );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am reviving " + revive.name );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i revived " + revive.name );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Killcam
|
||||
*/
|
||||
@@ -1581,73 +1450,6 @@ bot_chat_stuck_watch( a, b, c, d, e, f, g )
|
||||
self BotDoChat( 20, msg );
|
||||
}
|
||||
|
||||
/*
|
||||
Tube
|
||||
*/
|
||||
bot_chat_tube_watch( state, tubeWp, tubeWeap, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am going to go tube" );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i tubed" );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_killstreak_watch( streakName, b, c, d, e, f, g )
|
||||
*/
|
||||
bot_chat_killstreak_watch( state, location, directionYaw, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "call":
|
||||
if ( self.pers[ "hardPointItem" ] == "dogs_mp" )
|
||||
{
|
||||
self BotDoChat( 20, "wewt! i got the dogs!!" );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_attack_vehicle_watch( a, b, c, d, e, f, g )
|
||||
*/
|
||||
bot_chat_attack_vehicle_watch( state, vehicle, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_follow_threat_watch( a, b, c, d, e, f, g )
|
||||
*/
|
||||
@@ -1778,37 +1580,6 @@ bot_chat_follow_watch( state, player, time, d, e, f, g )
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_equ_watch
|
||||
*/
|
||||
bot_chat_equ_watch( state, wp, weap, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "going to place a " + getBaseWeaponName( weap ) );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "placed a " + getBaseWeaponName( weap ) );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_nade_watch
|
||||
*/
|
||||
@@ -1840,37 +1611,6 @@ bot_chat_nade_watch( state, wp, weap, d, e, f, g )
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_throwback_watch
|
||||
*/
|
||||
bot_chat_throwback_watch( state, nade, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am going to throw back the grenade!" );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i threw back the grenade!" );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_tbag_watch
|
||||
*/
|
||||
@@ -2028,73 +1768,6 @@ bot_chat_uav_target_watch( state, heard, c, d, e, f, g )
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_attack_equ_watch
|
||||
*/
|
||||
bot_chat_attack_equ_watch( state, equ, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_dom_watch
|
||||
*/
|
||||
bot_chat_dom_watch( state, sub_state, flag, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( sub_state )
|
||||
{
|
||||
case "spawnkill":
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "defend":
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "cap":
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
break;
|
||||
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_hq_watch
|
||||
*/
|
||||
@@ -2133,83 +1806,6 @@ bot_chat_hq_watch( state, sub_state, c, d, e, f, g )
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_sab_watch
|
||||
*/
|
||||
bot_chat_sab_watch( state, sub_state, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( sub_state )
|
||||
{
|
||||
case "bomb":
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "defuser":
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "planter":
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "plant":
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
break;
|
||||
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "defuse":
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
break;
|
||||
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_sd_watch
|
||||
*/
|
||||
@@ -2341,46 +1937,3 @@ bot_chat_cap_watch( state, sub_state, obj, d, e, f, g )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_twar_watch
|
||||
*/
|
||||
bot_chat_twar_watch( state, sub_state, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( sub_state )
|
||||
{
|
||||
case "cap":
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
break;
|
||||
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
bot_chat_attack_dog_watch
|
||||
*/
|
||||
bot_chat_attack_dog_watch( state, dog, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,11 +164,33 @@ bot_skip_killcam()
|
||||
|
||||
if ( isdefined( self.killcam ) )
|
||||
{
|
||||
self BotNotifyBotEvent( "killcam", "start" );
|
||||
|
||||
wait 0.5 + randomint( 3 );
|
||||
|
||||
wait 0.1;
|
||||
|
||||
self notify( "end_killcam" );
|
||||
|
||||
self BotNotifyBotEvent( "killcam", "stop" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2, hq for example will spawn twice without a death inbetween
|
||||
*/
|
||||
doubleSpawnFix()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self waittill( "spawned_player" );
|
||||
|
||||
waittillframeend;
|
||||
self suicide();
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot spawns.
|
||||
*/
|
||||
@@ -179,6 +201,7 @@ onPlayerSpawned()
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
self thread doubleSpawnFix();
|
||||
|
||||
self resetBotVars();
|
||||
self thread onWeaponChange();
|
||||
@@ -673,8 +696,8 @@ updateAimOffset( obj )
|
||||
if ( diffAimAmount > 0 )
|
||||
{
|
||||
obj.aim_offset_base = ( randomfloatrange( 0 - diffAimAmount, diffAimAmount ),
|
||||
randomfloatrange( 0 - diffAimAmount, diffAimAmount ),
|
||||
randomfloatrange( 0 - diffAimAmount, diffAimAmount ) );
|
||||
randomfloatrange( 0 - diffAimAmount, diffAimAmount ),
|
||||
randomfloatrange( 0 - diffAimAmount, diffAimAmount ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -868,15 +891,15 @@ target_loop()
|
||||
}
|
||||
|
||||
canTargetPlayer = ( ( player checkTraceForBone( myEye, "j_head" ) ||
|
||||
player checkTraceForBone( myEye, "j_ankle_le" ) ||
|
||||
player checkTraceForBone( myEye, "j_ankle_ri" ) )
|
||||
|
||||
&& ( SmokeTrace( myEye, player.origin, level.smokeradius ) ||
|
||||
daDist < level.bots_maxknifedistance * 4 )
|
||||
|
||||
&& ( getConeDot( player.origin, self.origin, myAngles ) >= myFov ||
|
||||
( isObjDef && obj.trace_time ) ) );
|
||||
|
||||
player checkTraceForBone( myEye, "j_ankle_le" ) ||
|
||||
player checkTraceForBone( myEye, "j_ankle_ri" ) )
|
||||
|
||||
&& ( SmokeTrace( myEye, player.origin, level.smokeradius ) ||
|
||||
daDist < level.bots_maxknifedistance * 4 )
|
||||
|
||||
&& ( getConeDot( player.origin, self.origin, myAngles ) >= myFov ||
|
||||
( isObjDef && obj.trace_time ) ) );
|
||||
|
||||
if ( isdefined( self.bot.target_this_frame ) && self.bot.target_this_frame == player )
|
||||
{
|
||||
self.bot.target_this_frame = undefined;
|
||||
@@ -1326,7 +1349,7 @@ aim_loop()
|
||||
|
||||
if ( self.bot.is_cur_sniper )
|
||||
{
|
||||
if ( self.pers[ "bots" ][ "behavior" ][ "quickscope" ] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1000 )
|
||||
if ( self.pers[ "bots" ][ "behavior" ][ "quickscope" ] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1250 )
|
||||
{
|
||||
stopAdsOverride = true;
|
||||
}
|
||||
@@ -1344,7 +1367,7 @@ aim_loop()
|
||||
|
||||
if ( trace_time > reaction_time )
|
||||
{
|
||||
if ( ( !canADS || adsAmount >= 1.0 || self GetStance() == "prone" ) && ( conedot > 0.99 || dist < level.bots_maxknifedistance ) && getcvarint( "bots_play_fire" ) )
|
||||
if ( ( !canADS || adsAmount >= 1.0 || self getStance() == "prone" ) && ( conedot > 0.99 || dist < level.bots_maxknifedistance ) && getcvarint( "bots_play_fire" ) )
|
||||
{
|
||||
self botFire();
|
||||
}
|
||||
@@ -1389,7 +1412,7 @@ aim_loop()
|
||||
|
||||
if ( self.bot.is_cur_sniper )
|
||||
{
|
||||
if ( self.pers[ "bots" ][ "behavior" ][ "quickscope" ] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1000 )
|
||||
if ( self.pers[ "bots" ][ "behavior" ][ "quickscope" ] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1250 )
|
||||
{
|
||||
stopAdsOverride = true;
|
||||
}
|
||||
@@ -1405,7 +1428,7 @@ aim_loop()
|
||||
}
|
||||
}
|
||||
|
||||
if ( ( !canADS || adsAmount >= 1.0 || self GetStance() == "prone" ) && ( conedot > 0.95 || dist < level.bots_maxknifedistance ) && getcvarint( "bots_play_fire" ) )
|
||||
if ( ( !canADS || adsAmount >= 1.0 || self getStance() == "prone" ) && ( conedot > 0.95 || dist < level.bots_maxknifedistance ) && getcvarint( "bots_play_fire" ) )
|
||||
{
|
||||
self botFire();
|
||||
}
|
||||
@@ -1615,7 +1638,7 @@ walk_loop()
|
||||
|
||||
if ( isplayer( self.bot.target.entity ) && self.bot.target.trace_time && self canFire( curweap ) && self isInRange( self.bot.target.dist, curweap ) )
|
||||
{
|
||||
if ( self GetStance() == "prone" || ( self.bot.is_cur_sniper && self playerads() > 0 ) )
|
||||
if ( self getStance() == "prone" || ( self.bot.is_cur_sniper && self playerads() > 0 ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
+1736
-4
File diff suppressed because it is too large
Load Diff
@@ -508,9 +508,9 @@ isInUse()
|
||||
}
|
||||
|
||||
/*
|
||||
Returns a random grenade in the bot's inventory.
|
||||
Get grenades
|
||||
*/
|
||||
getValidGrenade()
|
||||
getGrenadeTypes()
|
||||
{
|
||||
grenadeTypes = [];
|
||||
grenadeTypes[ 0 ] = "frag_grenade_american_mp";
|
||||
@@ -522,6 +522,15 @@ getValidGrenade()
|
||||
grenadeTypes[ 6 ] = "frag_grenade_german_mp";
|
||||
grenadeTypes[ 7 ] = "smoke_grenade_german_mp";
|
||||
|
||||
return grenadeTypes;
|
||||
}
|
||||
|
||||
/*
|
||||
Returns a random grenade in the bot's inventory.
|
||||
*/
|
||||
getValidGrenade()
|
||||
{
|
||||
grenadeTypes = getGrenadeTypes();
|
||||
possibles = [];
|
||||
|
||||
for ( i = 0; i < grenadeTypes.size; i++ )
|
||||
@@ -639,6 +648,27 @@ IsWeaponClipOnly( weap )
|
||||
return issubstr( weap, "grenade_" );
|
||||
}
|
||||
|
||||
/*
|
||||
Set the bot's stance
|
||||
*/
|
||||
BotSetStance( stance )
|
||||
{
|
||||
switch ( stance )
|
||||
{
|
||||
case "stand":
|
||||
self maps\mp\bots\_bot_internal::stand();
|
||||
break;
|
||||
|
||||
case "crouch":
|
||||
self maps\mp\bots\_bot_internal::crouch();
|
||||
break;
|
||||
|
||||
case "prone":
|
||||
self maps\mp\bots\_bot_internal::prone();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2
|
||||
*/
|
||||
@@ -661,6 +691,37 @@ getStance()
|
||||
return "crouch";
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2
|
||||
*/
|
||||
getTimePassed()
|
||||
{
|
||||
if ( !isdefined( level.starttime ) )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ( gettime() - level.starttime );
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2
|
||||
*/
|
||||
getTimeRemaining()
|
||||
{
|
||||
if ( isdefined( level.roundlength ) )
|
||||
{
|
||||
return level.roundlength * 60 * 1000 - getTimePassed();
|
||||
}
|
||||
|
||||
if ( !isdefined( level.timelimit ) )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return level.timelimit * 60 * 1000 - getTimePassed();
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2
|
||||
*/
|
||||
@@ -697,7 +758,7 @@ WeaponIsFullAuto( weap )
|
||||
*/
|
||||
getEyeHeight()
|
||||
{
|
||||
stance = self GetStance();
|
||||
stance = self getStance();
|
||||
|
||||
if ( stance == "prone" )
|
||||
{
|
||||
@@ -1030,6 +1091,25 @@ bot_wait_for_host()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
CoD2
|
||||
*/
|
||||
getotherteam( team )
|
||||
{
|
||||
if ( team == "axis" )
|
||||
{
|
||||
return "allies";
|
||||
}
|
||||
else if ( team == "allies" )
|
||||
{
|
||||
return "axis";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "none";
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Babylonian_method
|
||||
*/
|
||||
@@ -1818,6 +1898,14 @@ getMapName( map )
|
||||
return map;
|
||||
}
|
||||
|
||||
/*
|
||||
CoD4
|
||||
*/
|
||||
getBaseWeaponName( weap )
|
||||
{
|
||||
return strtok( weap, "_" )[ 0 ];
|
||||
}
|
||||
|
||||
/*
|
||||
cod2
|
||||
*/
|
||||
|
||||
+341
-273
@@ -8,53 +8,6 @@
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\bots\_bot_utility;
|
||||
|
||||
|
||||
secondaryoffhandbuttonpressed()
|
||||
{
|
||||
return getcvarint( "smoke" );
|
||||
}
|
||||
|
||||
fragbuttonpressed()
|
||||
{
|
||||
return getcvarint( "frag" );
|
||||
}
|
||||
|
||||
adsbuttonpressed()
|
||||
{
|
||||
return getcvarint( "speed" ) || self playerads() > 0.05;
|
||||
}
|
||||
|
||||
setparent( parent )
|
||||
{
|
||||
}
|
||||
|
||||
setpoint(a, b, x, y)
|
||||
{
|
||||
}
|
||||
|
||||
createfontstring( font, fontScale )
|
||||
{
|
||||
fontElem = newclienthudelem( self );
|
||||
fontElem.elemType = "font";
|
||||
fontElem.font = font;
|
||||
fontElem.fontscale = fontScale;
|
||||
fontElem.x = 0;
|
||||
fontElem.y = 0;
|
||||
fontElem.width = 0;
|
||||
fontElem.height = int( 12 * fontScale );
|
||||
fontElem.xOffset = 0;
|
||||
fontElem.yOffset = 0;
|
||||
fontElem.children = [];
|
||||
fontElem setparent( level.uiparent );
|
||||
fontElem.hidden = false;
|
||||
return fontElem;
|
||||
}
|
||||
|
||||
destroyelem()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
init()
|
||||
{
|
||||
if ( getcvar( "bots_main_menu" ) == "" )
|
||||
@@ -68,6 +21,45 @@ init()
|
||||
}
|
||||
|
||||
precacheshader( "white" );
|
||||
precachestring( &"Bot Warfare" );
|
||||
precachestring( &"Toggle bots can ads" );
|
||||
precachestring( &"Toggle bots can jump and dropshot" );
|
||||
precachestring( &"Toggle bots can camp" );
|
||||
precachestring( &"Toggle bots play the objective" );
|
||||
precachestring( &"Toggle bots can nade" );
|
||||
precachestring( &"Toggle bots can fire" );
|
||||
precachestring( &"Toggle bots can knife" );
|
||||
precachestring( &"Toggle bots can move" );
|
||||
precachestring( &"Bot settings" );
|
||||
precachestring( &"Decrease amount of med bots on allies team" );
|
||||
precachestring( &"Increase amount of med bots on allies team" );
|
||||
precachestring( &"Decrease amount of hard bots on allies team" );
|
||||
precachestring( &"Increase amount of hard bots on allies team" );
|
||||
precachestring( &"Decrease amount of med bots on axis team" );
|
||||
precachestring( &"Increase amount of med bots on axis team" );
|
||||
precachestring( &"Decrease amount of hard bots on axis team" );
|
||||
precachestring( &"Increase amount of hard bots on axis team" );
|
||||
precachestring( &"Change bot difficulty" );
|
||||
precachestring( &"Toggle bot_team_bot" );
|
||||
precachestring( &"Toggle forcing bots on team" );
|
||||
precachestring( &"Decrease bots to be on axis team" );
|
||||
precachestring( &"Increase bots to be on axis team" );
|
||||
precachestring( &"Change bot team" );
|
||||
precachestring( &"Teams and difficulty" );
|
||||
precachestring( &"Toggle count players for fill on spectator" );
|
||||
precachestring( &"Decrease bots to keep in-game" );
|
||||
precachestring( &"Increase bots to keep in-game" );
|
||||
precachestring( &"Change bot_fill_mode" );
|
||||
precachestring( &"Toggle auto bot kicking" );
|
||||
precachestring( &"Kick all bots" );
|
||||
precachestring( &"Kick a bot" );
|
||||
precachestring( &"Add 17 bot" );
|
||||
precachestring( &"Add 11 bot" );
|
||||
precachestring( &"Add 7 bot" );
|
||||
precachestring( &"Add 3 bot" );
|
||||
precachestring( &"Add 1 bot" );
|
||||
precachestring( &"Manage bots" );
|
||||
|
||||
thread watchPlayers();
|
||||
}
|
||||
|
||||
@@ -120,47 +112,6 @@ init_menu()
|
||||
self thread doGreetings();
|
||||
}
|
||||
|
||||
destroyFixed()
|
||||
{
|
||||
if ( !isdefined( self ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self destroy();
|
||||
}
|
||||
|
||||
removeChildFixed( element )
|
||||
{
|
||||
temp = [];
|
||||
|
||||
for ( i = 0; i < self.children.size ; i++ )
|
||||
{
|
||||
if ( isdefined( self.children[ i ] ) && self.children[ i ] != element )
|
||||
{
|
||||
self.children[ i ].index = temp.size;
|
||||
temp[ temp.size ] = self.children[ i ];
|
||||
}
|
||||
}
|
||||
|
||||
self.children = temp;
|
||||
}
|
||||
|
||||
destroyElemFixed()
|
||||
{
|
||||
if ( !isdefined( self ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( isdefined( self.parent ) )
|
||||
{
|
||||
self.parent removeChildFixed( self );
|
||||
}
|
||||
|
||||
self destroyelem();
|
||||
}
|
||||
|
||||
kill_menu()
|
||||
{
|
||||
self notify( "bots_kill_menu" );
|
||||
@@ -179,7 +130,7 @@ watchDisconnect()
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
self.menutexty[ i ] destroyElemFixed();
|
||||
self.menutexty[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -190,7 +141,7 @@ watchDisconnect()
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
self.menutext[ i ] destroyElemFixed();
|
||||
self.menutext[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -199,18 +150,18 @@ watchDisconnect()
|
||||
{
|
||||
if ( isdefined( self.menu[ "X" ][ "Shader" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Shader" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Shader" ] destroy();
|
||||
}
|
||||
|
||||
if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Scroller" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Scroller" ] destroy();
|
||||
}
|
||||
}
|
||||
|
||||
if ( isdefined( self.menuversionhud ) )
|
||||
{
|
||||
self.menuversionhud destroyFixed();
|
||||
self.menuversionhud destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -222,7 +173,7 @@ doGreetings()
|
||||
wait 1;
|
||||
self iprintln( "Welcome to Bot Warfare " + self.name + "!" );
|
||||
wait 5;
|
||||
self iprintln( "Press [{+frag}] + [{+smoke}] to open menu!" );
|
||||
self iprintln( "Press [{+attack}] + [{+activate}] + [{+melee_breath}] to open menu!" );
|
||||
}
|
||||
|
||||
watchPlayerOpenMenu()
|
||||
@@ -232,7 +183,7 @@ watchPlayerOpenMenu()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self fragbuttonpressed() || !self secondaryoffhandbuttonpressed() )
|
||||
while ( !self attackbuttonpressed() || !self meleebuttonpressed() || !self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
@@ -265,7 +216,7 @@ watchPlayerOpenMenu()
|
||||
}
|
||||
}
|
||||
|
||||
while ( self fragbuttonpressed() && self secondaryoffhandbuttonpressed() )
|
||||
while ( self attackbuttonpressed() && self meleebuttonpressed() && self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
@@ -284,17 +235,20 @@ MenuSelect()
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( self.menuopen )
|
||||
if ( !self attackbuttonpressed() && !self usebuttonpressed() )
|
||||
{
|
||||
self playlocalsound( "mouse_click" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
if ( self.menuopen )
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] );
|
||||
self playlocalsound( "mouse_click" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ "Main" ][ "X" ] ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
self thread [[ self.option[ "Function" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] ]]( self.option[ "Arg1" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ], self.option[ "Arg2" ][ self.submenu ][ self.curs[ self.submenu ][ "Y" ] ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -317,31 +271,34 @@ LeftMenu()
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( self.menuopen )
|
||||
if ( !self meleebuttonpressed() && !self usebuttonpressed() )
|
||||
{
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
if ( self.menuopen )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ]--;
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] < 0 )
|
||||
if ( self.submenu == "Main" )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
self.curs[ "Main" ][ "X" ]--;
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] < 0 )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ]--;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] < 0 )
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
self.curs[ self.submenu ][ "Y" ]--;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] < 0 )
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = self.option[ "Name" ][ self.submenu ].size - 1;
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -359,40 +316,43 @@ RightMenu()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !self adsbuttonpressed() )
|
||||
while ( !self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( self.menuopen )
|
||||
if ( !self attackbuttonpressed() && !self meleebuttonpressed() )
|
||||
{
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.submenu == "Main" )
|
||||
if ( self.menuopen )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ]++;
|
||||
self playlocalsound( "mouse_over" );
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
if ( self.submenu == "Main" )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = 0;
|
||||
self.curs[ "Main" ][ "X" ]++;
|
||||
|
||||
if ( self.curs[ "Main" ][ "X" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
{
|
||||
self.curs[ "Main" ][ "X" ] = 0;
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
|
||||
self CursMove( "X" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ]++;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
else
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = 0;
|
||||
self.curs[ self.submenu ][ "Y" ]++;
|
||||
|
||||
if ( self.curs[ self.submenu ][ "Y" ] > self.option[ "Name" ][ self.submenu ].size - 1 )
|
||||
{
|
||||
self.curs[ self.submenu ][ "Y" ] = 0;
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
|
||||
self CursMove( "Y" );
|
||||
}
|
||||
}
|
||||
|
||||
while ( self adsbuttonpressed() )
|
||||
while ( self usebuttonpressed() )
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
@@ -418,7 +378,7 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
self.menutext[ i ] destroyElemFixed();
|
||||
self.menutext[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -427,36 +387,36 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
if ( isdefined( self.menu[ "X" ][ "Shader" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Shader" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Shader" ] destroy();
|
||||
}
|
||||
|
||||
if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Scroller" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Scroller" ] destroy();
|
||||
}
|
||||
}
|
||||
|
||||
if ( isdefined( self.menuversionhud ) )
|
||||
{
|
||||
self.menuversionhud destroyFixed();
|
||||
self.menuversionhud destroy();
|
||||
}
|
||||
|
||||
for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
|
||||
{
|
||||
self.menutext[ i ] = self createfontstring( "default", 1.6 );
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 100 ), -226 );
|
||||
// self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 150 ), -226 );
|
||||
self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
|
||||
if ( logOldi )
|
||||
{
|
||||
self.oldi = i;
|
||||
}
|
||||
|
||||
if ( self.menutext[ i ].x > 300 )
|
||||
if ( self.menutext[ i ].x > 450 )
|
||||
{
|
||||
logOldi = false;
|
||||
x = i - self.oldi;
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", ( ( ( -300 ) - ( i * 100 ) ) + ( i * 100 ) ) + ( x * 100 ), -196 );
|
||||
self.menutext[ i ] setpoint( "CENTER", "CENTER", ( ( ( -300 ) - ( i * 150 ) ) + ( i * 150 ) ) + ( x * 150 ), -196 );
|
||||
}
|
||||
|
||||
self.menutext[ i ].alpha = 1;
|
||||
@@ -476,7 +436,7 @@ OpenSub( menu, menu2 )
|
||||
|
||||
self CursMove( "X" );
|
||||
|
||||
self.menuversionhud = initHudElem( "Bot Warfare " + level.bw_version, 0, 0 );
|
||||
self.menuversionhud = initHudElem( &"Bot Warfare", 0, 0 );
|
||||
|
||||
self.menuopen = true;
|
||||
}
|
||||
@@ -488,7 +448,7 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
self.menutexty[ i ] destroyElemFixed();
|
||||
self.menutexty[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -497,7 +457,7 @@ OpenSub( menu, menu2 )
|
||||
{
|
||||
self.menutexty[ i ] = self createfontstring( "default", 1.6 );
|
||||
self.menutexty[ i ] setpoint( "CENTER", "CENTER", self.menutext[ self.curs[ "Main" ][ "X" ] ].x, -160 + ( i * 20 ) );
|
||||
//self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutexty[ i ].alpha = 1;
|
||||
self.menutexty[ i ].sort = 999;
|
||||
}
|
||||
@@ -606,7 +566,7 @@ ShowOptionOn( variable )
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
// self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -633,7 +593,7 @@ ShowOptionOn( variable )
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
//self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -664,7 +624,7 @@ ExitSub()
|
||||
{
|
||||
if ( isdefined( self.menutexty[ i ] ) )
|
||||
{
|
||||
self.menutexty[ i ] destroyElemFixed();
|
||||
self.menutexty[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -689,7 +649,7 @@ ExitMenu()
|
||||
{
|
||||
if ( isdefined( self.menutext[ i ] ) )
|
||||
{
|
||||
self.menutext[ i ] destroyElemFixed();
|
||||
self.menutext[ i ] destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -698,18 +658,18 @@ ExitMenu()
|
||||
{
|
||||
if ( isdefined( self.menu[ "X" ][ "Shader" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Shader" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Shader" ] destroy();
|
||||
}
|
||||
|
||||
if ( isdefined( self.menu[ "X" ][ "Scroller" ] ) )
|
||||
{
|
||||
self.menu[ "X" ][ "Scroller" ] destroyElemFixed();
|
||||
self.menu[ "X" ][ "Scroller" ] destroy();
|
||||
}
|
||||
}
|
||||
|
||||
if ( isdefined( self.menuversionhud ) )
|
||||
{
|
||||
self.menuversionhud destroyFixed();
|
||||
self.menuversionhud destroy();
|
||||
}
|
||||
|
||||
self.menuopen = false;
|
||||
@@ -719,10 +679,192 @@ ExitMenu()
|
||||
self setclientcvar( "sc_blur", "2" );
|
||||
}
|
||||
|
||||
setpoint( point, relativePoint, xOffset, yOffset, moveTime )
|
||||
{
|
||||
if ( !isdefined( moveTime ) )
|
||||
{
|
||||
moveTime = 0;
|
||||
}
|
||||
|
||||
if ( moveTime )
|
||||
{
|
||||
self moveovertime( moveTime );
|
||||
}
|
||||
|
||||
if ( !isdefined( xOffset ) )
|
||||
{
|
||||
xOffset = 0;
|
||||
}
|
||||
|
||||
self.xOffset = xOffset;
|
||||
|
||||
if ( !isdefined( yOffset ) )
|
||||
{
|
||||
yOffset = 0;
|
||||
}
|
||||
|
||||
self.yOffset = yOffset;
|
||||
|
||||
self.point = point;
|
||||
|
||||
self.alignX = "center";
|
||||
self.alignY = "middle";
|
||||
|
||||
if ( issubstr( point, "TOP" ) )
|
||||
{
|
||||
self.alignY = "top";
|
||||
}
|
||||
|
||||
if ( issubstr( point, "BOTTOM" ) )
|
||||
{
|
||||
self.alignY = "bottom";
|
||||
}
|
||||
|
||||
if ( issubstr( point, "LEFT" ) )
|
||||
{
|
||||
self.alignX = "left";
|
||||
}
|
||||
|
||||
if ( issubstr( point, "RIGHT" ) )
|
||||
{
|
||||
self.alignX = "right";
|
||||
}
|
||||
|
||||
if ( !isdefined( relativePoint ) )
|
||||
{
|
||||
relativePoint = point;
|
||||
}
|
||||
|
||||
self.relativePoint = relativePoint;
|
||||
|
||||
relativeX = "center";
|
||||
relativeY = "middle";
|
||||
|
||||
if ( issubstr( relativePoint, "TOP" ) )
|
||||
{
|
||||
relativeY = "top";
|
||||
}
|
||||
|
||||
if ( issubstr( relativePoint, "BOTTOM" ) )
|
||||
{
|
||||
relativeY = "bottom";
|
||||
}
|
||||
|
||||
if ( issubstr( relativePoint, "LEFT" ) )
|
||||
{
|
||||
relativeX = "left";
|
||||
}
|
||||
|
||||
if ( issubstr( relativePoint, "RIGHT" ) )
|
||||
{
|
||||
relativeX = "right";
|
||||
}
|
||||
|
||||
self.horzAlign = relativeX;
|
||||
self.vertAlign = relativeY;
|
||||
|
||||
element = spawnstruct();
|
||||
element.horzAlign = "left";
|
||||
element.vertAlign = "top";
|
||||
element.alignX = "left";
|
||||
element.alignY = "top";
|
||||
element.x = 0;
|
||||
element.y = 0;
|
||||
element.width = 0;
|
||||
element.height = 0;
|
||||
|
||||
if ( relativeX == element.alignX )
|
||||
{
|
||||
offsetX = 0;
|
||||
xFactor = 0;
|
||||
}
|
||||
else if ( relativeX == "center" || element.alignX == "center" )
|
||||
{
|
||||
offsetX = int( element.width / 2 );
|
||||
|
||||
if ( relativeX == "left" || element.alignX == "right" )
|
||||
{
|
||||
xFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
xFactor = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
offsetX = element.width;
|
||||
|
||||
if ( relativeX == "left" )
|
||||
{
|
||||
xFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
xFactor = 1;
|
||||
}
|
||||
}
|
||||
|
||||
self.x = element.x + ( offsetX * xFactor );
|
||||
|
||||
if ( relativeY == element.alignY )
|
||||
{
|
||||
offsetY = 0;
|
||||
yFactor = 0;
|
||||
}
|
||||
else if ( relativeY == "middle" || element.alignY == "middle" )
|
||||
{
|
||||
offsetY = int( element.height / 2 );
|
||||
|
||||
if ( relativeY == "top" || element.alignY == "bottom" )
|
||||
{
|
||||
yFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
yFactor = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
offsetY = element.height;
|
||||
|
||||
if ( relativeY == "top" )
|
||||
{
|
||||
yFactor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
yFactor = 1;
|
||||
}
|
||||
}
|
||||
|
||||
self.y = element.y + ( offsetY * yFactor );
|
||||
|
||||
self.x += self.xOffset;
|
||||
self.y += self.yOffset;
|
||||
}
|
||||
|
||||
createfontstring( font, fontScale )
|
||||
{
|
||||
fontElem = newclienthudelem( self );
|
||||
fontElem.elemType = "font";
|
||||
fontElem.font = font;
|
||||
fontElem.fontscale = fontScale;
|
||||
fontElem.x = 0;
|
||||
fontElem.y = 0;
|
||||
fontElem.width = 0;
|
||||
fontElem.height = int( 12 * fontScale );
|
||||
fontElem.xOffset = 0;
|
||||
fontElem.yOffset = 0;
|
||||
fontElem.hidden = false;
|
||||
return fontElem;
|
||||
}
|
||||
|
||||
initHudElem( txt, xl, yl )
|
||||
{
|
||||
hud = newclienthudelem( self );
|
||||
//hud settext( txt );
|
||||
hud settext( txt );
|
||||
hud.alignx = "center";
|
||||
hud.aligny = "bottom";
|
||||
hud.horzalign = "center";
|
||||
@@ -751,11 +893,9 @@ createRectangle( align, relative, x, y, width, height, color, sort, alpha, shade
|
||||
barElemBG.relative = relative;
|
||||
barElemBG.xoffset = 0;
|
||||
barElemBG.yoffset = 0;
|
||||
barElemBG.children = [];
|
||||
barElemBG.sort = sort;
|
||||
barElemBG.color = color;
|
||||
barElemBG.alpha = alpha;
|
||||
barElemBG setparent( level.uiparent );
|
||||
barElemBG setshader( shader, width, height );
|
||||
barElemBG.hidden = false;
|
||||
barElemBG setpoint( align, relative, x, y );
|
||||
@@ -764,18 +904,18 @@ createRectangle( align, relative, x, y, width, height, color, sort, alpha, shade
|
||||
|
||||
AddOptions()
|
||||
{
|
||||
self AddMenu( "Main", 0, "Manage bots", ::OpenSub, "man_bots", "" );
|
||||
self AddMenu( "Main", 0, &"Manage bots", ::OpenSub, "man_bots", "" );
|
||||
self AddBack( "man_bots", "Main" );
|
||||
|
||||
_temp = "";
|
||||
_tempcvar = getcvarint( "bots_manage_add" );
|
||||
self AddMenu( "man_bots", 0, "Add 1 bot", ::man_bots, "add", 1 + _tempcvar );
|
||||
self AddMenu( "man_bots", 1, "Add 3 bot", ::man_bots, "add", 3 + _tempcvar );
|
||||
self AddMenu( "man_bots", 2, "Add 7 bot", ::man_bots, "add", 7 + _tempcvar );
|
||||
self AddMenu( "man_bots", 3, "Add 11 bot", ::man_bots, "add", 11 + _tempcvar );
|
||||
self AddMenu( "man_bots", 4, "Add 17 bot", ::man_bots, "add", 17 + _tempcvar );
|
||||
self AddMenu( "man_bots", 5, "Kick a bot", ::man_bots, "kick", 1 );
|
||||
self AddMenu( "man_bots", 6, "Kick all bots", ::man_bots, "kick", getBotArray().size );
|
||||
self AddMenu( "man_bots", 0, &"Add 1 bot", ::man_bots, "add", 1 + _tempcvar );
|
||||
self AddMenu( "man_bots", 1, &"Add 3 bot", ::man_bots, "add", 3 + _tempcvar );
|
||||
self AddMenu( "man_bots", 2, &"Add 7 bot", ::man_bots, "add", 7 + _tempcvar );
|
||||
self AddMenu( "man_bots", 3, &"Add 11 bot", ::man_bots, "add", 11 + _tempcvar );
|
||||
self AddMenu( "man_bots", 4, &"Add 17 bot", ::man_bots, "add", 17 + _tempcvar );
|
||||
self AddMenu( "man_bots", 5, &"Kick a bot", ::man_bots, "kick", 1 );
|
||||
self AddMenu( "man_bots", 6, &"Kick all bots", ::man_bots, "kick", getBotArray().size );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill_kick" );
|
||||
|
||||
@@ -788,7 +928,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "man_bots", 7, "Toggle auto bot kicking: " + _temp, ::man_bots, "autokick", _tempcvar );
|
||||
self AddMenu( "man_bots", 7, &"Toggle auto bot kicking", ::man_bots, "autokick", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill_mode" );
|
||||
|
||||
@@ -823,11 +963,11 @@ AddOptions()
|
||||
break;
|
||||
}
|
||||
|
||||
self AddMenu( "man_bots", 8, "Change bot_fill_mode: " + _temp, ::man_bots, "fillmode", _tempcvar );
|
||||
self AddMenu( "man_bots", 8, &"Change bot_fill_mode", ::man_bots, "fillmode", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill" );
|
||||
self AddMenu( "man_bots", 9, "Increase bots to keep in-game: " + _tempcvar, ::man_bots, "fillup", _tempcvar );
|
||||
self AddMenu( "man_bots", 10, "Decrease bots to keep in-game: " + _tempcvar, ::man_bots, "filldown", _tempcvar );
|
||||
self AddMenu( "man_bots", 9, &"Increase bots to keep in-game", ::man_bots, "fillup", _tempcvar );
|
||||
self AddMenu( "man_bots", 10, &"Decrease bots to keep in-game", ::man_bots, "filldown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_manage_fill_spec" );
|
||||
|
||||
@@ -840,19 +980,19 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "man_bots", 11, "Count players for fill on spectator: " + _temp, ::man_bots, "fillspec", _tempcvar );
|
||||
self AddMenu( "man_bots", 11, &"Toggle count players for fill on spectator", ::man_bots, "fillspec", _tempcvar );
|
||||
|
||||
//
|
||||
|
||||
self AddMenu( "Main", 1, "Teams and difficulty", ::OpenSub, "man_team", "" );
|
||||
self AddMenu( "Main", 1, &"Teams and difficulty", ::OpenSub, "man_team", "" );
|
||||
self AddBack( "man_team", "Main" );
|
||||
|
||||
_tempcvar = getcvar( "bots_team" );
|
||||
self AddMenu( "man_team", 0, "Change bot team: " + _tempcvar, ::bot_teams, "team", _tempcvar );
|
||||
self AddMenu( "man_team", 0, &"Change bot team", ::bot_teams, "team", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_team_amount" );
|
||||
self AddMenu( "man_team", 1, "Increase bots to be on axis team: " + _tempcvar, ::bot_teams, "teamup", _tempcvar );
|
||||
self AddMenu( "man_team", 2, "Decrease bots to be on axis team: " + _tempcvar, ::bot_teams, "teamdown", _tempcvar );
|
||||
self AddMenu( "man_team", 1, &"Increase bots to be on axis team", ::bot_teams, "teamup", _tempcvar );
|
||||
self AddMenu( "man_team", 2, &"Decrease bots to be on axis team", ::bot_teams, "teamdown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_team_force" );
|
||||
|
||||
@@ -865,7 +1005,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "man_team", 3, "Toggle forcing bots on team: " + _temp, ::bot_teams, "teamforce", _tempcvar );
|
||||
self AddMenu( "man_team", 3, &"Toggle forcing bots on team", ::bot_teams, "teamforce", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_team_mode" );
|
||||
|
||||
@@ -878,7 +1018,7 @@ AddOptions()
|
||||
_temp = "everyone";
|
||||
}
|
||||
|
||||
self AddMenu( "man_team", 4, "Toggle bot_team_bot: " + _temp, ::bot_teams, "teammode", _tempcvar );
|
||||
self AddMenu( "man_team", 4, &"Toggle bot_team_bot", ::bot_teams, "teammode", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill" );
|
||||
|
||||
@@ -929,55 +1069,29 @@ AddOptions()
|
||||
break;
|
||||
}
|
||||
|
||||
self AddMenu( "man_team", 5, "Change bot difficulty: " + _temp, ::bot_teams, "skill", _tempcvar );
|
||||
self AddMenu( "man_team", 5, &"Change bot difficulty", ::bot_teams, "skill", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_axis_hard" );
|
||||
self AddMenu( "man_team", 6, "Increase amount of hard bots on axis team: " + _tempcvar, ::bot_teams, "axishardup", _tempcvar );
|
||||
self AddMenu( "man_team", 7, "Decrease amount of hard bots on axis team: " + _tempcvar, ::bot_teams, "axisharddown", _tempcvar );
|
||||
self AddMenu( "man_team", 6, &"Increase amount of hard bots on axis team", ::bot_teams, "axishardup", _tempcvar );
|
||||
self AddMenu( "man_team", 7, &"Decrease amount of hard bots on axis team", ::bot_teams, "axisharddown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_axis_med" );
|
||||
self AddMenu( "man_team", 8, "Increase amount of med bots on axis team: " + _tempcvar, ::bot_teams, "axismedup", _tempcvar );
|
||||
self AddMenu( "man_team", 9, "Decrease amount of med bots on axis team: " + _tempcvar, ::bot_teams, "axismeddown", _tempcvar );
|
||||
self AddMenu( "man_team", 8, &"Increase amount of med bots on axis team", ::bot_teams, "axismedup", _tempcvar );
|
||||
self AddMenu( "man_team", 9, &"Decrease amount of med bots on axis team", ::bot_teams, "axismeddown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_allies_hard" );
|
||||
self AddMenu( "man_team", 10, "Increase amount of hard bots on allies team: " + _tempcvar, ::bot_teams, "allieshardup", _tempcvar );
|
||||
self AddMenu( "man_team", 11, "Decrease amount of hard bots on allies team: " + _tempcvar, ::bot_teams, "alliesharddown", _tempcvar );
|
||||
self AddMenu( "man_team", 10, &"Increase amount of hard bots on allies team", ::bot_teams, "allieshardup", _tempcvar );
|
||||
self AddMenu( "man_team", 11, &"Decrease amount of hard bots on allies team", ::bot_teams, "alliesharddown", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_skill_allies_med" );
|
||||
self AddMenu( "man_team", 12, "Increase amount of med bots on allies team: " + _tempcvar, ::bot_teams, "alliesmedup", _tempcvar );
|
||||
self AddMenu( "man_team", 13, "Decrease amount of med bots on allies team: " + _tempcvar, ::bot_teams, "alliesmeddown", _tempcvar );
|
||||
self AddMenu( "man_team", 12, &"Increase amount of med bots on allies team", ::bot_teams, "alliesmedup", _tempcvar );
|
||||
self AddMenu( "man_team", 13, &"Decrease amount of med bots on allies team", ::bot_teams, "alliesmeddown", _tempcvar );
|
||||
|
||||
//
|
||||
|
||||
self AddMenu( "Main", 2, "Bot settings", ::OpenSub, "set1", "" );
|
||||
self AddMenu( "Main", 2, &"Bot settings", ::OpenSub, "set1", "" );
|
||||
self AddBack( "set1", "Main" );
|
||||
|
||||
_tempcvar = getcvarint( "bots_loadout_reasonable" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 0, "Bots use only good class setups: " + _temp, ::bot_func, "reasonable", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_loadout_allow_op" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 1, "Bots can use op and annoying class setups: " + _temp, ::bot_func, "op", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_move" );
|
||||
|
||||
if ( _tempcvar )
|
||||
@@ -989,7 +1103,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 2, "Bots can move: " + _temp, ::bot_func, "move", _tempcvar );
|
||||
self AddMenu( "set1", 0, &"Toggle bots can move", ::bot_func, "move", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_knife" );
|
||||
|
||||
@@ -1002,7 +1116,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 3, "Bots can knife: " + _temp, ::bot_func, "knife", _tempcvar );
|
||||
self AddMenu( "set1", 1, &"Toggle bots can knife", ::bot_func, "knife", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_fire" );
|
||||
|
||||
@@ -1015,7 +1129,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 4, "Bots can fire: " + _temp, ::bot_func, "fire", _tempcvar );
|
||||
self AddMenu( "set1", 2, &"Toggle bots can fire", ::bot_func, "fire", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_nade" );
|
||||
|
||||
@@ -1028,7 +1142,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 5, "Bots can nade: " + _temp, ::bot_func, "nade", _tempcvar );
|
||||
self AddMenu( "set1", 3, &"Toggle bots can nade", ::bot_func, "nade", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_obj" );
|
||||
|
||||
@@ -1041,7 +1155,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 6, "Bots play the objective: " + _temp, ::bot_func, "obj", _tempcvar );
|
||||
self AddMenu( "set1", 4, &"Toggle bots play the objective", ::bot_func, "obj", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_camp" );
|
||||
|
||||
@@ -1054,7 +1168,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 7, "Bots can camp: " + _temp, ::bot_func, "camp", _tempcvar );
|
||||
self AddMenu( "set1", 5, &"Toggle bots can camp", ::bot_func, "camp", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_jumpdrop" );
|
||||
|
||||
@@ -1067,33 +1181,7 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 8, "Bots can jump and dropshot: " + _temp, ::bot_func, "jump", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_target_other" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 9, "Bots can target other script objects: " + _temp, ::bot_func, "targetother", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_killstreak" );
|
||||
|
||||
if ( _tempcvar )
|
||||
{
|
||||
_temp = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 10, "Bots can use killstreaks: " + _temp, ::bot_func, "killstreak", _tempcvar );
|
||||
self AddMenu( "set1", 6, &"Toggle bots can jump and dropshot", ::bot_func, "jump", _tempcvar );
|
||||
|
||||
_tempcvar = getcvarint( "bots_play_ads" );
|
||||
|
||||
@@ -1106,23 +1194,13 @@ AddOptions()
|
||||
_temp = "false";
|
||||
}
|
||||
|
||||
self AddMenu( "set1", 11, "Bots can ads: " + _temp, ::bot_func, "ads", _tempcvar );
|
||||
self AddMenu( "set1", 7, &"Toggle bots can ads", ::bot_func, "ads", _tempcvar );
|
||||
}
|
||||
|
||||
bot_func( a, b )
|
||||
{
|
||||
switch ( a )
|
||||
{
|
||||
case "reasonable":
|
||||
setcvar( "bots_loadout_reasonable", !b );
|
||||
self iprintln( "Bots using reasonable setups: " + !b );
|
||||
break;
|
||||
|
||||
case "op":
|
||||
setcvar( "bots_loadout_allow_op", !b );
|
||||
self iprintln( "Bots using op setups: " + !b );
|
||||
break;
|
||||
|
||||
case "move":
|
||||
setcvar( "bots_play_move", !b );
|
||||
self iprintln( "Bots move: " + !b );
|
||||
@@ -1158,16 +1236,6 @@ bot_func( a, b )
|
||||
self iprintln( "Bots jump: " + !b );
|
||||
break;
|
||||
|
||||
case "targetother":
|
||||
setcvar( "bots_play_target_other", !b );
|
||||
self iprintln( "Bots target other: " + !b );
|
||||
break;
|
||||
|
||||
case "killstreak":
|
||||
setcvar( "bots_play_killstreak", !b );
|
||||
self iprintln( "Bots use killstreaks: " + !b );
|
||||
break;
|
||||
|
||||
case "ads":
|
||||
setcvar( "bots_play_ads", !b );
|
||||
self iprintln( "Bots ads: " + !b );
|
||||
|
||||
+11
-11
@@ -28,7 +28,7 @@ init()
|
||||
map( getcvar( "mapname" ) );
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// cod2 only allows localized strings...
|
||||
precachestring( &"^1SecondaryOffhand - ^2Add Waypoint; ^3MeleeButton - ^4Link Waypoint; ^5FragButton - ^6delete Waypoint; ^7UseButton + AttackButton - ^8Save" );
|
||||
|
||||
@@ -39,7 +39,7 @@ init()
|
||||
setcvar( "bots_manage_add", 0 );
|
||||
setcvar( "bots_manage_fill_kick", 1 );
|
||||
setcvar( "bots_manage_fill_spec", 1 );
|
||||
|
||||
|
||||
setcvar( "smoke", 0 ); // bind 2 "set smoke 1; wait 50; set smoke 0"
|
||||
setcvar( "frag", 0 ); // bind 3 "set frag 1; wait 50; set frag 0"
|
||||
setcvar( "speed", 0 ); // bind 4 "togglep speed 0 1"
|
||||
@@ -113,7 +113,7 @@ beginDebug()
|
||||
level.autolink = false;
|
||||
self.closest = -1;
|
||||
self.command = undefined;
|
||||
|
||||
|
||||
self.bot_model_fix = true;
|
||||
|
||||
self freezecontrols( false );
|
||||
@@ -369,10 +369,10 @@ watchSaveWaypointsCommand()
|
||||
|
||||
println( "********* Start Bot Warfare WPDump *********" );
|
||||
println( level.waypointcount );
|
||||
|
||||
|
||||
// cod2 fprintln always ends the write with a comma...
|
||||
//f = openfile( filename, "write" );
|
||||
f = -1;
|
||||
f = openfile( filename, "write" );
|
||||
// besure to fix it in post ig
|
||||
|
||||
if ( f >= 0 )
|
||||
{
|
||||
@@ -416,7 +416,7 @@ watchSaveWaypointsCommand()
|
||||
fprintln( f, str + "\n" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( f >= 0 )
|
||||
{
|
||||
closefile( f );
|
||||
@@ -709,8 +709,8 @@ destroyOnDeath( hud )
|
||||
{
|
||||
hud endon( "death" );
|
||||
self waittill_either( "death", "disconnect" );
|
||||
|
||||
if ( isdefined(hud) )
|
||||
|
||||
if ( isdefined( hud ) )
|
||||
{
|
||||
hud destroy();
|
||||
}
|
||||
@@ -723,7 +723,7 @@ textScroll( string )
|
||||
|
||||
text = newclienthudelem( self );
|
||||
self thread destroyOnDeath( text );
|
||||
|
||||
|
||||
text.font = "default";
|
||||
text.fontscale = 1.5;
|
||||
text.alignx = "center";
|
||||
@@ -738,7 +738,7 @@ textScroll( string )
|
||||
text.x = 1200;
|
||||
text moveovertime( 20 );
|
||||
text.x = -1200;
|
||||
|
||||
|
||||
wait 20;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ init()
|
||||
level thread onPlayerConnect();
|
||||
|
||||
// bootstrap
|
||||
//level thread scripts\mp\bots_adapter_libcod::init();
|
||||
level thread scripts\mp\bots_adapter_libcod::init();
|
||||
level thread scripts\mp\bots_wp_editor::init();
|
||||
level thread scripts\mp\bots::init();
|
||||
//level thread scripts\mp\bots_chat::init();
|
||||
level thread scripts\mp\bots_chat::init();
|
||||
level thread scripts\mp\bots_menu::init();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,338 @@
|
||||
337
|
||||
1335.72 263.387 -176.24,1 3,stand,4.14185 77.6569 0,,
|
||||
1526.74 258.634 -178.864,0 2,stand,13.9801 153.66 0,,
|
||||
1534.04 679.377 -40.3138,1 3 111,stand,16.3916 -174.787 0,,
|
||||
1343.98 670.107 -43.8302,4 2 0,stand,17.8748 87.8687 0,,
|
||||
1359.03 868.393 -10.0266,105 3 5 111,stand,19.27 -179.709 0,,
|
||||
1174.62 862.834 -0.0757117,4 10 6 110,stand,17.0398 -91.7303 0,,
|
||||
1167.82 574.104 7.2965,7 5 9,stand,16.9464 -91.4502 0,,
|
||||
1164.24 307.57 8.86669,6 8,stand,21.1267 97.5146 0,,
|
||||
1003.86 291.391 9.21174,7 9,stand,18.2483 88.1433 0,,
|
||||
1011.16 550.266 6.72916,8 10 6,stand,18.4351 88.8904 0,,
|
||||
1015.25 792.254 0.969797,9 11 5,stand,15.8368 127.952 0,,
|
||||
933.55 915.536 0.355777,10 12 109,stand,15.7434 -172.469 0,,
|
||||
759.748 886.644 -0.0280333,11 13 106 108,stand,17.5067 -128.48 0,,
|
||||
718.039 801.369 0.119837,12 14,stand,22.4231 -143.141 0,,
|
||||
596.565 708.649 0.161248,15 13,stand,26.2299 -88.017 0,,
|
||||
606.699 558.668 -0.0959877,14 16,stand,26.7847 -54.7943 0,,
|
||||
662.895 446.054 -0.947978,15 17,stand,26.6913 -64.5392 0,,
|
||||
694.312 346.968 1.11285,16 18,stand,11.9366 -137.016 0,,
|
||||
591.794 251.284 0.281383,17 19 212,stand,21.2146 -26.12 0,,
|
||||
595.141 180.998 -0.594458,18 20 212 267,stand,24.8346 11.7444 0,,
|
||||
695.334 187.759 0.124999,19 21,stand,12.865 -74.3774 0,,
|
||||
726.079 63.4179 2.26124,20 22,stand,15.7434 -80.5023 0,,
|
||||
754.494 -135.767 3.63963,21 23 267,stand,26.0431 167.113 0,,
|
||||
735.836 -268.587 1.21375,22 24,stand,21.7969 -173.397 0,,
|
||||
624.492 -281.546 -0.803992,25 23 267,stand,21.2421 179.269 0,,
|
||||
345.626 -292.711 0.624294,24 26 261 260 267,stand,20.2203 -97.3004 0,,
|
||||
323.56 -459.679 -0.449598,25 27 259,stand,21.6101 -92.1039 0,,
|
||||
326.854 -743.241 -8.28439,28 26 259,stand,21.6101 -81.4307 0,,
|
||||
360.927 -909.758 -8.14929,29 27 258,stand,15.304 -175.067 0,,
|
||||
173.342 -929.329 -10.0715,28 30 257,stand,14.1888 -124.305 0,,
|
||||
89.3189 -1035.14 3.04615,29 31,stand,21.7035 -151.144 0,,
|
||||
-85.015 -1095.12 20.5791,30 32 257,stand,11.684 165.795 0,,
|
||||
-242.611 -1049.34 61.2883,31 33 256,stand,13.8153 141.482 0,,
|
||||
-466.779 -951.548 106.293,32 34,stand,23.3734 -44.8846 0,,
|
||||
-592.295 -991.642 127.249,33 35,stand,24.2084 -32.168 0,,
|
||||
-754.068 -986.661 125.346,34 36 227,stand,15.8588 -179.819 0,,
|
||||
-941.835 -986.027 124.615,35 37 254,stand,15.8588 -179.819 0,,
|
||||
-1157.22 -997.464 120.553,36 38 253,stand,15.5786 -179.451 0,,
|
||||
-1443.97 -986.998 120.294,37 39 252,stand,12.7057 -178.984 0,,
|
||||
-1636.1 -1026.26 123.372,38 40 251,stand,14.837 -172.304 0,,
|
||||
-1764 -1008.18 125.39,39 41 250,stand,19.1052 15.7324 0,,
|
||||
-2008.75 -1012.14 128.429,40 42,stand,22.077 161.9 0,,
|
||||
-2146.9 -907.402 119.668,43 249 41,stand,18.1769 89.6979 0,,
|
||||
-2144.4 -728.328 120.033,42 44 249,stand,22.5385 56.8433 0,,
|
||||
-2040.8 -575.603 120.991,43 45 248,stand,25.2301 80.9747 0,,
|
||||
-2007.2 -415.847 81.0522,44 46 235,stand,17.6221 -75.4156 0,,
|
||||
-2003.07 -234.18 35.6354,45 47 247,stand,23.0054 87.193 0,,
|
||||
-2018.3 -36.1812 9.55112,46 48 246,stand,15.304 84.1278 0,,
|
||||
-1997.91 217.198 7.56981,47 49 50 245,stand,15.5786 89.231 0,,
|
||||
-1996.54 396.666 7.7959,48 50,stand,19.1052 3.20251 0,,
|
||||
-1744.07 406.322 1.12011,49 51 242 48 244 245 52,stand,13.5406 84.0344 0,,
|
||||
-1747.06 598.517 31.7085,50 52,stand,24.1205 25.4773 0,,
|
||||
-1655.41 642.872 31.4931,51 53 243 242 50,stand,18.0835 92.1094 0,,
|
||||
-1667.02 976.111 28.135,52 54 292 293,stand,20.127 179.995 0,,
|
||||
-1808.54 992.6 39.7464,53 55,stand,21.6101 -6.44348 0,,
|
||||
-1813.97 1085.61 33.7503,54 56 293 294,stand,20.8685 170.898 0,,
|
||||
-2023.9 1085.65 35.9217,55 57 295,stand,20.5005 153.452 0,,
|
||||
-2147.74 1186.64 34.7413,56 58,stand,23.6536 27.2406 0,,
|
||||
-2002.4 1274.74 30.3047,57 59 295,stand,13.634 19.8193 0,,
|
||||
-1992.07 1356.21 26.8575,58 60 296,stand,22.7252 -107.232 0,,
|
||||
-1980.71 1834.51 16.125,61 59 171,stand,26.4386 168.118 0,,
|
||||
-2103.05 1906.72 2.83892,62 60 171,stand,20.4071 90.6262 0,,
|
||||
-2090.1 2167.03 0.266897,63 61 72 172,stand,18.7372 89.2365 0,,
|
||||
-2072.95 2365.6 5.09951,62 64,stand,24.0271 4.04297 0,,
|
||||
-1904.51 2372.27 3.86197,63 65 72,stand,22.6154 93.9111 0,,
|
||||
-1923.72 2560.23 30.1117,64 66 184,stand,22.8021 175.485 0,,
|
||||
-2053.38 2608.16 33.1369,65 67,stand,26.142 83.985 0,,
|
||||
-2036.31 2742.11 31.1384,66 68,stand,24.472 58.7384 0,,
|
||||
-1963.4 2852.53 30.971,67 69 183,stand,26.5155 98.833 0,,
|
||||
-1972.14 2903.34 31.4093,70 68,stand,27.3505 148.48 0,,
|
||||
-2048.71 2950.11 32.8657,69 71,stand,26.889 91.0382 0,,
|
||||
-2052.16 3087.13 34.0375,70,stand,29.8553 -63.3856 0,,
|
||||
-1918.08 2264.52 -1.531,64 73 172 62,stand,26.2354 0.390015 0,,
|
||||
-1691.22 2234.36 -2.7621,72 74 174 173,stand,24.1974 87.3468 0,,
|
||||
-1689.09 2413.15 5.98023,73 75,stand,19.1821 88.6487 0,,
|
||||
-1699.87 2628.19 6.74974,74 76 79,stand,22.8021 1.97205 0,,
|
||||
-1699.88 2855.8 19.184,75 77,stand,16.5839 -77.0966 0,,
|
||||
-1478.69 2842.46 5.40797,76 78,stand,15.4742 -104.288 0,,
|
||||
-1505.57 2747.8 7.46703,77 79,stand,26.7957 -111.714 0,,
|
||||
-1528.44 2658.06 4.89546,78 80 75 175,stand,26.9824 -97.1411 0,,
|
||||
-1533.71 2493.99 0.541462,79 81 174,stand,20.7642 69.7137 0,,
|
||||
-1393.98 2450.88 3.21591,80 82,stand,19.3689 -98.9044 0,,
|
||||
-1425.06 2288.98 0.124999,81 83 174,stand,20.1105 -86.6547 0,,
|
||||
-1430.86 2141.2 0.323101,82 84 165 174,stand,30.1355 14.4965 0,,
|
||||
-1330.24 2160.04 1.61936,83 85,stand,35.8868 57.464 0,,
|
||||
-1288.42 2251.49 1.44663,84 86,stand,27.6306 -105.029 0,,
|
||||
-1213.2 2252.34 3.31014,85 87 161 162,stand,28.3722 -92.2247 0,,
|
||||
-1017 2237.6 -42.1094,86 88 149 162 163,stand,24.3787 -3.1311 0,,
|
||||
-820.367 2223.4 -105.923,87 89 148 164,stand,15.8423 0.302124 0,,
|
||||
-640.49 2222.47 -121.96,88 90 147 152 153,stand,15.5676 -4.89441 0,,
|
||||
-461.875 2229.45 -122.143,89 91 146 150 151,stand,22.2473 -21.0443 0,,
|
||||
-317.378 2128.06 -128.006,90 92 141 151,stand,19.9292 -8.05298 0,,
|
||||
-132.709 2143.11 -126.821,91 93 94 140,stand,18.4406 -48.5156 0,,
|
||||
34.9293 2105.19 -127.128,92 94 139,stand,13.9856 157.154 0,,
|
||||
105.487 2162.65 -128.448,93 95 133 92,stand,14.2657 4.49341 0,,
|
||||
319.445 2179.4 -129.218,94 96 129 139 131,stand,12.7826 0.780029 0,,
|
||||
513.622 2181.97 -127.789,95 97 128 138,stand,6.1908 -2.37305 0,,
|
||||
725.845 2169.04 -71.9839,96 98 127 137,stand,6.7511 -0.516357 0,,
|
||||
935.125 2162.31 -13.8449,97 99 124 134,stand,8.97583 2.26868 0,,
|
||||
1139.56 2171.28 2.52569,98 100 135,stand,16.2158 -4.78455 0,,
|
||||
1301.37 2157.45 -2.72792,99 101 121 123 136,stand,12.5958 -87.8467 0,,
|
||||
1335.49 1926.37 -6.41919,100 102 122 136,stand,12.5024 -97.0313 0,,
|
||||
1311.01 1615.73 -5.76615,101 103 118,stand,13.244 -88.775 0,,
|
||||
1319.66 1330.05 -7.90239,102 104 117,stand,14.079 -90.3516 0,,
|
||||
1319.34 1139.97 -7.12056,103 105 110 116,stand,14.6393 -91.2799 0,,
|
||||
1377.32 1022.22 -8.64586,104 4 115,stand,13.244 -161.625 0,,
|
||||
575.994 854.69 2.03385,12 107,stand,19.2755 -167.086 0,,
|
||||
595.011 1087 1.69487,106 108,stand,19.5557 -29.0698 0,,
|
||||
772.197 1030.36 0.187533,107 109 12,stand,19.9292 3.31787 0,,
|
||||
961.558 1050.82 0.369962,108 110 11,stand,22.2473 53.2452 0,,
|
||||
1148.1 1128.46 -0.375759,109 104 5,stand,23.5492 -6.61377 0,,
|
||||
1526.1 888.819 -9.86505,2 112 4 115,stand,21.8738 -17.6385 0,,
|
||||
1701.81 883.236 -9.1639,111 113,stand,20.3906 -80.1892 0,,
|
||||
1711.03 642.71 55.1615,112 114,stand,19.4623 -89.1925 0,,
|
||||
1711.05 398.578 55.2624,113,stand,21.1322 -91.972 0,,
|
||||
1519.1 1074.47 -6.82569,105 111 116,stand,21.1322 -46.6699 0,,
|
||||
1545.75 1315.5 -3.77106,115 117 104,stand,20.0226 151.738 0,,
|
||||
1560.93 1550.5 -0.367155,116 118 103,stand,20.7642 92.0654 0,,
|
||||
1557.18 1747.79 -1.70412,117 119 122 102,stand,20.5774 39.6332 0,,
|
||||
1757.25 1872.9 0.124998,118 120 122,stand,29.3939 63.1165 0,,
|
||||
1757.65 2213.96 0.903746,119 121,stand,22.5275 177.446 0,,
|
||||
1531.7 2216.32 -9.08125,120 122 100 123 185 335,stand,22.4341 -109.056 0,,
|
||||
1536.99 1921.13 -9.99636,121 119 118 101,stand,22.1539 7.22351 0,,
|
||||
1310.66 2249.54 4.43291,100 124 121 335,stand,21.5057 171.03 0,,
|
||||
999.209 2251.28 8.58363,123 125 98,stand,26.1475 -3.90015 0,,
|
||||
882.315 2375.18 -17.5487,124 126,stand,29.7675 -170.87 0,,
|
||||
773.232 2320.21 -44.0534,125 127,stand,33.2886 -124.189 0,,
|
||||
724.001 2248.61 -63.8859,126 128 97,stand,32.179 177.902 0,,
|
||||
518.256 2268.16 -122.838,127 129 96,stand,32.179 177.808 0,,
|
||||
398.28 2265.11 -129.539,128 130 133 95,stand,14.4525 2.78503 0,,
|
||||
408.768 2403.34 -117.875,129 131,stand,24.1974 179.665 0,,
|
||||
295.578 2447.67 -117.875,130 132 95,stand,20.9509 169.739 0,,
|
||||
114.242 2473.5 -117.875,131 133,stand,26.4221 -58.4857 0,,
|
||||
185.587 2273.44 -126.726,132 94 129,stand,21.6925 -150.727 0,,
|
||||
981.672 2062.7 -9.99158,98 135 137,stand,29.6741 -7.91016 0,,
|
||||
1154.76 2079.48 1.19186,134 136 99,stand,27.5372 -14.9634 0,,
|
||||
1324.79 2090.95 -6.1598,135 100 101,stand,25.8673 -96.0699 0,,
|
||||
720.308 2077.92 -66.3324,134 138 97,stand,25.8673 179.198 0,,
|
||||
527.772 2076.13 -114.466,137 139 96,stand,27.0758 -176.995 0,,
|
||||
275.684 2064.93 -125.28,138 93 95,stand,26.5155 176.413 0,,
|
||||
-219.361 2057.44 -126.882,92 141,stand,23.4558 -171.639 0,,
|
||||
-396.227 2029.82 -128.11,140 142 91 150,stand,21.9672 -80.6012 0,,
|
||||
-353.76 1747.24 -125.621,141 143,stand,25.4938 -138.417 0,,
|
||||
-460.673 1739.08 -125.905,142 144 150 276,stand,28.6523 -178.325 0,,
|
||||
-551.624 1758.58 -118.183,143 145 276,stand,36.3538 85.3473 0,,
|
||||
-536.936 1945.1 -120.246,144 146,stand,18.5339 89.6155 0,,
|
||||
-536.952 2125.88 -122.961,145 147 90 150,stand,20.5774 146.503 0,,
|
||||
-666.41 2122.07 -118.396,146 148 89,stand,16.4026 -178.605 0,,
|
||||
-857.23 2123.28 -94.9844,147 149 88,stand,10.7391 -179.066 0,,
|
||||
-1001.74 2134.11 -44.7808,148 87,stand,14.5459 144.278 0,,
|
||||
-459.252 2041.01 -126.592,143 90 141 146,stand,23.4558 83.584 0,,
|
||||
-372.808 2390.98 -101.92,90 152 91,stand,16.1224 178.303 0,,
|
||||
-553.685 2398 -101.898,151 153 89,stand,16.1224 178.489 0,,
|
||||
-655.529 2405.01 -101.841,152 154 89,stand,17.5177 73.158 0,,
|
||||
-742.655 2525.25 -81.8739,153 155 164,stand,23.5492 -146.525 0,,
|
||||
-857.823 2515.71 -40.875,154 156 163,stand,14.079 -177.704 0,,
|
||||
-1022.05 2506.88 -4.86775,155 157 163,stand,16.2158 -178.912 0,,
|
||||
-1122.99 2499.33 29.8402,156 158 160 162,stand,10.3711 103.694 0,,
|
||||
-1152.46 2659.74 75.7798,157 159 180,stand,15.2875 -176.402 0,,
|
||||
-1271.35 2683.72 124.125,158 160 179,stand,33.2941 179.138 0,,
|
||||
-1272.28 2519.03 47.857,159 161 157,stand,30.3223 -8.99231 0,,
|
||||
-1232.71 2322.98 8.97631,160 86 162,stand,31.2506 -118.592 0,,
|
||||
-1125.56 2354.43 4.16383,157 86 87 161 163,stand,28.8391 -130.468 0,,
|
||||
-960.272 2419.99 -41.875,87 156 162 164 155,stand,30.6024 16.9958 0,,
|
||||
-771.136 2333.96 -105.715,163 88 154,stand,36.167 -12.442 0,,
|
||||
-1446.25 2008.84 2.79604,83 166 173,stand,19.3744 -106.375 0,,
|
||||
-1455.67 1866.35 1.05541,165 167,stand,18.2593 -146.838 0,,
|
||||
-1555.78 1785.93 0.254637,166 168,stand,29.3939 -169.574 0,,
|
||||
-1704.87 1768.36 2.7523,167 169 170,stand,25.6805 -79.184 0,,
|
||||
-1664.92 1634.15 2.4292,168,stand,22.2473 78.6731 0,,
|
||||
-1728.09 1904.58 -2.06205,168 171 173,stand,14.7327 -175.259 0,,
|
||||
-1895.62 1897.13 -1.03158,170 60 61 172,stand,20.6708 -125.332 0,,
|
||||
-1885.13 2118.34 -2.74945,171 173 72 62,stand,12.3212 -92.4939 0,,
|
||||
-1682.61 2089.74 -7.06842,172 174 170 165 73,stand,22.7142 37.8204 0,,
|
||||
-1553.5 2218.41 -2.06132,173 73 83 80 82,stand,19.5557 88.2092 0,,
|
||||
-1502.13 2612.21 6.93161,79 176,climb,0.159302 2.15332 0,,
|
||||
-1477.13 2612.67 60.125,175 177,climb,-1.40076 1.42273 0,,
|
||||
-1461.12 2612.67 108.125,176 178,climb,1.65344 2.12585 0,,
|
||||
-1421.26 2621.38 119.125,177 179,stand,37.0129 -1.21399 0,,
|
||||
-1374.06 2685.72 125.125,178 159,stand,1.19202 -8.73413 0,,
|
||||
-1121.13 2669.66 78.5416,158 181,climb,1.0437 0.576782 0,,
|
||||
-1091.31 2669.66 138.125,180 182,climb,1.0437 0.576782 0,,
|
||||
-1084.92 2646.5 138.125,181,stand,13.1067 -82.9468 0,,
|
||||
-1777.79 2713.87 33.2913,68 184,stand,27.0264 168.772 0,,
|
||||
-1779.19 2552.27 31.6749,183 65,stand,25.0763 -162.274 0,,
|
||||
1542.47 2470.77 38.3264,121 186 334,stand,8.2782 94.4989 0,,
|
||||
1530.92 2693.38 92.9173,185 187 333 336,stand,10.0415 90.1373 0,,
|
||||
1535.55 2988.49 123.052,186 188 336,stand,12.7332 168.552 0,,
|
||||
1236.85 3060.88 128.249,187 189 332 336,stand,14.4965 -108.484 0,,
|
||||
1076.61 3043.58 129.838,188 190 332,stand,15.3314 -90.5713 0,,
|
||||
1085.7 2831.22 124.528,189 191 332,stand,23.9667 -92.8894 0,,
|
||||
1098.87 2706.12 92.7102,190 192 331 193 332,stand,26.098 172.634 0,,
|
||||
939.63 2716.15 96.6543,191 193,stand,26.933 -170.936 0,,
|
||||
941.858 2618.82 95.4044,192 194 327 191,stand,28.5095 175.792 0,,
|
||||
751.688 2635.88 94.1152,193 195 326,stand,20.4401 50.3284 0,,
|
||||
507.322 2663.32 95.1371,194 196 325,stand,20.0665 160.664 0,,
|
||||
338.343 2653.42 96.6261,195 197 325,stand,16.6333 -99.4812 0,,
|
||||
332.94 2439.45 96.5014,196 198 324,stand,16.4465 -91.3129 0,,
|
||||
332.955 2203.39 97.005,197 199 323,stand,16.8201 -87.1381 0,,
|
||||
337.048 1899.15 96.2083,198 200 322,stand,18.9514 -94.2847 0,,
|
||||
303.78 1732.36 65.125,199 201 321,stand,38.6279 -93.0762 0,,
|
||||
307.609 1592.27 3.5421,200 202 319 321,stand,29.3445 -89.0881 0,,
|
||||
347.574 1483.51 0.83188,201 203 318 319,stand,19.1382 177.369 0,,
|
||||
61.6239 1481.96 -0.274854,202 204 317,stand,16.1664 -169.547 0,,
|
||||
-179.688 1481.75 0.133716,203 205 315 316,stand,15.8917 -92.0544 0,,
|
||||
-179.7 1259.92 0.312428,204 206 316,stand,12.6453 -89.8297 0,,
|
||||
-179.651 670.836 1.86249,205 207 281 330,stand,16.0785 104.524 0,,
|
||||
-134.905 452.047 -0.978558,206 208 216,stand,23.0383 97.8168 0,,
|
||||
-50.2154 413.475 -1.41881,207 209 215,stand,19.2316 -2.31812 0,,
|
||||
207.12 418.127 -0.224815,208 210 214,stand,19.2316 -2.31812 0,,
|
||||
411.758 409.145 2.40071,209 211 213,stand,21.275 -100.129 0,,
|
||||
406.423 202.781 -1.87223,210 212 213 267,stand,21.4563 -6.026 0,,
|
||||
524.673 189.198 -0.0907137,211 18 19,stand,27.5812 160.087 0,,
|
||||
243.913 189.476 2.7262,211 214 262 210,stand,18.7701 124.937 0,,
|
||||
100.487 311.027 -0.410553,213 215 209,stand,20.9015 178.017 0,,
|
||||
-90.673 303.125 1.04855,214 216 208,stand,23.1317 126.046 0,,
|
||||
-326.255 326.579 -0.746215,215 217 207 282,stand,20.4401 -173.167 0,,
|
||||
-452.952 344.892 -2.591,216 218 268 269,stand,16.6333 -82.7765 0,,
|
||||
-433.996 174.321 -1.00952,217 219,stand,17.2815 -80.733 0,,
|
||||
-405.123 -22.6927 -0.741607,218 220,stand,20.5334 -93.8177 0,,
|
||||
-416.125 -216.116 -0.638243,219 221 266,stand,19.7864 -87.973 0,,
|
||||
-408.657 -494.871 -0.451973,220 222 265,stand,18.7701 3.5321 0,,
|
||||
-168.396 -483.34 0.466639,221 223 264,stand,20.8081 -12.8046 0,,
|
||||
22.8589 -532.693 1.48145,222 224 259 264,stand,20.8081 8.63525 0,,
|
||||
43.5912 -694.648 0.0655105,223 225 257 258,stand,23.7799 102.458 0,,
|
||||
-228.675 -724.524 50.1254,224 226 256,stand,11.0632 -179.214 0,,
|
||||
-469.803 -724.749 105.863,225 227,stand,14.1284 174.661 0,,
|
||||
-744.509 -705.362 121.377,226 228 35,stand,16.1719 -178.94 0,,
|
||||
-883.23 -753.529 119.308,227 229 254,stand,17.0947 -175.688 0,,
|
||||
-1068.61 -712.753 120.911,228 230 253 263,stand,20.1599 82.8754 0,,
|
||||
-1084.61 -422.604 129.612,229 231 263,stand,22.8516 73.504 0,,
|
||||
-1437.39 -298.382 129.741,230 232,stand,22.8516 105.518 0,,
|
||||
-1621.29 -361.731 127.689,231 233 263,stand,17.0947 -120.844 0,,
|
||||
-1697.65 -699.596 122.895,232 234 250 263,stand,17.9352 173.546 0,,
|
||||
-1843.5 -711.438 121.352,233 235 248 250,stand,15.6116 6.77856 0,,
|
||||
-1849.99 -486.954 103.243,234 236 45,stand,28.1415 92.0654 0,,
|
||||
-1847.91 -262.465 48.0316,235 237 247,stand,26.933 97.8168 0,,
|
||||
-1841.74 -28.9145 0.900379,236 238 246 244 245,stand,19.6985 -12.431 0,,
|
||||
-1534.84 -63.6839 3.28727,237 239,stand,19.6051 66.7255 0,,
|
||||
-1522.74 141.043 2.48131,238 240 244,stand,22.7582 5.01526 0,,
|
||||
-1351.96 151.973 4.08565,239 241,stand,18.0231 57.6343 0,,
|
||||
-1368.07 384.534 7.77244,240 242,stand,14.9634 160.922 0,,
|
||||
-1615.35 417.3 0.789393,241 243 50 244 52,stand,16.6333 76.2891 0,,
|
||||
-1572.88 612.78 31.698,242 52,stand,27.9547 -102.546 0,,
|
||||
-1623.03 201.326 0.35705,242 245 50 239 237,stand,25.6366 -174.468 0,,
|
||||
-1880.31 179.622 3.81419,244 246 48 237 50,stand,25.73 -153.309 0,,
|
||||
-1935.49 -58.3396 0.349605,245 247 237 47,stand,13.9417 -87.3248 0,,
|
||||
-1929.94 -307.501 37.8067,246 248 46 236,stand,12.9199 -91.4996 0,,
|
||||
-1972.15 -688.26 124.373,247 249 234 44,stand,19.0448 -109.688 0,,
|
||||
-2023.75 -828.492 115.385,248 250 42 43,stand,19.7864 -105.699 0,,
|
||||
-1731.07 -865.113 115.2,249 251 233 40 234,stand,15.8917 -3.6145 0,,
|
||||
-1589.72 -887.999 116.495,250 252 39 263,stand,14.6832 6.49841 0,,
|
||||
-1384.93 -863.391 116.36,251 253 38 263,stand,14.5898 0.74707 0,,
|
||||
-1100.9 -861.766 116.792,252 254 37 229,stand,14.6832 0.466919 0,,
|
||||
-863.482 -861.752 117.066,253 255 36 228,stand,15.4248 0.00549316 0,,
|
||||
-595.297 -856.747 113.605,254 256,stand,18.9514 3.34534 0,,
|
||||
-294.273 -834.035 62.611,255 257 225 32,stand,22.11 -29.696 0,,
|
||||
-61.7654 -819.024 4.83357,256 258 31 224 29,stand,21.7365 0.186768 0,,
|
||||
243.686 -798.08 -10.1007,257 259 224 28,stand,22.0166 87.3303 0,,
|
||||
212.133 -573.204 -2.4498,258 260 27 26 223,stand,16.4465 87.9785 0,,
|
||||
196.325 -338.101 0.218865,259 261 25,stand,16.2598 92.6202 0,,
|
||||
293.878 -178.092 -4.94047,260 262 25 267,stand,16.1719 87.1436 0,,
|
||||
240.939 26.8654 0.568586,261 213 267,stand,16.2598 115.356 0,,
|
||||
-1357.83 -590.353 127.088,233 232 230 229 252 251,stand,18.5834 11.8103 0,,
|
||||
-173.724 -582.278 0.617587,223 265 222,stand,23.9667 -179.198 0,,
|
||||
-464.02 -582.386 1.64011,264 266 221,stand,25.4498 95.3339 0,,
|
||||
-491.303 -296.959 0.459134,265 220,stand,27.7734 76.2177 0,,
|
||||
480.178 -59.2894 -4.93216,211 24 261 19 25 262 22,stand,22.3901 -63.913 0,,
|
||||
-672.136 363.044 8.84042,217,stand,20.6268 -7.60803 0,,
|
||||
-550.526 540.835 8.02815,217 270 282,stand,18.6768 61.2543 0,,
|
||||
-476.758 635.413 -0.917656,269 271 281,stand,22.2968 90.7635 0,,
|
||||
-485.097 947.579 -40.9333,270 272 280,stand,24.0601 85.8472 0,,
|
||||
-466.34 1202.29 -108.623,271 273 279,stand,24.4281 87.0557 0,,
|
||||
-464.289 1399.64 -126.609,272 274 278 306,stand,18.6768 98.2837 0,,
|
||||
-452.843 1510.04 -125.881,273 275,stand,21.8298 30.8167 0,,
|
||||
-343.827 1544.19 -126.332,274 276 277,stand,22.2034 130.391 0,,
|
||||
-463.405 1666.93 -125.024,275 143 144,stand,23.2251 138.186 0,,
|
||||
-407.044 1423.52 -127.233,275 278 283,stand,26.6583 -94.7461 0,,
|
||||
-370.611 1352.95 -126.231,277 279 273,stand,16.6333 -95.3009 0,,
|
||||
-372.982 1161.15 -100.994,278 280 272 328,stand,13.4802 -94.2847 0,,
|
||||
-388.637 896.729 -33.3898,279 281 271 329,stand,15.0568 -87.6929 0,,
|
||||
-370.886 625.699 -1.5188,280 282 206 330 270,stand,18.9569 -89.4562 0,,
|
||||
-344.171 433.23 -4.48006,281 216 269,stand,20.3467 -82.2162 0,,
|
||||
-621.371 1468.28 -113.924,277 284 306,stand,26.3782 0.697632 0,,
|
||||
-742.928 1477.24 -112.155,283 285 308,stand,27.2131 -176.743 0,,
|
||||
-915.039 1477.26 -111.831,284 286 309,stand,25.6366 -158.461 0,,
|
||||
-1081.63 1409.1 -111.966,285 287 303 310,stand,15.7983 -93.9606 0,,
|
||||
-1106.58 1264.47 -111.998,286 288 303 310,stand,14.2218 -99.7174 0,,
|
||||
-1128.1 1181.24 -54.875,287 289 303,stand,2.06543 -111.313 0,,
|
||||
-1185.67 1124.73 -6.875,288 290 304,stand,7.35535 -164.306 0,,
|
||||
-1277.51 1114.61 32.125,289 291 302 305,stand,15.4303 179.269 0,,
|
||||
-1439.17 1140.85 34.4887,290 292 300 301,stand,20.1599 166.371 0,,
|
||||
-1588.35 1140.79 32.4049,291 293 299 53 301,stand,15.1501 -106.397 0,,
|
||||
-1698.61 1167.06 30.4481,292 294 298 55 53,stand,24.6149 109.484 0,,
|
||||
-1822.99 1168.33 32.4119,293 295 298 55,stand,20.2533 147.903 0,,
|
||||
-1952.24 1243.4 30.7905,294 58 56 296,stand,23.8733 136.769 0,,
|
||||
-1871.07 1354.28 34.6433,295 297 59,stand,21.1816 5.5426 0,,
|
||||
-1699.17 1375.4 41.7043,296 298,stand,32.7832 -79.184 0,,
|
||||
-1695.74 1222.75 31.0919,297 294 293 299,stand,28.6084 -170.244 0,,
|
||||
-1560.66 1239.01 35.7707,298 300 292,stand,24.5215 -3.82874 0,,
|
||||
-1420.88 1238.88 34.644,299 291,stand,25.3564 0.626221 0,,
|
||||
-1466.09 1056.94 37.1818,292 302 291,stand,25.5432 -0.324097 0,,
|
||||
-1332.58 1069.9 35.6401,301 290 305,stand,33.0634 -8.86047 0,,
|
||||
-1040.87 1208.04 -86.875,286 304 288 287,stand,4.38354 -123.766 0,,
|
||||
-1105.07 1122.62 -38.875,303 305 289,stand,1.51062 -148.733 0,,
|
||||
-1240.43 1061.4 25.125,304 302 290,stand,13.667 168.113 0,,
|
||||
-577.248 1379.05 -114.107,273 307 283 308,stand,19.5117 -170.359 0,,
|
||||
-739.64 1354.57 -111.455,306 308,stand,32.0416 130.062 0,,
|
||||
-730.063 1417.1 -112.913,307 309 284 306,stand,31.1133 169.135 0,,
|
||||
-885.416 1400.59 -111.956,308 310 285,stand,30.0916 -164.789 0,,
|
||||
-988.837 1372.53 -112.373,309 287 286 311,stand,28.515 -155.786 0,,
|
||||
-302.631 1347.66 -123.378,310 312 328,climb,18.5669 91.9775 0,,
|
||||
-296.525 1359.88 -68.146,311 313,climb,14.2987 90.7635 0,,
|
||||
-296.525 1375.88 -26.875,312 314,climb,14.2987 90.7635 0,,
|
||||
-273.125 1418.74 -26.875,313 315,climb,1.26892 1.54358 0,,
|
||||
-246.049 1418.74 31.125,314 204 316,climb,1.26892 1.72485 0,,
|
||||
-157.266 1348.45 -0.00752898,315 205 204 317,stand,43.418 -13.7329 0,,
|
||||
56.8974 1366.79 -0.0155044,316 318 203,stand,19.1986 4.1748 0,,
|
||||
356.7 1375.59 0.328787,317 202,stand,20.8685 74.4269 0,,
|
||||
453.804 1523.22 1.2756,202 320 201,stand,21.2366 81.3702 0,,
|
||||
461.655 1714.84 4.00462,319,stand,16.4136 -106.853 0,,
|
||||
370.874 1709.62 58.8483,201 322 200,stand,14.837 73.7238 0,,
|
||||
462.656 1851.62 96.0654,321 199,stand,20.2203 113.071 0,,
|
||||
454.08 2186.05 95.9152,198 324,stand,13.9087 88.2532 0,,
|
||||
466.876 2437.47 95.7021,323 325 197,stand,16.6937 88.1598 0,,
|
||||
462.572 2518.43 95.3448,324 326 196 195,stand,21.5167 -2.23022 0,,
|
||||
713.278 2518.46 94.8758,325 327 194,stand,21.1487 -1.95007 0,,
|
||||
910.534 2499.27 95.9758,326 193,stand,17.8033 51.7841 0,,
|
||||
-285.585 1190.25 -95.875,311 329 279,stand,7.22351 -89.4617 0,,
|
||||
-287.627 936.288 -31.875,328 330 280,stand,13.6285 -95.8667 0,,
|
||||
-315.412 724.317 0.214386,329 206 281,stand,29.6851 -24.5984 0,,
|
||||
1159.1 2397 96.2248,191,stand,20.6818 140.372 0,,
|
||||
1253.94 2841.3 124.589,190 188 333 189 191,stand,22.1649 103.068 0,,
|
||||
1333.1 2753.76 106.642,186 332 334 336,stand,29.6851 131.314 0,,
|
||||
1354.16 2442.72 35.2433,333 335 185,stand,29.8718 -94.7736 0,,
|
||||
1337.72 2288.18 5.4692,123 334 121,stand,14.837 88.2532 0,,
|
||||
1438.61 2897.47 115.686,333 187 186 188,stand,19.292 168.662 0,,
|
||||
|
@@ -0,0 +1,140 @@
|
||||
139
|
||||
1696.93 1548.18 4.125,1 35 36,stand,,,
|
||||
1725.54 1094.58 4.125,0 2 36,stand,,,
|
||||
1723.16 729.155 4.125,1 3 37,stand,,,
|
||||
1709.16 393.254 4.125,2 4 38,stand,,,
|
||||
1741.58 55.043 4.125,3 5 43,stand,,,
|
||||
1739.79 -215.646 4.125,4 6 44,stand,,,
|
||||
1764.25 -435.758 4.125,5 7 45,stand,,,
|
||||
1764.34 -643.186 4.125,6 8 46,stand,,,
|
||||
1764.46 -930.969 4.125,7 9 48,stand,,,
|
||||
1721.57 -1268.37 4.125,8 10 49,stand,,,
|
||||
1717.64 -1496.7 4.125,9 11 49,stand,,,
|
||||
1391.54 -1498.39 4.125,10 12 49,stand,,,
|
||||
1031.11 -1515.86 4.125,11 13 50,stand,,,
|
||||
692.927 -1453.41 4.125,12 14 102,stand,,,
|
||||
360.157 -1458.37 4.125,13 15 103,stand,,,
|
||||
60.8565 -1459.23 4.125,14 16,stand,,,
|
||||
-100.3 -1459.33 4.125,15 17 104,stand,,,
|
||||
-409.664 -1459.49 4.125,16 18 105,stand,,,
|
||||
-586.109 -1458.31 4.125,17 19 105,stand,,,
|
||||
-566.653 -1234.88 4.125,18 20 105,stand,,,
|
||||
-580.419 -1036.26 4.125,19 21 106,stand,,,
|
||||
-557.363 -842.658 4.125,20 22 68,stand,,,
|
||||
-579.359 -651.729 4.125,21 23 67,stand,,,
|
||||
-580.097 -458.301 4.125,22 24 66,stand,,,
|
||||
-597.424 -191.082 4.125,23 25 65,stand,,,
|
||||
-585.086 335.482 4.125,24 26 63,stand,,,
|
||||
-585.133 658.093 4.125,25 27 62,stand,,,
|
||||
-573.85 1014.37 4.125,26 28 61 134,stand,,,
|
||||
-584.864 1473.2 4.125,27 29,stand,,,
|
||||
-589.846 1587.69 4.125,28 30 134,stand,,,
|
||||
-334.067 1584.68 4.125,29 31,stand,,,
|
||||
15.759 1584.25 4.125,30 32 60 134,stand,,,
|
||||
354.987 1582.41 4.125,31 33 59,stand,,,
|
||||
622.36 1571.2 4.125,32 34 58,stand,,,
|
||||
941.902 1542.02 4.125,33 35 57,stand,,,
|
||||
1456.66 1545.19 4.125,34 0 36,stand,,,
|
||||
1414.6 1169 4.125,35 1 37 0 57 56,stand,,,
|
||||
1394.89 682.08 4.125,36 38 39 40 2,stand,,,
|
||||
1543.83 360.809 4.125,37 3 39 43,stand,,,
|
||||
1351.41 331.975 4.125,38 37 41 42,stand,,,
|
||||
1127.76 635.271 4.125,37 41 56 137,stand,,,
|
||||
1116.44 285.82 4.125,40 39 124 126 137,stand,,,
|
||||
1377.41 59.0109 4.125,39 43 108 125,stand,,,
|
||||
1633.05 59.101 4.125,42 38 4 44,stand,,,
|
||||
1562.74 -131.139 4.125,43 45 5,stand,,,
|
||||
1488.86 -265.92 4.125,44 46 55 6 108,stand,,,
|
||||
1498.04 -541.634 4.125,45 47 53 7,stand,,,
|
||||
1417.12 -757.097 4.125,46 48 52,stand,,,
|
||||
1541.75 -949.32 4.125,47 49 8,stand,,,
|
||||
1503.7 -1239.1 4.125,48 50 9 10 11 52,stand,,,
|
||||
1054.76 -1239.01 4.125,49 12 51 101 73,stand,,,
|
||||
1027.67 -971.994 4.125,50 52 54 73,stand,,,
|
||||
1323.87 -946.064 4.125,51 47 49 53,stand,,,
|
||||
1256.34 -552.924 4.125,52 54 55 46 110,stand,,,
|
||||
1024.3 -582.952 4.125,53 51 73 110 112,stand,,,
|
||||
1364.12 -312.35 4.125,53 45 108,stand,,,
|
||||
999.614 869.249 4.125,40 57 128 36 138,stand,,,
|
||||
951.004 1224.67 4.125,56 36 58 34 135 138,stand,,,
|
||||
640.96 1321.55 4.125,57 59 33 135,stand,,,
|
||||
281.931 1313.02 4.125,58 60 32 136,stand,,,
|
||||
32.0013 1272.68 4.125,59 61 85 31,stand,,,
|
||||
-309.157 1093.36 4.125,60 62 27 134 85,stand,,,
|
||||
-263.842 679.455 4.125,61 63 86 26,stand,,,
|
||||
-402.814 433.35 4.125,62 64 87 25,stand,,,
|
||||
-360.193 154.408 4.125,63 65 80,stand,,,
|
||||
-364.967 -112.863 4.125,64 66 79 24,stand,,,
|
||||
-346.194 -410.147 4.125,65 67 23 77,stand,,,
|
||||
-336.02 -645.851 4.125,66 68 76 22,stand,,,
|
||||
-325.827 -922.753 4.125,67 69 106 21,stand,,,
|
||||
-59.9142 -936.315 4.125,68 70 107 76,stand,,,
|
||||
163.461 -936.298 4.125,69 71 75,stand,,,
|
||||
368.033 -1068.65 4.125,70 72 103 74 107,stand,,,
|
||||
605.271 -1067.67 4.125,71 73 101,stand,,,
|
||||
646.274 -825.179 4.125,72 74 50 54 51 112,stand,,,
|
||||
383.737 -774.366 4.125,73 75 113 71,stand,,,
|
||||
124 -631.022 4.125,74 76 117 115 70 114,stand,,,
|
||||
-97.9295 -595.255 4.125,75 77 69 67 117,stand,,,
|
||||
-224.639 -365.855 4.125,76 78 66,stand,,,
|
||||
6.72999 -248.596 4.125,77 79 116 117 118,stand,,,
|
||||
-201.778 -35.4486 4.125,78 80 65 118,stand,,,
|
||||
-177.547 191.23 4.125,79 81 119 64,stand,,,
|
||||
-82.3823 457.955 4.125,80 82 87 119,stand,,,
|
||||
45.511 422.759 4.125,81 83 88 133,stand,,,
|
||||
97.3582 701.149 4.125,82 84 86,stand,,,
|
||||
236.182 814.827 4.125,83 130 85 136 132 129 133,stand,,,
|
||||
83.3179 1062.5 4.125,86 84 60 136 61,stand,,,
|
||||
-112.701 783.008 4.125,85 87 83 62,stand,,,
|
||||
-167.405 481.206 4.125,86 63 81,stand,,,
|
||||
227.861 264.562 4.125,82 89 100 90 119 133,stand,,,
|
||||
386.054 184.126 4.125,88 90 100,stand,,,
|
||||
379.27 336.997 4.125,89 91 88 133,stand,,,
|
||||
599.376 311.644 4.125,90 92 132 127 93,stand,,,
|
||||
635.35 147.518 4.125,91 93,stand,,,
|
||||
788.925 122.72 4.125,92 94 126 123 91,stand,,,
|
||||
760.482 -21.9992 4.125,93 95 96 123 121,stand,,,
|
||||
593.636 -33.657 4.125,94 96,stand,,,
|
||||
561.364 -201.594 4.125,95 97 113 120 94 114,stand,,,
|
||||
411.218 -175.57 4.125,96 98 116 99,stand,,,
|
||||
380.937 -30.0889 4.125,97 99,stand,,,
|
||||
184.234 -5.80866 4.125,98 100 116 118 97,stand,,,
|
||||
198.033 145.569 4.125,99 89 118 88,stand,,,
|
||||
806.149 -1286.82 4.125,50 102 72,stand,,,
|
||||
552.809 -1289.98 4.125,103 101 13,stand,,,
|
||||
280.205 -1298.35 4.125,104 102 14 71,stand,,,
|
||||
-6.84731 -1286.02 4.125,103 105 16 107,stand,,,
|
||||
-418.024 -1301.41 4.125,104 106 18 19 17,stand,,,
|
||||
-398.956 -961.733 4.125,105 68 20,stand,,,
|
||||
2.82539 -1161.64 4.125,69 104 71,stand,,,
|
||||
1329.44 -202.423 4.125,42 45 55 109,stand,,,
|
||||
1158.59 -216.664 4.125,108 110 125 121,stand,,,
|
||||
1105.77 -375.547 4.125,109 111 54 53 121,stand,,,
|
||||
823.151 -397.365 4.125,110 112 121 120,stand,,,
|
||||
722.069 -578.055 4.125,111 113 73 54,stand,,,
|
||||
497.436 -542.634 4.125,112 114 74 96,stand,,,
|
||||
427.044 -455.077 4.125,113 115 96 75,stand,,,
|
||||
204.221 -407.618 4.125,114 116 75,stand,,,
|
||||
197.919 -162.509 4.125,115 78 117 99 97,stand,,,
|
||||
51.3677 -497.134 4.125,116 78 75 76,stand,,,
|
||||
34.3807 -1.21536 4.125,119 78 100 99 79,stand,,,
|
||||
-14.0912 272.38 4.125,118 81 80 88,stand,,,
|
||||
751.417 -291.242 4.125,96 121 111,stand,,,
|
||||
935.506 -261.08 4.125,120 122 109 111 94 110,stand,,,
|
||||
1084.6 -75.5598 4.125,121 123 125,stand,,,
|
||||
921.626 76.5605 4.125,122 124 94 93 126,stand,,,
|
||||
1141.95 205.139 4.125,123 125 41,stand,,,
|
||||
1262.06 -0.234829 4.125,124 122 42 109,stand,,,
|
||||
934.629 255.483 4.125,93 127 41 137 123,stand,,,
|
||||
782.743 493.221 4.125,126 128 131 91 137,stand,,,
|
||||
814.916 648.716 4.125,127 129 137 56 138 131,stand,,,
|
||||
616.598 903.061 4.125,128 130 135 136 84 138,stand,,,
|
||||
427.028 746.926 4.125,129 131 84,stand,,,
|
||||
567.25 564.842 4.125,132 127 130 128,stand,,,
|
||||
400.265 545.005 4.125,133 131 84 91,stand,,,
|
||||
196.791 457.315 4.125,132 82 88 84 90,stand,,,
|
||||
-378.706 1372.93 4.125,61 31 27 29,stand,,,
|
||||
733.929 1084.48 4.125,57 129 58,stand,,,
|
||||
295.556 1077.57 4.125,129 59 85 84,stand,,,
|
||||
953.172 463.202 4.125,127 40 126 41 128,stand,,,
|
||||
838.886 940.497 4.125,57 128 129 56,stand,,,
|
||||
|
@@ -171,10 +171,29 @@ do_botaction( action )
|
||||
case "+gostand":
|
||||
self setbotstance( "jump" );
|
||||
break;
|
||||
|
||||
case "-smoke": // no equal in libcod
|
||||
|
||||
case "-activate":
|
||||
// self activate( false ); // no equal in libcod
|
||||
break;
|
||||
|
||||
case "+activate":
|
||||
// self activate( true );
|
||||
break;
|
||||
|
||||
case "+smoke":
|
||||
// self throwsmoke( true );
|
||||
break;
|
||||
|
||||
case "-smoke":
|
||||
// self throwsmoke( false );
|
||||
break;
|
||||
|
||||
case "+holdbreath":
|
||||
// self holdbreath( true );
|
||||
break;
|
||||
|
||||
case "-holdbreath":
|
||||
// self holdbreath( false );
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user