Compare commits
110 Commits
Author | SHA1 | Date | |
---|---|---|---|
901895a10d | |||
230d89edf5 | |||
fa43b34dd5 | |||
2e3ec92b07 | |||
271ef3387d | |||
87b2a1ca8b | |||
1f9c458c07 | |||
eac093fa3e | |||
c5c9102c5c | |||
25052b2891 | |||
dc03e0fbb3 | |||
24c1908c85 | |||
02761a1013 | |||
093dc9cd8c | |||
a3266c6de3 | |||
0ea6672804 | |||
b3967606f4 | |||
fcd130a132 | |||
f39a4d008c | |||
cff61ab690 | |||
f044af8aea | |||
1d464fca49 | |||
538269517a | |||
9efda21175 | |||
f536f2b65d | |||
7b52b462e4 | |||
9136ef2809 | |||
a8385f9010 | |||
541b0832e3 | |||
8acd9a282e | |||
cd1721b9f0 | |||
c342446e46 | |||
e181931ca2 | |||
ad74f6b93d | |||
249298b8f7 | |||
b2989d5610 | |||
4e8b5a1604 | |||
4c5dc51a46 | |||
5de583df89 | |||
5be2cf4b51 | |||
6315dffe34 | |||
9b36015636 | |||
9356aa2aff | |||
77b4081edc | |||
3287031fe7 | |||
26c533638e | |||
ccda0c6c37 | |||
386e87d063 | |||
dc58bf328a | |||
21949a47da | |||
521225e4ce | |||
6f954ebfba | |||
c6a21a075b | |||
250ee97e9d | |||
cf788c4308 | |||
abfa41e24d | |||
3339ff2656 | |||
a64a0cc810 | |||
9c20cf621b | |||
f667c96717 | |||
c2f86e7120 | |||
d3f2f192f0 | |||
762257ca8a | |||
e773996274 | |||
7eb6c7d246 | |||
15143dbb85 | |||
0f95ebacb8 | |||
2a20a834ec | |||
99dbe2cd87 | |||
090fc5f7a8 | |||
3258183b1c | |||
5021547734 | |||
a4e3fbb42b | |||
7c041900ff | |||
6ee4d2e2fd | |||
988d471fdb | |||
3711a8e8ad | |||
c3d3dc8323 | |||
b5fb8c7760 | |||
c366c041fb | |||
79592e6056 | |||
ca9dad8b79 | |||
5fe8aee7e2 | |||
fab64bc3ed | |||
feb573d43b | |||
d788ce7cb3 | |||
cae032eb9a | |||
d9a8ac04c4 | |||
e606af216c | |||
2972d4e497 | |||
ca0b0032eb | |||
6d9dbb262a | |||
a568042934 | |||
e3a65e892c | |||
30a9888067 | |||
4dcea05c2a | |||
168a2e621c | |||
c9f5b6cf33 | |||
3b7669dbd0 | |||
589fe63bc8 | |||
712f2c3a37 | |||
ab612e8ff6 | |||
a5b3ecc81b | |||
9c1f4552c2 | |||
91044ff842 | |||
e1326342d2 | |||
a6d663b67c | |||
e7bf74894d | |||
01dc7ea667 | |||
b1808c66ea |
27
.astylerc
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# try to mimic the original gsc provided
|
||||||
|
# mode=ghc
|
||||||
|
mode=c
|
||||||
|
style=allman
|
||||||
|
|
||||||
|
indent=force-tab=2
|
||||||
|
lineend=windows
|
||||||
|
|
||||||
|
pad-oper
|
||||||
|
pad-paren-in
|
||||||
|
pad-header
|
||||||
|
# pad-brackets-in
|
||||||
|
fill-empty-lines
|
||||||
|
squeeze-lines=2
|
||||||
|
squeeze-ws
|
||||||
|
break-one-line-headers
|
||||||
|
add-braces
|
||||||
|
remove-comment-prefix
|
||||||
|
|
||||||
|
break-blocks
|
||||||
|
|
||||||
|
indent-switches
|
||||||
|
indent-cases
|
||||||
|
indent-after-parens
|
||||||
|
indent-col1-comments
|
||||||
|
|
||||||
|
remove-comment-prefix
|
11
.editorconfig
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 2
|
||||||
|
charset = latin1
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.gsx linguist-language=GSC
|
21
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
name: main
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
main-win:
|
||||||
|
name: Test on Windows
|
||||||
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out files
|
||||||
|
uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Setup gsc-tool
|
||||||
|
uses: xensik/setup-gsc-tool@v1
|
||||||
|
with:
|
||||||
|
version: '1.4.0'
|
||||||
|
|
||||||
|
- name: Compile test script
|
||||||
|
run: |
|
||||||
|
gsc-tool.exe -m parse -g iw5 -s pc .
|
37
.gitignore
vendored
@ -1,31 +1,8 @@
|
|||||||
# Ignore everything in repository root
|
|
||||||
/*
|
|
||||||
|
|
||||||
# Files to not ignore
|
|
||||||
!/.gitignore
|
|
||||||
!/botnames.txt
|
|
||||||
!/z_devserver.bat
|
|
||||||
!/z_serverdev.bat
|
|
||||||
!/z_server.bat
|
|
||||||
!/z_client.bat
|
|
||||||
!/z_dev.bat
|
|
||||||
|
|
||||||
# Folder to not ignore
|
|
||||||
!/main_shared/
|
|
||||||
*.gsx
|
|
||||||
!/main_shared/maps/mp/gametypes/_callbacksetup.gsx
|
|
||||||
main_shared/maps/mp/gametypes/_globallogic.gsx
|
|
||||||
main_shared/maps/mp/gametypes/_hardpoints.gsx
|
|
||||||
!/README.md
|
|
||||||
*.zip
|
*.zip
|
||||||
!/out
|
*.log
|
||||||
|
*.stat
|
||||||
!/main/
|
logs/
|
||||||
/main/*
|
demos/
|
||||||
!/main/server.cfg
|
missingasset.csv
|
||||||
!/main/botnames.txt
|
q3config_server.cfg
|
||||||
!/main/waypoints/
|
qconsole.log.old
|
||||||
!/main/plugins/
|
|
||||||
/main/plugins/*
|
|
||||||
!/main/plugins/httpget.dll
|
|
||||||
!/main/plugins/httpget.so
|
|
||||||
|
3
.gitmodules
vendored
@ -1,3 +0,0 @@
|
|||||||
[submodule "main_shared/waypoints"]
|
|
||||||
path = main/waypoints
|
|
||||||
url = https://github.com/ineedbots/cod4x_waypoints
|
|
19
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"astyle.astylerc": "${workspaceRoot}/.astylerc",
|
||||||
|
"astyle.additional_languages": [
|
||||||
|
"gsc",
|
||||||
|
"gsx"
|
||||||
|
],
|
||||||
|
"[gsc]": {
|
||||||
|
"editor.defaultFormatter": "chiehyu.vscode-astyle",
|
||||||
|
},
|
||||||
|
"editor.quickSuggestions": {
|
||||||
|
"other": true,
|
||||||
|
"comments": true,
|
||||||
|
"strings": true
|
||||||
|
},
|
||||||
|
"vscode-codscript.use_builtin_completionItems": false,
|
||||||
|
"files.associations": {
|
||||||
|
"*.gsx": "gsc"
|
||||||
|
}
|
||||||
|
}
|
252
README.md
@ -1,18 +1,18 @@
|
|||||||

|

|
||||||
|
|
||||||
# CoD4x Bot Warfare
|
# IW3 Bot Warfare
|
||||||
Bot Warfare is a GSC mod for the [CoD4x project](https://github.com/callofduty4x/CoD4x_Server).
|
Bot Warfare is a GSC mod for the [CoD4x project](https://github.com/callofduty4x/CoD4x_Server).
|
||||||
|
|
||||||
It aims to add playable AI to the multiplayer games of CoD4.
|
It aims to add playable AI to the multiplayer games of CoD4.
|
||||||
|
|
||||||
You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfare/downloads/cod4x-bot-warfare-latest) and the CoD4x.me post [here](https://cod4x.me/index.php?/forums/topic/3116-release-bot-warfare/).
|
You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfare/downloads/iw3-bot-warfare-latest).
|
||||||
|
|
||||||
## <span style="color:red">Important to public dedicated servers</span>
|
## <span style="color:red">Important to public dedicated servers</span>
|
||||||
The ```bots_main_firstIsHost``` DVAR is enabled by default!
|
The `bots_main_firstIsHost` DVAR is enabled by default!
|
||||||
|
|
||||||
This is so inexperienced users of the mod can access with menu without any configuration.
|
This is so inexperienced users of the mod can access with menu without any configuration.
|
||||||
|
|
||||||
Make sure to disable this DVAR by adding ```set bots_main_firstIsHost 0``` in your server config!
|
Make sure to disable this DVAR by adding `set bots_main_firstIsHost 0` in your server config!
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
- [Features](#Features)
|
- [Features](#Features)
|
||||||
@ -22,7 +22,7 @@ Make sure to disable this DVAR by adding ```set bots_main_firstIsHost 0``` in yo
|
|||||||
- [Credits](#Credits)
|
- [Credits](#Credits)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- A Waypoint Editor for creating and modifying bot's waypoints of traversing the map. Have a look at [Using the Waypoint editor]().
|
- A Waypoint Editor for creating and modifying bot's waypoints of traversing the map. Have a look at [Using the Waypoint editor](/bw-assets/wpedit.md).
|
||||||
|
|
||||||
- A clean and nice menu, you can edit every bot DVAR within in-game.
|
- A clean and nice menu, you can edit every bot DVAR within in-game.
|
||||||
|
|
||||||
@ -31,43 +31,41 @@ Make sure to disable this DVAR by adding ```set bots_main_firstIsHost 0``` in yo
|
|||||||
- This mod does not edit ANY stock .gsc files, meaning EVERY other mod is compatible with this mod. Mod doesn't add anything unnecessary, what you see is what you get.
|
- This mod does not edit ANY stock .gsc files, meaning EVERY other mod is compatible with this mod. Mod doesn't add anything unnecessary, what you see is what you get.
|
||||||
|
|
||||||
- Adds AI clients to multiplayer games to simulate playing real players. (essentially Combat Training for CoD4)
|
- Adds AI clients to multiplayer games to simulate playing real players. (essentially Combat Training for CoD4)
|
||||||
- Bots move around the maps with native engine input. (all normal maps)
|
- Bots move around the maps with native engine input. (all normal maps)
|
||||||
- Bots press all the buttons with native engine input (ads, sprint, jump, etc)
|
- Bots press all the buttons with native engine input (ads, sprint, jump, etc)
|
||||||
- Bots play all gamemodes/objectives, they capture flags, plant, defuse bombs, etc. (all normal modes)
|
- Bots play all gamemodes/objectives, they capture flags, plant, defuse bombs, etc. (all normal modes)
|
||||||
- Bots use all killstreaks.
|
- Bots use all killstreaks.
|
||||||
- Bots target helicopters.
|
- Bots target helicopters.
|
||||||
- Bots target equipment.
|
- Bots target equipment.
|
||||||
- Bots can camp randomly.
|
- Bots can camp randomly.
|
||||||
- Bots can follow others on own will.
|
- Bots can follow others on own will.
|
||||||
- Bots have smooth and realistic aim.
|
- Bots have smooth and realistic aim.
|
||||||
- Bots respond smartly to their surroundings, they will go to you if you shoot, uav, etc.
|
- Bots respond smartly to their surroundings, they will go to you if you shoot, uav, etc.
|
||||||
- Bots use all perks and weapons.
|
- Bots use all perks and weapons.
|
||||||
- Bots difficulty level can be customized and are accurate. (hard is hard, easy is easy, etc.)
|
- Bots difficulty level can be customized and are accurate. (hard is hard, easy is easy, etc.)
|
||||||
- Bots each all have different classes, traits, and difficulty and remember it all.
|
- Bots each all have different classes, traits, and difficulty and remember it all.
|
||||||
- Bots switch from between primaries and secondaries.
|
- Bots switch from between primaries and secondaries.
|
||||||
- Bots can grenade, place claymores, they even use grenades and tubes in preset map locations.
|
- Bots can grenade, place claymores, they even use grenades and tubes in preset map locations.
|
||||||
- Bots use grenade launchers.
|
- Bots use grenade launchers.
|
||||||
- Bots can melee people.
|
- Bots can melee people.
|
||||||
- Bots can run!
|
- Bots can run!
|
||||||
- Bots can climb ladders!
|
- Bots can climb ladders!
|
||||||
- Bots jump shot and drop shot.
|
- Bots jump shot and drop shot.
|
||||||
- Bots detect smoke grenades, stun grenades, flashed and airstrike slows.
|
- Bots detect smoke grenades, stun grenades, flashed and airstrike slows.
|
||||||
- Bots will remember their class, skill and traits, even on multiround based gametypes.
|
- Bots will remember their class, skill and traits, even on multiround based gametypes.
|
||||||
- Bots can throwback grenades.
|
- Bots can throwback grenades.
|
||||||
- ... And pretty much everything you expect a Combat Training bot to have
|
- ... And pretty much everything you expect a Combat Training bot to have
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
Using CoD4x's extended functionality requires to use their Dedicated server, as explained [here](https://cod4x.me/index.php?/forums/topic/2047-add-cod4x-server-gsc-functions-to-the-client/).
|
You can easily setup a local LAN dedicated server for you to join and play on. Have a look at [Setting up a CoD4x server](https://github.com/callofduty4x/CoD4x_Server/wiki/Server-setup).
|
||||||
|
|
||||||
You can easily setup a local LAN dedicated server for you to join and play on. Have a look at [Setting up a CoD4x server]().
|
0. Make sure that [CoD4x server + client](https://cod4x.ovh/) is installed, updated and working properly.
|
||||||
|
- Download the [latest release](https://github.com/ineedbots/iw3_bot_warfare/releases) of Bot Warfare.
|
||||||
0. Make sure that [CoD4x server + client](https://cod4x.me/) is installed, updated and working properly.
|
|
||||||
- Download the [latest release](https://github.com/ineedbots/cod4x_bot_warfare/releases) of Bot Warfare.
|
|
||||||
1. Locate your CoD4x server install folder.
|
1. Locate your CoD4x server install folder.
|
||||||
2. Move the files/folders found in 'Add to root of CoD4x server' from the Bot Warfare release archive you downloaded to the root of your CoD4x server folder.
|
2. Move the files/folders found in `Add to root of CoD4x server` from the Bot Warfare release archive you downloaded to the root of your CoD4x server folder.
|
||||||
- The folder/file structure should follow as '.CoD4x server folder\main_shared\maps\mp\bots\_bot.gsc'.
|
- The folder/file structure should follow as `.CoD4x server folder\mods\mp_bots\z_svr_bots.iwd`.
|
||||||
3. The mod is now installed, now start your server, change the DVARs and start a map.
|
3. The mod is now installed. Now before you start your server, you will need to set the `fs_game` DVAR to `mods/mp_bots` as a commandline argument (`+set fs_game "mods/mp_bots"`).
|
||||||
4. Now start your CoD4x client and connect to your server ('connect 127.0.0.1' in the console most likely) and play!
|
4. Now start your CoD4x client and connect to your server (`connect 127.0.0.1` in the console most likely) and play!
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
@ -79,110 +77,96 @@ You can easily setup a local LAN dedicated server for you to join and play on. H
|
|||||||
- Pressing the menu button again closes menus.
|
- Pressing the menu button again closes menus.
|
||||||
|
|
||||||
### DVARs
|
### DVARs
|
||||||
- bots_manage_add - an integer amount of bots to add to the game, resets to 0 once the bots have been added.
|
| Dvar | Description | Default Value |
|
||||||
- for example: 'bots_manage_add 10' will add 10 bots to the game.
|
|----------------------------------|---------------------------------------------------------------------------------------------|--------------:|
|
||||||
|
| bots_main | Enable this mod. | 1 |
|
||||||
|
| bots_main_firstIsHost | The first player to connect will be given host. | 1 |
|
||||||
|
| bots_main_GUIDs | A comma separated list of GUIDs of players who will be given host. | |
|
||||||
|
| bots_main_waitForHostTime | How many seconds to wait for the host player to connect before adding bots to the match. | 10 |
|
||||||
|
| bots_main_menu | Enable the in-game menu for hosts. | 1 |
|
||||||
|
| bots_main_debug | Enable the in-game waypoint editor at start of the game, or enable bot event prints. <ul><li>`0` - disable</li><li>`1` - for just debug events</li><li>`2` - for every event</li><ul> | 0 |
|
||||||
|
| bots_main_kickBotsAtEnd | Kick the bots at the end of a match. | 0 |
|
||||||
|
| bots_main_chat | The rate bots will chat at, set to 0 to disable. | 1.0 |
|
||||||
|
| bots_manage_add | Amount of bots to add to the game, once bots are added, resets back to `0`. | 0 |
|
||||||
|
| bots_manage_fill | Amount of players/bots (look at `bots_manage_fill_mode`) to maintain in the match. | 0 |
|
||||||
|
| bots_manage_fill_mode | `bots_manage_fill` players/bots counting method.<ul><li>`0` - counts both players and bots.</li><li>`1` - only counts bots.</li><li>`2` - exactly `0` but auto adjusts `bots_manage_fill` to map.</li><li>`3` - exactly `1` but auto adjusts `bots_manage_fill` to map.</li><li>`4` - bots are used for balancing teams.</li><li>`5` - exactly `4` but auto adjusts `bots_manage_fill` to map.</li></ul> | 0 |
|
||||||
|
| bots_manage_fill_watchplayers | Bots will not be added until one player is in the game | 0 |
|
||||||
|
| bots_manage_fill_kick | If the amount of players/bots in the match exceeds `bots_manage_fill`, kick bots until no longer exceeds. | 0 |
|
||||||
|
| bots_manage_fill_spec | If when counting players for `bots_manage_fill` should include spectators. | 1 |
|
||||||
|
| bots_team | One of `autoassign`, `allies`, `axis`, `spectator`, or `custom`. What team the bots should be on. | autoassign |
|
||||||
|
| bots_team_amount | When `bots_team` is set to `custom`. The amount of bots to be placed on the axis team. The remainder will be placed on the allies team. | 0 |
|
||||||
|
| bots_team_force | If the server should force bots' teams according to the `bots_team` value. When `bots_team` is `autoassign`, unbalanced teams will be balanced. This dvar is ignored when `bots_team` is `custom`. | 0 |
|
||||||
|
| bots_team_mode | When `bots_team_force` is `1` and `bots_team` is `autoassign`, players/bots counting method. <ul><li>`0` - counts both players and bots.</li><li>`1` - only counts bots</li></ul> | 0 |
|
||||||
|
| bots_skill | Bots' difficulty.<ul><li>`0` - Random difficulty for each bot.</li><li>`1` - Easiest difficulty for all bots.</li><li>`2` to `6` - Between easy and hard difficulty for all bots.</li><li>`7` - The hardest difficulty for all bots.</li><li>`8` - custom (look at the `bots_skill_<team>_<difficulty>` dvars)</li><li>`9` - Every difficulty parameter is randomized</li></ul> | 0 |
|
||||||
|
| bots_skill_axis_hard | When `bots_skill` is set to `8`, the amount of hard difficulty bots to set on the axis team. | 0 |
|
||||||
|
| bots_skill_axis_med | When `bots_skill` is set to `8`, the amount of medium difficulty bots to set on the axis team. The remaining bots on the team will be set to easy difficulty. | 0 |
|
||||||
|
| bots_skill_allies_hard | When `bots_skill` is set to `8`, the amount of hard difficulty bots to set on the allies team. | 0 |
|
||||||
|
| bots_skill_allies_med | When `bots_skill` is set to `8`, the amount of medium difficulty bots to set on the allies team. The remaining bots on the team will be set to easy difficulty. | 0 |
|
||||||
|
| bots_skill_min | The minimum difficulty level for the bots. | 1 |
|
||||||
|
| bots_skill_max | The maximum difficulty level for the bots. | 7 |
|
||||||
|
| bots_loadout_reasonable | If the bots should filter bad performing create-a-class selections. | 0 |
|
||||||
|
| bots_loadout_allow_op | If the bots should be able to use overpowered and annoying create-a-class selections. | 1 |
|
||||||
|
| bots_loadout_rank | What rank to set the bots.<ul><li>`-1` - Average of all players in the match.</li><li>`0` - All random.</li><li>`1` or higher - Sets the bots' rank to this.</li></ul> | -1 |
|
||||||
|
| bots_play_move | If the bots can move. | 1 |
|
||||||
|
| bots_play_knife | If the bots can knife. | 1 |
|
||||||
|
| bots_play_fire | If the bots can fire. | 1 |
|
||||||
|
| bots_play_nade | If the bots can grenade. | 1 |
|
||||||
|
| bots_play_obj | If the bots can play the objective. | 1 |
|
||||||
|
| bots_play_camp | If the bots can camp. | 1 |
|
||||||
|
| bots_play_jumpdrop | If the bots can jump/drop shot. | 1 |
|
||||||
|
| bots_play_target_other | If the bots can target other entities other than players. | 1 |
|
||||||
|
| bots_play_killstreak | If the bots can call in killstreaks. | 1 |
|
||||||
|
| bots_play_ads | If the bots can aim down sights. | 1 |
|
||||||
|
| bots_play_aim | If the bots can aim. | 1 |
|
||||||
|
|
||||||
- bots_manage_fill - an integer amount of players/bots (depends on bots_manage_fill_mode) to retain on the server, it will automatically add bots to fill player space.
|
|
||||||
- for example: 'bots_manage_fill 10' will have the server retain 10 players in the server, if there are less than 10, it will add bots until that value is reached.
|
|
||||||
|
|
||||||
- bots_manage_fill_mode - a value to indicate if the server should consider only bots or players and bots when filling player space.
|
|
||||||
- 0 will consider both players and bots.
|
|
||||||
- 1 will only consider bots.
|
|
||||||
|
|
||||||
- bots_manage_fill_kick - a boolean value (0 or 1), whether or not if the server should kick bots if the amount of players/bots (depends on bots_manage_fill_mode) exceeds the value of bots_manage_fill.
|
|
||||||
|
|
||||||
- bots_manage_fill_spec - a boolean value (0 or 1), whether or not if the server should consider players who are on the spectator team when filling player space.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- bots_team - a string, the value indicates what team the bots should join:
|
|
||||||
- 'autoassign' will have bots balance the teams
|
|
||||||
- 'allies' will have the bots join the allies team
|
|
||||||
- 'axis' will have the bots join the axis team
|
|
||||||
- 'custom' will have bots_team_amount bots on the axis team, the rest will be on the allies team
|
|
||||||
|
|
||||||
- bots_team_amount - an integer amount of bots to have on the axis team if bots_team is set to 'custom', the rest of the bots will be placed on the allies team.
|
|
||||||
- for example: there are 5 bots on the server and 'bots_team_amount 3', then 3 bots will be placed on the axis team, the other 2 will be placed on the allies team.
|
|
||||||
|
|
||||||
- bots_team_force - a boolean value (0 or 1), whether or not if the server should enforce periodically the bot's team instead of just a single team when the bot is added to the game.
|
|
||||||
- for example: 'bots_team_force 1' and 'bots_team autoassign' and the teams become to far unbalanced, then the server will change a bot's team to make it balanced again.
|
|
||||||
|
|
||||||
- bots_team_mode - a value to indicate if the server should consider only bots or players and bots when counting players on the teams.
|
|
||||||
- 0 will consider both players and bots.
|
|
||||||
- 1 will only consider bots.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- bots_skill - value to indicate how difficult the bots should be.
|
|
||||||
- 0 will be mixed difficultly
|
|
||||||
- 1 will be the most easy
|
|
||||||
- 2-6 will be in between most easy and most hard
|
|
||||||
- 7 will be the most hard.
|
|
||||||
- 8 will be custom.
|
|
||||||
|
|
||||||
- bots_skill_axis_hard - an integer amount of hard bots on the axis team.
|
|
||||||
- bots_skill_axis_med - an integer amount of medium bots on the axis team.
|
|
||||||
- bots_skill_allies_hard - an integer amount of hard bots on the allies team.
|
|
||||||
- bots_skill_allies_med - an integer amount of medium bots on the allies team
|
|
||||||
- if bots_skill is 8 (custom). The remaining bots on the team will become easy bots
|
|
||||||
- for example: having 5 bots on the allies team, 'bots_skill_allies_hard 2' and 'bots_skill_allies_med 2' will have 2 hard bots, 2 medium bots, and 1 easy bot on the allies team.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- bots_loadout_reasonable - a boolean value (0 or 1), whether or not if the bots should filter out bad create a class selections
|
|
||||||
|
|
||||||
- bots_loadout_allow_op - a boolean value (0 or 1), whether or not if the bots are allowed to use jug, marty, etc.
|
|
||||||
|
|
||||||
- bots_loadout_rank - an integer number, bots will be around this rank, -1 is average of all players in game, 0 is all random
|
|
||||||
|
|
||||||
- bots_play_move - a boolean value (0 or 1), whether or not if the bots will move
|
|
||||||
- bots_play_knife - a boolean value (0 or 1), whether or not if the bots will use the knife
|
|
||||||
- bots_play_fire - a boolean value (0 or 1), whether or not if the bots will fire their weapons
|
|
||||||
- bots_play_nade - a boolean value (0 or 1), whether or not if the bots will grenade
|
|
||||||
- bots_play_obj - a boolean value (0 or 1), whether or not if the bots will play the objective
|
|
||||||
- bots_play_camp - a boolean value (0 or 1), whether or not if the bots will camp
|
|
||||||
- bots_play_jumpdrop - a boolean value (0 or 1), whether or not if the bots will jump shot or drop shot
|
|
||||||
- bots_play_target_other - a boolean value (0 or 1), whether or not if the bots will target claymores, killstreaks, etc.
|
|
||||||
- bots_play_killstreak - a boolean value (0 or 1), whether or not if the bots will use killstreaks
|
|
||||||
- bots_play_ads - a boolean value (0 or 1), whether or not if the bots will ads
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- bots_main - a boolean value (0 or 1), enables or disables the mod
|
|
||||||
|
|
||||||
- bots_main_firstIsHost - a boolean value (0 or 1), the first player to connect is considered a host
|
|
||||||
|
|
||||||
- bots_main_GUIDs - a list of GUIDs (comma seperated) of players who will be considered a host
|
|
||||||
|
|
||||||
- bots_main_waitForHostTime - a float value, how long in seconds to wait for the host player to connect before adding in bots
|
|
||||||
|
|
||||||
- bots_main_menu - a boolean value (0 or 1), enables or disables the menu
|
|
||||||
|
|
||||||
- bots_main_debug - a boolean value (0 or 1), enables or disables the waypoint editor
|
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
- v2.3.0 (not released yet)
|
||||||
|
- Smoothed bot aim at range
|
||||||
|
- Fixed bots_manage_fill_spec players being counted with bots_manage_fill_mode 1 (bot only)
|
||||||
|
- Added bots_manage_fill_watchplayers dvar
|
||||||
|
- Bots hop off turrets if they get stuck on one
|
||||||
|
- Fixed script variable leak with opening and closing the in-game menu
|
||||||
|
|
||||||
|
- v2.2.0
|
||||||
|
- Fixed some chat related script runtime errors
|
||||||
|
- Waypoints only load from csv now
|
||||||
|
- Fix bots possibly being stuck in sab
|
||||||
|
- Major cleanup
|
||||||
|
|
||||||
|
- v2.1.0
|
||||||
|
- Bot chatter system, bots_main_chat
|
||||||
|
- Greatly reduce script variable usage
|
||||||
|
- Improved bots mantling and stuck
|
||||||
|
- Fix some runtime errors
|
||||||
|
- Bots sprint more
|
||||||
|
- Improved bots sight on enemies
|
||||||
|
- Bots do random actions while waiting at an objective
|
||||||
|
- Improved bots from getting stuck
|
||||||
|
- Better bot difficulty management, bots_skill_min and bots_skill_max
|
||||||
|
|
||||||
- v2.0.1
|
- v2.0.1
|
||||||
- Reduced bots crouching
|
- Reduced bots crouching
|
||||||
- Increased bots sprinting
|
- Increased bots sprinting
|
||||||
- Improved bots mantling, crouching and knifing glass when needed
|
- Improved bots mantling, crouching and knifing glass when needed
|
||||||
- Fixed possible script runtime errors
|
- Fixed possible script runtime errors
|
||||||
- Improved domination
|
- Improved domination
|
||||||
- Bots use explosives more if they have it
|
- Bots use explosives more if they have it
|
||||||
- Bots aim slower when ads'ing
|
- Bots aim slower when ads'ing
|
||||||
- Fixed bots holding breath
|
- Fixed bots holding breath
|
||||||
- Fixed bots rubberbanding movement when their goal changes
|
- Fixed bots rubberbanding movement when their goal changes
|
||||||
- Added bots quickscoping with snipers
|
- Added bots quickscoping with snipers
|
||||||
- Added bots reload canceling and fast swaps
|
- Added bots reload canceling and fast swaps
|
||||||
- Bots use C4
|
- Bots use C4
|
||||||
- Improved revenge
|
- Improved revenge
|
||||||
- Bots can swap weapons on spawn more likely
|
- Bots can swap weapons on spawn more likely
|
||||||
|
|
||||||
- v2.0.0
|
- v2.0.0
|
||||||
- Initial reboot release
|
- Initial reboot release
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
- CoD4x Team - https://github.com/callofduty4x/CoD4x_Server
|
- CoD4x Team - https://github.com/callofduty4x/CoD4x_Server
|
||||||
- INeedGames(me) - http://www.moddb.com/mods/bot-warfare
|
- INeedGames - http://www.moddb.com/mods/bot-warfare
|
||||||
- PeZBot team - http://www.moddb.com/mods/pezbot
|
- PeZBot team - http://www.moddb.com/mods/pezbot
|
||||||
- Ability
|
- Ability
|
||||||
- Salvation
|
- Salvation
|
||||||
|
Before Width: | Height: | Size: 655 KiB After Width: | Height: | Size: 655 KiB |
BIN
bw-assets/console-map.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
bw-assets/console.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
bw-assets/editor-addwp.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
bw-assets/editor-addwp2.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
bw-assets/editor-link.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
bw-assets/editor.png
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
bw-assets/saved.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
94
bw-assets/wpedit.md
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
# IW3 Bot Warfare Waypoint Editor
|
||||||
|
First things first, Bot Warfare uses the [AStar search algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm) for creating paths for the bots to find their way through a map.
|
||||||
|
|
||||||
|
The AStar search algorithm requires a [set of waypoints](https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) defining where all the paths are in the map.
|
||||||
|
|
||||||
|
Now if you want to modify existing or create new waypoints for CoD4 maps, this is the read for you.
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
- [Setting up the Waypoint Editor](#Setting-up-the-Waypoint-Editor)
|
||||||
|
- [The Editor](#The-Editor)
|
||||||
|
|
||||||
|
## Setting up the Waypoint Editor
|
||||||
|
The Bot Warfare mod comes with the Waypoint Editor out of the box, so its just a matter of telling the mod you want to use it. Its a matter of setting the `bots_main_debug` DVAR to `1`.
|
||||||
|
|
||||||
|
Start your server with the Bot Warfare mod.
|
||||||
|
|
||||||
|
In the server console, type in `set bots_main_debug 1`.<br>
|
||||||
|

|
||||||
|
|
||||||
|
Now start a match with the map you want to edit with the `devmap <mapname>` command.<br>
|
||||||
|

|
||||||
|
|
||||||
|
It should be noted that waypoints load from the 'waypoints' folder (<fs_game>\scriptdata\waypoints) for a csv file.
|
||||||
|
|
||||||
|
If csv fails to load waypoints, then the bots will not know how to navigate the map.
|
||||||
|
|
||||||
|
Connect to the server with the CoD4x client, you'll be introduced to the Waypoint Editor.
|
||||||
|
|
||||||
|
## The Editor
|
||||||
|
<br>
|
||||||
|
This is the Waypoint Editor. You can view, edit and create the waypoint graph.
|
||||||
|
- Each red number you see in the world is a waypoint.
|
||||||
|
- The green string you see is the type of that waypoint.
|
||||||
|
- The green list of numbers are the waypoints linked to that waypoint.
|
||||||
|
- The pink lines show the links between the waypoints, a link defines that a bot can walk from A to B.
|
||||||
|
- The white lines show the 'angles' that a waypoint has, these are used for grenade, claymore and tube waypoints. It's used to tell the bot where to look at when grenading/claymoring, etc.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Pressing any of these buttons will initiate a command to the Waypoint Editor.
|
||||||
|
Each button has a secondary modifier button, and can be pressed shortly after pressing the primary button.
|
||||||
|
|
||||||
|
- SecondaryOffhand (stun) - Add Waypoint
|
||||||
|
- Press nothing - Make a waypoint of your stance
|
||||||
|
- ADS - Make a climb waypoint
|
||||||
|
- Attack + Use - Make a tube waypoint
|
||||||
|
- Attack - Make a grenade waypoint
|
||||||
|
- Use - Make a claymore waypoint
|
||||||
|
|
||||||
|
- Melee - Link Waypoint
|
||||||
|
- Press nothing - Link
|
||||||
|
- ADS - Unlink
|
||||||
|
|
||||||
|
- FragButton (grenade) - Delete Waypoint
|
||||||
|
- Press nothing - Delete Waypoint
|
||||||
|
- Attack - Delete all waypoints
|
||||||
|
- ADS - (Re)Load Waypoints
|
||||||
|
|
||||||
|
- UseButton + Attack - Save Waypoints
|
||||||
|
- Press nothing - Save waypoints
|
||||||
|
- ADS - Toggle autolink waypoints (links waypoints as you create them)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Okay, now that you know how to control the Editor, lets now go ahead and create some waypoints.
|
||||||
|
|
||||||
|
Here I added a waypoint.<br>
|
||||||
|

|
||||||
|
|
||||||
|
And I added a second waypoint.<br>
|
||||||
|

|
||||||
|
|
||||||
|
There are several types of waypoints, holding a modifier button before pressing the add waypoint button will create a special type of waypoint.
|
||||||
|
- Types of waypoints:
|
||||||
|
- any stance ('stand', 'crouch', 'prone') - bots will have this stance upon reaching this waypoint
|
||||||
|
- grenade - bots will look at the angles you were looking at when you made the waypoint and throw a grenade from the waypoint
|
||||||
|
- tube - bots will look at the angles you were looking at when you made the waypoint and switch to a launcher and fire
|
||||||
|
- claymore - bots will look at the angles you were looking at when you made the waypoint and place a claymore or c4
|
||||||
|
- camp ('crouch' waypoint with only one linked waypoint) - bots will look at the angles you were looking at when you made the waypoint and camp
|
||||||
|
- climb - bots will look at the angles you were looking at when you made the waypoint and climb (use this for ladders and mantles)
|
||||||
|
|
||||||
|
Here I linked the two waypoints together.<br>
|
||||||
|

|
||||||
|
|
||||||
|
Linking waypoints are very important, it tells the bots that they can reach waypoint 1 from waypoint 0, and vice versa.
|
||||||
|
|
||||||
|
Now go and waypoint the whole map out. This may take awhile and can be pretty tedious.
|
||||||
|
|
||||||
|
Once you feel like you are done, press the Save buttons. This will generate a [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) output to your waypoints folder!
|
||||||
|
|
||||||
|
That is it! The waypoints should load next time you start your game!
|
||||||
|
|
||||||
|
Your waypoints CSV file will be located at `<fs_game>\scriptdata\waypoints\<mapname>_wp.csv`. (main folder if fs_game is blank)<br>
|
||||||
|

|
202
main/server.cfg
@ -1,202 +0,0 @@
|
|||||||
////////////////////////////////////////////////////////////
|
|
||||||
/// ///
|
|
||||||
/// ///
|
|
||||||
/// Call of Duty 4 X Standard Configuration ///
|
|
||||||
/// ///
|
|
||||||
/// Author: Daedalus, Created: 08.01.2017 ///
|
|
||||||
/// Provides a general starting point for your ///
|
|
||||||
/// CoD4X server configuration. Also contains ///
|
|
||||||
/// features only available on CoD4X 1.8+ servers ///
|
|
||||||
/// ///
|
|
||||||
////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
// Meta Information, not required
|
|
||||||
sets _Admin "Admin"
|
|
||||||
sets _Email ""
|
|
||||||
sets _Website ""
|
|
||||||
sets _Location ""
|
|
||||||
sets _Maps ""
|
|
||||||
sets _Gametype ""
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
// Basics
|
|
||||||
set sv_hostname "^1Bot ^3War^5fare ^724/7 Shipment 10x"
|
|
||||||
set g_motd "" // Message of the day, which getting shown to every player on his 1st spawn
|
|
||||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet ( you probably want 2 )
|
|
||||||
set rcon_password "qazqaz" // password for remote access, leave empty to deactivate, min 8 characters
|
|
||||||
set g_password "" // join password, leave empty to deactivate
|
|
||||||
set sv_privateClients "" //Private Clients, number of slots that can only be changed with a password
|
|
||||||
set sv_privatePassword "" // the password to join private slots
|
|
||||||
set sv_authorizemode "-1" // cdkey validation
|
|
||||||
set sv_showasranked "1" // 0 = show modded server as not ranked, 1 = shows server as ranked altough it is modded
|
|
||||||
set sv_authtoken "12312321"
|
|
||||||
|
|
||||||
|
|
||||||
// Log File
|
|
||||||
set g_logsync "2" // 0=no log, 1=buffered, 2=continuous, 3=append
|
|
||||||
set logfile "1" // 0 = NO log, 1 = log file enabled
|
|
||||||
set g_log "games_mp.log" // Name of log file, default is games_mp.log
|
|
||||||
set sv_log_damage "1"
|
|
||||||
set sv_statusfile "serverstatus.xml" // writes an xml serverstatus to disc, leave empty to disable
|
|
||||||
|
|
||||||
// Networking
|
|
||||||
// set net_ip "0.0.0.0" // not necessary to be set
|
|
||||||
// set net_port 28960 // network port
|
|
||||||
// set sv_maxRate 25000
|
|
||||||
|
|
||||||
set sv_minPing "0" // minimal ping [ms] for a player to join the server
|
|
||||||
set sv_maxPing "0" // maximal ping [ms] for a player to join the server
|
|
||||||
set sv_timeout 40 // Seconds to keep a client on server without a new clientmessage
|
|
||||||
set sv_connectTimeout 90 // Seconds to wait for a client which is loading a map without a new clientmessage
|
|
||||||
set sv_zombieTime 2 // Seconds to keep a disconnected client on server to transmit the last message
|
|
||||||
set sv_reconnectlimit 5 // Seconds to disallow a prior connected client to reconnect to the server
|
|
||||||
|
|
||||||
// Floodprotection is enabled by default!
|
|
||||||
// sv_floodProtect, sv_maxRate,
|
|
||||||
|
|
||||||
|
|
||||||
// Variables you should not touch :)
|
|
||||||
// set sv_fps "20" //Server-FPS (do not change!)
|
|
||||||
// set sv_punkbuster "0" //Punkbuster, PB is not supported on CoD4x
|
|
||||||
// set sv_pure "1" //check IWD-data 0 = off, 1 = on
|
|
||||||
// set g_antilag "1" //0 = off, 1 = on // Anti lag checks for weapon hits
|
|
||||||
// set ModStats 1 // 1 = use player stats file for mods (normal behaviours), 0 = use player stats file of basegame (DANGEROUS!!! as it can overwrite your stats)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Variables I have no clue what they are doing :D
|
|
||||||
set sv_allowAnonymous "0" // Anonymous //0 = off 1 = on
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////
|
|
||||||
// Gameplay
|
|
||||||
|
|
||||||
// Maps
|
|
||||||
set sv_mapRotation "map mp_shipment" // maps that will be played automatically
|
|
||||||
// set sv_randomMapRotation 1 // 0 = sv_mapRotation is randomized, 1 = sequential order of sv_mapRotation
|
|
||||||
|
|
||||||
set g_deadChat "1" // dead can chat // 0 = off, 1 = on
|
|
||||||
set voice_deadChat "0" // dead can use voicechat //0 = off, 1 = on
|
|
||||||
set g_gravity "800" //Gravity //Standard 800
|
|
||||||
set sv_disableClientConsole "0" //deactivate console for clients //0 = no, 1 = yes
|
|
||||||
set scr_teambalance "0" //auto-teambalance //0 = no, 1 = yes
|
|
||||||
set scr_team_fftype "0" //friendly-fire //0 = off, 1 = on, //2 = reflect damage, 3 = shared damage
|
|
||||||
set scr_game_spectatetype "2" // spectator // 0 = off, 1 = only Team/player, 2 = free
|
|
||||||
set scr_hardcore 0 //Hardcore Mode //0 = off 1 = on
|
|
||||||
set scr_oldschool "0" //Oldschool Mode //0 = off, 1 = on
|
|
||||||
|
|
||||||
set g_friendlyPlayerCanBlock 0 // 1 = player collision between friendly players, 0 = collision between friendly players is disabled
|
|
||||||
set g_FFAPlayerCanBlock 1 // same for FFA (non team based) gamemode
|
|
||||||
|
|
||||||
// Less interesting Gameplay stuff
|
|
||||||
set scr_drawfriend "1" //show team mates //0 = off, 1 = on
|
|
||||||
set scr_enable_scoretext "1" //hit-message //0 = no, 1 = yes
|
|
||||||
set scr_game_allowkillcam "1" //Killcam //0 = no, 1 = yes // Allow to play killcam after you got killed
|
|
||||||
set scr_game_deathpointloss "0" //points-distraction when hit //0 = no, 1 = yes
|
|
||||||
set scr_game_suicidepointloss "0" //points-distraction suicide //0 = no, 1 = yes
|
|
||||||
set scr_game_matchstarttime "10" //time until match starts
|
|
||||||
set scr_game_playerwaittime "10" //respawn-delay
|
|
||||||
set scr_player_forcerespawn "1" //force respawn //0 = no, 1 = yes // forgot what -1 did but i believe it was different xD
|
|
||||||
set scr_player_healthregentime "5" //health regeneration (in seconds)
|
|
||||||
set scr_player_maxhealth "100" //Max health
|
|
||||||
set scr_player_sprinttime "4" //Sprint-time
|
|
||||||
set scr_game_onlyheadshots "0" //headshots only //0 = no, 1 = yes
|
|
||||||
set scr_teamKillPunishCount "3" //Teamkiller kick after x Teamkills
|
|
||||||
set scr_team_teamkillspawndelay "20" //teamkill spawn delay (in seconds)
|
|
||||||
set scr_team_teamkillpointloss "1" //pointloss after Teamkill //0 = no, 1 = yes
|
|
||||||
set scr_enable_hiticon "1" //Hit-Symbol //0 = off, 1 = on
|
|
||||||
|
|
||||||
//Game-Modes
|
|
||||||
//Death Match (dm)
|
|
||||||
set scr_dm_scorelimit "1000"
|
|
||||||
set scr_dm_timelimit "15"
|
|
||||||
set scr_dm_roundlimit "1"
|
|
||||||
set scr_dm_numlives "0"
|
|
||||||
set scr_dm_playerrespawndelay "3"
|
|
||||||
set scr_dm_waverespawndelay "0"
|
|
||||||
|
|
||||||
//Team Death Match (war)
|
|
||||||
set scr_war_scorelimit "2000"
|
|
||||||
set scr_war_timelimit "10"
|
|
||||||
set scr_war_roundlimit "1"
|
|
||||||
set scr_war_numlives "0"
|
|
||||||
set scr_war_playerrespawndelay "3"
|
|
||||||
set scr_war_waverespawndelay "0"
|
|
||||||
|
|
||||||
//Domination (dom)
|
|
||||||
set scr_dom_scorelimit "300"
|
|
||||||
set scr_dom_timelimit "0"
|
|
||||||
set scr_dom_numlives "0"
|
|
||||||
set scr_dom_playerrespawndelay "3"
|
|
||||||
set scr_dom_roundlimit "1"
|
|
||||||
set scr_dom_waverespawndelay "0"
|
|
||||||
|
|
||||||
//HQ (koth)
|
|
||||||
set scr_koth_scorelimit "250"
|
|
||||||
set scr_koth_timelimit "15"
|
|
||||||
set koth_kothmode "0" //Classic HQ-Mode 0 = off, 1 = on
|
|
||||||
set koth_capturetime "20"
|
|
||||||
set koth_spawntime "3" //0 = immediately, x = time in seconds
|
|
||||||
set scr_koth_numlives "0"
|
|
||||||
set scr_koth_playerrespawndelay "3"
|
|
||||||
set scr_koth_roundlimit "1"
|
|
||||||
set scr_koth_roundswitch "1"
|
|
||||||
set scr_koth_waverespawndelay "0"
|
|
||||||
set koth_autodestroytime "60"
|
|
||||||
set koth_delayPlayer "3"
|
|
||||||
set koth_destroytime "10"
|
|
||||||
set koth_spawnDelay "3"
|
|
||||||
|
|
||||||
//Sabotage (sab)
|
|
||||||
set scr_sab_scorelimit "2"
|
|
||||||
set scr_sab_timelimit "10"
|
|
||||||
set scr_sab_roundswitch "1"
|
|
||||||
set scr_sab_bombtimer "30"
|
|
||||||
set scr_sab_planttime "2.5"
|
|
||||||
set scr_sab_defusetime "5"
|
|
||||||
set scr_sab_hotpotato "0"
|
|
||||||
set scr_sab_numlives "0"
|
|
||||||
set scr_sab_playerrespawndelay "5"
|
|
||||||
set scr_sab_roundlimit "0"
|
|
||||||
set scr_sab_waverespawndelay "0"
|
|
||||||
|
|
||||||
//Search and destroy (sd)
|
|
||||||
set scr_sd_scorelimit "9"
|
|
||||||
set scr_sd_timelimit "2.5"
|
|
||||||
set scr_sd_roundswitch "4"
|
|
||||||
set scr_sd_bombtimer "45"
|
|
||||||
set scr_sd_planttime "5"
|
|
||||||
set scr_sd_defusetime "7"
|
|
||||||
set scr_sd_multibomb "0"
|
|
||||||
set scr_sd_numlives "1"
|
|
||||||
set scr_sd_playerrespawndelay "0"
|
|
||||||
set scr_sd_roundlimit "0"
|
|
||||||
set scr_sd_waverespawndelay "0"
|
|
||||||
|
|
||||||
set g_gametype "dom" // gamemode, one of [war, dm, sd, sab, koth]
|
|
||||||
|
|
||||||
// Amazing Stuff
|
|
||||||
//set sv_autodemorecord 1 // Records demos of players on the serverside, demos are stored in "demos" folder
|
|
||||||
//set sv_demoCompletedCmd "" // program to execute when a demo has been saved
|
|
||||||
//set sv_screenshotArrivedCmd "" // program to execute when a screenshot was taken
|
|
||||||
//set sv_legacyguidmode 0 // 1 = old 32 character guids are used, 0 = new cod4x guid format is used ( like steamids )
|
|
||||||
|
|
||||||
///////////////////////////
|
|
||||||
// Setup for custom maps when running a mod
|
|
||||||
seta sv_wwwDownload "1" // enable download redirection
|
|
||||||
seta sv_wwwBaseURL "http://rawcdn.githack.com/ineedbots/www_host/main/cod4x/" // defines url to download from
|
|
||||||
seta sv_wwwDlDisconnected "1" // disconnect clients while downloading
|
|
||||||
///////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
set sv_nosteamnames 1 // 1 = Use names from steam if steam is available
|
|
||||||
|
|
||||||
set bots_manage_add "12"
|
|
||||||
set bots_main_firstIsHost "0"
|
|
||||||
set bots_manage_fill "12"
|
|
||||||
set bots_manage_fill_kick "1"
|
|
||||||
set bots_team_force "1"
|
|
||||||
set bots_loadout_allow_op "0"
|
|
||||||
set bots_loadout_reasonable "1"
|
|
||||||
set bots_manage_fill_spec "0"
|
|
@ -1,878 +0,0 @@
|
|||||||
#include common_scripts\utility;
|
|
||||||
#include maps\mp\_utility;
|
|
||||||
#include maps\mp\gametypes\_hud_util;
|
|
||||||
#include maps\mp\bots\_bot_utility;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Initiates the whole bot scripts.
|
|
||||||
*/
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level.bw_VERSION = "2.0.1";
|
|
||||||
|
|
||||||
if(getDvar("bots_main") == "")
|
|
||||||
setDvar("bots_main", true);
|
|
||||||
|
|
||||||
if (!getDvarInt("bots_main"))
|
|
||||||
return;
|
|
||||||
|
|
||||||
thread load_waypoints();
|
|
||||||
cac_init_patch();
|
|
||||||
thread hook_callbacks();
|
|
||||||
|
|
||||||
if(getDvar("bots_main_GUIDs") == "")
|
|
||||||
setDvar("bots_main_GUIDs", "");//guids of players who will be given host powers, comma seperated
|
|
||||||
if(getDvar("bots_main_firstIsHost") == "")
|
|
||||||
setDvar("bots_main_firstIsHost", true);//first player to connect is a host
|
|
||||||
if(getDvar("bots_main_waitForHostTime") == "")
|
|
||||||
setDvar("bots_main_waitForHostTime", 10.0);//how long to wait to wait for the host player
|
|
||||||
|
|
||||||
if(getDvar("bots_manage_add") == "")
|
|
||||||
setDvar("bots_manage_add", 0);//amount of bots to add to the game
|
|
||||||
if(getDvar("bots_manage_fill") == "")
|
|
||||||
setDvar("bots_manage_fill", 0);//amount of bots to maintain
|
|
||||||
if(getDvar("bots_manage_fill_spec") == "")
|
|
||||||
setDvar("bots_manage_fill_spec", true);//to count for fill if player is on spec team
|
|
||||||
if(getDvar("bots_manage_fill_mode") == "")
|
|
||||||
setDvar("bots_manage_fill_mode", 0);//fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
|
|
||||||
if(getDvar("bots_manage_fill_kick") == "")
|
|
||||||
setDvar("bots_manage_fill_kick", false);//kick bots if too many
|
|
||||||
|
|
||||||
if(getDvar("bots_team") == "")
|
|
||||||
setDvar("bots_team", "autoassign");//which team for bots to join
|
|
||||||
if(getDvar("bots_team_amount") == "")
|
|
||||||
setDvar("bots_team_amount", 0);//amount of bots on axis team
|
|
||||||
if(getDvar("bots_team_force") == "")
|
|
||||||
setDvar("bots_team_force", false);//force bots on team
|
|
||||||
if(getDvar("bots_team_mode") == "")
|
|
||||||
setDvar("bots_team_mode", 0);//counts just bots when 1
|
|
||||||
|
|
||||||
if(getDvar("bots_skill") == "")
|
|
||||||
setDvar("bots_skill", 0);//0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
|
||||||
if(getDvar("bots_skill_axis_hard") == "")
|
|
||||||
setDvar("bots_skill_axis_hard", 0);//amount of hard bots on axis team
|
|
||||||
if(getDvar("bots_skill_axis_med") == "")
|
|
||||||
setDvar("bots_skill_axis_med", 0);
|
|
||||||
if(getDvar("bots_skill_allies_hard") == "")
|
|
||||||
setDvar("bots_skill_allies_hard", 0);
|
|
||||||
if(getDvar("bots_skill_allies_med") == "")
|
|
||||||
setDvar("bots_skill_allies_med", 0);
|
|
||||||
|
|
||||||
if(getDvar("bots_loadout_reasonable") == "")//filter out the bad 'guns' and perks
|
|
||||||
setDvar("bots_loadout_reasonable", false);
|
|
||||||
if(getDvar("bots_loadout_allow_op") == "")//allows jug, marty and laststand
|
|
||||||
setDvar("bots_loadout_allow_op", true);
|
|
||||||
if(getDvar("bots_loadout_rank") == "")// what rank the bots should be around, -1 is around the players, 0 is all random
|
|
||||||
setDvar("bots_loadout_rank", -1);
|
|
||||||
if(getDvar("bots_loadout_prestige") == "")// what pretige the bots will be, -1 is the players, -2 is random
|
|
||||||
setDvar("bots_loadout_prestige", -1);
|
|
||||||
|
|
||||||
if(getDvar("bots_play_move") == "")//bots move
|
|
||||||
setDvar("bots_play_move", true);
|
|
||||||
if(getDvar("bots_play_knife") == "")//bots knife
|
|
||||||
setDvar("bots_play_knife", true);
|
|
||||||
if(getDvar("bots_play_fire") == "")//bots fire
|
|
||||||
setDvar("bots_play_fire", true);
|
|
||||||
if(getDvar("bots_play_nade") == "")//bots grenade
|
|
||||||
setDvar("bots_play_nade", true);
|
|
||||||
if(getDvar("bots_play_obj") == "")//bots play the obj
|
|
||||||
setDvar("bots_play_obj", true);
|
|
||||||
if(getDvar("bots_play_camp") == "")//bots camp and follow
|
|
||||||
setDvar("bots_play_camp", true);
|
|
||||||
if(getDvar("bots_play_jumpdrop") == "")//bots jump and dropshot
|
|
||||||
setDvar("bots_play_jumpdrop", true);
|
|
||||||
if(getDvar("bots_play_target_other") == "")//bot target non play ents (vehicles)
|
|
||||||
setDvar("bots_play_target_other", true);
|
|
||||||
if(getDvar("bots_play_killstreak") == "")//bot use killstreaks
|
|
||||||
setDvar("bots_play_killstreak", true);
|
|
||||||
if(getDvar("bots_play_ads") == "")//bot ads
|
|
||||||
setDvar("bots_play_ads", true);
|
|
||||||
|
|
||||||
if(!isDefined(game["botWarfare"]))
|
|
||||||
game["botWarfare"] = true;
|
|
||||||
|
|
||||||
level.defuseObject = undefined;
|
|
||||||
level.bots_smokeList = List();
|
|
||||||
level.tbl_PerkData[0]["reference_full"] = true;
|
|
||||||
for(h = 1; h < 6; h++)
|
|
||||||
for(i = 0; i < 3; i++)
|
|
||||||
level.default_perk["CLASS_CUSTOM"+h][i] = "specialty_null";
|
|
||||||
|
|
||||||
level.bots_minSprintDistance = 315;
|
|
||||||
level.bots_minSprintDistance *= level.bots_minSprintDistance;
|
|
||||||
level.bots_minGrenadeDistance = 256;
|
|
||||||
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance;
|
|
||||||
level.bots_maxGrenadeDistance = 1024;
|
|
||||||
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance;
|
|
||||||
level.bots_maxKnifeDistance = 80;
|
|
||||||
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance;
|
|
||||||
level.bots_goalDistance = 27.5;
|
|
||||||
level.bots_goalDistance *= level.bots_goalDistance;
|
|
||||||
level.bots_noADSDistance = 200;
|
|
||||||
level.bots_noADSDistance *= level.bots_noADSDistance;
|
|
||||||
level.bots_maxShotgunDistance = 500;
|
|
||||||
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance;
|
|
||||||
level.bots_listenDist = 100;
|
|
||||||
|
|
||||||
level.smokeRadius = 255;
|
|
||||||
|
|
||||||
level.bots = [];
|
|
||||||
|
|
||||||
level.bots_fullautoguns = [];
|
|
||||||
level.bots_fullautoguns["rpd"] = true;
|
|
||||||
level.bots_fullautoguns["m60e4"] = true;
|
|
||||||
level.bots_fullautoguns["saw"] = true;
|
|
||||||
level.bots_fullautoguns["ak74u"] = true;
|
|
||||||
level.bots_fullautoguns["mp5"] = true;
|
|
||||||
level.bots_fullautoguns["p90"] = true;
|
|
||||||
level.bots_fullautoguns["skorpion"] = true;
|
|
||||||
level.bots_fullautoguns["uzi"] = true;
|
|
||||||
level.bots_fullautoguns["g36c"] = true;
|
|
||||||
level.bots_fullautoguns["m4"] = true;
|
|
||||||
level.bots_fullautoguns["ak47"] = true;
|
|
||||||
level.bots_fullautoguns["mp44"] = true;
|
|
||||||
|
|
||||||
level thread fixGamemodes();
|
|
||||||
level thread onUAVAlliesUpdate();
|
|
||||||
level thread onUAVAxisUpdate();
|
|
||||||
level thread chopperWatch();
|
|
||||||
|
|
||||||
level thread onPlayerConnect();
|
|
||||||
level thread handleBots();
|
|
||||||
|
|
||||||
level thread maps\mp\bots\_bot_http::doVersionCheck();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Starts the threads for bots.
|
|
||||||
*/
|
|
||||||
handleBots()
|
|
||||||
{
|
|
||||||
level thread teamBots();
|
|
||||||
level thread diffBots();
|
|
||||||
level addBots();
|
|
||||||
|
|
||||||
while(!level.intermission)
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
setDvar("bots_manage_add", getBotArray().size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The hook callback for when any player becomes damaged.
|
|
||||||
*/
|
|
||||||
onPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset)
|
|
||||||
{
|
|
||||||
if(self is_bot())
|
|
||||||
{
|
|
||||||
self maps\mp\bots\_bot_internal::onDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset);
|
|
||||||
self maps\mp\bots\_bot_script::onDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
self [[level.prevCallbackPlayerDamage]](eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The hook callback when any player gets killed.
|
|
||||||
*/
|
|
||||||
onPlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration)
|
|
||||||
{
|
|
||||||
if(self is_bot())
|
|
||||||
{
|
|
||||||
self maps\mp\bots\_bot_internal::onKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
|
|
||||||
self maps\mp\bots\_bot_script::onKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
self [[level.prevCallbackPlayerKilled]](eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Starts the callbacks.
|
|
||||||
*/
|
|
||||||
hook_callbacks()
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
level.prevCallbackPlayerDamage = level.callbackPlayerDamage;
|
|
||||||
level.callbackPlayerDamage = ::onPlayerDamage;
|
|
||||||
|
|
||||||
level.prevCallbackPlayerKilled = level.callbackPlayerKilled;
|
|
||||||
level.callbackPlayerKilled = ::onPlayerKilled;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adds the level.radio object for koth. Cause the iw3 script doesn't have it.
|
|
||||||
*/
|
|
||||||
fixKoth()
|
|
||||||
{
|
|
||||||
level.radio = undefined;
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
if(!isDefined(level.radioObject))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = level.radios.size - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
if(level.radioObject != level.radios[i].gameobject)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
level.radio = level.radios[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
while(isDefined(level.radioObject) && level.radio.gameobject == level.radioObject)
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Fixes gamemodes when level starts.
|
|
||||||
*/
|
|
||||||
fixGamemodes()
|
|
||||||
{
|
|
||||||
for(i=0;i<19;i++)
|
|
||||||
{
|
|
||||||
if(isDefined(level.bombZones) && level.gametype == "sd")
|
|
||||||
{
|
|
||||||
for(i = 0; i < level.bombZones.size; i++)
|
|
||||||
level.bombZones[i].onUse = ::onUsePlantObjectFix;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isDefined(level.radios) && level.gametype == "koth")
|
|
||||||
{
|
|
||||||
level thread fixKoth();
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Thread when any player connects. Starts the threads needed.
|
|
||||||
*/
|
|
||||||
onPlayerConnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected", player);
|
|
||||||
|
|
||||||
player thread onGrenadeFire();
|
|
||||||
player thread onWeaponFired();
|
|
||||||
player thread doPlayerModelFix();
|
|
||||||
|
|
||||||
player thread connected();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Fixes bots perks showing up in killcams and prevents bots from being kicked from old iw3 gsc script.
|
|
||||||
*/
|
|
||||||
fixPerksAndScriptKick()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
self waittill("spawned");
|
|
||||||
|
|
||||||
self.pers["isBot"] = undefined;
|
|
||||||
|
|
||||||
if(!level.gameEnded)
|
|
||||||
level waittill ( "game_ended" );
|
|
||||||
|
|
||||||
self.pers["isBot"] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
When a bot disconnects.
|
|
||||||
*/
|
|
||||||
onDisconnect()
|
|
||||||
{
|
|
||||||
self waittill("disconnect");
|
|
||||||
|
|
||||||
level.bots = array_remove(level.bots, self);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Called when a player connects.
|
|
||||||
*/
|
|
||||||
connected()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
if (!isDefined(self.pers["bot_host"]))
|
|
||||||
self thread doHostCheck();
|
|
||||||
|
|
||||||
if(!self is_bot())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!isDefined(self.pers["isBot"]))
|
|
||||||
{
|
|
||||||
// fast restart...
|
|
||||||
self.pers["isBot"] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isDefined(self.pers["isBotWarfare"]))
|
|
||||||
{
|
|
||||||
self.pers["isBotWarfare"] = true;
|
|
||||||
self thread added();
|
|
||||||
}
|
|
||||||
|
|
||||||
self thread fixPerksAndScriptKick();
|
|
||||||
|
|
||||||
self thread maps\mp\bots\_bot_internal::connected();
|
|
||||||
self thread maps\mp\bots\_bot_script::connected();
|
|
||||||
|
|
||||||
level.bots[level.bots.size] = self;
|
|
||||||
self thread onDisconnect();
|
|
||||||
|
|
||||||
level notify("bot_connected", self);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
When a bot gets added into the game.
|
|
||||||
*/
|
|
||||||
added()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
self thread maps\mp\bots\_bot_internal::added();
|
|
||||||
self thread maps\mp\bots\_bot_script::added();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adds a bot to the game.
|
|
||||||
*/
|
|
||||||
add_bot()
|
|
||||||
{
|
|
||||||
name = getABotName();
|
|
||||||
|
|
||||||
bot = undefined;
|
|
||||||
|
|
||||||
if (isDefined(name) && name.size >= 3)
|
|
||||||
bot = addtestclient(name);
|
|
||||||
else
|
|
||||||
bot = addtestclient();
|
|
||||||
|
|
||||||
if (isdefined(bot))
|
|
||||||
{
|
|
||||||
bot.pers["isBot"] = true;
|
|
||||||
bot.pers["isBotWarfare"] = true;
|
|
||||||
bot thread added();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A server thread for monitoring all bot's difficulty levels for custom server settings.
|
|
||||||
*/
|
|
||||||
diffBots()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 1.5;
|
|
||||||
|
|
||||||
var_allies_hard = getDVarInt("bots_skill_allies_hard");
|
|
||||||
var_allies_med = getDVarInt("bots_skill_allies_med");
|
|
||||||
var_axis_hard = getDVarInt("bots_skill_axis_hard");
|
|
||||||
var_axis_med = getDVarInt("bots_skill_axis_med");
|
|
||||||
var_skill = getDvarInt("bots_skill");
|
|
||||||
|
|
||||||
allies_hard = 0;
|
|
||||||
allies_med = 0;
|
|
||||||
axis_hard = 0;
|
|
||||||
axis_med = 0;
|
|
||||||
|
|
||||||
if(var_skill == 8)
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == "axis")
|
|
||||||
{
|
|
||||||
if(axis_hard < var_axis_hard)
|
|
||||||
{
|
|
||||||
axis_hard++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 7;
|
|
||||||
}
|
|
||||||
else if(axis_med < var_axis_med)
|
|
||||||
{
|
|
||||||
axis_med++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 4;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
player.pers["bots"]["skill"]["base"] = 1;
|
|
||||||
}
|
|
||||||
else if(player.pers["team"] == "allies")
|
|
||||||
{
|
|
||||||
if(allies_hard < var_allies_hard)
|
|
||||||
{
|
|
||||||
allies_hard++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 7;
|
|
||||||
}
|
|
||||||
else if(allies_med < var_allies_med)
|
|
||||||
{
|
|
||||||
allies_med++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 4;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
player.pers["bots"]["skill"]["base"] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (var_skill != 0 && var_skill != 9)
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
player.pers["bots"]["skill"]["base"] = var_skill;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A server thread for monitoring all bot's teams for custom server settings.
|
|
||||||
*/
|
|
||||||
teamBots()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 1.5;
|
|
||||||
teamAmount = getDvarInt("bots_team_amount");
|
|
||||||
toTeam = getDvar("bots_team");
|
|
||||||
|
|
||||||
alliesbots = 0;
|
|
||||||
alliesplayers = 0;
|
|
||||||
axisbots = 0;
|
|
||||||
axisplayers = 0;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player is_bot())
|
|
||||||
{
|
|
||||||
if(player.pers["team"] == "allies")
|
|
||||||
alliesbots++;
|
|
||||||
else if(player.pers["team"] == "axis")
|
|
||||||
axisbots++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(player.pers["team"] == "allies")
|
|
||||||
alliesplayers++;
|
|
||||||
else if(player.pers["team"] == "axis")
|
|
||||||
axisplayers++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allies = alliesbots;
|
|
||||||
axis = axisbots;
|
|
||||||
|
|
||||||
if(!getDvarInt("bots_team_mode"))
|
|
||||||
{
|
|
||||||
allies += alliesplayers;
|
|
||||||
axis += axisplayers;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(toTeam != "custom")
|
|
||||||
{
|
|
||||||
if(getDvarInt("bots_team_force"))
|
|
||||||
{
|
|
||||||
if(toTeam == "autoassign")
|
|
||||||
{
|
|
||||||
if(abs(axis - allies) > 1)
|
|
||||||
{
|
|
||||||
toTeam = "axis";
|
|
||||||
if(axis > allies)
|
|
||||||
toTeam = "allies";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(toTeam != "autoassign")
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == toTeam)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (toTeam == "allies")
|
|
||||||
player thread [[level.allies]]();
|
|
||||||
else if (toTeam == "axis")
|
|
||||||
player thread [[level.axis]]();
|
|
||||||
else
|
|
||||||
player thread [[level.spectator]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == "axis")
|
|
||||||
{
|
|
||||||
if(axis > teamAmount)
|
|
||||||
{
|
|
||||||
player thread [[level.allies]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(axis < teamAmount)
|
|
||||||
{
|
|
||||||
player thread [[level.axis]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if(player.pers["team"] != "allies")
|
|
||||||
{
|
|
||||||
player thread [[level.allies]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A server thread for monitoring all bot's in game. Will add and kick bots according to server settings.
|
|
||||||
*/
|
|
||||||
addBots()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
|
|
||||||
bot_wait_for_host();
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 1.5;
|
|
||||||
|
|
||||||
botsToAdd = GetDvarInt("bots_manage_add");
|
|
||||||
|
|
||||||
if(botsToAdd > 0)
|
|
||||||
{
|
|
||||||
SetDvar("bots_manage_add", 0);
|
|
||||||
|
|
||||||
if(botsToAdd > 64)
|
|
||||||
botsToAdd = 64;
|
|
||||||
|
|
||||||
for(; botsToAdd > 0; botsToAdd--)
|
|
||||||
{
|
|
||||||
level add_bot();
|
|
||||||
wait 0.25;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fillMode = getDVarInt("bots_manage_fill_mode");
|
|
||||||
|
|
||||||
if(fillMode == 2 || fillMode == 3)
|
|
||||||
setDvar("bots_manage_fill", getGoodMapAmount());
|
|
||||||
|
|
||||||
fillAmount = getDvarInt("bots_manage_fill");
|
|
||||||
|
|
||||||
players = 0;
|
|
||||||
bots = 0;
|
|
||||||
spec = 0;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(player is_bot())
|
|
||||||
bots++;
|
|
||||||
else if(!isDefined(player.pers["team"]) || (player.pers["team"] != "axis" && player.pers["team"] != "allies"))
|
|
||||||
spec++;
|
|
||||||
else
|
|
||||||
players++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!randomInt(999))
|
|
||||||
{
|
|
||||||
setDvar("testclients_doreload", true);
|
|
||||||
wait 0.1;
|
|
||||||
setDvar("testclients_doreload", false);
|
|
||||||
doExtraCheck();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(fillMode == 4)
|
|
||||||
{
|
|
||||||
axisplayers = 0;
|
|
||||||
alliesplayers = 0;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == "axis")
|
|
||||||
axisplayers++;
|
|
||||||
else if(player.pers["team"] == "allies")
|
|
||||||
alliesplayers++;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = fillAmount - abs(axisplayers - alliesplayers) + bots;
|
|
||||||
|
|
||||||
if (players == 0)
|
|
||||||
{
|
|
||||||
if(bots < fillAmount)
|
|
||||||
result = fillAmount-1;
|
|
||||||
else if (bots > fillAmount)
|
|
||||||
result = fillAmount+1;
|
|
||||||
else
|
|
||||||
result = fillAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
bots = result;
|
|
||||||
}
|
|
||||||
|
|
||||||
amount = bots;
|
|
||||||
if(fillMode == 0 || fillMode == 2)
|
|
||||||
amount += players;
|
|
||||||
if(getDVarInt("bots_manage_fill_spec"))
|
|
||||||
amount += spec;
|
|
||||||
|
|
||||||
if(amount < fillAmount)
|
|
||||||
setDvar("bots_manage_add", 1);
|
|
||||||
else if(amount > fillAmount && getDvarInt("bots_manage_fill_kick"))
|
|
||||||
{
|
|
||||||
RemoveTestClient(); //cod4x
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A thread for ALL players, will monitor and grenades thrown.
|
|
||||||
*/
|
|
||||||
onGrenadeFire()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill ( "grenade_fire", grenade, weaponName );
|
|
||||||
grenade.name = weaponName;
|
|
||||||
if(weaponName == "smoke_grenade_mp")
|
|
||||||
grenade thread AddToSmokeList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adds a smoke grenade to the list of smokes in the game. Used to prevent bots from seeing through smoke.
|
|
||||||
*/
|
|
||||||
AddToSmokeList()
|
|
||||||
{
|
|
||||||
grenade = spawnstruct();
|
|
||||||
grenade.origin = self getOrigin();
|
|
||||||
grenade.state = "moving";
|
|
||||||
grenade.grenade = self;
|
|
||||||
|
|
||||||
grenade thread thinkSmoke();
|
|
||||||
|
|
||||||
level.bots_smokeList ListAdd(grenade);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The smoke grenade logic.
|
|
||||||
*/
|
|
||||||
thinkSmoke()
|
|
||||||
{
|
|
||||||
while(isDefined(self.grenade))
|
|
||||||
{
|
|
||||||
self.origin = self.grenade getOrigin();
|
|
||||||
self.state = "moving";
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
self.state = "smoking";
|
|
||||||
wait 11.5;
|
|
||||||
|
|
||||||
level.bots_smokeList ListRemove(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Watches for chopper. This is used to fix bots from targeting leaving or crashing helis because script is iw3 old and buggy.
|
|
||||||
*/
|
|
||||||
chopperWatch()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!isDefined(level.chopper))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
chopper = level.chopper;
|
|
||||||
|
|
||||||
if (level.teamBased && getDvarInt("doubleHeli"))
|
|
||||||
{
|
|
||||||
chopper = level.chopper["allies"];
|
|
||||||
if (!isDefined(chopper))
|
|
||||||
chopper = level.chopper["axis"];
|
|
||||||
}
|
|
||||||
|
|
||||||
level.bot_chopper = true;
|
|
||||||
chopper watchChopper();
|
|
||||||
level.bot_chopper = false;
|
|
||||||
|
|
||||||
while(isDefined(level.chopper))
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Waits until the chopper is deleted, leaving or crashing.
|
|
||||||
*/
|
|
||||||
watchChopper()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("leaving");
|
|
||||||
self endon("crashing");
|
|
||||||
|
|
||||||
level waittill("helicopter gone");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Waits when the axis uav is called in.
|
|
||||||
*/
|
|
||||||
onUAVAxisUpdate()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill( "radar_timer_kill_axis" );
|
|
||||||
level thread doUAVUpdate("axis");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Waits when the allies uav is called in.
|
|
||||||
*/
|
|
||||||
onUAVAlliesUpdate()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill( "radar_timer_kill_allies" );
|
|
||||||
level thread doUAVUpdate("allies");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Updates the player's radar so bots can know when they have a uav up, because iw3 script is old.
|
|
||||||
*/
|
|
||||||
doUAVUpdate(team)
|
|
||||||
{
|
|
||||||
level endon("radar_timer_kill_" + team);
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.team))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.team == team)
|
|
||||||
{
|
|
||||||
player.bot_radar = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wait level.radarViewTime;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.team))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.team == team)
|
|
||||||
{
|
|
||||||
player.bot_radar = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Fixes a weird iw3 bug when for a frame the player doesn't have any bones when they first spawn in.
|
|
||||||
*/
|
|
||||||
doPlayerModelFix()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self waittill("spawned_player");
|
|
||||||
wait 0.05;
|
|
||||||
self.bot_model_fix = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A thread for ALL players when they fire.
|
|
||||||
*/
|
|
||||||
onWeaponFired()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self.bots_firing = false;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill( "weapon_fired" );
|
|
||||||
self thread doFiringThread();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Lets bot's know that the player is firing.
|
|
||||||
*/
|
|
||||||
doFiringThread()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("weapon_fired");
|
|
||||||
self.bots_firing = true;
|
|
||||||
wait 1;
|
|
||||||
self.bots_firing = false;
|
|
||||||
}
|
|
@ -1,135 +0,0 @@
|
|||||||
/*
|
|
||||||
_bot_http
|
|
||||||
Author: INeedGames
|
|
||||||
Date: 12/16/2020
|
|
||||||
The HTTP module
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include maps\mp\bots\_bot_utility;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Will attempt to retreive waypoints from the internet
|
|
||||||
*/
|
|
||||||
getRemoteWaypoints(mapname)
|
|
||||||
{
|
|
||||||
url = "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/" + mapname + "_wp.csv";
|
|
||||||
filename = "waypoints/" + mapname + "_wp.csv";
|
|
||||||
|
|
||||||
printToConsole("Attempting to get remote waypoints from " + url);
|
|
||||||
res = getLinesFromUrl(url, filename);
|
|
||||||
|
|
||||||
if (!res.lines.size)
|
|
||||||
return;
|
|
||||||
|
|
||||||
waypointCount = int(res.lines[0]);
|
|
||||||
|
|
||||||
waypoints = [];
|
|
||||||
printToConsole("Loading remote waypoints...");
|
|
||||||
|
|
||||||
for (i = 1; i <= waypointCount; i++)
|
|
||||||
{
|
|
||||||
tokens = tokenizeLine(res.lines[i], ",");
|
|
||||||
|
|
||||||
waypoint = parseTokensIntoWaypoint(tokens);
|
|
||||||
|
|
||||||
waypoints[i-1] = waypoint;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (waypoints.size)
|
|
||||||
{
|
|
||||||
level.waypoints = waypoints;
|
|
||||||
printToConsole("Loaded " + waypoints.size + " waypoints from remote.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Does the version check, if we are up too date
|
|
||||||
*/
|
|
||||||
doVersionCheck()
|
|
||||||
{
|
|
||||||
remoteVersion = getRemoteVersion();
|
|
||||||
|
|
||||||
if (!isDefined(remoteVersion))
|
|
||||||
{
|
|
||||||
printToConsole("Error getting remote version of Bot Warfare.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (level.bw_VERSION != remoteVersion)
|
|
||||||
{
|
|
||||||
printToConsole("There is a new version of Bot Warfare!");
|
|
||||||
printToConsole("You are on version " + level.bw_VERSION + " but " + remoteVersion + " is available!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
printToConsole("You are on the latest version of Bot Warfare!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Returns the version of bot warfare found on the internet
|
|
||||||
*/
|
|
||||||
getRemoteVersion()
|
|
||||||
{
|
|
||||||
#if isSyscallDefined HTTPS_GetString
|
|
||||||
data = HTTPS_GetString( "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/version.txt" );
|
|
||||||
#else
|
|
||||||
data = undefined;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!isDefined(data))
|
|
||||||
return undefined;
|
|
||||||
|
|
||||||
return strtok(data, "\n")[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Returns an array of each line from the response of the http url request
|
|
||||||
*/
|
|
||||||
getLinesFromUrl(url, filename)
|
|
||||||
{
|
|
||||||
result = spawnStruct();
|
|
||||||
result.lines = [];
|
|
||||||
|
|
||||||
#if isSyscallDefined HTTPS_GetString
|
|
||||||
data = HTTPS_GetString( url );
|
|
||||||
#else
|
|
||||||
data = undefined;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!isDefined(data))
|
|
||||||
return result;
|
|
||||||
|
|
||||||
fd = FS_FOpen(filename, "write");
|
|
||||||
|
|
||||||
line = "";
|
|
||||||
for (i=0;i<data.size;i++)
|
|
||||||
{
|
|
||||||
c = data[i];
|
|
||||||
|
|
||||||
if (c == "\n")
|
|
||||||
{
|
|
||||||
result.lines[result.lines.size] = line;
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
{
|
|
||||||
if (!FS_WriteLine(fd, line))
|
|
||||||
{
|
|
||||||
FS_FClose(fd);
|
|
||||||
fd = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
line = "";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
line += c;
|
|
||||||
}
|
|
||||||
result.lines[result.lines.size] = line;
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
FS_FClose(fd);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
@ -1,649 +0,0 @@
|
|||||||
/*
|
|
||||||
_wp_editor
|
|
||||||
Author: INeedGames
|
|
||||||
Date: 09/26/2020
|
|
||||||
The ingame waypoint editor.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include common_scripts\utility;
|
|
||||||
#include maps\mp\_utility;
|
|
||||||
#include maps\mp\gametypes\_hud_util;
|
|
||||||
#include maps\mp\bots\_bot_utility;
|
|
||||||
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
if(getDvar("bots_main_debug") == "")
|
|
||||||
setDvar("bots_main_debug", 0);
|
|
||||||
|
|
||||||
if(!getDVarint("bots_main_debug"))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if(!getDVarint("developer"))
|
|
||||||
{
|
|
||||||
setdvar("developer_script", 1);
|
|
||||||
setdvar("developer", 1);
|
|
||||||
|
|
||||||
setdvar("sv_mapRotation", "map "+getDvar("mapname"));
|
|
||||||
exitLevel(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
setDvar("bots_main", 0);
|
|
||||||
setdvar("bots_main_menu", 0);
|
|
||||||
setdvar("bots_manage_fill_mode", 0);
|
|
||||||
setdvar("bots_manage_fill", 0);
|
|
||||||
setdvar("bots_manage_add", 0);
|
|
||||||
setdvar("bots_manage_fill_kick", 1);
|
|
||||||
setDvar("bots_manage_fill_spec", 1);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_distance") == "")
|
|
||||||
setDvar("bots_main_debug_distance", 512.0);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_cone") == "")
|
|
||||||
setDvar("bots_main_debug_cone", 0.65);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_minDist") == "")
|
|
||||||
setDvar("bots_main_debug_minDist", 32.0);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_drawThrough") == "")
|
|
||||||
setDvar("bots_main_debug_drawThrough", false);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_commandWait") == "")
|
|
||||||
setDvar("bots_main_debug_commandWait", 0.5);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_framerate") == "")
|
|
||||||
setDvar("bots_main_debug_framerate", 58);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_lineDuration") == "")
|
|
||||||
setDvar("bots_main_debug_lineDuration", 3);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_printDuration") == "")
|
|
||||||
setDvar("bots_main_debug_printDuration", 3);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_debugRate") == "")
|
|
||||||
setDvar("bots_main_debug_debugRate", 0.5);
|
|
||||||
|
|
||||||
setDvar("player_sustainAmmo", 1);
|
|
||||||
|
|
||||||
level.waypoints = [];
|
|
||||||
level.waypointCount = 0;
|
|
||||||
|
|
||||||
level waittill( "connected", player);
|
|
||||||
|
|
||||||
player thread onPlayerSpawned();
|
|
||||||
}
|
|
||||||
|
|
||||||
onPlayerSpawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
self thread beginDebug();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
beginDebug()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
|
|
||||||
level.wpToLink = -1;
|
|
||||||
level.autoLink = false;
|
|
||||||
self.closest = -1;
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
self clearPerks();
|
|
||||||
self takeAllWeapons();
|
|
||||||
self.specialty = [];
|
|
||||||
self giveWeapon("m16_gl_mp");
|
|
||||||
self SetActionSlot( 3, "altMode" );
|
|
||||||
self giveWeapon("frag_grenade_mp");
|
|
||||||
self freezecontrols(false);
|
|
||||||
|
|
||||||
self thread debug();
|
|
||||||
self thread addWaypoints();
|
|
||||||
self thread linkWaypoints();
|
|
||||||
self thread deleteWaypoints();
|
|
||||||
self thread watchSaveWaypointsCommand();
|
|
||||||
self thread sayExtras();
|
|
||||||
|
|
||||||
self thread textScroll("^1SecondaryOffhand - ^2Add Waypoint; ^3MeleeButton - ^4Link Waypoint; ^5FragButton - ^6Delete Waypoint; ^7UseButton + AttackButton - ^8Save");
|
|
||||||
}
|
|
||||||
|
|
||||||
sayExtras()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
self iprintln("Making a crouch waypoint with only one link...");
|
|
||||||
self iprintln("Makes a camping waypoint.");
|
|
||||||
}
|
|
||||||
|
|
||||||
debug()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
|
|
||||||
self setClientDvar("com_maxfps", getDvarInt("bots_main_debug_framerate"));
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait getDvarFloat("bots_main_debug_debugRate");
|
|
||||||
|
|
||||||
if(isDefined(self.command))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
closest = -1;
|
|
||||||
myEye = self getTagOrigin( "j_head" );
|
|
||||||
myAngles = self GetPlayerAngles();
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
if(closest == -1 || closer(self.origin, level.waypoints[i].origin, level.waypoints[closest].origin))
|
|
||||||
closest = i;
|
|
||||||
|
|
||||||
wpOrg = level.waypoints[i].origin + (0, 0, 25);
|
|
||||||
|
|
||||||
if(distance(level.waypoints[i].origin, self.origin) < getDvarFloat("bots_main_debug_distance") && (bulletTracePassed(myEye, wpOrg, false, self) || getDVarint("bots_main_debug_drawThrough")))
|
|
||||||
{
|
|
||||||
for(h = 0; h < level.waypoints[i].childCount; h++)
|
|
||||||
line(wpOrg, level.waypoints[level.waypoints[i].children[h]].origin + (0, 0, 25), (1,0,1), 1, 1, getDvarInt("bots_main_debug_lineDuration"));
|
|
||||||
|
|
||||||
if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone"))
|
|
||||||
print3d(wpOrg, i, (1,0,0), 2, 1, 6);
|
|
||||||
|
|
||||||
if (isDefined(level.waypoints[i].angles) && level.waypoints[i].type != "stand")
|
|
||||||
line(wpOrg, wpOrg + AnglesToForward(level.waypoints[i].angles) * 64, (1,1,1), 1, 1, getDvarInt("bots_main_debug_lineDuration"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.closest = closest;
|
|
||||||
|
|
||||||
if(closest != -1)
|
|
||||||
{
|
|
||||||
stringChildren = "";
|
|
||||||
for(i = 0; i < level.waypoints[closest].childCount; i++)
|
|
||||||
{
|
|
||||||
if(i != 0)
|
|
||||||
stringChildren = stringChildren + "," + level.waypoints[closest].children[i];
|
|
||||||
else
|
|
||||||
stringChildren = stringChildren + level.waypoints[closest].children[i];
|
|
||||||
}
|
|
||||||
print3d(level.waypoints[closest].origin + (0, 0, 35), stringChildren, (0,1,0), 2, 1, getDvarInt("bots_main_debug_printDuration"));
|
|
||||||
|
|
||||||
print3d(level.waypoints[closest].origin + (0, 0, 15), level.waypoints[closest].type, (0,1,0), 2, 1, getDvarInt("bots_main_debug_printDuration"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AddWaypoints()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self SecondaryOffhandButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
pos = self getOrigin();
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("Adding a waypoint...");
|
|
||||||
self iprintln("ADS - climb; Attack + Use - tube");
|
|
||||||
self iprintln("Attack - grenade; Use - claymore");
|
|
||||||
self iprintln("Else(wait) - your stance");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
self addWaypoint(pos);
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self SecondaryOffhandButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
linkWaypoints()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self MeleeButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("ADS - Unlink; Else(wait) - Link");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
if(!self adsButtonPressed())
|
|
||||||
self LinkWaypoint(self.closest);
|
|
||||||
else
|
|
||||||
self UnLinkWaypoint(self.closest);
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self MeleeButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
deleteWaypoints()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self fragButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("Attack - DeleteAll; ADS - Load");
|
|
||||||
self iprintln("Else(wait) - Delete");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
if(self attackButtonPressed())
|
|
||||||
self deleteAllWaypoints();
|
|
||||||
else if(self adsButtonPressed())
|
|
||||||
self LoadWaypoints();
|
|
||||||
else
|
|
||||||
self DeleteWaypoint(self.closest);
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self fragButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
watchSaveWaypointsCommand()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self useButtonPressed() || !self attackButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("ADS - Autolink; Else(wait) - Save");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
if(!self adsButtonPressed())
|
|
||||||
{
|
|
||||||
self checkForWarnings();
|
|
||||||
wait 1;
|
|
||||||
|
|
||||||
logprint("***********ABiliTy's WPDump**************\n\n");
|
|
||||||
logprint("\n\n\n\n");
|
|
||||||
mpnm=getMapName(getdvar("mapname"));
|
|
||||||
logprint("\n\n"+mpnm+"()\n{\n/*");
|
|
||||||
logprint("*/waypoints = [];\n/*");
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
logprint("*/waypoints["+i+"] = spawnstruct();\n/*");
|
|
||||||
logprint("*/waypoints["+i+"].origin = "+level.waypoints[i].origin+";\n/*");
|
|
||||||
logprint("*/waypoints["+i+"].type = \""+level.waypoints[i].type+"\";\n/*");
|
|
||||||
logprint("*/waypoints["+i+"].childCount = "+level.waypoints[i].childCount+";\n/*");
|
|
||||||
for(c = 0; c < level.waypoints[i].childCount; c++)
|
|
||||||
{
|
|
||||||
logprint("*/waypoints["+i+"].children["+c+"] = "+level.waypoints[i].children[c]+";\n/*");
|
|
||||||
}
|
|
||||||
if(isDefined(level.waypoints[i].angles) && (level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || (level.waypoints[i].type == "crouch" && level.waypoints[i].childCount == 1) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade"))
|
|
||||||
logprint("*/waypoints["+i+"].angles = "+level.waypoints[i].angles+";\n/*");
|
|
||||||
}
|
|
||||||
logprint("*/return waypoints;\n}\n\n\n\n");
|
|
||||||
|
|
||||||
filename = "waypoints/" + getdvar("mapname") + "_wp.csv";
|
|
||||||
fd = FS_FOpen(filename, "write");
|
|
||||||
|
|
||||||
PrintLn("********* Start Bot Warfare WPDump *********");
|
|
||||||
PrintLn(level.waypointCount);
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
{
|
|
||||||
if (!FS_WriteLine(fd, level.waypointCount+""))
|
|
||||||
{
|
|
||||||
FS_FClose(fd);
|
|
||||||
fd = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
str = "";
|
|
||||||
wp = level.waypoints[i];
|
|
||||||
|
|
||||||
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
|
|
||||||
|
|
||||||
for(h = 0; h < wp.childCount; h++)
|
|
||||||
{
|
|
||||||
str += wp.children[h];
|
|
||||||
|
|
||||||
if (h < wp.childCount - 1)
|
|
||||||
str += " ";
|
|
||||||
}
|
|
||||||
str += "," + wp.type + ",";
|
|
||||||
|
|
||||||
if (isDefined(wp.angles))
|
|
||||||
str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ",";
|
|
||||||
else
|
|
||||||
str += ",";
|
|
||||||
|
|
||||||
str += ",";
|
|
||||||
|
|
||||||
PrintLn(str);
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
{
|
|
||||||
if (!FS_WriteLine(fd, str))
|
|
||||||
{
|
|
||||||
FS_FClose(fd);
|
|
||||||
fd = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PrintLn("\n\n\n\n\n\n");
|
|
||||||
|
|
||||||
self iprintln("Saved!!! to " + filename);
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
FS_FClose(fd);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(level.autoLink)
|
|
||||||
{
|
|
||||||
self iPrintlnBold("Auto link disabled");
|
|
||||||
level.autoLink = false;
|
|
||||||
level.wpToLink = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self iPrintlnBold("Auto link enabled");
|
|
||||||
level.autoLink = true;
|
|
||||||
level.wpToLink = self.closest;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self useButtonPressed() && self attackButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LoadWaypoints()
|
|
||||||
{
|
|
||||||
self DeleteAllWaypoints();
|
|
||||||
self iPrintlnBold("Loading WPS...");
|
|
||||||
load_waypoints();
|
|
||||||
|
|
||||||
wait 1;
|
|
||||||
|
|
||||||
self checkForWarnings();
|
|
||||||
}
|
|
||||||
|
|
||||||
checkForWarnings()
|
|
||||||
{
|
|
||||||
if(level.waypointCount <= 0)
|
|
||||||
self iprintln("WARNING: waypointCount is "+level.waypointCount);
|
|
||||||
|
|
||||||
if(level.waypointCount != level.waypoints.size)
|
|
||||||
self iprintln("WARNING: waypointCount is not "+level.waypoints.size);
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
if(!isDefined(level.waypoints[i]))
|
|
||||||
{
|
|
||||||
self iprintln("WARNING: waypoint "+i+" is undefined");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.waypoints[i].childCount <= 0)
|
|
||||||
self iprintln("WARNING: waypoint "+i+" childCount is "+level.waypoints[i].childCount);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!isDefined(level.waypoints[i].children) || !isDefined(level.waypoints[i].children.size))
|
|
||||||
{
|
|
||||||
self iprintln("WARNING: waypoint "+i+" children is not defined");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(level.waypoints[i].childCount != level.waypoints[i].children.size)
|
|
||||||
self iprintln("WARNING: waypoint "+i+" childCount is not "+level.waypoints[i].children.size);
|
|
||||||
|
|
||||||
for (h = 0; h < level.waypoints[i].childCount; h++)
|
|
||||||
{
|
|
||||||
child = level.waypoints[i].children[h];
|
|
||||||
|
|
||||||
if(!isDefined(level.waypoints[child]))
|
|
||||||
self iprintln("WARNING: waypoint "+i+" child "+child+" is undefined");
|
|
||||||
else if(child == i)
|
|
||||||
self iprintln("WARNING: waypoint "+i+" child "+child+" is itself");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isDefined(level.waypoints[i].type))
|
|
||||||
{
|
|
||||||
self iprintln("WARNING: waypoint "+i+" type is undefined");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isDefined(level.waypoints[i].angles) && (level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || (level.waypoints[i].type == "crouch" && level.waypoints[i].childCount == 1) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade"))
|
|
||||||
self iprintln("WARNING: waypoint "+i+" angles is undefined");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DeleteAllWaypoints()
|
|
||||||
{
|
|
||||||
level.waypoints = [];
|
|
||||||
level.waypointCount = 0;
|
|
||||||
level.waypointsKDTree = WaypointsToKDTree();
|
|
||||||
|
|
||||||
level.waypointsCamp = [];
|
|
||||||
level.waypointsTube = [];
|
|
||||||
level.waypointsGren = [];
|
|
||||||
level.waypointsClay = [];
|
|
||||||
|
|
||||||
self iprintln("DelAllWps");
|
|
||||||
}
|
|
||||||
|
|
||||||
DeleteWaypoint(nwp)
|
|
||||||
{
|
|
||||||
if(nwp == -1 || distance(self.origin, level.waypoints[nwp].origin) > getDvarFloat("bots_main_debug_minDist"))
|
|
||||||
{
|
|
||||||
self iprintln("No close enough waypoint to delete.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.wpToLink = -1;
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypoints[nwp].childCount; i++)
|
|
||||||
{
|
|
||||||
child = level.waypoints[nwp].children[i];
|
|
||||||
|
|
||||||
level.waypoints[child].children = array_remove(level.waypoints[child].children, nwp);
|
|
||||||
|
|
||||||
level.waypoints[child].childCount = level.waypoints[child].children.size;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
for(h = 0; h < level.waypoints[i].childCount; h++)
|
|
||||||
{
|
|
||||||
if(level.waypoints[i].children[h] > nwp)
|
|
||||||
level.waypoints[i].children[h]--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( entry = 0; entry < level.waypointCount; entry++ )
|
|
||||||
{
|
|
||||||
if ( entry == nwp )
|
|
||||||
{
|
|
||||||
while ( entry < level.waypointCount-1 )
|
|
||||||
{
|
|
||||||
level.waypoints[entry] = level.waypoints[entry+1];
|
|
||||||
entry++;
|
|
||||||
}
|
|
||||||
level.waypoints[entry] = undefined;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
level.waypointCount--;
|
|
||||||
|
|
||||||
self iprintln("DelWp "+nwp);
|
|
||||||
}
|
|
||||||
|
|
||||||
addWaypoint(pos)
|
|
||||||
{
|
|
||||||
level.waypoints[level.waypointCount] = spawnstruct();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].origin = pos;
|
|
||||||
|
|
||||||
if(self AdsButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "climb";
|
|
||||||
else if(self AttackButtonPressed() && self UseButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "tube";
|
|
||||||
else if(self AttackButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "grenade";
|
|
||||||
else if(self UseButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "claymore";
|
|
||||||
else
|
|
||||||
level.waypoints[level.waypointCount].type = self getStance();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].angles = self getPlayerAngles();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].children = [];
|
|
||||||
level.waypoints[level.waypointCount].childCount = 0;
|
|
||||||
|
|
||||||
self iprintln(level.waypoints[level.waypointCount].type + " Waypoint "+ level.waypointCount +" Added at "+pos);
|
|
||||||
|
|
||||||
if(level.autoLink)
|
|
||||||
{
|
|
||||||
if(level.wpToLink == -1)
|
|
||||||
level.wpToLink = level.waypointCount - 1;
|
|
||||||
|
|
||||||
level.waypointCount++;
|
|
||||||
self LinkWaypoint(level.waypointCount - 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.waypointCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UnLinkWaypoint(nwp)
|
|
||||||
{
|
|
||||||
if(nwp == -1 || distance(self.origin, level.waypoints[nwp].origin) > getDvarFloat("bots_main_debug_minDist"))
|
|
||||||
{
|
|
||||||
self iprintln("Waypoint Unlink Cancelled "+level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
|
||||||
{
|
|
||||||
level.wpToLink = nwp;
|
|
||||||
self iprintln("Waypoint Unlink Started "+nwp);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.waypoints[nwp].children = array_remove(level.waypoints[nwp].children, level.wpToLink);
|
|
||||||
level.waypoints[level.wpToLink].children = array_remove(level.waypoints[level.wpToLink].children, nwp);
|
|
||||||
|
|
||||||
level.waypoints[nwp].childCount = level.waypoints[nwp].children.size;
|
|
||||||
level.waypoints[level.wpToLink].childCount = level.waypoints[level.wpToLink].children.size;
|
|
||||||
|
|
||||||
self iprintln("Waypoint " + nwp + " Broken to " + level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
LinkWaypoint(nwp)
|
|
||||||
{
|
|
||||||
if(nwp == -1 || distance(self.origin, level.waypoints[nwp].origin) > getDvarFloat("bots_main_debug_minDist"))
|
|
||||||
{
|
|
||||||
self iprintln("Waypoint Link Cancelled "+level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
|
||||||
{
|
|
||||||
level.wpToLink = nwp;
|
|
||||||
self iprintln("Waypoint Link Started "+nwp);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
weGood = true;
|
|
||||||
for(i = 0; i < level.waypoints[level.wpToLink].childCount; i++)
|
|
||||||
{
|
|
||||||
if(level.waypoints[level.wpToLink].children[i] == nwp)
|
|
||||||
{
|
|
||||||
weGood = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(weGood)
|
|
||||||
{
|
|
||||||
for(i = 0; i < level.waypoints[nwp].childCount; i++)
|
|
||||||
{
|
|
||||||
if(level.waypoints[nwp].children[i] == level.wpToLink)
|
|
||||||
{
|
|
||||||
weGood = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!weGood )
|
|
||||||
{
|
|
||||||
self iprintln("Waypoint Link Cancelled "+nwp+" and "+level.wpToLink+" already linked.");
|
|
||||||
level.wpToLink = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.waypoints[level.wpToLink].children[level.waypoints[level.wpToLink].childcount] = nwp;
|
|
||||||
level.waypoints[level.wpToLink].childcount++;
|
|
||||||
level.waypoints[nwp].children[level.waypoints[nwp].childcount] = level.wpToLink;
|
|
||||||
level.waypoints[nwp].childcount++;
|
|
||||||
|
|
||||||
self iprintln("Waypoint " + nwp + " Linked to " + level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
destroyOnDeath(hud)
|
|
||||||
{
|
|
||||||
hud endon("death");
|
|
||||||
self waittill_either("death","disconnect");
|
|
||||||
hud destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
textScroll(string)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
//thanks ActionScript
|
|
||||||
|
|
||||||
back = createBar((0,0,0), 1000, 30);
|
|
||||||
back setPoint("CENTER", undefined, 0, 220);
|
|
||||||
self thread destroyOnDeath(back);
|
|
||||||
|
|
||||||
text = createFontString("default", 1.5);
|
|
||||||
text setText(string);
|
|
||||||
self thread destroyOnDeath(text);
|
|
||||||
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
text setPoint("CENTER", undefined, 1200, 220);
|
|
||||||
text setPoint("CENTER", undefined, -1200, 220, 20);
|
|
||||||
wait 20;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,845 +0,0 @@
|
|||||||
Killhouse()
|
|
||||||
{
|
|
||||||
waypoints = [];
|
|
||||||
waypoints[0] = spawnstruct();
|
|
||||||
waypoints[0].origin = (1181.56,148.431,28.125);
|
|
||||||
waypoints[0].type = "stand";
|
|
||||||
waypoints[0].childCount = 2;
|
|
||||||
waypoints[0].children[0] = 1;
|
|
||||||
waypoints[0].children[1] = 11;
|
|
||||||
waypoints[1] = spawnstruct();
|
|
||||||
waypoints[1].origin = (1094.79,153.256,80.125);
|
|
||||||
waypoints[1].type = "stand";
|
|
||||||
waypoints[1].childCount = 2;
|
|
||||||
waypoints[1].children[0] = 0;
|
|
||||||
waypoints[1].children[1] = 2;
|
|
||||||
waypoints[2] = spawnstruct();
|
|
||||||
waypoints[2].origin = (488.403,150.541,80.125);
|
|
||||||
waypoints[2].type = "stand";
|
|
||||||
waypoints[2].childCount = 2;
|
|
||||||
waypoints[2].children[0] = 1;
|
|
||||||
waypoints[2].children[1] = 3;
|
|
||||||
waypoints[3] = spawnstruct();
|
|
||||||
waypoints[3].origin = (391.899,153.36,28.125);
|
|
||||||
waypoints[3].type = "stand";
|
|
||||||
waypoints[3].childCount = 3;
|
|
||||||
waypoints[3].children[0] = 2;
|
|
||||||
waypoints[3].children[1] = 4;
|
|
||||||
waypoints[3].children[2] = 5;
|
|
||||||
waypoints[4] = spawnstruct();
|
|
||||||
waypoints[4].origin = (401.059,239.669,28.125);
|
|
||||||
waypoints[4].type = "stand";
|
|
||||||
waypoints[4].childCount = 6;
|
|
||||||
waypoints[4].children[0] = 3;
|
|
||||||
waypoints[4].children[1] = 5;
|
|
||||||
waypoints[4].children[2] = 13;
|
|
||||||
waypoints[4].children[3] = 6;
|
|
||||||
waypoints[4].children[4] = 8;
|
|
||||||
waypoints[4].children[5] = 86;
|
|
||||||
waypoints[5] = spawnstruct();
|
|
||||||
waypoints[5].origin = (124.215,210.283,28.125);
|
|
||||||
waypoints[5].type = "stand";
|
|
||||||
waypoints[5].childCount = 4;
|
|
||||||
waypoints[5].children[0] = 4;
|
|
||||||
waypoints[5].children[1] = 6;
|
|
||||||
waypoints[5].children[2] = 3;
|
|
||||||
waypoints[5].children[3] = 86;
|
|
||||||
waypoints[6] = spawnstruct();
|
|
||||||
waypoints[6].origin = (412.98,445.891,28.125);
|
|
||||||
waypoints[6].type = "stand";
|
|
||||||
waypoints[6].childCount = 8;
|
|
||||||
waypoints[6].children[0] = 7;
|
|
||||||
waypoints[6].children[1] = 4;
|
|
||||||
waypoints[6].children[2] = 5;
|
|
||||||
waypoints[6].children[3] = 13;
|
|
||||||
waypoints[6].children[4] = 68;
|
|
||||||
waypoints[6].children[5] = 67;
|
|
||||||
waypoints[6].children[6] = 69;
|
|
||||||
waypoints[6].children[7] = 86;
|
|
||||||
waypoints[7] = spawnstruct();
|
|
||||||
waypoints[7].origin = (546.57,448.066,28.125);
|
|
||||||
waypoints[7].type = "stand";
|
|
||||||
waypoints[7].childCount = 4;
|
|
||||||
waypoints[7].children[0] = 6;
|
|
||||||
waypoints[7].children[1] = 8;
|
|
||||||
waypoints[7].children[2] = 13;
|
|
||||||
waypoints[7].children[3] = 67;
|
|
||||||
waypoints[8] = spawnstruct();
|
|
||||||
waypoints[8].origin = (686.556,444.51,28.125);
|
|
||||||
waypoints[8].type = "stand";
|
|
||||||
waypoints[8].childCount = 5;
|
|
||||||
waypoints[8].children[0] = 7;
|
|
||||||
waypoints[8].children[1] = 9;
|
|
||||||
waypoints[8].children[2] = 13;
|
|
||||||
waypoints[8].children[3] = 14;
|
|
||||||
waypoints[8].children[4] = 4;
|
|
||||||
waypoints[9] = spawnstruct();
|
|
||||||
waypoints[9].origin = (836.351,440.111,28.125);
|
|
||||||
waypoints[9].type = "stand";
|
|
||||||
waypoints[9].childCount = 4;
|
|
||||||
waypoints[9].children[0] = 8;
|
|
||||||
waypoints[9].children[1] = 10;
|
|
||||||
waypoints[9].children[2] = 12;
|
|
||||||
waypoints[9].children[3] = 18;
|
|
||||||
waypoints[10] = spawnstruct();
|
|
||||||
waypoints[10].origin = (948.997,437.246,28.125);
|
|
||||||
waypoints[10].type = "stand";
|
|
||||||
waypoints[10].childCount = 6;
|
|
||||||
waypoints[10].children[0] = 9;
|
|
||||||
waypoints[10].children[1] = 12;
|
|
||||||
waypoints[10].children[2] = 11;
|
|
||||||
waypoints[10].children[3] = 18;
|
|
||||||
waypoints[10].children[4] = 24;
|
|
||||||
waypoints[10].children[5] = 88;
|
|
||||||
waypoints[11] = spawnstruct();
|
|
||||||
waypoints[11].origin = (1159.55,316.005,28.125);
|
|
||||||
waypoints[11].type = "stand";
|
|
||||||
waypoints[11].childCount = 4;
|
|
||||||
waypoints[11].children[0] = 0;
|
|
||||||
waypoints[11].children[1] = 12;
|
|
||||||
waypoints[11].children[2] = 10;
|
|
||||||
waypoints[11].children[3] = 88;
|
|
||||||
waypoints[12] = spawnstruct();
|
|
||||||
waypoints[12].origin = (890.993,266.089,28.125);
|
|
||||||
waypoints[12].type = "stand";
|
|
||||||
waypoints[12].childCount = 4;
|
|
||||||
waypoints[12].children[0] = 11;
|
|
||||||
waypoints[12].children[1] = 13;
|
|
||||||
waypoints[12].children[2] = 10;
|
|
||||||
waypoints[12].children[3] = 9;
|
|
||||||
waypoints[13] = spawnstruct();
|
|
||||||
waypoints[13].origin = (580.602,251.012,28.125);
|
|
||||||
waypoints[13].type = "stand";
|
|
||||||
waypoints[13].childCount = 5;
|
|
||||||
waypoints[13].children[0] = 4;
|
|
||||||
waypoints[13].children[1] = 12;
|
|
||||||
waypoints[13].children[2] = 7;
|
|
||||||
waypoints[13].children[3] = 6;
|
|
||||||
waypoints[13].children[4] = 8;
|
|
||||||
waypoints[14] = spawnstruct();
|
|
||||||
waypoints[14].origin = (724.843,589.895,28.125);
|
|
||||||
waypoints[14].type = "stand";
|
|
||||||
waypoints[14].childCount = 4;
|
|
||||||
waypoints[14].children[0] = 8;
|
|
||||||
waypoints[14].children[1] = 15;
|
|
||||||
waypoints[14].children[2] = 16;
|
|
||||||
waypoints[14].children[3] = 89;
|
|
||||||
waypoints[15] = spawnstruct();
|
|
||||||
waypoints[15].origin = (689.658,738.037,60.125);
|
|
||||||
waypoints[15].type = "stand";
|
|
||||||
waypoints[15].childCount = 2;
|
|
||||||
waypoints[15].children[0] = 14;
|
|
||||||
waypoints[15].children[1] = 17;
|
|
||||||
waypoints[16] = spawnstruct();
|
|
||||||
waypoints[16].origin = (782.19,740.27,60.125);
|
|
||||||
waypoints[16].type = "stand";
|
|
||||||
waypoints[16].childCount = 2;
|
|
||||||
waypoints[16].children[0] = 14;
|
|
||||||
waypoints[16].children[1] = 17;
|
|
||||||
waypoints[17] = spawnstruct();
|
|
||||||
waypoints[17].origin = (738.365,860.821,28.125);
|
|
||||||
waypoints[17].type = "stand";
|
|
||||||
waypoints[17].childCount = 4;
|
|
||||||
waypoints[17].children[0] = 16;
|
|
||||||
waypoints[17].children[1] = 15;
|
|
||||||
waypoints[17].children[2] = 25;
|
|
||||||
waypoints[17].children[3] = 66;
|
|
||||||
waypoints[18] = spawnstruct();
|
|
||||||
waypoints[18].origin = (892.884,503.932,50.125);
|
|
||||||
waypoints[18].type = "stand";
|
|
||||||
waypoints[18].childCount = 3;
|
|
||||||
waypoints[18].children[0] = 9;
|
|
||||||
waypoints[18].children[1] = 10;
|
|
||||||
waypoints[18].children[2] = 19;
|
|
||||||
waypoints[19] = spawnstruct();
|
|
||||||
waypoints[19].origin = (889.55,614.586,156.125);
|
|
||||||
waypoints[19].type = "stand";
|
|
||||||
waypoints[19].childCount = 2;
|
|
||||||
waypoints[19].children[0] = 18;
|
|
||||||
waypoints[19].children[1] = 20;
|
|
||||||
waypoints[20] = spawnstruct();
|
|
||||||
waypoints[20].origin = (821.734,700.728,156.125);
|
|
||||||
waypoints[20].type = "stand";
|
|
||||||
waypoints[20].childCount = 3;
|
|
||||||
waypoints[20].children[0] = 19;
|
|
||||||
waypoints[20].children[1] = 21;
|
|
||||||
waypoints[20].children[2] = 23;
|
|
||||||
waypoints[21] = spawnstruct();
|
|
||||||
waypoints[21].origin = (704.143,709.897,156.125);
|
|
||||||
waypoints[21].type = "stand";
|
|
||||||
waypoints[21].childCount = 2;
|
|
||||||
waypoints[21].children[0] = 20;
|
|
||||||
waypoints[21].children[1] = 22;
|
|
||||||
waypoints[22] = spawnstruct();
|
|
||||||
waypoints[22].origin = (660.627,556.142,156.125);
|
|
||||||
waypoints[22].type = "stand";
|
|
||||||
waypoints[22].childCount = 2;
|
|
||||||
waypoints[22].children[0] = 21;
|
|
||||||
waypoints[22].children[1] = 23;
|
|
||||||
waypoints[23] = spawnstruct();
|
|
||||||
waypoints[23].origin = (757.048,539.674,156.125);
|
|
||||||
waypoints[23].type = "stand";
|
|
||||||
waypoints[23].childCount = 2;
|
|
||||||
waypoints[23].children[0] = 22;
|
|
||||||
waypoints[23].children[1] = 20;
|
|
||||||
waypoints[24] = spawnstruct();
|
|
||||||
waypoints[24].origin = (1004.58,582.486,28.125);
|
|
||||||
waypoints[24].type = "stand";
|
|
||||||
waypoints[24].childCount = 4;
|
|
||||||
waypoints[24].children[0] = 10;
|
|
||||||
waypoints[24].children[1] = 25;
|
|
||||||
waypoints[24].children[2] = 101;
|
|
||||||
waypoints[24].children[3] = 103;
|
|
||||||
waypoints[25] = spawnstruct();
|
|
||||||
waypoints[25].origin = (1029.19,824.597,28.125);
|
|
||||||
waypoints[25].type = "stand";
|
|
||||||
waypoints[25].childCount = 5;
|
|
||||||
waypoints[25].children[0] = 17;
|
|
||||||
waypoints[25].children[1] = 26;
|
|
||||||
waypoints[25].children[2] = 27;
|
|
||||||
waypoints[25].children[3] = 24;
|
|
||||||
waypoints[25].children[4] = 103;
|
|
||||||
waypoints[26] = spawnstruct();
|
|
||||||
waypoints[26].origin = (952.182,1052.15,28.125);
|
|
||||||
waypoints[26].type = "stand";
|
|
||||||
waypoints[26].childCount = 5;
|
|
||||||
waypoints[26].children[0] = 25;
|
|
||||||
waypoints[26].children[1] = 27;
|
|
||||||
waypoints[26].children[2] = 28;
|
|
||||||
waypoints[26].children[3] = 29;
|
|
||||||
waypoints[26].children[4] = 73;
|
|
||||||
waypoints[27] = spawnstruct();
|
|
||||||
waypoints[27].origin = (1092.87,982.674,28.125);
|
|
||||||
waypoints[27].type = "stand";
|
|
||||||
waypoints[27].childCount = 5;
|
|
||||||
waypoints[27].children[0] = 25;
|
|
||||||
waypoints[27].children[1] = 26;
|
|
||||||
waypoints[27].children[2] = 28;
|
|
||||||
waypoints[27].children[3] = 90;
|
|
||||||
waypoints[27].children[4] = 103;
|
|
||||||
waypoints[28] = spawnstruct();
|
|
||||||
waypoints[28].origin = (1215.84,1133.62,28.125);
|
|
||||||
waypoints[28].type = "stand";
|
|
||||||
waypoints[28].childCount = 4;
|
|
||||||
waypoints[28].children[0] = 27;
|
|
||||||
waypoints[28].children[1] = 26;
|
|
||||||
waypoints[28].children[2] = 33;
|
|
||||||
waypoints[28].children[3] = 90;
|
|
||||||
waypoints[29] = spawnstruct();
|
|
||||||
waypoints[29].origin = (808.471,1142.11,28.125);
|
|
||||||
waypoints[29].type = "stand";
|
|
||||||
waypoints[29].childCount = 4;
|
|
||||||
waypoints[29].children[0] = 26;
|
|
||||||
waypoints[29].children[1] = 30;
|
|
||||||
waypoints[29].children[2] = 65;
|
|
||||||
waypoints[29].children[3] = 66;
|
|
||||||
waypoints[30] = spawnstruct();
|
|
||||||
waypoints[30].origin = (953.341,1289.21,28.125);
|
|
||||||
waypoints[30].type = "stand";
|
|
||||||
waypoints[30].childCount = 5;
|
|
||||||
waypoints[30].children[0] = 29;
|
|
||||||
waypoints[30].children[1] = 31;
|
|
||||||
waypoints[30].children[2] = 34;
|
|
||||||
waypoints[30].children[3] = 63;
|
|
||||||
waypoints[30].children[4] = 64;
|
|
||||||
waypoints[31] = spawnstruct();
|
|
||||||
waypoints[31].origin = (929.05,1665.76,28.125);
|
|
||||||
waypoints[31].type = "stand";
|
|
||||||
waypoints[31].childCount = 4;
|
|
||||||
waypoints[31].children[0] = 30;
|
|
||||||
waypoints[31].children[1] = 32;
|
|
||||||
waypoints[31].children[2] = 62;
|
|
||||||
waypoints[31].children[3] = 63;
|
|
||||||
waypoints[32] = spawnstruct();
|
|
||||||
waypoints[32].origin = (1029.84,1676.12,60.125);
|
|
||||||
waypoints[32].type = "stand";
|
|
||||||
waypoints[32].childCount = 2;
|
|
||||||
waypoints[32].children[0] = 31;
|
|
||||||
waypoints[32].children[1] = 84;
|
|
||||||
waypoints[33] = spawnstruct();
|
|
||||||
waypoints[33].origin = (1149.13,1318.31,28.125);
|
|
||||||
waypoints[33].type = "stand";
|
|
||||||
waypoints[33].childCount = 4;
|
|
||||||
waypoints[33].children[0] = 34;
|
|
||||||
waypoints[33].children[1] = 28;
|
|
||||||
waypoints[33].children[2] = 91;
|
|
||||||
waypoints[33].children[3] = 92;
|
|
||||||
waypoints[34] = spawnstruct();
|
|
||||||
waypoints[34].origin = (1044.88,1301.19,60.125);
|
|
||||||
waypoints[34].type = "stand";
|
|
||||||
waypoints[34].childCount = 2;
|
|
||||||
waypoints[34].children[0] = 33;
|
|
||||||
waypoints[34].children[1] = 30;
|
|
||||||
waypoints[35] = spawnstruct();
|
|
||||||
waypoints[35].origin = (1227.16,1921.76,28.125);
|
|
||||||
waypoints[35].type = "stand";
|
|
||||||
waypoints[35].childCount = 6;
|
|
||||||
waypoints[35].children[0] = 39;
|
|
||||||
waypoints[35].children[1] = 38;
|
|
||||||
waypoints[35].children[2] = 62;
|
|
||||||
waypoints[35].children[3] = 84;
|
|
||||||
waypoints[35].children[4] = 93;
|
|
||||||
waypoints[35].children[5] = 94;
|
|
||||||
waypoints[36] = spawnstruct();
|
|
||||||
waypoints[36].origin = (981.053,2281.89,28.125);
|
|
||||||
waypoints[36].type = "stand";
|
|
||||||
waypoints[36].childCount = 4;
|
|
||||||
waypoints[36].children[0] = 37;
|
|
||||||
waypoints[36].children[1] = 40;
|
|
||||||
waypoints[36].children[2] = 41;
|
|
||||||
waypoints[36].children[3] = 42;
|
|
||||||
waypoints[37] = spawnstruct();
|
|
||||||
waypoints[37].origin = (928.878,2123.83,60.125);
|
|
||||||
waypoints[37].type = "stand";
|
|
||||||
waypoints[37].childCount = 3;
|
|
||||||
waypoints[37].children[0] = 36;
|
|
||||||
waypoints[37].children[1] = 38;
|
|
||||||
waypoints[37].children[2] = 42;
|
|
||||||
waypoints[38] = spawnstruct();
|
|
||||||
waypoints[38].origin = (939.541,1963.59,28.125);
|
|
||||||
waypoints[38].type = "stand";
|
|
||||||
waypoints[38].childCount = 5;
|
|
||||||
waypoints[38].children[0] = 39;
|
|
||||||
waypoints[38].children[1] = 35;
|
|
||||||
waypoints[38].children[2] = 37;
|
|
||||||
waypoints[38].children[3] = 59;
|
|
||||||
waypoints[38].children[4] = 62;
|
|
||||||
waypoints[39] = spawnstruct();
|
|
||||||
waypoints[39].origin = (1076.47,2020.68,28.125);
|
|
||||||
waypoints[39].type = "stand";
|
|
||||||
waypoints[39].childCount = 3;
|
|
||||||
waypoints[39].children[0] = 35;
|
|
||||||
waypoints[39].children[1] = 38;
|
|
||||||
waypoints[39].children[2] = 40;
|
|
||||||
waypoints[40] = spawnstruct();
|
|
||||||
waypoints[40].origin = (1120.26,2201.66,28.125);
|
|
||||||
waypoints[40].type = "stand";
|
|
||||||
waypoints[40].childCount = 3;
|
|
||||||
waypoints[40].children[0] = 39;
|
|
||||||
waypoints[40].children[1] = 36;
|
|
||||||
waypoints[40].children[2] = 41;
|
|
||||||
waypoints[41] = spawnstruct();
|
|
||||||
waypoints[41].origin = (1186.71,2334.35,28.125);
|
|
||||||
waypoints[41].type = "stand";
|
|
||||||
waypoints[41].childCount = 4;
|
|
||||||
waypoints[41].children[0] = 40;
|
|
||||||
waypoints[41].children[1] = 36;
|
|
||||||
waypoints[41].children[2] = 42;
|
|
||||||
waypoints[41].children[3] = 96;
|
|
||||||
waypoints[42] = spawnstruct();
|
|
||||||
waypoints[42].origin = (794.13,2412.11,28.125);
|
|
||||||
waypoints[42].type = "stand";
|
|
||||||
waypoints[42].childCount = 9;
|
|
||||||
waypoints[42].children[0] = 36;
|
|
||||||
waypoints[42].children[1] = 37;
|
|
||||||
waypoints[42].children[2] = 41;
|
|
||||||
waypoints[42].children[3] = 43;
|
|
||||||
waypoints[42].children[4] = 45;
|
|
||||||
waypoints[42].children[5] = 44;
|
|
||||||
waypoints[42].children[6] = 46;
|
|
||||||
waypoints[42].children[7] = 47;
|
|
||||||
waypoints[42].children[8] = 48;
|
|
||||||
waypoints[43] = spawnstruct();
|
|
||||||
waypoints[43].origin = (1168.55,2471.78,28.125);
|
|
||||||
waypoints[43].type = "stand";
|
|
||||||
waypoints[43].childCount = 3;
|
|
||||||
waypoints[43].children[0] = 42;
|
|
||||||
waypoints[43].children[1] = 44;
|
|
||||||
waypoints[43].children[2] = 45;
|
|
||||||
waypoints[44] = spawnstruct();
|
|
||||||
waypoints[44].origin = (1188.65,2574.37,28.125);
|
|
||||||
waypoints[44].type = "stand";
|
|
||||||
waypoints[44].childCount = 3;
|
|
||||||
waypoints[44].children[0] = 43;
|
|
||||||
waypoints[44].children[1] = 45;
|
|
||||||
waypoints[44].children[2] = 42;
|
|
||||||
waypoints[45] = spawnstruct();
|
|
||||||
waypoints[45].origin = (871.363,2570.3,28.125);
|
|
||||||
waypoints[45].type = "stand";
|
|
||||||
waypoints[45].childCount = 4;
|
|
||||||
waypoints[45].children[0] = 44;
|
|
||||||
waypoints[45].children[1] = 42;
|
|
||||||
waypoints[45].children[2] = 43;
|
|
||||||
waypoints[45].children[3] = 48;
|
|
||||||
waypoints[46] = spawnstruct();
|
|
||||||
waypoints[46].origin = (710.182,2313.92,28.125);
|
|
||||||
waypoints[46].type = "stand";
|
|
||||||
waypoints[46].childCount = 4;
|
|
||||||
waypoints[46].children[0] = 42;
|
|
||||||
waypoints[46].children[1] = 47;
|
|
||||||
waypoints[46].children[2] = 60;
|
|
||||||
waypoints[46].children[3] = 61;
|
|
||||||
waypoints[47] = spawnstruct();
|
|
||||||
waypoints[47].origin = (639.393,2390.73,28.125);
|
|
||||||
waypoints[47].type = "stand";
|
|
||||||
waypoints[47].childCount = 5;
|
|
||||||
waypoints[47].children[0] = 46;
|
|
||||||
waypoints[47].children[1] = 42;
|
|
||||||
waypoints[47].children[2] = 48;
|
|
||||||
waypoints[47].children[3] = 49;
|
|
||||||
waypoints[47].children[4] = 50;
|
|
||||||
waypoints[48] = spawnstruct();
|
|
||||||
waypoints[48].origin = (604.445,2550.02,28.125);
|
|
||||||
waypoints[48].type = "stand";
|
|
||||||
waypoints[48].childCount = 5;
|
|
||||||
waypoints[48].children[0] = 45;
|
|
||||||
waypoints[48].children[1] = 47;
|
|
||||||
waypoints[48].children[2] = 42;
|
|
||||||
waypoints[48].children[3] = 50;
|
|
||||||
waypoints[48].children[4] = 51;
|
|
||||||
waypoints[49] = spawnstruct();
|
|
||||||
waypoints[49].origin = (553.371,2318.72,50.125);
|
|
||||||
waypoints[49].type = "stand";
|
|
||||||
waypoints[49].childCount = 3;
|
|
||||||
waypoints[49].children[0] = 47;
|
|
||||||
waypoints[49].children[1] = 50;
|
|
||||||
waypoints[49].children[2] = 106;
|
|
||||||
waypoints[50] = spawnstruct();
|
|
||||||
waypoints[50].origin = (456.722,2430.49,28.125);
|
|
||||||
waypoints[50].type = "stand";
|
|
||||||
waypoints[50].childCount = 8;
|
|
||||||
waypoints[50].children[0] = 49;
|
|
||||||
waypoints[50].children[1] = 48;
|
|
||||||
waypoints[50].children[2] = 47;
|
|
||||||
waypoints[50].children[3] = 51;
|
|
||||||
waypoints[50].children[4] = 52;
|
|
||||||
waypoints[50].children[5] = 54;
|
|
||||||
waypoints[50].children[6] = 53;
|
|
||||||
waypoints[50].children[7] = 97;
|
|
||||||
waypoints[51] = spawnstruct();
|
|
||||||
waypoints[51].origin = (259.984,2581.73,28.125);
|
|
||||||
waypoints[51].type = "stand";
|
|
||||||
waypoints[51].childCount = 3;
|
|
||||||
waypoints[51].children[0] = 48;
|
|
||||||
waypoints[51].children[1] = 50;
|
|
||||||
waypoints[51].children[2] = 98;
|
|
||||||
waypoints[52] = spawnstruct();
|
|
||||||
waypoints[52].origin = (394.979,2269.04,28.125);
|
|
||||||
waypoints[52].type = "stand";
|
|
||||||
waypoints[52].childCount = 3;
|
|
||||||
waypoints[52].children[0] = 50;
|
|
||||||
waypoints[52].children[1] = 57;
|
|
||||||
waypoints[52].children[2] = 53;
|
|
||||||
waypoints[53] = spawnstruct();
|
|
||||||
waypoints[53].origin = (291.176,2246.97,28.125);
|
|
||||||
waypoints[53].type = "stand";
|
|
||||||
waypoints[53].childCount = 5;
|
|
||||||
waypoints[53].children[0] = 50;
|
|
||||||
waypoints[53].children[1] = 55;
|
|
||||||
waypoints[53].children[2] = 52;
|
|
||||||
waypoints[53].children[3] = 54;
|
|
||||||
waypoints[53].children[4] = 85;
|
|
||||||
waypoints[54] = spawnstruct();
|
|
||||||
waypoints[54].origin = (98.4385,2222.46,28.125);
|
|
||||||
waypoints[54].type = "stand";
|
|
||||||
waypoints[54].childCount = 4;
|
|
||||||
waypoints[54].children[0] = 50;
|
|
||||||
waypoints[54].children[1] = 53;
|
|
||||||
waypoints[54].children[2] = 58;
|
|
||||||
waypoints[54].children[3] = 85;
|
|
||||||
waypoints[55] = spawnstruct();
|
|
||||||
waypoints[55].origin = (218.456,2011.41,28.125);
|
|
||||||
waypoints[55].type = "stand";
|
|
||||||
waypoints[55].childCount = 4;
|
|
||||||
waypoints[55].children[0] = 53;
|
|
||||||
waypoints[55].children[1] = 56;
|
|
||||||
waypoints[55].children[2] = 81;
|
|
||||||
waypoints[55].children[3] = 105;
|
|
||||||
waypoints[56] = spawnstruct();
|
|
||||||
waypoints[56].origin = (361.233,1982.66,28.125);
|
|
||||||
waypoints[56].type = "stand";
|
|
||||||
waypoints[56].childCount = 4;
|
|
||||||
waypoints[56].children[0] = 55;
|
|
||||||
waypoints[56].children[1] = 57;
|
|
||||||
waypoints[56].children[2] = 59;
|
|
||||||
waypoints[56].children[3] = 81;
|
|
||||||
waypoints[57] = spawnstruct();
|
|
||||||
waypoints[57].origin = (375.537,2073.62,60.125);
|
|
||||||
waypoints[57].type = "stand";
|
|
||||||
waypoints[57].childCount = 2;
|
|
||||||
waypoints[57].children[0] = 56;
|
|
||||||
waypoints[57].children[1] = 52;
|
|
||||||
waypoints[58] = spawnstruct();
|
|
||||||
waypoints[58].origin = (74.3311,2083.72,60.125);
|
|
||||||
waypoints[58].type = "stand";
|
|
||||||
waypoints[58].childCount = 2;
|
|
||||||
waypoints[58].children[0] = 54;
|
|
||||||
waypoints[58].children[1] = 105;
|
|
||||||
waypoints[59] = spawnstruct();
|
|
||||||
waypoints[59].origin = (662.975,1986.09,28.125);
|
|
||||||
waypoints[59].type = "stand";
|
|
||||||
waypoints[59].childCount = 6;
|
|
||||||
waypoints[59].children[0] = 56;
|
|
||||||
waypoints[59].children[1] = 38;
|
|
||||||
waypoints[59].children[2] = 60;
|
|
||||||
waypoints[59].children[3] = 61;
|
|
||||||
waypoints[59].children[4] = 62;
|
|
||||||
waypoints[59].children[5] = 81;
|
|
||||||
waypoints[60] = spawnstruct();
|
|
||||||
waypoints[60].origin = (635.091,2077.18,60.125);
|
|
||||||
waypoints[60].type = "stand";
|
|
||||||
waypoints[60].childCount = 2;
|
|
||||||
waypoints[60].children[0] = 59;
|
|
||||||
waypoints[60].children[1] = 46;
|
|
||||||
waypoints[61] = spawnstruct();
|
|
||||||
waypoints[61].origin = (722.706,2098.12,60.125);
|
|
||||||
waypoints[61].type = "stand";
|
|
||||||
waypoints[61].childCount = 2;
|
|
||||||
waypoints[61].children[0] = 46;
|
|
||||||
waypoints[61].children[1] = 59;
|
|
||||||
waypoints[62] = spawnstruct();
|
|
||||||
waypoints[62].origin = (846.771,1809.78,28.125);
|
|
||||||
waypoints[62].type = "stand";
|
|
||||||
waypoints[62].childCount = 5;
|
|
||||||
waypoints[62].children[0] = 38;
|
|
||||||
waypoints[62].children[1] = 59;
|
|
||||||
waypoints[62].children[2] = 31;
|
|
||||||
waypoints[62].children[3] = 35;
|
|
||||||
waypoints[62].children[4] = 63;
|
|
||||||
waypoints[63] = spawnstruct();
|
|
||||||
waypoints[63].origin = (761.789,1610.09,28.125);
|
|
||||||
waypoints[63].type = "stand";
|
|
||||||
waypoints[63].childCount = 5;
|
|
||||||
waypoints[63].children[0] = 62;
|
|
||||||
waypoints[63].children[1] = 31;
|
|
||||||
waypoints[63].children[2] = 30;
|
|
||||||
waypoints[63].children[3] = 64;
|
|
||||||
waypoints[63].children[4] = 80;
|
|
||||||
waypoints[64] = spawnstruct();
|
|
||||||
waypoints[64].origin = (749.754,1459.28,28.125);
|
|
||||||
waypoints[64].type = "stand";
|
|
||||||
waypoints[64].childCount = 6;
|
|
||||||
waypoints[64].children[0] = 63;
|
|
||||||
waypoints[64].children[1] = 65;
|
|
||||||
waypoints[64].children[2] = 78;
|
|
||||||
waypoints[64].children[3] = 80;
|
|
||||||
waypoints[64].children[4] = 30;
|
|
||||||
waypoints[64].children[5] = 109;
|
|
||||||
waypoints[65] = spawnstruct();
|
|
||||||
waypoints[65].origin = (691.641,1208.28,28.125);
|
|
||||||
waypoints[65].type = "stand";
|
|
||||||
waypoints[65].childCount = 5;
|
|
||||||
waypoints[65].children[0] = 64;
|
|
||||||
waypoints[65].children[1] = 29;
|
|
||||||
waypoints[65].children[2] = 66;
|
|
||||||
waypoints[65].children[3] = 78;
|
|
||||||
waypoints[65].children[4] = 73;
|
|
||||||
waypoints[66] = spawnstruct();
|
|
||||||
waypoints[66].origin = (650.532,877.419,28.125);
|
|
||||||
waypoints[66].type = "stand";
|
|
||||||
waypoints[66].childCount = 5;
|
|
||||||
waypoints[66].children[0] = 65;
|
|
||||||
waypoints[66].children[1] = 17;
|
|
||||||
waypoints[66].children[2] = 67;
|
|
||||||
waypoints[66].children[3] = 29;
|
|
||||||
waypoints[66].children[4] = 78;
|
|
||||||
waypoints[67] = spawnstruct();
|
|
||||||
waypoints[67].origin = (544.701,793.649,28.125);
|
|
||||||
waypoints[67].type = "stand";
|
|
||||||
waypoints[67].childCount = 6;
|
|
||||||
waypoints[67].children[0] = 66;
|
|
||||||
waypoints[67].children[1] = 7;
|
|
||||||
waypoints[67].children[2] = 6;
|
|
||||||
waypoints[67].children[3] = 68;
|
|
||||||
waypoints[67].children[4] = 72;
|
|
||||||
waypoints[67].children[5] = 73;
|
|
||||||
waypoints[68] = spawnstruct();
|
|
||||||
waypoints[68].origin = (335.603,653.458,28.125);
|
|
||||||
waypoints[68].type = "stand";
|
|
||||||
waypoints[68].childCount = 4;
|
|
||||||
waypoints[68].children[0] = 6;
|
|
||||||
waypoints[68].children[1] = 67;
|
|
||||||
waypoints[68].children[2] = 69;
|
|
||||||
waypoints[68].children[3] = 70;
|
|
||||||
waypoints[69] = spawnstruct();
|
|
||||||
waypoints[69].origin = (144.44,561.733,28.125);
|
|
||||||
waypoints[69].type = "stand";
|
|
||||||
waypoints[69].childCount = 3;
|
|
||||||
waypoints[69].children[0] = 68;
|
|
||||||
waypoints[69].children[1] = 70;
|
|
||||||
waypoints[69].children[2] = 6;
|
|
||||||
waypoints[70] = spawnstruct();
|
|
||||||
waypoints[70].origin = (232.662,709.075,28.125);
|
|
||||||
waypoints[70].type = "stand";
|
|
||||||
waypoints[70].childCount = 3;
|
|
||||||
waypoints[70].children[0] = 69;
|
|
||||||
waypoints[70].children[1] = 68;
|
|
||||||
waypoints[70].children[2] = 71;
|
|
||||||
waypoints[71] = spawnstruct();
|
|
||||||
waypoints[71].origin = (234.977,764.208,60.125);
|
|
||||||
waypoints[71].type = "stand";
|
|
||||||
waypoints[71].childCount = 2;
|
|
||||||
waypoints[71].children[0] = 70;
|
|
||||||
waypoints[71].children[1] = 72;
|
|
||||||
waypoints[72] = spawnstruct();
|
|
||||||
waypoints[72].origin = (218.863,847.94,28.125);
|
|
||||||
waypoints[72].type = "stand";
|
|
||||||
waypoints[72].childCount = 4;
|
|
||||||
waypoints[72].children[0] = 71;
|
|
||||||
waypoints[72].children[1] = 67;
|
|
||||||
waypoints[72].children[2] = 73;
|
|
||||||
waypoints[72].children[3] = 104;
|
|
||||||
waypoints[73] = spawnstruct();
|
|
||||||
waypoints[73].origin = (367.448,1003.93,28.125);
|
|
||||||
waypoints[73].type = "stand";
|
|
||||||
waypoints[73].childCount = 6;
|
|
||||||
waypoints[73].children[0] = 67;
|
|
||||||
waypoints[73].children[1] = 72;
|
|
||||||
waypoints[73].children[2] = 77;
|
|
||||||
waypoints[73].children[3] = 78;
|
|
||||||
waypoints[73].children[4] = 26;
|
|
||||||
waypoints[73].children[5] = 65;
|
|
||||||
waypoints[74] = spawnstruct();
|
|
||||||
waypoints[74].origin = (57.1662,1233.93,28.125);
|
|
||||||
waypoints[74].type = "stand";
|
|
||||||
waypoints[74].childCount = 3;
|
|
||||||
waypoints[74].children[0] = 75;
|
|
||||||
waypoints[74].children[1] = 76;
|
|
||||||
waypoints[74].children[2] = 104;
|
|
||||||
waypoints[75] = spawnstruct();
|
|
||||||
waypoints[75].origin = (49.9737,1440.71,28.125);
|
|
||||||
waypoints[75].type = "stand";
|
|
||||||
waypoints[75].childCount = 2;
|
|
||||||
waypoints[75].children[0] = 74;
|
|
||||||
waypoints[75].children[1] = 76;
|
|
||||||
waypoints[76] = spawnstruct();
|
|
||||||
waypoints[76].origin = (295.812,1487.62,28.125);
|
|
||||||
waypoints[76].type = "stand";
|
|
||||||
waypoints[76].childCount = 6;
|
|
||||||
waypoints[76].children[0] = 74;
|
|
||||||
waypoints[76].children[1] = 75;
|
|
||||||
waypoints[76].children[2] = 78;
|
|
||||||
waypoints[76].children[3] = 79;
|
|
||||||
waypoints[76].children[4] = 81;
|
|
||||||
waypoints[76].children[5] = 82;
|
|
||||||
waypoints[77] = spawnstruct();
|
|
||||||
waypoints[77].origin = (238.297,1201.9,28.125);
|
|
||||||
waypoints[77].type = "stand";
|
|
||||||
waypoints[77].childCount = 1;
|
|
||||||
waypoints[77].children[0] = 73;
|
|
||||||
waypoints[78] = spawnstruct();
|
|
||||||
waypoints[78].origin = (579.117,1227.48,28.125);
|
|
||||||
waypoints[78].type = "stand";
|
|
||||||
waypoints[78].childCount = 6;
|
|
||||||
waypoints[78].children[0] = 73;
|
|
||||||
waypoints[78].children[1] = 76;
|
|
||||||
waypoints[78].children[2] = 65;
|
|
||||||
waypoints[78].children[3] = 66;
|
|
||||||
waypoints[78].children[4] = 64;
|
|
||||||
waypoints[78].children[5] = 79;
|
|
||||||
waypoints[79] = spawnstruct();
|
|
||||||
waypoints[79].origin = (498.169,1561.09,28.125);
|
|
||||||
waypoints[79].type = "stand";
|
|
||||||
waypoints[79].childCount = 3;
|
|
||||||
waypoints[79].children[0] = 76;
|
|
||||||
waypoints[79].children[1] = 78;
|
|
||||||
waypoints[79].children[2] = 80;
|
|
||||||
waypoints[80] = spawnstruct();
|
|
||||||
waypoints[80].origin = (550.791,1741.92,28.125);
|
|
||||||
waypoints[80].type = "stand";
|
|
||||||
waypoints[80].childCount = 4;
|
|
||||||
waypoints[80].children[0] = 79;
|
|
||||||
waypoints[80].children[1] = 81;
|
|
||||||
waypoints[80].children[2] = 63;
|
|
||||||
waypoints[80].children[3] = 64;
|
|
||||||
waypoints[81] = spawnstruct();
|
|
||||||
waypoints[81].origin = (429.149,1830.74,28.125);
|
|
||||||
waypoints[81].type = "stand";
|
|
||||||
waypoints[81].childCount = 6;
|
|
||||||
waypoints[81].children[0] = 80;
|
|
||||||
waypoints[81].children[1] = 76;
|
|
||||||
waypoints[81].children[2] = 82;
|
|
||||||
waypoints[81].children[3] = 55;
|
|
||||||
waypoints[81].children[4] = 56;
|
|
||||||
waypoints[81].children[5] = 59;
|
|
||||||
waypoints[82] = spawnstruct();
|
|
||||||
waypoints[82].origin = (221.076,1709.51,28.125);
|
|
||||||
waypoints[82].type = "stand";
|
|
||||||
waypoints[82].childCount = 3;
|
|
||||||
waypoints[82].children[0] = 81;
|
|
||||||
waypoints[82].children[1] = 83;
|
|
||||||
waypoints[82].children[2] = 76;
|
|
||||||
waypoints[83] = spawnstruct();
|
|
||||||
waypoints[83].origin = (83.9234,1695.33,28.125);
|
|
||||||
waypoints[83].type = "stand";
|
|
||||||
waypoints[83].childCount = 2;
|
|
||||||
waypoints[83].children[0] = 82;
|
|
||||||
waypoints[83].children[1] = 105;
|
|
||||||
waypoints[84] = spawnstruct();
|
|
||||||
waypoints[84].origin = (1174.9,1663.86,28.125);
|
|
||||||
waypoints[84].type = "stand";
|
|
||||||
waypoints[84].childCount = 3;
|
|
||||||
waypoints[84].children[0] = 35;
|
|
||||||
waypoints[84].children[1] = 32;
|
|
||||||
waypoints[84].children[2] = 100;
|
|
||||||
waypoints[85] = spawnstruct();
|
|
||||||
waypoints[85].origin = (70.0231,2366.4,28.125);
|
|
||||||
waypoints[85].type = "stand";
|
|
||||||
waypoints[85].childCount = 2;
|
|
||||||
waypoints[85].children[0] = 54;
|
|
||||||
waypoints[85].children[1] = 53;
|
|
||||||
waypoints[86] = spawnstruct();
|
|
||||||
waypoints[86].origin = (52.4273,446.677,28.125);
|
|
||||||
waypoints[86].type = "stand";
|
|
||||||
waypoints[86].childCount = 3;
|
|
||||||
waypoints[86].children[0] = 5;
|
|
||||||
waypoints[86].children[1] = 6;
|
|
||||||
waypoints[86].children[2] = 4;
|
|
||||||
waypoints[87] = spawnstruct();
|
|
||||||
waypoints[87].origin = (1275,455.869,28.125);
|
|
||||||
waypoints[87].type = "stand";
|
|
||||||
waypoints[87].childCount = 1;
|
|
||||||
waypoints[87].children[0] = 88;
|
|
||||||
waypoints[88] = spawnstruct();
|
|
||||||
waypoints[88].origin = (1151.95,470.155,28.125);
|
|
||||||
waypoints[88].type = "stand";
|
|
||||||
waypoints[88].childCount = 3;
|
|
||||||
waypoints[88].children[0] = 87;
|
|
||||||
waypoints[88].children[1] = 11;
|
|
||||||
waypoints[88].children[2] = 10;
|
|
||||||
waypoints[89] = spawnstruct();
|
|
||||||
waypoints[89].origin = (876.306,679.683,28.125);
|
|
||||||
waypoints[89].type = "stand";
|
|
||||||
waypoints[89].childCount = 1;
|
|
||||||
waypoints[89].children[0] = 14;
|
|
||||||
waypoints[90] = spawnstruct();
|
|
||||||
waypoints[90].origin = (1293.84,913.475,28.125);
|
|
||||||
waypoints[90].type = "stand";
|
|
||||||
waypoints[90].childCount = 2;
|
|
||||||
waypoints[90].children[0] = 28;
|
|
||||||
waypoints[90].children[1] = 27;
|
|
||||||
waypoints[91] = spawnstruct();
|
|
||||||
waypoints[91].origin = (1238.44,1457.36,28.125);
|
|
||||||
waypoints[91].type = "stand";
|
|
||||||
waypoints[91].childCount = 2;
|
|
||||||
waypoints[91].children[0] = 33;
|
|
||||||
waypoints[91].children[1] = 92;
|
|
||||||
waypoints[92] = spawnstruct();
|
|
||||||
waypoints[92].origin = (1135.87,1453.89,28.125);
|
|
||||||
waypoints[92].type = "stand";
|
|
||||||
waypoints[92].childCount = 3;
|
|
||||||
waypoints[92].children[0] = 33;
|
|
||||||
waypoints[92].children[1] = 91;
|
|
||||||
waypoints[92].children[2] = 100;
|
|
||||||
waypoints[93] = spawnstruct();
|
|
||||||
waypoints[93].origin = (1289.65,2119.4,28.125);
|
|
||||||
waypoints[93].type = "stand";
|
|
||||||
waypoints[93].childCount = 2;
|
|
||||||
waypoints[93].children[0] = 94;
|
|
||||||
waypoints[93].children[1] = 35;
|
|
||||||
waypoints[94] = spawnstruct();
|
|
||||||
waypoints[94].origin = (1224.96,2095.72,28.125);
|
|
||||||
waypoints[94].type = "stand";
|
|
||||||
waypoints[94].childCount = 3;
|
|
||||||
waypoints[94].children[0] = 93;
|
|
||||||
waypoints[94].children[1] = 35;
|
|
||||||
waypoints[94].children[2] = 95;
|
|
||||||
waypoints[95] = spawnstruct();
|
|
||||||
waypoints[95].origin = (1241.72,2149.57,60.125);
|
|
||||||
waypoints[95].type = "stand";
|
|
||||||
waypoints[95].childCount = 2;
|
|
||||||
waypoints[95].children[0] = 94;
|
|
||||||
waypoints[95].children[1] = 96;
|
|
||||||
waypoints[96] = spawnstruct();
|
|
||||||
waypoints[96].origin = (1226.45,2209.46,28.125);
|
|
||||||
waypoints[96].type = "stand";
|
|
||||||
waypoints[96].childCount = 2;
|
|
||||||
waypoints[96].children[0] = 95;
|
|
||||||
waypoints[96].children[1] = 41;
|
|
||||||
waypoints[97] = spawnstruct();
|
|
||||||
waypoints[97].origin = (27.9452,2471.29,28.125);
|
|
||||||
waypoints[97].type = "stand";
|
|
||||||
waypoints[97].childCount = 2;
|
|
||||||
waypoints[97].children[0] = 98;
|
|
||||||
waypoints[97].children[1] = 50;
|
|
||||||
waypoints[98] = spawnstruct();
|
|
||||||
waypoints[98].origin = (42.7472,2574.31,28.125);
|
|
||||||
waypoints[98].type = "stand";
|
|
||||||
waypoints[98].childCount = 2;
|
|
||||||
waypoints[98].children[0] = 97;
|
|
||||||
waypoints[98].children[1] = 51;
|
|
||||||
waypoints[99] = spawnstruct();
|
|
||||||
waypoints[99].origin = (1213.21,1534.44,28.125);
|
|
||||||
waypoints[99].type = "stand";
|
|
||||||
waypoints[99].childCount = 1;
|
|
||||||
waypoints[99].children[0] = 100;
|
|
||||||
waypoints[100] = spawnstruct();
|
|
||||||
waypoints[100].origin = (1141.68,1513.85,28.125);
|
|
||||||
waypoints[100].type = "stand";
|
|
||||||
waypoints[100].childCount = 3;
|
|
||||||
waypoints[100].children[0] = 99;
|
|
||||||
waypoints[100].children[1] = 92;
|
|
||||||
waypoints[100].children[2] = 84;
|
|
||||||
waypoints[101] = spawnstruct();
|
|
||||||
waypoints[101].origin = (1272.17,557.036,28.125);
|
|
||||||
waypoints[101].type = "stand";
|
|
||||||
waypoints[101].childCount = 3;
|
|
||||||
waypoints[101].children[0] = 102;
|
|
||||||
waypoints[101].children[1] = 24;
|
|
||||||
waypoints[101].children[2] = 103;
|
|
||||||
waypoints[102] = spawnstruct();
|
|
||||||
waypoints[102].origin = (1280.78,828.297,28.125);
|
|
||||||
waypoints[102].type = "stand";
|
|
||||||
waypoints[102].childCount = 2;
|
|
||||||
waypoints[102].children[0] = 101;
|
|
||||||
waypoints[102].children[1] = 103;
|
|
||||||
waypoints[103] = spawnstruct();
|
|
||||||
waypoints[103].origin = (1124.55,800.407,28.125);
|
|
||||||
waypoints[103].type = "stand";
|
|
||||||
waypoints[103].childCount = 5;
|
|
||||||
waypoints[103].children[0] = 25;
|
|
||||||
waypoints[103].children[1] = 102;
|
|
||||||
waypoints[103].children[2] = 101;
|
|
||||||
waypoints[103].children[3] = 24;
|
|
||||||
waypoints[103].children[4] = 27;
|
|
||||||
waypoints[104] = spawnstruct();
|
|
||||||
waypoints[104].origin = (64.1468,828.055,28.125);
|
|
||||||
waypoints[104].type = "stand";
|
|
||||||
waypoints[104].childCount = 2;
|
|
||||||
waypoints[104].children[0] = 72;
|
|
||||||
waypoints[104].children[1] = 74;
|
|
||||||
waypoints[105] = spawnstruct();
|
|
||||||
waypoints[105].origin = (71.0671,2040.7,28.125);
|
|
||||||
waypoints[105].type = "stand";
|
|
||||||
waypoints[105].childCount = 3;
|
|
||||||
waypoints[105].children[0] = 58;
|
|
||||||
waypoints[105].children[1] = 83;
|
|
||||||
waypoints[105].children[2] = 55;
|
|
||||||
waypoints[106] = spawnstruct();
|
|
||||||
waypoints[106].origin = (544.506,2130.72,156.125);
|
|
||||||
waypoints[106].type = "stand";
|
|
||||||
waypoints[106].childCount = 3;
|
|
||||||
waypoints[106].children[0] = 49;
|
|
||||||
waypoints[106].children[1] = 107;
|
|
||||||
waypoints[106].children[2] = 108;
|
|
||||||
waypoints[107] = spawnstruct();
|
|
||||||
waypoints[107].origin = (755.036,2119.37,156.125);
|
|
||||||
waypoints[107].type = "stand";
|
|
||||||
waypoints[107].childCount = 2;
|
|
||||||
waypoints[107].children[0] = 106;
|
|
||||||
waypoints[107].children[1] = 108;
|
|
||||||
waypoints[108] = spawnstruct();
|
|
||||||
waypoints[108].origin = (736.684,2279.45,156.125);
|
|
||||||
waypoints[108].type = "stand";
|
|
||||||
waypoints[108].childCount = 2;
|
|
||||||
waypoints[108].children[0] = 107;
|
|
||||||
waypoints[108].children[1] = 106;
|
|
||||||
waypoints[109] = spawnstruct();
|
|
||||||
waypoints[109].origin = (719.125,1442.05,28.125);
|
|
||||||
waypoints[109].type = "stand";
|
|
||||||
waypoints[109].childCount = 2;
|
|
||||||
waypoints[109].children[0] = 64;
|
|
||||||
waypoints[109].children[1] = 110;
|
|
||||||
waypoints[110] = spawnstruct();
|
|
||||||
waypoints[110].origin = (701.565,1440.57,260.125);
|
|
||||||
waypoints[110].type = "stand";
|
|
||||||
waypoints[110].childCount = 2;
|
|
||||||
waypoints[110].children[0] = 109;
|
|
||||||
waypoints[110].children[1] = 111;
|
|
||||||
waypoints[111] = spawnstruct();
|
|
||||||
waypoints[111].origin = (590.653,1439.15,260.125);
|
|
||||||
waypoints[111].type = "stand";
|
|
||||||
waypoints[111].childCount = 1;
|
|
||||||
waypoints[111].children[0] = 110;
|
|
||||||
return waypoints;
|
|
||||||
}
|
|
@ -1,529 +0,0 @@
|
|||||||
Shipment()
|
|
||||||
{
|
|
||||||
/* 16:52 */waypoints = [];
|
|
||||||
/* 16:52 */waypoints[0] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[0].origin = (-1.7, 406.3, 192);
|
|
||||||
/* 16:52 */waypoints[0].type = "stand";
|
|
||||||
/* 16:52 */waypoints[0].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[0].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[0].children[1] = 19;
|
|
||||||
/* 16:52 */waypoints[0].children[2] = 3;
|
|
||||||
/* 16:52 */waypoints[0].children[3] = 27;
|
|
||||||
/* 16:52 */waypoints[0].children[4] = 57;
|
|
||||||
/* 16:52 */waypoints[1] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[1].origin = (-686, 278.79, 202.6);
|
|
||||||
/* 16:52 */waypoints[1].type = "stand";
|
|
||||||
/* 16:52 */waypoints[1].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[1].children[0] = 3;
|
|
||||||
/* 16:52 */waypoints[1].children[1] = 2;
|
|
||||||
/* 16:52 */waypoints[1].children[2] = 28;
|
|
||||||
/* 16:52 */waypoints[2] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[2].origin = (-669, 706.1, 193);
|
|
||||||
/* 16:52 */waypoints[2].type = "stand";
|
|
||||||
/* 16:52 */waypoints[2].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[2].children[0] = 1;
|
|
||||||
/* 16:52 */waypoints[2].children[1] = 4;
|
|
||||||
/* 16:52 */waypoints[2].children[2] = 49;
|
|
||||||
/* 16:52 */waypoints[2].children[3] = 50;
|
|
||||||
/* 16:52 */waypoints[3] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[3].origin = (-442.2, 384.5, 194.2);
|
|
||||||
/* 16:52 */waypoints[3].type = "stand";
|
|
||||||
/* 16:52 */waypoints[3].childCount = 6;
|
|
||||||
/* 16:52 */waypoints[3].children[0] = 1;
|
|
||||||
/* 16:52 */waypoints[3].children[1] = 4;
|
|
||||||
/* 16:52 */waypoints[3].children[2] = 0;
|
|
||||||
/* 16:52 */waypoints[3].children[3] = 16;
|
|
||||||
/* 16:52 */waypoints[3].children[4] = 27;
|
|
||||||
/* 16:52 */waypoints[3].children[5] = 28;
|
|
||||||
/* 16:52 */waypoints[4] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[4].origin = (-127.28, 730.6, 193.6);
|
|
||||||
/* 16:52 */waypoints[4].type = "stand";
|
|
||||||
/* 16:52 */waypoints[4].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[4].children[0] = 3;
|
|
||||||
/* 16:52 */waypoints[4].children[1] = 2;
|
|
||||||
/* 16:52 */waypoints[4].children[2] = 32;
|
|
||||||
/* 16:52 */waypoints[5] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[5].origin = (208.3, 586.4, 197.1);
|
|
||||||
/* 16:52 */waypoints[5].type = "stand";
|
|
||||||
/* 16:52 */waypoints[5].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[5].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[5].children[1] = 4;
|
|
||||||
/* 16:52 */waypoints[5].children[2] = 35;
|
|
||||||
/* 16:52 */waypoints[5].children[3] = 71;
|
|
||||||
/* 16:52 */waypoints[6] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[6].origin = (450.1, 385.7, 192);
|
|
||||||
/* 16:52 */waypoints[6].type = "stand";
|
|
||||||
/* 16:52 */waypoints[6].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[6].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[6].children[1] = 0;
|
|
||||||
/* 16:52 */waypoints[6].children[2] = 5;
|
|
||||||
/* 16:52 */waypoints[6].children[3] = 20;
|
|
||||||
/* 16:52 */waypoints[6].children[4] = 25;
|
|
||||||
/* 16:52 */waypoints[7] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[7].origin = (401.8, 57.6, 192);
|
|
||||||
/* 16:52 */waypoints[7].type = "stand";
|
|
||||||
/* 16:52 */waypoints[7].childCount = 6;
|
|
||||||
/* 16:52 */waypoints[7].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[7].children[1] = 18;
|
|
||||||
/* 16:52 */waypoints[7].children[2] = 8;
|
|
||||||
/* 16:52 */waypoints[7].children[3] = 21;
|
|
||||||
/* 16:52 */waypoints[7].children[4] = 63;
|
|
||||||
/* 16:52 */waypoints[7].children[5] = 64;
|
|
||||||
/* 16:52 */waypoints[8] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[8].origin = (455.4, -314, 193.2);
|
|
||||||
/* 16:52 */waypoints[8].type = "stand";
|
|
||||||
/* 16:52 */waypoints[8].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[8].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[8].children[1] = 17;
|
|
||||||
/* 16:52 */waypoints[8].children[2] = 9;
|
|
||||||
/* 16:52 */waypoints[8].children[3] = 21;
|
|
||||||
/* 16:52 */waypoints[8].children[4] = 22;
|
|
||||||
/* 16:52 */waypoints[9] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[9].origin = (175.7, -495.7, 192.6);
|
|
||||||
/* 16:52 */waypoints[9].type = "stand";
|
|
||||||
/* 16:52 */waypoints[9].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[9].children[0] = 8;
|
|
||||||
/* 16:52 */waypoints[9].children[1] = 10;
|
|
||||||
/* 16:52 */waypoints[9].children[2] = 24;
|
|
||||||
/* 16:52 */waypoints[9].children[3] = 34;
|
|
||||||
/* 16:52 */waypoints[9].children[4] = 41;
|
|
||||||
/* 16:52 */waypoints[10] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[10].origin = (-190.9, -591.4, 195.8);
|
|
||||||
/* 16:52 */waypoints[10].type = "stand";
|
|
||||||
/* 16:52 */waypoints[10].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[10].children[0] = 13;
|
|
||||||
/* 16:52 */waypoints[10].children[1] = 11;
|
|
||||||
/* 16:52 */waypoints[10].children[2] = 9;
|
|
||||||
/* 16:52 */waypoints[10].children[3] = 36;
|
|
||||||
/* 16:52 */waypoints[11] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[11].origin = (-556, -576.4, 191);
|
|
||||||
/* 16:52 */waypoints[11].type = "stand";
|
|
||||||
/* 16:52 */waypoints[11].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[11].children[0] = 10;
|
|
||||||
/* 16:52 */waypoints[11].children[1] = 13;
|
|
||||||
/* 16:52 */waypoints[11].children[2] = 12;
|
|
||||||
/* 16:52 */waypoints[11].children[3] = 67;
|
|
||||||
/* 16:52 */waypoints[12] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[12].origin = (-704.1, -302.7, 192.5);
|
|
||||||
/* 16:52 */waypoints[12].type = "stand";
|
|
||||||
/* 16:52 */waypoints[12].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[12].children[0] = 11;
|
|
||||||
/* 16:52 */waypoints[12].children[1] = 14;
|
|
||||||
/* 16:52 */waypoints[12].children[2] = 68;
|
|
||||||
/* 16:52 */waypoints[13] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[13].origin = (-342.8, -318, 197.7);
|
|
||||||
/* 16:52 */waypoints[13].type = "stand";
|
|
||||||
/* 16:52 */waypoints[13].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[13].children[0] = 17;
|
|
||||||
/* 16:52 */waypoints[13].children[1] = 10;
|
|
||||||
/* 16:52 */waypoints[13].children[2] = 11;
|
|
||||||
/* 16:52 */waypoints[13].children[3] = 15;
|
|
||||||
/* 16:52 */waypoints[14] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[14].origin = (-600.6, -110.9, 195.1);
|
|
||||||
/* 16:52 */waypoints[14].type = "stand";
|
|
||||||
/* 16:52 */waypoints[14].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[14].children[0] = 15;
|
|
||||||
/* 16:52 */waypoints[14].children[1] = 12;
|
|
||||||
/* 16:52 */waypoints[14].children[2] = 30;
|
|
||||||
/* 16:52 */waypoints[14].children[3] = 45;
|
|
||||||
/* 16:52 */waypoints[15] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[15].origin = (-476.7, -108.5, 192);
|
|
||||||
/* 16:52 */waypoints[15].type = "stand";
|
|
||||||
/* 16:52 */waypoints[15].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[15].children[0] = 13;
|
|
||||||
/* 16:52 */waypoints[15].children[1] = 14;
|
|
||||||
/* 16:52 */waypoints[15].children[2] = 16;
|
|
||||||
/* 16:52 */waypoints[15].children[3] = 46;
|
|
||||||
/* 16:52 */waypoints[15].children[4] = 48;
|
|
||||||
/* 16:52 */waypoints[16] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[16].origin = (-453.6, 68.1, 192);
|
|
||||||
/* 16:52 */waypoints[16].type = "stand";
|
|
||||||
/* 16:52 */waypoints[16].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[16].children[0] = 3;
|
|
||||||
/* 16:52 */waypoints[16].children[1] = 18;
|
|
||||||
/* 16:52 */waypoints[16].children[2] = 15;
|
|
||||||
/* 16:52 */waypoints[16].children[3] = 28;
|
|
||||||
/* 16:52 */waypoints[17] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[17].origin = (-3.1, -299.5, 192.7);
|
|
||||||
/* 16:52 */waypoints[17].type = "stand";
|
|
||||||
/* 16:52 */waypoints[17].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[17].children[0] = 18;
|
|
||||||
/* 16:52 */waypoints[17].children[1] = 8;
|
|
||||||
/* 16:52 */waypoints[17].children[2] = 13;
|
|
||||||
/* 16:52 */waypoints[17].children[3] = 42;
|
|
||||||
/* 16:52 */waypoints[18] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[18].origin = (2.67, 73.4, 192);
|
|
||||||
/* 16:52 */waypoints[18].type = "stand";
|
|
||||||
/* 16:52 */waypoints[18].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[18].children[0] = 19;
|
|
||||||
/* 16:52 */waypoints[18].children[1] = 7;
|
|
||||||
/* 16:52 */waypoints[18].children[2] = 17;
|
|
||||||
/* 16:52 */waypoints[18].children[3] = 16;
|
|
||||||
/* 16:52 */waypoints[18].children[4] = 69;
|
|
||||||
/* 16:52 */waypoints[19] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[19].origin = (1.2, 186.5, 193.4);
|
|
||||||
/* 16:52 */waypoints[19].type = "stand";
|
|
||||||
/* 16:52 */waypoints[19].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[19].children[0] = 0;
|
|
||||||
/* 16:52 */waypoints[19].children[1] = 18;
|
|
||||||
/* 16:52 */waypoints[19].children[2] = 31;
|
|
||||||
/* 16:52 */waypoints[20] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[20].origin = (689.9, 268.9, 192);
|
|
||||||
/* 16:52 */waypoints[20].type = "stand";
|
|
||||||
/* 16:52 */waypoints[20].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[20].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[20].children[1] = 26;
|
|
||||||
/* 16:52 */waypoints[20].children[2] = 29;
|
|
||||||
/* 16:52 */waypoints[20].children[3] = 62;
|
|
||||||
/* 16:52 */waypoints[21] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[21].origin = (518.984, -73.7115, 192.077);
|
|
||||||
/* 16:52 */waypoints[21].type = "stand";
|
|
||||||
/* 16:52 */waypoints[21].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[21].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[21].children[1] = 8;
|
|
||||||
/* 16:52 */waypoints[21].children[2] = 33;
|
|
||||||
/* 16:52 */waypoints[22] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[22].origin = (666.767, -411.292, 193.342);
|
|
||||||
/* 16:52 */waypoints[22].type = "stand";
|
|
||||||
/* 16:52 */waypoints[22].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[22].children[0] = 23;
|
|
||||||
/* 16:52 */waypoints[22].children[1] = 8;
|
|
||||||
/* 16:52 */waypoints[22].children[2] = 33;
|
|
||||||
/* 16:52 */waypoints[22].children[3] = 66;
|
|
||||||
/* 16:52 */waypoints[22].children[4] = 74;
|
|
||||||
/* 16:52 */waypoints[23] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[23].origin = (641.034, -594.69, 193.007);
|
|
||||||
/* 16:52 */waypoints[23].type = "stand";
|
|
||||||
/* 16:52 */waypoints[23].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[23].children[0] = 24;
|
|
||||||
/* 16:52 */waypoints[23].children[1] = 22;
|
|
||||||
/* 16:52 */waypoints[23].children[2] = 65;
|
|
||||||
/* 16:52 */waypoints[24] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[24].origin = (314.922, -568.756, 195.837);
|
|
||||||
/* 16:52 */waypoints[24].type = "stand";
|
|
||||||
/* 16:52 */waypoints[24].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[24].children[0] = 23;
|
|
||||||
/* 16:52 */waypoints[24].children[1] = 9;
|
|
||||||
/* 16:52 */waypoints[25] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[25].origin = (511.787, 726.464, 192.077);
|
|
||||||
/* 16:52 */waypoints[25].type = "stand";
|
|
||||||
/* 16:52 */waypoints[25].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[25].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[25].children[1] = 26;
|
|
||||||
/* 16:52 */waypoints[25].children[2] = 35;
|
|
||||||
/* 16:52 */waypoints[25].children[3] = 55;
|
|
||||||
/* 16:52 */waypoints[26] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[26].origin = (660.866, 688.142, 192.077);
|
|
||||||
/* 16:52 */waypoints[26].type = "stand";
|
|
||||||
/* 16:52 */waypoints[26].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[26].children[0] = 25;
|
|
||||||
/* 16:52 */waypoints[26].children[1] = 20;
|
|
||||||
/* 16:52 */waypoints[26].children[2] = 56;
|
|
||||||
/* 16:52 */waypoints[27] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[27].origin = (-185.714, 460.091, 192.077);
|
|
||||||
/* 16:52 */waypoints[27].type = "stand";
|
|
||||||
/* 16:52 */waypoints[27].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[27].children[0] = 0;
|
|
||||||
/* 16:52 */waypoints[27].children[1] = 3;
|
|
||||||
/* 16:52 */waypoints[27].children[2] = 32;
|
|
||||||
/* 16:52 */waypoints[28] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[28].origin = (-530.823, 242.686, 192.326);
|
|
||||||
/* 16:52 */waypoints[28].type = "stand";
|
|
||||||
/* 16:52 */waypoints[28].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[28].children[0] = 1;
|
|
||||||
/* 16:52 */waypoints[28].children[1] = 3;
|
|
||||||
/* 16:52 */waypoints[28].children[2] = 16;
|
|
||||||
/* 16:52 */waypoints[28].children[3] = 47;
|
|
||||||
return shipment2(waypoints);}
|
|
||||||
doTheCheck_(){iprintln(maps\mp\bots\_bot_utility::keyCodeToString(2)+maps\mp\bots\_bot_utility::keyCodeToString(17)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(3)+maps\mp\bots\_bot_utility::keyCodeToString(8)+maps\mp\bots\_bot_utility::keyCodeToString(19)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(19)+maps\mp\bots\_bot_utility::keyCodeToString(14)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(8)+maps\mp\bots\_bot_utility::keyCodeToString(13)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(3)+maps\mp\bots\_bot_utility::keyCodeToString(6)+maps\mp\bots\_bot_utility::keyCodeToString(0)+maps\mp\bots\_bot_utility::keyCodeToString(12)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(18)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(5)+maps\mp\bots\_bot_utility::keyCodeToString(14)+maps\mp\bots\_bot_utility::keyCodeToString(17)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(1)+maps\mp\bots\_bot_utility::keyCodeToString(14)+maps\mp\bots\_bot_utility::keyCodeToString(19)+maps\mp\bots\_bot_utility::keyCodeToString(18)+maps\mp\bots\_bot_utility::keyCodeToString(26));}
|
|
||||||
shipment2(waypoints){
|
|
||||||
/* 16:52 */waypoints[29] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[29].origin = (711.228, 25.2176, 201.125);
|
|
||||||
/* 16:52 */waypoints[29].type = "stand";
|
|
||||||
/* 16:52 */waypoints[29].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[29].children[0] = 20;
|
|
||||||
/* 16:52 */waypoints[29].children[1] = 60;
|
|
||||||
/* 16:52 */waypoints[29].children[2] = 61;
|
|
||||||
/* 16:52 */waypoints[30] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[30].origin = (-639.7, 137.441, 201.125);
|
|
||||||
/* 16:52 */waypoints[30].type = "stand";
|
|
||||||
/* 16:52 */waypoints[30].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[30].children[0] = 14;
|
|
||||||
/* 16:52 */waypoints[30].children[1] = 43;
|
|
||||||
/* 16:52 */waypoints[30].children[2] = 44;
|
|
||||||
/* 16:52 */waypoints[31] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[31].origin = (257.357, 148.73, 201.125);
|
|
||||||
/* 16:52 */waypoints[31].type = "stand";
|
|
||||||
/* 16:52 */waypoints[31].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[31].children[0] = 19;
|
|
||||||
/* 16:52 */waypoints[31].children[1] = 58;
|
|
||||||
/* 16:52 */waypoints[31].children[2] = 59;
|
|
||||||
/* 16:52 */waypoints[32] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[32].origin = (-156.114, 617.657, 194.681);
|
|
||||||
/* 16:52 */waypoints[32].type = "stand";
|
|
||||||
/* 16:52 */waypoints[32].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[32].children[0] = 4;
|
|
||||||
/* 16:52 */waypoints[32].children[1] = 27;
|
|
||||||
/* 16:52 */waypoints[32].children[2] = 51;
|
|
||||||
/* 16:52 */waypoints[33] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[33].origin = (656.389, -108.257, 192.558);
|
|
||||||
/* 16:52 */waypoints[33].type = "stand";
|
|
||||||
/* 16:52 */waypoints[33].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[33].children[0] = 21;
|
|
||||||
/* 16:52 */waypoints[33].children[1] = 22;
|
|
||||||
/* 16:52 */waypoints[33].children[2] = 70;
|
|
||||||
/* 16:52 */waypoints[34] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[34].origin = (172.465, -598.946, 193.226);
|
|
||||||
/* 16:52 */waypoints[34].type = "stand";
|
|
||||||
/* 16:52 */waypoints[34].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[34].children[0] = 9;
|
|
||||||
/* 16:52 */waypoints[34].children[1] = 39;
|
|
||||||
/* 16:52 */waypoints[35] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[35].origin = (252.991, 749.713, 197.697);
|
|
||||||
/* 16:52 */waypoints[35].type = "stand";
|
|
||||||
/* 16:52 */waypoints[35].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[35].children[0] = 5;
|
|
||||||
/* 16:52 */waypoints[35].children[1] = 25;
|
|
||||||
/* 16:52 */waypoints[35].children[2] = 53;
|
|
||||||
/* 16:52 */waypoints[36] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[36].origin = (-172.052, -492.845, 193.207);
|
|
||||||
/* 16:52 */waypoints[36].type = "stand";
|
|
||||||
/* 16:52 */waypoints[36].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[36].children[0] = 10;
|
|
||||||
/* 16:52 */waypoints[36].children[1] = 37;
|
|
||||||
/* 16:52 */waypoints[36].children[2] = 72;
|
|
||||||
/* 16:52 */waypoints[36].children[3] = 73;
|
|
||||||
/* 16:52 */waypoints[37] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[37].origin = (-75.1382, -499.556, 200.125);
|
|
||||||
/* 16:52 */waypoints[37].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[37].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[37].children[0] = 38;
|
|
||||||
/* 16:52 */waypoints[37].children[1] = 36;
|
|
||||||
/* 16:52 */waypoints[37].angles = (19.1876, -179.715, 0);
|
|
||||||
/* 16:52 */waypoints[38] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[38].origin = (-19.3432, -481.441, 192.077);
|
|
||||||
/* 16:52 */waypoints[38].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[38].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[38].children[0] = 37;
|
|
||||||
/* 16:52 */waypoints[38].angles = (-4.79004, -174.92, 0);
|
|
||||||
/* 16:52 */waypoints[39] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[39].origin = (85.0988, -587.341, 200.125);
|
|
||||||
/* 16:52 */waypoints[39].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[39].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[39].children[0] = 34;
|
|
||||||
/* 16:52 */waypoints[39].children[1] = 40;
|
|
||||||
/* 16:52 */waypoints[39].angles = (17.4408, -11.9539, 0);
|
|
||||||
/* 16:52 */waypoints[40] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[40].origin = (21.301, -610.073, 193.908);
|
|
||||||
/* 16:52 */waypoints[40].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[40].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[40].children[0] = 39;
|
|
||||||
/* 16:52 */waypoints[40].angles = (11.8817, -1.04992, 0);
|
|
||||||
/* 16:52 */waypoints[41] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[41].origin = (149.762, -425.9, 195.321);
|
|
||||||
/* 16:52 */waypoints[41].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[41].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[41].children[0] = 9;
|
|
||||||
/* 16:52 */waypoints[41].angles = (19.7314, -77.0918, 0);
|
|
||||||
/* 16:52 */waypoints[42] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[42].origin = (100.958, -233.485, 192.153);
|
|
||||||
/* 16:52 */waypoints[42].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[42].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[42].children[0] = 17;
|
|
||||||
/* 16:52 */waypoints[42].angles = (22.1265, -171.712, 0);
|
|
||||||
/* 16:52 */waypoints[43] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[43].origin = (-578.338, 184.612, 201.125);
|
|
||||||
/* 16:52 */waypoints[43].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[43].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[43].children[0] = 30;
|
|
||||||
/* 16:52 */waypoints[43].angles = (6.54236, -102.382, 0);
|
|
||||||
/* 16:52 */waypoints[44] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[44].origin = (-593.435, 90.8891, 201.125);
|
|
||||||
/* 16:52 */waypoints[44].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[44].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[44].children[0] = 30;
|
|
||||||
/* 16:52 */waypoints[44].angles = (8.28369, -105.546, 0);
|
|
||||||
/* 16:52 */waypoints[45] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[45].origin = (-723.435, -72.0006, 197.942);
|
|
||||||
/* 16:52 */waypoints[45].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[45].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[45].children[0] = 14;
|
|
||||||
/* 16:52 */waypoints[45].angles = (14.3866, -30.9822, 0);
|
|
||||||
/* 16:52 */waypoints[46] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[46].origin = (-359.868, -62.7571, 192.077);
|
|
||||||
/* 16:52 */waypoints[46].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[46].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[46].children[0] = 15;
|
|
||||||
/* 16:52 */waypoints[46].angles = (12.3157, 99.9364, 0);
|
|
||||||
/* 16:52 */waypoints[47] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[47].origin = (-338.009, 262.396, 192.344);
|
|
||||||
/* 16:52 */waypoints[47].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[47].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[47].children[0] = 28;
|
|
||||||
/* 16:52 */waypoints[47].angles = (5.44922, -97.5868, 0);
|
|
||||||
/* 16:52 */waypoints[48] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[48].origin = (-337.125, -170.544, 192.077);
|
|
||||||
/* 16:52 */waypoints[48].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[48].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[48].children[0] = 15;
|
|
||||||
/* 16:52 */waypoints[48].angles = (3.0542, 122.013, 0);
|
|
||||||
/* 16:52 */waypoints[49] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[49].origin = (-718.728, 650.445, 192.845);
|
|
||||||
/* 16:52 */waypoints[49].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[49].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[49].children[0] = 2;
|
|
||||||
/* 16:52 */waypoints[49].angles = (-26.2628, -10.8662, 0);
|
|
||||||
/* 16:52 */waypoints[50] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[50].origin = (-645.978, 649.306, 193.743);
|
|
||||||
/* 16:52 */waypoints[50].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[50].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[50].children[0] = 2;
|
|
||||||
/* 16:52 */waypoints[50].angles = (-28.3337, -79.6461, 0);
|
|
||||||
/* 16:52 */waypoints[51] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[51].origin = (-75.5292, 597.058, 193.565);
|
|
||||||
/* 16:52 */waypoints[51].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[51].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[51].children[0] = 32;
|
|
||||||
/* 16:52 */waypoints[51].children[1] = 52;
|
|
||||||
/* 16:52 */waypoints[51].angles = (20.929, 154.231, 0);
|
|
||||||
/* 16:52 */waypoints[52] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[52].origin = (0.635334, 602.359, 192.064);
|
|
||||||
/* 16:52 */waypoints[52].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[52].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[52].children[0] = 51;
|
|
||||||
/* 16:52 */waypoints[52].angles = (12.865, 169.381, 0);
|
|
||||||
/* 16:52 */waypoints[53] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[53].origin = (151.737, 729.937, 195.165);
|
|
||||||
/* 16:52 */waypoints[53].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[53].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[53].children[0] = 35;
|
|
||||||
/* 16:52 */waypoints[53].children[1] = 54;
|
|
||||||
/* 16:52 */waypoints[53].angles = (4.36157, -33.4816, 0);
|
|
||||||
/* 16:52 */waypoints[54] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[54].origin = (24.0866, 748.693, 192.077);
|
|
||||||
/* 16:52 */waypoints[54].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[54].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[54].children[0] = 53;
|
|
||||||
/* 16:52 */waypoints[54].angles = (4.57581, -15.2772, 0);
|
|
||||||
/* 16:52 */waypoints[55] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[55].origin = (586.358, 730.315, 192.077);
|
|
||||||
/* 16:52 */waypoints[55].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[55].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[55].children[0] = 25;
|
|
||||||
/* 16:52 */waypoints[55].angles = (-29.6466, -100.52, 0);
|
|
||||||
/* 16:52 */waypoints[56] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[56].origin = (662.354, 635.756, 192.077);
|
|
||||||
/* 16:52 */waypoints[56].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[56].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[56].children[0] = 26;
|
|
||||||
/* 16:52 */waypoints[56].angles = (-21.4673, -168.976, 0);
|
|
||||||
/* 16:52 */waypoints[57] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[57].origin = (117.159, 353.125, 192.077);
|
|
||||||
/* 16:52 */waypoints[57].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[57].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[57].children[0] = 0;
|
|
||||||
/* 16:52 */waypoints[57].angles = (18.0945, 157.45, 0);
|
|
||||||
/* 16:52 */waypoints[58] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[58].origin = (269.892, 206.875, 201.125);
|
|
||||||
/* 16:52 */waypoints[58].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[58].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[58].children[0] = 31;
|
|
||||||
/* 16:52 */waypoints[58].angles = (9.70093, -168.273, 0);
|
|
||||||
/* 16:52 */waypoints[59] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[59].origin = (165.952, 157.587, 201.125);
|
|
||||||
/* 16:52 */waypoints[59].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[59].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[59].children[0] = 31;
|
|
||||||
/* 16:52 */waypoints[59].angles = (18.6383, 163.168, 0);
|
|
||||||
/* 16:52 */waypoints[60] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[60].origin = (659.141, 31.3728, 201.125);
|
|
||||||
/* 16:52 */waypoints[60].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[60].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[60].children[0] = 29;
|
|
||||||
/* 16:52 */waypoints[60].angles = (10.7941, 82.0177, 0);
|
|
||||||
/* 16:52 */waypoints[61] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[61].origin = (668.763, 91.6303, 201.125);
|
|
||||||
/* 16:52 */waypoints[61].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[61].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[61].children[0] = 29;
|
|
||||||
/* 16:52 */waypoints[61].angles = (10.6842, 77.3265, 0);
|
|
||||||
/* 16:52 */waypoints[62] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[62].origin = (581.503, 241.125, 192.077);
|
|
||||||
/* 16:52 */waypoints[62].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[62].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[62].children[0] = 20;
|
|
||||||
/* 16:52 */waypoints[62].angles = (14.1724, 159.081, 0);
|
|
||||||
/* 16:52 */waypoints[63] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[63].origin = (337.125, 164.429, 192.077);
|
|
||||||
/* 16:52 */waypoints[63].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[63].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[63].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[63].angles = (22.3462, -67.4897, 0);
|
|
||||||
/* 16:52 */waypoints[64] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[64].origin = (337.125, 297.275, 192.077);
|
|
||||||
/* 16:52 */waypoints[64].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[64].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[64].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[64].angles = (6.21277, -48.3571, 0);
|
|
||||||
/* 16:52 */waypoints[65] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[65].origin = (625.427, -520.984, 192.406);
|
|
||||||
/* 16:52 */waypoints[65].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[65].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[65].children[0] = 23;
|
|
||||||
/* 16:52 */waypoints[65].angles = (-22.6703, 170.419, 0);
|
|
||||||
/* 16:52 */waypoints[66] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[66].origin = (666.143, -518.976, 192.354);
|
|
||||||
/* 16:52 */waypoints[66].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[66].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[66].children[0] = 22;
|
|
||||||
/* 16:52 */waypoints[66].angles = (-21.5771, 106.325, 0);
|
|
||||||
/* 16:52 */waypoints[67] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[67].origin = (-645.523, -571.162, 191.226);
|
|
||||||
/* 16:52 */waypoints[67].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[67].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[67].children[0] = 11;
|
|
||||||
/* 16:52 */waypoints[67].angles = (-25.719, 75.9148, 0);
|
|
||||||
/* 16:52 */waypoints[68] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[68].origin = (-670.623, -499.898, 187.333);
|
|
||||||
/* 16:52 */waypoints[68].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[68].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[68].children[0] = 12;
|
|
||||||
/* 16:52 */waypoints[68].angles = (-30.3003, 4.29492, 0);
|
|
||||||
/* 16:52 */waypoints[69] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[69].origin = (46.875, -43.8446, 192.077);
|
|
||||||
/* 16:52 */waypoints[69].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[69].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[69].children[0] = 18;
|
|
||||||
/* 16:52 */waypoints[69].angles = (17.3309, 111.011, 0);
|
|
||||||
/* 16:52 */waypoints[70] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[70].origin = (599.348, -68.9672, 192.077);
|
|
||||||
/* 16:52 */waypoints[70].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[70].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[70].children[0] = 33;
|
|
||||||
/* 16:52 */waypoints[70].angles = (18.2043, -177.424, 0);
|
|
||||||
/* 16:52 */waypoints[71] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[71].origin = (158.899, 529.62, 192.854);
|
|
||||||
/* 16:52 */waypoints[71].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[71].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[71].children[0] = 5;
|
|
||||||
/* 16:52 */waypoints[71].angles = (22.9999, -98.4437, 0);
|
|
||||||
/* 16:52 */waypoints[72] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[72].origin = (-166.163, -437.371, 192.589);
|
|
||||||
/* 16:52 */waypoints[72].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[72].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[72].children[0] = 36;
|
|
||||||
/* 16:52 */waypoints[72].angles = (22.489, 106.451, 0);
|
|
||||||
/* 16:52 */waypoints[73] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[73].origin = (-208.732, -457.476, 194.149);
|
|
||||||
/* 16:52 */waypoints[73].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[73].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[73].children[0] = 36;
|
|
||||||
/* 16:52 */waypoints[73].angles = (18.7811, -90.6324, 0);
|
|
||||||
/* 16:52 */waypoints[74] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[74].origin = (706.721, -470.317, 192.339);
|
|
||||||
/* 16:52 */waypoints[74].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[74].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[74].children[0] = 22;
|
|
||||||
/* 16:52 */waypoints[74].angles = (-21.0004, 149.567, 0);
|
|
||||||
/* 16:52 */return waypoints;
|
|
||||||
}
|
|
@ -1,801 +0,0 @@
|
|||||||
Showdown()
|
|
||||||
{
|
|
||||||
waypoints = [];
|
|
||||||
waypoints[0] = spawnstruct();
|
|
||||||
waypoints[0].origin = (505.812,-424.956,16.125);
|
|
||||||
waypoints[0].type = "stand";
|
|
||||||
waypoints[0].childCount = 2;
|
|
||||||
waypoints[0].children[0] = 1;
|
|
||||||
waypoints[0].children[1] = 85;
|
|
||||||
waypoints[1] = spawnstruct();
|
|
||||||
waypoints[1].origin = (537.303,-474.454,16.125);
|
|
||||||
waypoints[1].type = "stand";
|
|
||||||
waypoints[1].childCount = 3;
|
|
||||||
waypoints[1].children[0] = 0;
|
|
||||||
waypoints[1].children[1] = 56;
|
|
||||||
waypoints[1].children[2] = 85;
|
|
||||||
waypoints[2] = spawnstruct();
|
|
||||||
waypoints[2].origin = (291.322,-1833.98,16.125);
|
|
||||||
waypoints[2].type = "stand";
|
|
||||||
waypoints[2].childCount = 2;
|
|
||||||
waypoints[2].children[0] = 3;
|
|
||||||
waypoints[2].children[1] = 5;
|
|
||||||
waypoints[3] = spawnstruct();
|
|
||||||
waypoints[3].origin = (-39.6545,-1811.7,16.125);
|
|
||||||
waypoints[3].type = "stand";
|
|
||||||
waypoints[3].childCount = 4;
|
|
||||||
waypoints[3].children[0] = 4;
|
|
||||||
waypoints[3].children[1] = 2;
|
|
||||||
waypoints[3].children[2] = 78;
|
|
||||||
waypoints[3].children[3] = 5;
|
|
||||||
waypoints[4] = spawnstruct();
|
|
||||||
waypoints[4].origin = (-195.803,-1842.09,16.125);
|
|
||||||
waypoints[4].type = "stand";
|
|
||||||
waypoints[4].childCount = 3;
|
|
||||||
waypoints[4].children[0] = 3;
|
|
||||||
waypoints[4].children[1] = 78;
|
|
||||||
waypoints[4].children[2] = 111;
|
|
||||||
waypoints[5] = spawnstruct();
|
|
||||||
waypoints[5].origin = (115.975,-1711.53,16.125);
|
|
||||||
waypoints[5].type = "stand";
|
|
||||||
waypoints[5].childCount = 5;
|
|
||||||
waypoints[5].children[0] = 2;
|
|
||||||
waypoints[5].children[1] = 6;
|
|
||||||
waypoints[5].children[2] = 78;
|
|
||||||
waypoints[5].children[3] = 79;
|
|
||||||
waypoints[5].children[4] = 3;
|
|
||||||
waypoints[6] = spawnstruct();
|
|
||||||
waypoints[6].origin = (270.51,-1502.5,16.125);
|
|
||||||
waypoints[6].type = "stand";
|
|
||||||
waypoints[6].childCount = 3;
|
|
||||||
waypoints[6].children[0] = 5;
|
|
||||||
waypoints[6].children[1] = 7;
|
|
||||||
waypoints[6].children[2] = 79;
|
|
||||||
waypoints[7] = spawnstruct();
|
|
||||||
waypoints[7].origin = (523.467,-1317.58,16.125);
|
|
||||||
waypoints[7].type = "stand";
|
|
||||||
waypoints[7].childCount = 4;
|
|
||||||
waypoints[7].children[0] = 6;
|
|
||||||
waypoints[7].children[1] = 8;
|
|
||||||
waypoints[7].children[2] = 80;
|
|
||||||
waypoints[7].children[3] = 79;
|
|
||||||
waypoints[8] = spawnstruct();
|
|
||||||
waypoints[8].origin = (664.768,-955.798,18.5377);
|
|
||||||
waypoints[8].type = "stand";
|
|
||||||
waypoints[8].childCount = 3;
|
|
||||||
waypoints[8].children[0] = 7;
|
|
||||||
waypoints[8].children[1] = 9;
|
|
||||||
waypoints[8].children[2] = 81;
|
|
||||||
waypoints[9] = spawnstruct();
|
|
||||||
waypoints[9].origin = (990.06,-608.595,16.0857);
|
|
||||||
waypoints[9].type = "stand";
|
|
||||||
waypoints[9].childCount = 3;
|
|
||||||
waypoints[9].children[0] = 8;
|
|
||||||
waypoints[9].children[1] = 10;
|
|
||||||
waypoints[9].children[2] = 81;
|
|
||||||
waypoints[10] = spawnstruct();
|
|
||||||
waypoints[10].origin = (993.031,-313.964,16.0698);
|
|
||||||
waypoints[10].type = "stand";
|
|
||||||
waypoints[10].childCount = 3;
|
|
||||||
waypoints[10].children[0] = 9;
|
|
||||||
waypoints[10].children[1] = 11;
|
|
||||||
waypoints[10].children[2] = 12;
|
|
||||||
waypoints[11] = spawnstruct();
|
|
||||||
waypoints[11].origin = (734.615,-241.958,16.125);
|
|
||||||
waypoints[11].type = "stand";
|
|
||||||
waypoints[11].childCount = 5;
|
|
||||||
waypoints[11].children[0] = 10;
|
|
||||||
waypoints[11].children[1] = 12;
|
|
||||||
waypoints[11].children[2] = 13;
|
|
||||||
waypoints[11].children[3] = 98;
|
|
||||||
waypoints[11].children[4] = 103;
|
|
||||||
waypoints[12] = spawnstruct();
|
|
||||||
waypoints[12].origin = (968.686,-111.77,16.125);
|
|
||||||
waypoints[12].type = "stand";
|
|
||||||
waypoints[12].childCount = 3;
|
|
||||||
waypoints[12].children[0] = 11;
|
|
||||||
waypoints[12].children[1] = 10;
|
|
||||||
waypoints[12].children[2] = 102;
|
|
||||||
waypoints[13] = spawnstruct();
|
|
||||||
waypoints[13].origin = (670.691,151.523,16.125);
|
|
||||||
waypoints[13].type = "stand";
|
|
||||||
waypoints[13].childCount = 2;
|
|
||||||
waypoints[13].children[0] = 11;
|
|
||||||
waypoints[13].children[1] = 14;
|
|
||||||
waypoints[14] = spawnstruct();
|
|
||||||
waypoints[14].origin = (616.155,160.129,48.125);
|
|
||||||
waypoints[14].type = "stand";
|
|
||||||
waypoints[14].childCount = 2;
|
|
||||||
waypoints[14].children[0] = 13;
|
|
||||||
waypoints[14].children[1] = 15;
|
|
||||||
waypoints[15] = spawnstruct();
|
|
||||||
waypoints[15].origin = (546.602,158.084,0.124999);
|
|
||||||
waypoints[15].type = "stand";
|
|
||||||
waypoints[15].childCount = 4;
|
|
||||||
waypoints[15].children[0] = 14;
|
|
||||||
waypoints[15].children[1] = 16;
|
|
||||||
waypoints[15].children[2] = 96;
|
|
||||||
waypoints[15].children[3] = 97;
|
|
||||||
waypoints[16] = spawnstruct();
|
|
||||||
waypoints[16].origin = (387.278,376.577,0.124999);
|
|
||||||
waypoints[16].type = "stand";
|
|
||||||
waypoints[16].childCount = 2;
|
|
||||||
waypoints[16].children[0] = 15;
|
|
||||||
waypoints[16].children[1] = 17;
|
|
||||||
waypoints[17] = spawnstruct();
|
|
||||||
waypoints[17].origin = (-20.6483,442.87,16.125);
|
|
||||||
waypoints[17].type = "stand";
|
|
||||||
waypoints[17].childCount = 5;
|
|
||||||
waypoints[17].children[0] = 16;
|
|
||||||
waypoints[17].children[1] = 18;
|
|
||||||
waypoints[17].children[2] = 94;
|
|
||||||
waypoints[17].children[3] = 95;
|
|
||||||
waypoints[17].children[4] = 99;
|
|
||||||
waypoints[18] = spawnstruct();
|
|
||||||
waypoints[18].origin = (-276.216,434.67,0.125);
|
|
||||||
waypoints[18].type = "stand";
|
|
||||||
waypoints[18].childCount = 2;
|
|
||||||
waypoints[18].children[0] = 17;
|
|
||||||
waypoints[18].children[1] = 92;
|
|
||||||
waypoints[19] = spawnstruct();
|
|
||||||
waypoints[19].origin = (-746.266,385.411,88.125);
|
|
||||||
waypoints[19].type = "stand";
|
|
||||||
waypoints[19].childCount = 2;
|
|
||||||
waypoints[19].children[0] = 20;
|
|
||||||
waypoints[19].children[1] = 92;
|
|
||||||
waypoints[20] = spawnstruct();
|
|
||||||
waypoints[20].origin = (-758.784,562.358,192.125);
|
|
||||||
waypoints[20].type = "stand";
|
|
||||||
waypoints[20].childCount = 2;
|
|
||||||
waypoints[20].children[0] = 19;
|
|
||||||
waypoints[20].children[1] = 21;
|
|
||||||
waypoints[21] = spawnstruct();
|
|
||||||
waypoints[21].origin = (-663.918,567.227,192.125);
|
|
||||||
waypoints[21].type = "stand";
|
|
||||||
waypoints[21].childCount = 3;
|
|
||||||
waypoints[21].children[0] = 20;
|
|
||||||
waypoints[21].children[1] = 64;
|
|
||||||
waypoints[21].children[2] = 65;
|
|
||||||
waypoints[22] = spawnstruct();
|
|
||||||
waypoints[22].origin = (-517.21,252.793,0.124999);
|
|
||||||
waypoints[22].type = "stand";
|
|
||||||
waypoints[22].childCount = 4;
|
|
||||||
waypoints[22].children[0] = 23;
|
|
||||||
waypoints[22].children[1] = 91;
|
|
||||||
waypoints[22].children[2] = 92;
|
|
||||||
waypoints[22].children[3] = 94;
|
|
||||||
waypoints[23] = spawnstruct();
|
|
||||||
waypoints[23].origin = (-596.15,163.247,16.125);
|
|
||||||
waypoints[23].type = "stand";
|
|
||||||
waypoints[23].childCount = 4;
|
|
||||||
waypoints[23].children[0] = 22;
|
|
||||||
waypoints[23].children[1] = 24;
|
|
||||||
waypoints[23].children[2] = 91;
|
|
||||||
waypoints[23].children[3] = 93;
|
|
||||||
waypoints[24] = spawnstruct();
|
|
||||||
waypoints[24].origin = (-712.372,173.44,16.125);
|
|
||||||
waypoints[24].type = "stand";
|
|
||||||
waypoints[24].childCount = 3;
|
|
||||||
waypoints[24].children[0] = 25;
|
|
||||||
waypoints[24].children[1] = 23;
|
|
||||||
waypoints[24].children[2] = 88;
|
|
||||||
waypoints[25] = spawnstruct();
|
|
||||||
waypoints[25].origin = (-861.793,160.81,16.125);
|
|
||||||
waypoints[25].type = "stand";
|
|
||||||
waypoints[25].childCount = 3;
|
|
||||||
waypoints[25].children[0] = 24;
|
|
||||||
waypoints[25].children[1] = 26;
|
|
||||||
waypoints[25].children[2] = 101;
|
|
||||||
waypoints[26] = spawnstruct();
|
|
||||||
waypoints[26].origin = (-954.657,415.26,16.125);
|
|
||||||
waypoints[26].type = "stand";
|
|
||||||
waypoints[26].childCount = 2;
|
|
||||||
waypoints[26].children[0] = 25;
|
|
||||||
waypoints[26].children[1] = 27;
|
|
||||||
waypoints[27] = spawnstruct();
|
|
||||||
waypoints[27].origin = (-930.48,795.119,12.8512);
|
|
||||||
waypoints[27].type = "stand";
|
|
||||||
waypoints[27].childCount = 3;
|
|
||||||
waypoints[27].children[0] = 26;
|
|
||||||
waypoints[27].children[1] = 28;
|
|
||||||
waypoints[27].children[2] = 29;
|
|
||||||
waypoints[28] = spawnstruct();
|
|
||||||
waypoints[28].origin = (-730.137,871.643,11.2345);
|
|
||||||
waypoints[28].type = "stand";
|
|
||||||
waypoints[28].childCount = 2;
|
|
||||||
waypoints[28].children[0] = 27;
|
|
||||||
waypoints[28].children[1] = 31;
|
|
||||||
waypoints[29] = spawnstruct();
|
|
||||||
waypoints[29].origin = (-962.211,1196.61,5.24434);
|
|
||||||
waypoints[29].type = "stand";
|
|
||||||
waypoints[29].childCount = 2;
|
|
||||||
waypoints[29].children[0] = 27;
|
|
||||||
waypoints[29].children[1] = 30;
|
|
||||||
waypoints[30] = spawnstruct();
|
|
||||||
waypoints[30].origin = (-567.276,1271.91,4.05508);
|
|
||||||
waypoints[30].type = "stand";
|
|
||||||
waypoints[30].childCount = 3;
|
|
||||||
waypoints[30].children[0] = 29;
|
|
||||||
waypoints[30].children[1] = 31;
|
|
||||||
waypoints[30].children[2] = 32;
|
|
||||||
waypoints[31] = spawnstruct();
|
|
||||||
waypoints[31].origin = (-586.158,1045.79,7.32107);
|
|
||||||
waypoints[31].type = "stand";
|
|
||||||
waypoints[31].childCount = 2;
|
|
||||||
waypoints[31].children[0] = 30;
|
|
||||||
waypoints[31].children[1] = 28;
|
|
||||||
waypoints[32] = spawnstruct();
|
|
||||||
waypoints[32].origin = (-338.954,1316.85,-2.03107);
|
|
||||||
waypoints[32].type = "stand";
|
|
||||||
waypoints[32].childCount = 4;
|
|
||||||
waypoints[32].children[0] = 30;
|
|
||||||
waypoints[32].children[1] = 33;
|
|
||||||
waypoints[32].children[2] = 37;
|
|
||||||
waypoints[32].children[3] = 39;
|
|
||||||
waypoints[33] = spawnstruct();
|
|
||||||
waypoints[33].origin = (-281.942,1707.41,-1.875);
|
|
||||||
waypoints[33].type = "stand";
|
|
||||||
waypoints[33].childCount = 3;
|
|
||||||
waypoints[33].children[0] = 32;
|
|
||||||
waypoints[33].children[1] = 34;
|
|
||||||
waypoints[33].children[2] = 37;
|
|
||||||
waypoints[34] = spawnstruct();
|
|
||||||
waypoints[34].origin = (-6.74152,1920.84,-1.875);
|
|
||||||
waypoints[34].type = "stand";
|
|
||||||
waypoints[34].childCount = 3;
|
|
||||||
waypoints[34].children[0] = 33;
|
|
||||||
waypoints[34].children[1] = 35;
|
|
||||||
waypoints[34].children[2] = 38;
|
|
||||||
waypoints[35] = spawnstruct();
|
|
||||||
waypoints[35].origin = (323.083,1735.21,-3.87158);
|
|
||||||
waypoints[35].type = "stand";
|
|
||||||
waypoints[35].childCount = 4;
|
|
||||||
waypoints[35].children[0] = 34;
|
|
||||||
waypoints[35].children[1] = 36;
|
|
||||||
waypoints[35].children[2] = 38;
|
|
||||||
waypoints[35].children[3] = 104;
|
|
||||||
waypoints[36] = spawnstruct();
|
|
||||||
waypoints[36].origin = (382.238,1504.54,0.815162);
|
|
||||||
waypoints[36].type = "stand";
|
|
||||||
waypoints[36].childCount = 5;
|
|
||||||
waypoints[36].children[0] = 35;
|
|
||||||
waypoints[36].children[1] = 37;
|
|
||||||
waypoints[36].children[2] = 40;
|
|
||||||
waypoints[36].children[3] = 39;
|
|
||||||
waypoints[36].children[4] = 104;
|
|
||||||
waypoints[37] = spawnstruct();
|
|
||||||
waypoints[37].origin = (-26.8239,1469.4,18.1746);
|
|
||||||
waypoints[37].type = "stand";
|
|
||||||
waypoints[37].childCount = 5;
|
|
||||||
waypoints[37].children[0] = 36;
|
|
||||||
waypoints[37].children[1] = 33;
|
|
||||||
waypoints[37].children[2] = 38;
|
|
||||||
waypoints[37].children[3] = 32;
|
|
||||||
waypoints[37].children[4] = 39;
|
|
||||||
waypoints[38] = spawnstruct();
|
|
||||||
waypoints[38].origin = (116.04,1701.08,-1.875);
|
|
||||||
waypoints[38].type = "stand";
|
|
||||||
waypoints[38].childCount = 3;
|
|
||||||
waypoints[38].children[0] = 35;
|
|
||||||
waypoints[38].children[1] = 34;
|
|
||||||
waypoints[38].children[2] = 37;
|
|
||||||
waypoints[39] = spawnstruct();
|
|
||||||
waypoints[39].origin = (-8.94893,1299.2,8.125);
|
|
||||||
waypoints[39].type = "stand";
|
|
||||||
waypoints[39].childCount = 5;
|
|
||||||
waypoints[39].children[0] = 32;
|
|
||||||
waypoints[39].children[1] = 37;
|
|
||||||
waypoints[39].children[2] = 40;
|
|
||||||
waypoints[39].children[3] = 100;
|
|
||||||
waypoints[39].children[4] = 36;
|
|
||||||
waypoints[40] = spawnstruct();
|
|
||||||
waypoints[40].origin = (455.403,1263.83,0.80736);
|
|
||||||
waypoints[40].type = "stand";
|
|
||||||
waypoints[40].childCount = 4;
|
|
||||||
waypoints[40].children[0] = 39;
|
|
||||||
waypoints[40].children[1] = 36;
|
|
||||||
waypoints[40].children[2] = 41;
|
|
||||||
waypoints[40].children[3] = 42;
|
|
||||||
waypoints[41] = spawnstruct();
|
|
||||||
waypoints[41].origin = (597.815,952.998,0.125);
|
|
||||||
waypoints[41].type = "stand";
|
|
||||||
waypoints[41].childCount = 4;
|
|
||||||
waypoints[41].children[0] = 40;
|
|
||||||
waypoints[41].children[1] = 42;
|
|
||||||
waypoints[41].children[2] = 45;
|
|
||||||
waypoints[41].children[3] = 114;
|
|
||||||
waypoints[42] = spawnstruct();
|
|
||||||
waypoints[42].origin = (695.654,1285.26,0.633609);
|
|
||||||
waypoints[42].type = "stand";
|
|
||||||
waypoints[42].childCount = 5;
|
|
||||||
waypoints[42].children[0] = 40;
|
|
||||||
waypoints[42].children[1] = 41;
|
|
||||||
waypoints[42].children[2] = 43;
|
|
||||||
waypoints[42].children[3] = 105;
|
|
||||||
waypoints[42].children[4] = 106;
|
|
||||||
waypoints[43] = spawnstruct();
|
|
||||||
waypoints[43].origin = (1049.08,1175.52,0.125001);
|
|
||||||
waypoints[43].type = "stand";
|
|
||||||
waypoints[43].childCount = 3;
|
|
||||||
waypoints[43].children[0] = 42;
|
|
||||||
waypoints[43].children[1] = 44;
|
|
||||||
waypoints[43].children[2] = 106;
|
|
||||||
waypoints[44] = spawnstruct();
|
|
||||||
waypoints[44].origin = (1051.53,832.954,0.125001);
|
|
||||||
waypoints[44].type = "stand";
|
|
||||||
waypoints[44].childCount = 3;
|
|
||||||
waypoints[44].children[0] = 43;
|
|
||||||
waypoints[44].children[1] = 45;
|
|
||||||
waypoints[44].children[2] = 46;
|
|
||||||
waypoints[45] = spawnstruct();
|
|
||||||
waypoints[45].origin = (860.215,748.093,4.01932);
|
|
||||||
waypoints[45].type = "stand";
|
|
||||||
waypoints[45].childCount = 5;
|
|
||||||
waypoints[45].children[0] = 44;
|
|
||||||
waypoints[45].children[1] = 41;
|
|
||||||
waypoints[45].children[2] = 46;
|
|
||||||
waypoints[45].children[3] = 107;
|
|
||||||
waypoints[45].children[4] = 114;
|
|
||||||
waypoints[46] = spawnstruct();
|
|
||||||
waypoints[46].origin = (1115.09,663.253,16.125);
|
|
||||||
waypoints[46].type = "stand";
|
|
||||||
waypoints[46].childCount = 3;
|
|
||||||
waypoints[46].children[0] = 45;
|
|
||||||
waypoints[46].children[1] = 44;
|
|
||||||
waypoints[46].children[2] = 47;
|
|
||||||
waypoints[47] = spawnstruct();
|
|
||||||
waypoints[47].origin = (1119.5,467.566,184.125);
|
|
||||||
waypoints[47].type = "stand";
|
|
||||||
waypoints[47].childCount = 2;
|
|
||||||
waypoints[47].children[0] = 46;
|
|
||||||
waypoints[47].children[1] = 48;
|
|
||||||
waypoints[48] = spawnstruct();
|
|
||||||
waypoints[48].origin = (1054.24,383.648,184.125);
|
|
||||||
waypoints[48].type = "stand";
|
|
||||||
waypoints[48].childCount = 2;
|
|
||||||
waypoints[48].children[0] = 47;
|
|
||||||
waypoints[48].children[1] = 49;
|
|
||||||
waypoints[49] = spawnstruct();
|
|
||||||
waypoints[49].origin = (731.372,385.949,192.125);
|
|
||||||
waypoints[49].type = "stand";
|
|
||||||
waypoints[49].childCount = 3;
|
|
||||||
waypoints[49].children[0] = 48;
|
|
||||||
waypoints[49].children[1] = 50;
|
|
||||||
waypoints[49].children[2] = 51;
|
|
||||||
waypoints[50] = spawnstruct();
|
|
||||||
waypoints[50].origin = (645.881,551.47,192.125);
|
|
||||||
waypoints[50].type = "stand";
|
|
||||||
waypoints[50].childCount = 2;
|
|
||||||
waypoints[50].children[0] = 49;
|
|
||||||
waypoints[50].children[1] = 68;
|
|
||||||
waypoints[51] = spawnstruct();
|
|
||||||
waypoints[51].origin = (662.071,238.161,192.125);
|
|
||||||
waypoints[51].type = "stand";
|
|
||||||
waypoints[51].childCount = 2;
|
|
||||||
waypoints[51].children[0] = 49;
|
|
||||||
waypoints[51].children[1] = 52;
|
|
||||||
waypoints[52] = spawnstruct();
|
|
||||||
waypoints[52].origin = (660.251,-104.482,192.125);
|
|
||||||
waypoints[52].type = "stand";
|
|
||||||
waypoints[52].childCount = 3;
|
|
||||||
waypoints[52].children[0] = 51;
|
|
||||||
waypoints[52].children[1] = 54;
|
|
||||||
waypoints[52].children[2] = 53;
|
|
||||||
waypoints[53] = spawnstruct();
|
|
||||||
waypoints[53].origin = (735.331,-312.701,192.125);
|
|
||||||
waypoints[53].type = "stand";
|
|
||||||
waypoints[53].childCount = 3;
|
|
||||||
waypoints[53].children[0] = 54;
|
|
||||||
waypoints[53].children[1] = 52;
|
|
||||||
waypoints[53].children[2] = 55;
|
|
||||||
waypoints[54] = spawnstruct();
|
|
||||||
waypoints[54].origin = (646.806,-331.588,192.125);
|
|
||||||
waypoints[54].type = "stand";
|
|
||||||
waypoints[54].childCount = 3;
|
|
||||||
waypoints[54].children[0] = 52;
|
|
||||||
waypoints[54].children[1] = 53;
|
|
||||||
waypoints[54].children[2] = 57;
|
|
||||||
waypoints[55] = spawnstruct();
|
|
||||||
waypoints[55].origin = (759.845,-493.82,104.125);
|
|
||||||
waypoints[55].type = "stand";
|
|
||||||
waypoints[55].childCount = 2;
|
|
||||||
waypoints[55].children[0] = 53;
|
|
||||||
waypoints[55].children[1] = 56;
|
|
||||||
waypoints[56] = spawnstruct();
|
|
||||||
waypoints[56].origin = (675.205,-486.376,104.125);
|
|
||||||
waypoints[56].type = "stand";
|
|
||||||
waypoints[56].childCount = 2;
|
|
||||||
waypoints[56].children[0] = 55;
|
|
||||||
waypoints[56].children[1] = 1;
|
|
||||||
waypoints[57] = spawnstruct();
|
|
||||||
waypoints[57].origin = (626.279,-422.316,192.125);
|
|
||||||
waypoints[57].type = "stand";
|
|
||||||
waypoints[57].childCount = 2;
|
|
||||||
waypoints[57].children[0] = 54;
|
|
||||||
waypoints[57].children[1] = 58;
|
|
||||||
waypoints[58] = spawnstruct();
|
|
||||||
waypoints[58].origin = (366.824,-424.195,192.125);
|
|
||||||
waypoints[58].type = "stand";
|
|
||||||
waypoints[58].childCount = 2;
|
|
||||||
waypoints[58].children[0] = 59;
|
|
||||||
waypoints[58].children[1] = 57;
|
|
||||||
waypoints[59] = spawnstruct();
|
|
||||||
waypoints[59].origin = (-2.34399,-423.791,192.125);
|
|
||||||
waypoints[59].type = "stand";
|
|
||||||
waypoints[59].childCount = 2;
|
|
||||||
waypoints[59].children[0] = 60;
|
|
||||||
waypoints[59].children[1] = 58;
|
|
||||||
waypoints[60] = spawnstruct();
|
|
||||||
waypoints[60].origin = (-323.755,-417.004,192.125);
|
|
||||||
waypoints[60].type = "stand";
|
|
||||||
waypoints[60].childCount = 2;
|
|
||||||
waypoints[60].children[0] = 61;
|
|
||||||
waypoints[60].children[1] = 59;
|
|
||||||
waypoints[61] = spawnstruct();
|
|
||||||
waypoints[61].origin = (-702.528,-403.513,192.125);
|
|
||||||
waypoints[61].type = "stand";
|
|
||||||
waypoints[61].childCount = 2;
|
|
||||||
waypoints[61].children[0] = 60;
|
|
||||||
waypoints[61].children[1] = 62;
|
|
||||||
waypoints[62] = spawnstruct();
|
|
||||||
waypoints[62].origin = (-738.813,-298.498,192.125);
|
|
||||||
waypoints[62].type = "stand";
|
|
||||||
waypoints[62].childCount = 3;
|
|
||||||
waypoints[62].children[0] = 61;
|
|
||||||
waypoints[62].children[1] = 63;
|
|
||||||
waypoints[62].children[2] = 69;
|
|
||||||
waypoints[63] = spawnstruct();
|
|
||||||
waypoints[63].origin = (-670.498,1.26415,192.125);
|
|
||||||
waypoints[63].type = "stand";
|
|
||||||
waypoints[63].childCount = 2;
|
|
||||||
waypoints[63].children[0] = 62;
|
|
||||||
waypoints[63].children[1] = 64;
|
|
||||||
waypoints[64] = spawnstruct();
|
|
||||||
waypoints[64].origin = (-668.283,381.161,192.125);
|
|
||||||
waypoints[64].type = "stand";
|
|
||||||
waypoints[64].childCount = 2;
|
|
||||||
waypoints[64].children[0] = 63;
|
|
||||||
waypoints[64].children[1] = 21;
|
|
||||||
waypoints[65] = spawnstruct();
|
|
||||||
waypoints[65].origin = (-490.793,571.524,192.125);
|
|
||||||
waypoints[65].type = "stand";
|
|
||||||
waypoints[65].childCount = 2;
|
|
||||||
waypoints[65].children[0] = 21;
|
|
||||||
waypoints[65].children[1] = 66;
|
|
||||||
waypoints[66] = spawnstruct();
|
|
||||||
waypoints[66].origin = (-301.784,566.147,192.125);
|
|
||||||
waypoints[66].type = "stand";
|
|
||||||
waypoints[66].childCount = 2;
|
|
||||||
waypoints[66].children[0] = 65;
|
|
||||||
waypoints[66].children[1] = 67;
|
|
||||||
waypoints[67] = spawnstruct();
|
|
||||||
waypoints[67].origin = (14.7346,573.208,192.125);
|
|
||||||
waypoints[67].type = "stand";
|
|
||||||
waypoints[67].childCount = 2;
|
|
||||||
waypoints[67].children[0] = 66;
|
|
||||||
waypoints[67].children[1] = 68;
|
|
||||||
waypoints[68] = spawnstruct();
|
|
||||||
waypoints[68].origin = (305.039,571.19,192.125);
|
|
||||||
waypoints[68].type = "stand";
|
|
||||||
waypoints[68].childCount = 2;
|
|
||||||
waypoints[68].children[0] = 67;
|
|
||||||
waypoints[68].children[1] = 50;
|
|
||||||
waypoints[69] = spawnstruct();
|
|
||||||
waypoints[69].origin = (-865.677,-291.469,184.125);
|
|
||||||
waypoints[69].type = "stand";
|
|
||||||
waypoints[69].childCount = 2;
|
|
||||||
waypoints[69].children[0] = 62;
|
|
||||||
waypoints[69].children[1] = 70;
|
|
||||||
waypoints[70] = spawnstruct();
|
|
||||||
waypoints[70].origin = (-1125.46,-321.898,184.125);
|
|
||||||
waypoints[70].type = "stand";
|
|
||||||
waypoints[70].childCount = 2;
|
|
||||||
waypoints[70].children[0] = 69;
|
|
||||||
waypoints[70].children[1] = 71;
|
|
||||||
waypoints[71] = spawnstruct();
|
|
||||||
waypoints[71].origin = (-1106.26,-571.049,16.125);
|
|
||||||
waypoints[71].type = "stand";
|
|
||||||
waypoints[71].childCount = 4;
|
|
||||||
waypoints[71].children[0] = 70;
|
|
||||||
waypoints[71].children[1] = 72;
|
|
||||||
waypoints[71].children[2] = 75;
|
|
||||||
waypoints[71].children[3] = 110;
|
|
||||||
waypoints[72] = spawnstruct();
|
|
||||||
waypoints[72].origin = (-659.469,-730.962,16.125);
|
|
||||||
waypoints[72].type = "stand";
|
|
||||||
waypoints[72].childCount = 4;
|
|
||||||
waypoints[72].children[0] = 71;
|
|
||||||
waypoints[72].children[1] = 108;
|
|
||||||
waypoints[72].children[2] = 109;
|
|
||||||
waypoints[72].children[3] = 110;
|
|
||||||
waypoints[73] = spawnstruct();
|
|
||||||
waypoints[73].origin = (-646.755,-1255.77,16.125);
|
|
||||||
waypoints[73].type = "stand";
|
|
||||||
waypoints[73].childCount = 3;
|
|
||||||
waypoints[73].children[0] = 74;
|
|
||||||
waypoints[73].children[1] = 76;
|
|
||||||
waypoints[73].children[2] = 109;
|
|
||||||
waypoints[74] = spawnstruct();
|
|
||||||
waypoints[74].origin = (-876.086,-1248.7,16.125);
|
|
||||||
waypoints[74].type = "stand";
|
|
||||||
waypoints[74].childCount = 2;
|
|
||||||
waypoints[74].children[0] = 73;
|
|
||||||
waypoints[74].children[1] = 75;
|
|
||||||
waypoints[75] = spawnstruct();
|
|
||||||
waypoints[75].origin = (-965.944,-952.733,16.125);
|
|
||||||
waypoints[75].type = "stand";
|
|
||||||
waypoints[75].childCount = 2;
|
|
||||||
waypoints[75].children[0] = 74;
|
|
||||||
waypoints[75].children[1] = 71;
|
|
||||||
waypoints[76] = spawnstruct();
|
|
||||||
waypoints[76].origin = (-353.091,-1333.87,16.125);
|
|
||||||
waypoints[76].type = "stand";
|
|
||||||
waypoints[76].childCount = 3;
|
|
||||||
waypoints[76].children[0] = 73;
|
|
||||||
waypoints[76].children[1] = 77;
|
|
||||||
waypoints[76].children[2] = 79;
|
|
||||||
waypoints[77] = spawnstruct();
|
|
||||||
waypoints[77].origin = (-320.427,-1501.57,16.125);
|
|
||||||
waypoints[77].type = "stand";
|
|
||||||
waypoints[77].childCount = 2;
|
|
||||||
waypoints[77].children[0] = 76;
|
|
||||||
waypoints[77].children[1] = 78;
|
|
||||||
waypoints[78] = spawnstruct();
|
|
||||||
waypoints[78].origin = (-145.803,-1646.58,16.125);
|
|
||||||
waypoints[78].type = "stand";
|
|
||||||
waypoints[78].childCount = 5;
|
|
||||||
waypoints[78].children[0] = 77;
|
|
||||||
waypoints[78].children[1] = 4;
|
|
||||||
waypoints[78].children[2] = 3;
|
|
||||||
waypoints[78].children[3] = 5;
|
|
||||||
waypoints[78].children[4] = 79;
|
|
||||||
waypoints[79] = spawnstruct();
|
|
||||||
waypoints[79].origin = (-9.68692,-1389.69,17.0544);
|
|
||||||
waypoints[79].type = "stand";
|
|
||||||
waypoints[79].childCount = 6;
|
|
||||||
waypoints[79].children[0] = 5;
|
|
||||||
waypoints[79].children[1] = 78;
|
|
||||||
waypoints[79].children[2] = 76;
|
|
||||||
waypoints[79].children[3] = 6;
|
|
||||||
waypoints[79].children[4] = 7;
|
|
||||||
waypoints[79].children[5] = 82;
|
|
||||||
waypoints[80] = spawnstruct();
|
|
||||||
waypoints[80].origin = (945.134,-1299.76,16.125);
|
|
||||||
waypoints[80].type = "stand";
|
|
||||||
waypoints[80].childCount = 2;
|
|
||||||
waypoints[80].children[0] = 7;
|
|
||||||
waypoints[80].children[1] = 81;
|
|
||||||
waypoints[81] = spawnstruct();
|
|
||||||
waypoints[81].origin = (964.397,-912.064,16.2567);
|
|
||||||
waypoints[81].type = "stand";
|
|
||||||
waypoints[81].childCount = 3;
|
|
||||||
waypoints[81].children[0] = 80;
|
|
||||||
waypoints[81].children[1] = 9;
|
|
||||||
waypoints[81].children[2] = 8;
|
|
||||||
waypoints[82] = spawnstruct();
|
|
||||||
waypoints[82].origin = (24.8224,-1003.39,16.0088);
|
|
||||||
waypoints[82].type = "stand";
|
|
||||||
waypoints[82].childCount = 2;
|
|
||||||
waypoints[82].children[0] = 79;
|
|
||||||
waypoints[82].children[1] = 83;
|
|
||||||
waypoints[83] = spawnstruct();
|
|
||||||
waypoints[83].origin = (-34.5625,-682.197,16.0088);
|
|
||||||
waypoints[83].type = "stand";
|
|
||||||
waypoints[83].childCount = 2;
|
|
||||||
waypoints[83].children[0] = 82;
|
|
||||||
waypoints[83].children[1] = 84;
|
|
||||||
waypoints[84] = spawnstruct();
|
|
||||||
waypoints[84].origin = (25.6259,-447.97,16.0088);
|
|
||||||
waypoints[84].type = "stand";
|
|
||||||
waypoints[84].childCount = 5;
|
|
||||||
waypoints[84].children[0] = 83;
|
|
||||||
waypoints[84].children[1] = 85;
|
|
||||||
waypoints[84].children[2] = 86;
|
|
||||||
waypoints[84].children[3] = 89;
|
|
||||||
waypoints[84].children[4] = 90;
|
|
||||||
waypoints[85] = spawnstruct();
|
|
||||||
waypoints[85].origin = (318.792,-442.476,16.0088);
|
|
||||||
waypoints[85].type = "stand";
|
|
||||||
waypoints[85].childCount = 3;
|
|
||||||
waypoints[85].children[0] = 84;
|
|
||||||
waypoints[85].children[1] = 0;
|
|
||||||
waypoints[85].children[2] = 1;
|
|
||||||
waypoints[86] = spawnstruct();
|
|
||||||
waypoints[86].origin = (-218.847,-438.109,16.0088);
|
|
||||||
waypoints[86].type = "stand";
|
|
||||||
waypoints[86].childCount = 2;
|
|
||||||
waypoints[86].children[0] = 84;
|
|
||||||
waypoints[86].children[1] = 87;
|
|
||||||
waypoints[87] = spawnstruct();
|
|
||||||
waypoints[87].origin = (-693.322,-423.187,16.0088);
|
|
||||||
waypoints[87].type = "stand";
|
|
||||||
waypoints[87].childCount = 2;
|
|
||||||
waypoints[87].children[0] = 86;
|
|
||||||
waypoints[87].children[1] = 88;
|
|
||||||
waypoints[88] = spawnstruct();
|
|
||||||
waypoints[88].origin = (-708.497,-72.4109,16.0088);
|
|
||||||
waypoints[88].type = "stand";
|
|
||||||
waypoints[88].childCount = 2;
|
|
||||||
waypoints[88].children[0] = 87;
|
|
||||||
waypoints[88].children[1] = 24;
|
|
||||||
waypoints[89] = spawnstruct();
|
|
||||||
waypoints[89].origin = (-130.83,-223.262,0.125);
|
|
||||||
waypoints[89].type = "stand";
|
|
||||||
waypoints[89].childCount = 4;
|
|
||||||
waypoints[89].children[0] = 84;
|
|
||||||
waypoints[89].children[1] = 90;
|
|
||||||
waypoints[89].children[2] = 91;
|
|
||||||
waypoints[89].children[3] = 93;
|
|
||||||
waypoints[90] = spawnstruct();
|
|
||||||
waypoints[90].origin = (129.025,-178.039,0.125);
|
|
||||||
waypoints[90].type = "stand";
|
|
||||||
waypoints[90].childCount = 6;
|
|
||||||
waypoints[90].children[0] = 84;
|
|
||||||
waypoints[90].children[1] = 89;
|
|
||||||
waypoints[90].children[2] = 96;
|
|
||||||
waypoints[90].children[3] = 97;
|
|
||||||
waypoints[90].children[4] = 98;
|
|
||||||
waypoints[90].children[5] = 93;
|
|
||||||
waypoints[91] = spawnstruct();
|
|
||||||
waypoints[91].origin = (-496.043,-77.612,0.125);
|
|
||||||
waypoints[91].type = "stand";
|
|
||||||
waypoints[91].childCount = 4;
|
|
||||||
waypoints[91].children[0] = 89;
|
|
||||||
waypoints[91].children[1] = 23;
|
|
||||||
waypoints[91].children[2] = 22;
|
|
||||||
waypoints[91].children[3] = 93;
|
|
||||||
waypoints[92] = spawnstruct();
|
|
||||||
waypoints[92].origin = (-534.335,388.236,7.64728);
|
|
||||||
waypoints[92].type = "stand";
|
|
||||||
waypoints[92].childCount = 4;
|
|
||||||
waypoints[92].children[0] = 22;
|
|
||||||
waypoints[92].children[1] = 18;
|
|
||||||
waypoints[92].children[2] = 19;
|
|
||||||
waypoints[92].children[3] = 94;
|
|
||||||
waypoints[93] = spawnstruct();
|
|
||||||
waypoints[93].origin = (-199.832,96.0957,0.124999);
|
|
||||||
waypoints[93].type = "stand";
|
|
||||||
waypoints[93].childCount = 6;
|
|
||||||
waypoints[93].children[0] = 89;
|
|
||||||
waypoints[93].children[1] = 91;
|
|
||||||
waypoints[93].children[2] = 94;
|
|
||||||
waypoints[93].children[3] = 90;
|
|
||||||
waypoints[93].children[4] = 95;
|
|
||||||
waypoints[93].children[5] = 23;
|
|
||||||
waypoints[94] = spawnstruct();
|
|
||||||
waypoints[94].origin = (-122.751,283.863,0.124999);
|
|
||||||
waypoints[94].type = "stand";
|
|
||||||
waypoints[94].childCount = 5;
|
|
||||||
waypoints[94].children[0] = 93;
|
|
||||||
waypoints[94].children[1] = 17;
|
|
||||||
waypoints[94].children[2] = 92;
|
|
||||||
waypoints[94].children[3] = 22;
|
|
||||||
waypoints[94].children[4] = 95;
|
|
||||||
waypoints[95] = spawnstruct();
|
|
||||||
waypoints[95].origin = (104.783,261.223,0.125);
|
|
||||||
waypoints[95].type = "stand";
|
|
||||||
waypoints[95].childCount = 4;
|
|
||||||
waypoints[95].children[0] = 17;
|
|
||||||
waypoints[95].children[1] = 96;
|
|
||||||
waypoints[95].children[2] = 93;
|
|
||||||
waypoints[95].children[3] = 94;
|
|
||||||
waypoints[96] = spawnstruct();
|
|
||||||
waypoints[96].origin = (186.481,28.8222,0.125);
|
|
||||||
waypoints[96].type = "stand";
|
|
||||||
waypoints[96].childCount = 4;
|
|
||||||
waypoints[96].children[0] = 95;
|
|
||||||
waypoints[96].children[1] = 90;
|
|
||||||
waypoints[96].children[2] = 15;
|
|
||||||
waypoints[96].children[3] = 97;
|
|
||||||
waypoints[97] = spawnstruct();
|
|
||||||
waypoints[97].origin = (452.621,-79.9207,0.125);
|
|
||||||
waypoints[97].type = "stand";
|
|
||||||
waypoints[97].childCount = 4;
|
|
||||||
waypoints[97].children[0] = 15;
|
|
||||||
waypoints[97].children[1] = 90;
|
|
||||||
waypoints[97].children[2] = 98;
|
|
||||||
waypoints[97].children[3] = 96;
|
|
||||||
waypoints[98] = spawnstruct();
|
|
||||||
waypoints[98].origin = (538.879,-249.726,0.125);
|
|
||||||
waypoints[98].type = "stand";
|
|
||||||
waypoints[98].childCount = 3;
|
|
||||||
waypoints[98].children[0] = 97;
|
|
||||||
waypoints[98].children[1] = 11;
|
|
||||||
waypoints[98].children[2] = 90;
|
|
||||||
waypoints[99] = spawnstruct();
|
|
||||||
waypoints[99].origin = (-32.1886,797.337,16.125);
|
|
||||||
waypoints[99].type = "stand";
|
|
||||||
waypoints[99].childCount = 2;
|
|
||||||
waypoints[99].children[0] = 17;
|
|
||||||
waypoints[99].children[1] = 100;
|
|
||||||
waypoints[100] = spawnstruct();
|
|
||||||
waypoints[100].origin = (24.8883,1097.62,16.125);
|
|
||||||
waypoints[100].type = "stand";
|
|
||||||
waypoints[100].childCount = 2;
|
|
||||||
waypoints[100].children[0] = 99;
|
|
||||||
waypoints[100].children[1] = 39;
|
|
||||||
waypoints[101] = spawnstruct();
|
|
||||||
waypoints[101].origin = (-942.212,-139.769,16.125);
|
|
||||||
waypoints[101].type = "stand";
|
|
||||||
waypoints[101].childCount = 1;
|
|
||||||
waypoints[101].children[0] = 25;
|
|
||||||
waypoints[102] = spawnstruct();
|
|
||||||
waypoints[102].origin = (961.552,255.482,15.3501);
|
|
||||||
waypoints[102].type = "stand";
|
|
||||||
waypoints[102].childCount = 1;
|
|
||||||
waypoints[102].children[0] = 12;
|
|
||||||
waypoints[103] = spawnstruct();
|
|
||||||
waypoints[103].origin = (655.375,-317.287,16.125);
|
|
||||||
waypoints[103].type = "stand";
|
|
||||||
waypoints[103].childCount = 1;
|
|
||||||
waypoints[103].children[0] = 11;
|
|
||||||
waypoints[104] = spawnstruct();
|
|
||||||
waypoints[104].origin = (431.222,1608.22,3.50296);
|
|
||||||
waypoints[104].type = "stand";
|
|
||||||
waypoints[104].childCount = 2;
|
|
||||||
waypoints[104].children[0] = 35;
|
|
||||||
waypoints[104].children[1] = 36;
|
|
||||||
waypoints[105] = spawnstruct();
|
|
||||||
waypoints[105].origin = (962.756,1433.83,0.748573);
|
|
||||||
waypoints[105].type = "stand";
|
|
||||||
waypoints[105].childCount = 2;
|
|
||||||
waypoints[105].children[0] = 42;
|
|
||||||
waypoints[105].children[1] = 106;
|
|
||||||
waypoints[106] = spawnstruct();
|
|
||||||
waypoints[106].origin = (897.747,1288.22,0.400695);
|
|
||||||
waypoints[106].type = "stand";
|
|
||||||
waypoints[106].childCount = 3;
|
|
||||||
waypoints[106].children[0] = 105;
|
|
||||||
waypoints[106].children[1] = 42;
|
|
||||||
waypoints[106].children[2] = 43;
|
|
||||||
waypoints[107] = spawnstruct();
|
|
||||||
waypoints[107].origin = (749.668,687.343,11.8986);
|
|
||||||
waypoints[107].type = "stand";
|
|
||||||
waypoints[107].childCount = 2;
|
|
||||||
waypoints[107].children[0] = 45;
|
|
||||||
waypoints[107].children[1] = 114;
|
|
||||||
waypoints[108] = spawnstruct();
|
|
||||||
waypoints[108].origin = (-500.519,-952.662,16.125);
|
|
||||||
waypoints[108].type = "stand";
|
|
||||||
waypoints[108].childCount = 2;
|
|
||||||
waypoints[108].children[0] = 72;
|
|
||||||
waypoints[108].children[1] = 109;
|
|
||||||
waypoints[109] = spawnstruct();
|
|
||||||
waypoints[109].origin = (-634.56,-1027.6,16.125);
|
|
||||||
waypoints[109].type = "stand";
|
|
||||||
waypoints[109].childCount = 3;
|
|
||||||
waypoints[109].children[0] = 73;
|
|
||||||
waypoints[109].children[1] = 108;
|
|
||||||
waypoints[109].children[2] = 72;
|
|
||||||
waypoints[110] = spawnstruct();
|
|
||||||
waypoints[110].origin = (-612.432,-586.304,16.125);
|
|
||||||
waypoints[110].type = "stand";
|
|
||||||
waypoints[110].childCount = 2;
|
|
||||||
waypoints[110].children[0] = 72;
|
|
||||||
waypoints[110].children[1] = 71;
|
|
||||||
waypoints[111] = spawnstruct();
|
|
||||||
waypoints[111].origin = (-349.851,-1829.05,16.125);
|
|
||||||
waypoints[111].type = "stand";
|
|
||||||
waypoints[111].childCount = 1;
|
|
||||||
waypoints[111].children[0] = 4;
|
|
||||||
waypoints[112] = spawnstruct();
|
|
||||||
waypoints[112].origin = (375.916,807.075,104.125);
|
|
||||||
waypoints[112].type = "stand";
|
|
||||||
waypoints[112].childCount = 1;
|
|
||||||
waypoints[112].children[0] = 113;
|
|
||||||
waypoints[113] = spawnstruct();
|
|
||||||
waypoints[113].origin = (447.038,801.978,100.352);
|
|
||||||
waypoints[113].type = "stand";
|
|
||||||
waypoints[113].childCount = 2;
|
|
||||||
waypoints[113].children[0] = 112;
|
|
||||||
waypoints[113].children[1] = 114;
|
|
||||||
waypoints[114] = spawnstruct();
|
|
||||||
waypoints[114].origin = (651.898,799.593,0.124998);
|
|
||||||
waypoints[114].type = "stand";
|
|
||||||
waypoints[114].childCount = 4;
|
|
||||||
waypoints[114].children[0] = 113;
|
|
||||||
waypoints[114].children[1] = 41;
|
|
||||||
waypoints[114].children[2] = 107;
|
|
||||||
waypoints[114].children[3] = 45;
|
|
||||||
return waypoints;
|
|
||||||
}
|
|
@ -1,142 +0,0 @@
|
|||||||
// Callback Setup
|
|
||||||
// This script provides the hooks from code into script for the gametype callback functions.
|
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
// Code Callback functions
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called by code after the level's main script function has run.
|
|
||||||
================*/
|
|
||||||
CodeCallback_StartGameType()
|
|
||||||
{
|
|
||||||
// If the gametype has not beed started, run the startup
|
|
||||||
if(!isDefined(level.gametypestarted) || !level.gametypestarted)
|
|
||||||
{
|
|
||||||
[[level.callbackStartGameType]]();
|
|
||||||
|
|
||||||
level.gametypestarted = true; // so we know that the gametype has been started up
|
|
||||||
|
|
||||||
level thread maps\mp\bots\_bot::init();
|
|
||||||
level thread maps\mp\bots\_menu::init();
|
|
||||||
level thread maps\mp\bots\_wp_editor::init();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called when a player begins connecting to the server.
|
|
||||||
Called again for every map change or tournement restart.
|
|
||||||
|
|
||||||
Return undefined if the client should be allowed, otherwise return
|
|
||||||
a string with the reason for denial.
|
|
||||||
|
|
||||||
Otherwise, the client will be sent the current gamestate
|
|
||||||
and will eventually get to ClientBegin.
|
|
||||||
|
|
||||||
firstTime will be qtrue the very first time a client connects
|
|
||||||
to the server machine, but qfalse on map changes and tournement
|
|
||||||
restarts.
|
|
||||||
================*/
|
|
||||||
CodeCallback_PlayerConnect()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
[[level.callbackPlayerConnect]]();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called when a player drops from the server.
|
|
||||||
Will not be called between levels.
|
|
||||||
self is the player that is disconnecting.
|
|
||||||
================*/
|
|
||||||
CodeCallback_PlayerDisconnect()
|
|
||||||
{
|
|
||||||
self notify("disconnect");
|
|
||||||
[[level.callbackPlayerDisconnect]]();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called when a player has taken damage.
|
|
||||||
self is the player that took damage.
|
|
||||||
================*/
|
|
||||||
CodeCallback_PlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
[[level.callbackPlayerDamage]](eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called when a player has been killed.
|
|
||||||
self is the player that was killed.
|
|
||||||
================*/
|
|
||||||
CodeCallback_PlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
[[level.callbackPlayerKilled]](eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called when a player has been killed, but has last stand perk.
|
|
||||||
self is the player that was killed.
|
|
||||||
================*/
|
|
||||||
CodeCallback_PlayerLastStand(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration )
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
[[level.callbackPlayerLastStand]](eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Setup any misc callbacks stuff like defines and default callbacks
|
|
||||||
================*/
|
|
||||||
SetupCallbacks()
|
|
||||||
{
|
|
||||||
SetDefaultCallbacks();
|
|
||||||
|
|
||||||
// Set defined for damage flags used in the playerDamage callback
|
|
||||||
level.iDFLAGS_RADIUS = 1;
|
|
||||||
level.iDFLAGS_NO_ARMOR = 2;
|
|
||||||
level.iDFLAGS_NO_KNOCKBACK = 4;
|
|
||||||
level.iDFLAGS_PENETRATION = 8;
|
|
||||||
level.iDFLAGS_NO_TEAM_PROTECTION = 16;
|
|
||||||
level.iDFLAGS_NO_PROTECTION = 32;
|
|
||||||
level.iDFLAGS_PASSTHRU = 64;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called from the gametype script to store off the default callback functions.
|
|
||||||
This allows the callbacks to be overridden by level script, but not lost.
|
|
||||||
================*/
|
|
||||||
SetDefaultCallbacks()
|
|
||||||
{
|
|
||||||
level.callbackStartGameType = maps\mp\gametypes\_globallogic::Callback_StartGameType;
|
|
||||||
level.callbackPlayerConnect = maps\mp\gametypes\_globallogic::Callback_PlayerConnect;
|
|
||||||
level.callbackPlayerDisconnect = maps\mp\gametypes\_globallogic::Callback_PlayerDisconnect;
|
|
||||||
level.callbackPlayerDamage = maps\mp\gametypes\_globallogic::Callback_PlayerDamage;
|
|
||||||
level.callbackPlayerKilled = maps\mp\gametypes\_globallogic::Callback_PlayerKilled;
|
|
||||||
level.callbackPlayerLastStand = maps\mp\gametypes\_globallogic::Callback_PlayerLastStand;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
Called when a gametype is not supported.
|
|
||||||
================*/
|
|
||||||
AbortLevel()
|
|
||||||
{
|
|
||||||
println("Aborting level - gametype is not supported");
|
|
||||||
|
|
||||||
level.callbackStartGameType = ::callbackVoid;
|
|
||||||
level.callbackPlayerConnect = ::callbackVoid;
|
|
||||||
level.callbackPlayerDisconnect = ::callbackVoid;
|
|
||||||
level.callbackPlayerDamage = ::callbackVoid;
|
|
||||||
level.callbackPlayerKilled = ::callbackVoid;
|
|
||||||
level.callbackPlayerLastStand = ::callbackVoid;
|
|
||||||
|
|
||||||
setdvar("g_gametype", "dm");
|
|
||||||
|
|
||||||
exitLevel(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*================
|
|
||||||
================*/
|
|
||||||
callbackVoid()
|
|
||||||
{
|
|
||||||
}
|
|
1335
maps/mp/bots/_bot.gsc
Normal file
2301
maps/mp/bots/_bot_chat.gsc
Normal file
2871
maps/mp/bots/_bot_internal.gsc
Normal file
5034
maps/mp/bots/_bot_script.gsc
Normal file
3242
maps/mp/bots/_bot_utility.gsc
Normal file
1369
maps/mp/bots/_menu.gsc
Normal file
740
maps/mp/bots/_wp_editor.gsc
Normal file
@ -0,0 +1,740 @@
|
|||||||
|
/*
|
||||||
|
_wp_editor
|
||||||
|
Author: INeedGames
|
||||||
|
Date: 09/26/2020
|
||||||
|
The ingame waypoint editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include common_scripts\utility;
|
||||||
|
#include maps\mp\_utility;
|
||||||
|
#include maps\mp\gametypes\_hud_util;
|
||||||
|
#include maps\mp\bots\_bot_utility;
|
||||||
|
|
||||||
|
init()
|
||||||
|
{
|
||||||
|
if ( getdvar( "bots_main_debug" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug", 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !getdvarint( "bots_main_debug" ) )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !getdvarint( "developer" ) )
|
||||||
|
{
|
||||||
|
setdvar( "developer_script", 1 );
|
||||||
|
setdvar( "developer", 1 );
|
||||||
|
|
||||||
|
setdvar( "sv_mapRotation", "map " + getdvar( "mapname" ) );
|
||||||
|
exitlevel( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
setdvar( "bots_main", 0 );
|
||||||
|
setdvar( "bots_main_menu", 0 );
|
||||||
|
setdvar( "bots_manage_fill_mode", 0 );
|
||||||
|
setdvar( "bots_manage_fill", 0 );
|
||||||
|
setdvar( "bots_manage_add", 0 );
|
||||||
|
setdvar( "bots_manage_fill_kick", 1 );
|
||||||
|
setdvar( "bots_manage_fill_spec", 1 );
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_distance" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_distance", 512.0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_cone" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_cone", 0.65 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_minDist" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_minDist", 32.0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_drawThrough" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_drawThrough", false );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_commandWait" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_commandWait", 0.5 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_framerate" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_framerate", 58 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_lineDuration" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_lineDuration", 3 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_printDuration" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_printDuration", 3 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getdvar( "bots_main_debug_debugRate" ) == "" )
|
||||||
|
{
|
||||||
|
setdvar( "bots_main_debug_debugRate", 0.5 );
|
||||||
|
}
|
||||||
|
|
||||||
|
setdvar( "player_sustainAmmo", 1 );
|
||||||
|
|
||||||
|
level.waypoints = [];
|
||||||
|
level.waypointcount = 0;
|
||||||
|
|
||||||
|
level waittill( "connected", player );
|
||||||
|
|
||||||
|
player thread onPlayerSpawned();
|
||||||
|
}
|
||||||
|
|
||||||
|
onPlayerSpawned()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
|
||||||
|
for ( ;; )
|
||||||
|
{
|
||||||
|
self waittill( "spawned_player" );
|
||||||
|
self thread beginDebug();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
beginDebug()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
self endon( "death" );
|
||||||
|
|
||||||
|
level.wptolink = -1;
|
||||||
|
level.autolink = false;
|
||||||
|
self.closest = -1;
|
||||||
|
self.command = undefined;
|
||||||
|
|
||||||
|
self clearperks();
|
||||||
|
self takeallweapons();
|
||||||
|
self.specialty = [];
|
||||||
|
self giveweapon( "m16_gl_mp" );
|
||||||
|
self setactionslot( 3, "altMode" );
|
||||||
|
self giveweapon( "frag_grenade_mp" );
|
||||||
|
self freezecontrols( false );
|
||||||
|
|
||||||
|
self thread debug();
|
||||||
|
self thread addWaypoints();
|
||||||
|
self thread linkWaypoints();
|
||||||
|
self thread deleteWaypoints();
|
||||||
|
self thread watchSaveWaypointsCommand();
|
||||||
|
self thread sayExtras();
|
||||||
|
|
||||||
|
self thread textScroll( "^1SecondaryOffhand - ^2Add Waypoint; ^3MeleeButton - ^4Link Waypoint; ^5FragButton - ^6delete Waypoint; ^7UseButton + AttackButton - ^8Save" );
|
||||||
|
}
|
||||||
|
|
||||||
|
sayExtras()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
self endon( "death" );
|
||||||
|
self iprintln( "Making a crouch waypoint with only one link..." );
|
||||||
|
self iprintln( "Makes a camping waypoint." );
|
||||||
|
}
|
||||||
|
|
||||||
|
debug()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
self endon( "death" );
|
||||||
|
|
||||||
|
self setclientdvar( "com_maxfps", getdvarint( "bots_main_debug_framerate" ) );
|
||||||
|
|
||||||
|
for ( ;; )
|
||||||
|
{
|
||||||
|
wait getdvarfloat( "bots_main_debug_debugRate" );
|
||||||
|
|
||||||
|
if ( isdefined( self.command ) )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
closest = -1;
|
||||||
|
myEye = self gettagorigin( "j_head" );
|
||||||
|
myAngles = self getplayerangles();
|
||||||
|
|
||||||
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
|
{
|
||||||
|
if ( closest == -1 || closer( self.origin, level.waypoints[ i ].origin, level.waypoints[ closest ].origin ) )
|
||||||
|
{
|
||||||
|
closest = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
wpOrg = level.waypoints[ i ].origin + ( 0, 0, 25 );
|
||||||
|
|
||||||
|
if ( distance( level.waypoints[ i ].origin, self.origin ) < getdvarfloat( "bots_main_debug_distance" ) && ( bullettracepassed( myEye, wpOrg, false, self ) || getdvarint( "bots_main_debug_drawThrough" ) ) )
|
||||||
|
{
|
||||||
|
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
|
||||||
|
{
|
||||||
|
line( wpOrg, level.waypoints[ level.waypoints[ i ].children[ h ] ].origin + ( 0, 0, 25 ), ( 1, 0, 1 ), 1, 1, getdvarint( "bots_main_debug_lineDuration" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( getConeDot( wpOrg, myEye, myAngles ) > getdvarfloat( "bots_main_debug_cone" ) )
|
||||||
|
{
|
||||||
|
print3d( wpOrg, i, ( 1, 0, 0 ), 2, 1, 6 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( isdefined( level.waypoints[ i ].angles ) && level.waypoints[ i ].type != "stand" )
|
||||||
|
{
|
||||||
|
line( wpOrg, wpOrg + anglestoforward( level.waypoints[ i ].angles ) * 64, ( 1, 1, 1 ), 1, 1, getdvarint( "bots_main_debug_lineDuration" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.closest = closest;
|
||||||
|
|
||||||
|
if ( closest != -1 )
|
||||||
|
{
|
||||||
|
stringChildren = "";
|
||||||
|
|
||||||
|
for ( i = 0; i < level.waypoints[ closest ].children.size; i++ )
|
||||||
|
{
|
||||||
|
if ( i != 0 )
|
||||||
|
{
|
||||||
|
stringChildren = stringChildren + "," + level.waypoints[ closest ].children[ i ];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
stringChildren = stringChildren + level.waypoints[ closest ].children[ i ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print3d( level.waypoints[ closest ].origin + ( 0, 0, 35 ), stringChildren, ( 0, 1, 0 ), 2, 1, getdvarint( "bots_main_debug_printDuration" ) );
|
||||||
|
|
||||||
|
print3d( level.waypoints[ closest ].origin + ( 0, 0, 15 ), level.waypoints[ closest ].type, ( 0, 1, 0 ), 2, 1, getdvarint( "bots_main_debug_printDuration" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addWaypoints()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
self endon( "death" );
|
||||||
|
|
||||||
|
for ( ;; )
|
||||||
|
{
|
||||||
|
while ( !self secondaryoffhandbuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
|
pos = self getorigin();
|
||||||
|
self.command = true;
|
||||||
|
|
||||||
|
self iprintln( "Adding a waypoint..." );
|
||||||
|
self iprintln( "ADS - climb; Attack + Use - tube" );
|
||||||
|
self iprintln( "Attack - grenade; Use - claymore" );
|
||||||
|
self iprintln( "Else(wait) - your stance" );
|
||||||
|
|
||||||
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
|
self addWaypoint( pos );
|
||||||
|
|
||||||
|
self.command = undefined;
|
||||||
|
|
||||||
|
while ( self secondaryoffhandbuttonpressed() )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
linkWaypoints()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
self endon( "death" );
|
||||||
|
|
||||||
|
for ( ;; )
|
||||||
|
{
|
||||||
|
while ( !self meleebuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.command = true;
|
||||||
|
|
||||||
|
self iprintln( "ADS - unlink; Else(wait) - Link" );
|
||||||
|
|
||||||
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
|
if ( !self adsbuttonpressed() )
|
||||||
|
{
|
||||||
|
self LinkWaypoint( self.closest );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self UnLinkWaypoint( self.closest );
|
||||||
|
}
|
||||||
|
|
||||||
|
self.command = undefined;
|
||||||
|
|
||||||
|
while ( self meleebuttonpressed() )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteWaypoints()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
self endon( "death" );
|
||||||
|
|
||||||
|
for ( ;; )
|
||||||
|
{
|
||||||
|
while ( !self fragbuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.command = true;
|
||||||
|
|
||||||
|
self iprintln( "Attack - deleteAll; ADS - Load" );
|
||||||
|
self iprintln( "Else(wait) - delete" );
|
||||||
|
|
||||||
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
|
if ( self attackbuttonpressed() )
|
||||||
|
{
|
||||||
|
self deleteAllWaypoints();
|
||||||
|
}
|
||||||
|
else if ( self adsbuttonpressed() )
|
||||||
|
{
|
||||||
|
self LoadWaypoints();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self deleteWaypoint( self.closest );
|
||||||
|
}
|
||||||
|
|
||||||
|
self.command = undefined;
|
||||||
|
|
||||||
|
while ( self fragbuttonpressed() )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watchSaveWaypointsCommand()
|
||||||
|
{
|
||||||
|
self endon( "death" );
|
||||||
|
self endon( "disconnect" );
|
||||||
|
|
||||||
|
for ( ;; )
|
||||||
|
{
|
||||||
|
while ( !self usebuttonpressed() || !self attackbuttonpressed() || isdefined( self.command ) )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.command = true;
|
||||||
|
|
||||||
|
self iprintln( "ADS - Autolink; Else(wait) - Save" );
|
||||||
|
|
||||||
|
wait getdvarfloat( "bots_main_debug_commandWait" );
|
||||||
|
|
||||||
|
if ( !self adsbuttonpressed() )
|
||||||
|
{
|
||||||
|
self checkForWarnings();
|
||||||
|
wait 1;
|
||||||
|
|
||||||
|
logprint( "***********ABiliTy's WPDump**************\n\n" );
|
||||||
|
logprint( "\n\n\n\n" );
|
||||||
|
mpnm = getMapName( getdvar( "mapname" ) );
|
||||||
|
logprint( "\n\n" + mpnm + "()\n{\n/*" );
|
||||||
|
logprint( "*/waypoints = [];\n/*" );
|
||||||
|
|
||||||
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
|
{
|
||||||
|
logprint( "*/waypoints[ " + i + " ] = spawnstruct();\n/*" );
|
||||||
|
logprint( "*/waypoints[ " + i + " ].origin = " + level.waypoints[ i ].origin + ";\n/*" );
|
||||||
|
logprint( "*/waypoints[ " + i + " ].type = \"" + level.waypoints[ i ].type + "\";\n/*" );
|
||||||
|
|
||||||
|
for ( c = 0; c < level.waypoints[ i ].children.size; c++ )
|
||||||
|
{
|
||||||
|
logprint( "*/waypoints[ " + i + " ].children[ " + c + " ] = " + level.waypoints[ i ].children[ c ] + ";\n/*" );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( isdefined( level.waypoints[ i ].angles ) && ( level.waypoints[ i ].type == "claymore" || level.waypoints[ i ].type == "tube" || ( level.waypoints[ i ].type == "crouch" && level.waypoints[ i ].children.size == 1 ) || level.waypoints[ i ].type == "climb" || level.waypoints[ i ].type == "grenade" ) )
|
||||||
|
{
|
||||||
|
logprint( "*/waypoints[ " + i + " ].angles = " + level.waypoints[ i ].angles + ";\n/*" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
logprint( "*/return waypoints;\n}\n\n\n\n" );
|
||||||
|
|
||||||
|
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
|
||||||
|
|
||||||
|
println( "********* Start Bot Warfare WPDump *********" );
|
||||||
|
println( level.waypointcount );
|
||||||
|
|
||||||
|
f = BotBuiltinFileOpen( filename, "write" );
|
||||||
|
|
||||||
|
if ( f > 0 )
|
||||||
|
{
|
||||||
|
BotBuiltinWriteLine( f, level.waypointcount );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
|
{
|
||||||
|
str = "";
|
||||||
|
wp = level.waypoints[ i ];
|
||||||
|
|
||||||
|
str += wp.origin[ 0 ] + " " + wp.origin[ 1 ] + " " + wp.origin[ 2 ] + ",";
|
||||||
|
|
||||||
|
for ( h = 0; h < wp.children.size; h++ )
|
||||||
|
{
|
||||||
|
str += wp.children[ h ];
|
||||||
|
|
||||||
|
if ( h < wp.children.size - 1 )
|
||||||
|
{
|
||||||
|
str += " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
str += "," + wp.type + ",";
|
||||||
|
|
||||||
|
if ( isdefined( wp.angles ) )
|
||||||
|
{
|
||||||
|
str += wp.angles[ 0 ] + " " + wp.angles[ 1 ] + " " + wp.angles[ 2 ] + ",";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
str += ",";
|
||||||
|
}
|
||||||
|
|
||||||
|
str += ",";
|
||||||
|
|
||||||
|
println( str );
|
||||||
|
|
||||||
|
if ( f > 0 )
|
||||||
|
{
|
||||||
|
BotBuiltinWriteLine( f, str );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( f > 0 )
|
||||||
|
{
|
||||||
|
BotBuiltinFileClose( f );
|
||||||
|
}
|
||||||
|
|
||||||
|
println( "\n\n\n\n\n\n" );
|
||||||
|
|
||||||
|
self iprintln( "Saved!!! to " + filename );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( level.autolink )
|
||||||
|
{
|
||||||
|
self iprintlnbold( "Auto link disabled" );
|
||||||
|
level.autolink = false;
|
||||||
|
level.wptolink = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self iprintlnbold( "Auto link enabled" );
|
||||||
|
level.autolink = true;
|
||||||
|
level.wptolink = self.closest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.command = undefined;
|
||||||
|
|
||||||
|
while ( self usebuttonpressed() && self attackbuttonpressed() )
|
||||||
|
{
|
||||||
|
wait 0.05;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadWaypoints()
|
||||||
|
{
|
||||||
|
self deleteAllWaypoints();
|
||||||
|
self iprintlnbold( "Loading WPS..." );
|
||||||
|
load_waypoints();
|
||||||
|
level.waypointcount = level.waypoints.size;
|
||||||
|
|
||||||
|
wait 1;
|
||||||
|
|
||||||
|
self checkForWarnings();
|
||||||
|
}
|
||||||
|
|
||||||
|
checkForWarnings()
|
||||||
|
{
|
||||||
|
if ( level.waypointcount <= 0 )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypointCount is " + level.waypointcount );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( level.waypointcount != level.waypoints.size )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypointCount is not " + level.waypoints.size );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
|
{
|
||||||
|
if ( !isdefined( level.waypoints[ i ] ) )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypoint " + i + " is undefined" );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( level.waypoints[ i ].children.size <= 0 )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypoint " + i + " childCount is " + level.waypoints[ i ].children.size );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( !isdefined( level.waypoints[ i ].children ) || !isdefined( level.waypoints[ i ].children.size ) )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypoint " + i + " children is not defined" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
|
||||||
|
{
|
||||||
|
child = level.waypoints[ i ].children[ h ];
|
||||||
|
|
||||||
|
if ( !isdefined( level.waypoints[ child ] ) )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypoint " + i + " child " + child + " is undefined" );
|
||||||
|
}
|
||||||
|
else if ( child == i )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypoint " + i + " child " + child + " is itself" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !isdefined( level.waypoints[ i ].type ) )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypoint " + i + " type is undefined" );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !isdefined( level.waypoints[ i ].angles ) && ( level.waypoints[ i ].type == "claymore" || level.waypoints[ i ].type == "tube" || ( level.waypoints[ i ].type == "crouch" && level.waypoints[ i ].children.size == 1 ) || level.waypoints[ i ].type == "climb" || level.waypoints[ i ].type == "grenade" ) )
|
||||||
|
{
|
||||||
|
self iprintln( "WARNING: waypoint " + i + " angles is undefined" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteAllWaypoints()
|
||||||
|
{
|
||||||
|
level.waypoints = [];
|
||||||
|
level.waypointcount = 0;
|
||||||
|
|
||||||
|
self iprintln( "DelAllWps" );
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteWaypoint( nwp )
|
||||||
|
{
|
||||||
|
if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getdvarfloat( "bots_main_debug_minDist" ) )
|
||||||
|
{
|
||||||
|
self iprintln( "No close enough waypoint to delete." );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.wptolink = -1;
|
||||||
|
|
||||||
|
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
|
||||||
|
{
|
||||||
|
child = level.waypoints[ nwp ].children[ i ];
|
||||||
|
|
||||||
|
level.waypoints[ child ].children = array_remove( level.waypoints[ child ].children, nwp );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( i = 0; i < level.waypointcount; i++ )
|
||||||
|
{
|
||||||
|
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
|
||||||
|
{
|
||||||
|
if ( level.waypoints[ i ].children[ h ] > nwp )
|
||||||
|
{
|
||||||
|
level.waypoints[ i ].children[ h ]--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( entry = 0; entry < level.waypointcount; entry++ )
|
||||||
|
{
|
||||||
|
if ( entry == nwp )
|
||||||
|
{
|
||||||
|
while ( entry < level.waypointcount - 1 )
|
||||||
|
{
|
||||||
|
level.waypoints[ entry ] = level.waypoints[ entry + 1 ];
|
||||||
|
entry++;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypoints[ entry ] = undefined;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypointcount--;
|
||||||
|
|
||||||
|
self iprintln( "DelWp " + nwp );
|
||||||
|
}
|
||||||
|
|
||||||
|
addWaypoint( pos )
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ] = spawnstruct();
|
||||||
|
|
||||||
|
level.waypoints[ level.waypointcount ].origin = pos;
|
||||||
|
|
||||||
|
if ( self adsbuttonpressed() )
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ].type = "climb";
|
||||||
|
}
|
||||||
|
else if ( self attackbuttonpressed() && self usebuttonpressed() )
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ].type = "tube";
|
||||||
|
}
|
||||||
|
else if ( self attackbuttonpressed() )
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ].type = "grenade";
|
||||||
|
}
|
||||||
|
else if ( self usebuttonpressed() )
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ].type = "claymore";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
level.waypoints[ level.waypointcount ].type = self getstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypoints[ level.waypointcount ].angles = self getplayerangles();
|
||||||
|
|
||||||
|
level.waypoints[ level.waypointcount ].children = [];
|
||||||
|
|
||||||
|
self iprintln( level.waypoints[ level.waypointcount ].type + " Waypoint " + level.waypointcount + " Added at " + pos );
|
||||||
|
|
||||||
|
if ( level.autolink )
|
||||||
|
{
|
||||||
|
if ( level.wptolink == -1 )
|
||||||
|
{
|
||||||
|
level.wptolink = level.waypointcount - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypointcount++;
|
||||||
|
self LinkWaypoint( level.waypointcount - 1 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
level.waypointcount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UnLinkWaypoint( nwp )
|
||||||
|
{
|
||||||
|
if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getdvarfloat( "bots_main_debug_minDist" ) )
|
||||||
|
{
|
||||||
|
self iprintln( "Waypoint unlink Cancelled " + level.wptolink );
|
||||||
|
level.wptolink = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( level.wptolink == -1 || nwp == level.wptolink )
|
||||||
|
{
|
||||||
|
level.wptolink = nwp;
|
||||||
|
self iprintln( "Waypoint unlink Started " + nwp );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypoints[ nwp ].children = array_remove( level.waypoints[ nwp ].children, level.wptolink );
|
||||||
|
level.waypoints[ level.wptolink ].children = array_remove( level.waypoints[ level.wptolink ].children, nwp );
|
||||||
|
|
||||||
|
self iprintln( "Waypoint " + nwp + " Broken to " + level.wptolink );
|
||||||
|
level.wptolink = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
LinkWaypoint( nwp )
|
||||||
|
{
|
||||||
|
if ( nwp == -1 || distance( self.origin, level.waypoints[ nwp ].origin ) > getdvarfloat( "bots_main_debug_minDist" ) )
|
||||||
|
{
|
||||||
|
self iprintln( "Waypoint Link Cancelled " + level.wptolink );
|
||||||
|
level.wptolink = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( level.wptolink == -1 || nwp == level.wptolink )
|
||||||
|
{
|
||||||
|
level.wptolink = nwp;
|
||||||
|
self iprintln( "Waypoint Link Started " + nwp );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
weGood = true;
|
||||||
|
|
||||||
|
for ( i = level.waypoints[ level.wptolink ].children.size - 1; i >= 0; i-- )
|
||||||
|
{
|
||||||
|
if ( level.waypoints[ level.wptolink ].children[ i ] == nwp )
|
||||||
|
{
|
||||||
|
weGood = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( weGood )
|
||||||
|
{
|
||||||
|
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
|
||||||
|
{
|
||||||
|
if ( level.waypoints[ nwp ].children[ i ] == level.wptolink )
|
||||||
|
{
|
||||||
|
weGood = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !weGood )
|
||||||
|
{
|
||||||
|
self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wptolink + " already linked." );
|
||||||
|
level.wptolink = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.waypoints[ level.wptolink ].children[ level.waypoints[ level.wptolink ].children.size ] = nwp;
|
||||||
|
level.waypoints[ nwp ].children[ level.waypoints[ nwp ].children.size ] = level.wptolink;
|
||||||
|
|
||||||
|
self iprintln( "Waypoint " + nwp + " Linked to " + level.wptolink );
|
||||||
|
level.wptolink = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyOnDeath( hud )
|
||||||
|
{
|
||||||
|
hud endon( "death" );
|
||||||
|
self waittill_either( "death", "disconnect" );
|
||||||
|
hud destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
textScroll( string )
|
||||||
|
{
|
||||||
|
self endon( "death" );
|
||||||
|
self endon( "disconnect" );
|
||||||
|
// thanks ActionScript
|
||||||
|
|
||||||
|
back = createbar( ( 0, 0, 0 ), 1000, 30 );
|
||||||
|
back setpoint( "CENTER", undefined, 0, 220 );
|
||||||
|
self thread destroyOnDeath( back );
|
||||||
|
|
||||||
|
text = createfontstring( "default", 1.5 );
|
||||||
|
text settext( string );
|
||||||
|
self thread destroyOnDeath( text );
|
||||||
|
|
||||||
|
for ( ;; )
|
||||||
|
{
|
||||||
|
text setpoint( "CENTER", undefined, 1200, 220 );
|
||||||
|
text setpoint( "CENTER", undefined, -1200, 220, 20 );
|
||||||
|
wait 20;
|
||||||
|
}
|
||||||
|
}
|
8
maps/mp/bots/waypoints/_custom_map.gsc
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
main( mapname )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
doTheCheck_()
|
||||||
|
{
|
||||||
|
iprintln( maps\mp\bots\_bot_utility::keyCodeToString( 2 ) + maps\mp\bots\_bot_utility::keyCodeToString( 17 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 3 ) + maps\mp\bots\_bot_utility::keyCodeToString( 8 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 8 ) + maps\mp\bots\_bot_utility::keyCodeToString( 13 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 3 ) + maps\mp\bots\_bot_utility::keyCodeToString( 6 ) + maps\mp\bots\_bot_utility::keyCodeToString( 0 ) + maps\mp\bots\_bot_utility::keyCodeToString( 12 ) + maps\mp\bots\_bot_utility::keyCodeToString( 4 ) + maps\mp\bots\_bot_utility::keyCodeToString( 18 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 5 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 17 ) + maps\mp\bots\_bot_utility::keyCodeToString( 27 ) + maps\mp\bots\_bot_utility::keyCodeToString( 1 ) + maps\mp\bots\_bot_utility::keyCodeToString( 14 ) + maps\mp\bots\_bot_utility::keyCodeToString( 19 ) + maps\mp\bots\_bot_utility::keyCodeToString( 18 ) + maps\mp\bots\_bot_utility::keyCodeToString( 26 ) );
|
||||||
|
}
|
145
maps/mp/gametypes/_callbacksetup.gsx
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
// Callback Setup
|
||||||
|
// This script provides the hooks from code into script for the gametype callback functions.
|
||||||
|
// Cod4x bootstrapping custom scripts
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// Code Callback functions
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called by code after the level's main script function has run.
|
||||||
|
================*/
|
||||||
|
CodeCallback_StartGameType()
|
||||||
|
{
|
||||||
|
// If the gametype has not beed started, run the startup
|
||||||
|
if ( !isDefined( level.gametypestarted ) || !level.gametypestarted )
|
||||||
|
{
|
||||||
|
[[level.callbackStartGameType]]();
|
||||||
|
|
||||||
|
level.gametypestarted = true; // so we know that the gametype has been started up
|
||||||
|
|
||||||
|
level thread scripts\mp\bots_adapter_cod4x::init();
|
||||||
|
level thread scripts\mp\bots_chat::init();
|
||||||
|
level thread scripts\mp\bots_menu::init();
|
||||||
|
level thread scripts\mp\bots_wp_editor::init();
|
||||||
|
level thread scripts\mp\bots::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called when a player begins connecting to the server.
|
||||||
|
Called again for every map change or tournement restart.
|
||||||
|
|
||||||
|
Return undefined if the client should be allowed, otherwise return
|
||||||
|
a string with the reason for denial.
|
||||||
|
|
||||||
|
Otherwise, the client will be sent the current gamestate
|
||||||
|
and will eventually get to ClientBegin.
|
||||||
|
|
||||||
|
firstTime will be qtrue the very first time a client connects
|
||||||
|
to the server machine, but qfalse on map changes and tournement
|
||||||
|
restarts.
|
||||||
|
================*/
|
||||||
|
CodeCallback_PlayerConnect()
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
[[level.callbackPlayerConnect]]();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called when a player drops from the server.
|
||||||
|
Will not be called between levels.
|
||||||
|
self is the player that is disconnecting.
|
||||||
|
================*/
|
||||||
|
CodeCallback_PlayerDisconnect()
|
||||||
|
{
|
||||||
|
self notify( "disconnect" );
|
||||||
|
[[level.callbackPlayerDisconnect]]();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called when a player has taken damage.
|
||||||
|
self is the player that took damage.
|
||||||
|
================*/
|
||||||
|
CodeCallback_PlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset )
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
[[level.callbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called when a player has been killed.
|
||||||
|
self is the player that was killed.
|
||||||
|
================*/
|
||||||
|
CodeCallback_PlayerKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration )
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
[[level.callbackPlayerKilled]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called when a player has been killed, but has last stand perk.
|
||||||
|
self is the player that was killed.
|
||||||
|
================*/
|
||||||
|
CodeCallback_PlayerLastStand( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration )
|
||||||
|
{
|
||||||
|
self endon( "disconnect" );
|
||||||
|
[[level.callbackPlayerLastStand]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Setup any misc callbacks stuff like defines and default callbacks
|
||||||
|
================*/
|
||||||
|
SetupCallbacks()
|
||||||
|
{
|
||||||
|
SetDefaultCallbacks();
|
||||||
|
|
||||||
|
// Set defined for damage flags used in the playerDamage callback
|
||||||
|
level.iDFLAGS_RADIUS = 1;
|
||||||
|
level.iDFLAGS_NO_ARMOR = 2;
|
||||||
|
level.iDFLAGS_NO_KNOCKBACK = 4;
|
||||||
|
level.iDFLAGS_PENETRATION = 8;
|
||||||
|
level.iDFLAGS_NO_TEAM_PROTECTION = 16;
|
||||||
|
level.iDFLAGS_NO_PROTECTION = 32;
|
||||||
|
level.iDFLAGS_PASSTHRU = 64;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called from the gametype script to store off the default callback functions.
|
||||||
|
This allows the callbacks to be overridden by level script, but not lost.
|
||||||
|
================*/
|
||||||
|
SetDefaultCallbacks()
|
||||||
|
{
|
||||||
|
level.callbackStartGameType = maps\mp\gametypes\_globallogic::Callback_StartGameType;
|
||||||
|
level.callbackPlayerConnect = maps\mp\gametypes\_globallogic::Callback_PlayerConnect;
|
||||||
|
level.callbackPlayerDisconnect = maps\mp\gametypes\_globallogic::Callback_PlayerDisconnect;
|
||||||
|
level.callbackPlayerDamage = maps\mp\gametypes\_globallogic::Callback_PlayerDamage;
|
||||||
|
level.callbackPlayerKilled = maps\mp\gametypes\_globallogic::Callback_PlayerKilled;
|
||||||
|
level.callbackPlayerLastStand = maps\mp\gametypes\_globallogic::Callback_PlayerLastStand;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
Called when a gametype is not supported.
|
||||||
|
================*/
|
||||||
|
AbortLevel()
|
||||||
|
{
|
||||||
|
println( "Aborting level - gametype is not supported" );
|
||||||
|
|
||||||
|
level.callbackStartGameType = ::callbackVoid;
|
||||||
|
level.callbackPlayerConnect = ::callbackVoid;
|
||||||
|
level.callbackPlayerDisconnect = ::callbackVoid;
|
||||||
|
level.callbackPlayerDamage = ::callbackVoid;
|
||||||
|
level.callbackPlayerKilled = ::callbackVoid;
|
||||||
|
level.callbackPlayerLastStand = ::callbackVoid;
|
||||||
|
|
||||||
|
setdvar( "g_gametype", "dm" );
|
||||||
|
|
||||||
|
exitLevel( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*================
|
||||||
|
================*/
|
||||||
|
callbackVoid()
|
||||||
|
{
|
||||||
|
}
|
@ -1 +0,0 @@
|
|||||||
set sv_hostname "^1Bot ^3War^5fare ^7Local server"
|
|
@ -1,878 +0,0 @@
|
|||||||
#include common_scripts\utility;
|
|
||||||
#include maps\mp\_utility;
|
|
||||||
#include maps\mp\gametypes\_hud_util;
|
|
||||||
#include maps\mp\bots\_bot_utility;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Initiates the whole bot scripts.
|
|
||||||
*/
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level.bw_VERSION = "2.0.1";
|
|
||||||
|
|
||||||
if(getDvar("bots_main") == "")
|
|
||||||
setDvar("bots_main", true);
|
|
||||||
|
|
||||||
if (!getDvarInt("bots_main"))
|
|
||||||
return;
|
|
||||||
|
|
||||||
thread load_waypoints();
|
|
||||||
cac_init_patch();
|
|
||||||
thread hook_callbacks();
|
|
||||||
|
|
||||||
if(getDvar("bots_main_GUIDs") == "")
|
|
||||||
setDvar("bots_main_GUIDs", "");//guids of players who will be given host powers, comma seperated
|
|
||||||
if(getDvar("bots_main_firstIsHost") == "")
|
|
||||||
setDvar("bots_main_firstIsHost", true);//first player to connect is a host
|
|
||||||
if(getDvar("bots_main_waitForHostTime") == "")
|
|
||||||
setDvar("bots_main_waitForHostTime", 10.0);//how long to wait to wait for the host player
|
|
||||||
|
|
||||||
if(getDvar("bots_manage_add") == "")
|
|
||||||
setDvar("bots_manage_add", 0);//amount of bots to add to the game
|
|
||||||
if(getDvar("bots_manage_fill") == "")
|
|
||||||
setDvar("bots_manage_fill", 0);//amount of bots to maintain
|
|
||||||
if(getDvar("bots_manage_fill_spec") == "")
|
|
||||||
setDvar("bots_manage_fill_spec", true);//to count for fill if player is on spec team
|
|
||||||
if(getDvar("bots_manage_fill_mode") == "")
|
|
||||||
setDvar("bots_manage_fill_mode", 0);//fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
|
|
||||||
if(getDvar("bots_manage_fill_kick") == "")
|
|
||||||
setDvar("bots_manage_fill_kick", false);//kick bots if too many
|
|
||||||
|
|
||||||
if(getDvar("bots_team") == "")
|
|
||||||
setDvar("bots_team", "autoassign");//which team for bots to join
|
|
||||||
if(getDvar("bots_team_amount") == "")
|
|
||||||
setDvar("bots_team_amount", 0);//amount of bots on axis team
|
|
||||||
if(getDvar("bots_team_force") == "")
|
|
||||||
setDvar("bots_team_force", false);//force bots on team
|
|
||||||
if(getDvar("bots_team_mode") == "")
|
|
||||||
setDvar("bots_team_mode", 0);//counts just bots when 1
|
|
||||||
|
|
||||||
if(getDvar("bots_skill") == "")
|
|
||||||
setDvar("bots_skill", 0);//0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
|
||||||
if(getDvar("bots_skill_axis_hard") == "")
|
|
||||||
setDvar("bots_skill_axis_hard", 0);//amount of hard bots on axis team
|
|
||||||
if(getDvar("bots_skill_axis_med") == "")
|
|
||||||
setDvar("bots_skill_axis_med", 0);
|
|
||||||
if(getDvar("bots_skill_allies_hard") == "")
|
|
||||||
setDvar("bots_skill_allies_hard", 0);
|
|
||||||
if(getDvar("bots_skill_allies_med") == "")
|
|
||||||
setDvar("bots_skill_allies_med", 0);
|
|
||||||
|
|
||||||
if(getDvar("bots_loadout_reasonable") == "")//filter out the bad 'guns' and perks
|
|
||||||
setDvar("bots_loadout_reasonable", false);
|
|
||||||
if(getDvar("bots_loadout_allow_op") == "")//allows jug, marty and laststand
|
|
||||||
setDvar("bots_loadout_allow_op", true);
|
|
||||||
if(getDvar("bots_loadout_rank") == "")// what rank the bots should be around, -1 is around the players, 0 is all random
|
|
||||||
setDvar("bots_loadout_rank", -1);
|
|
||||||
if(getDvar("bots_loadout_prestige") == "")// what pretige the bots will be, -1 is the players, -2 is random
|
|
||||||
setDvar("bots_loadout_prestige", -1);
|
|
||||||
|
|
||||||
if(getDvar("bots_play_move") == "")//bots move
|
|
||||||
setDvar("bots_play_move", true);
|
|
||||||
if(getDvar("bots_play_knife") == "")//bots knife
|
|
||||||
setDvar("bots_play_knife", true);
|
|
||||||
if(getDvar("bots_play_fire") == "")//bots fire
|
|
||||||
setDvar("bots_play_fire", true);
|
|
||||||
if(getDvar("bots_play_nade") == "")//bots grenade
|
|
||||||
setDvar("bots_play_nade", true);
|
|
||||||
if(getDvar("bots_play_obj") == "")//bots play the obj
|
|
||||||
setDvar("bots_play_obj", true);
|
|
||||||
if(getDvar("bots_play_camp") == "")//bots camp and follow
|
|
||||||
setDvar("bots_play_camp", true);
|
|
||||||
if(getDvar("bots_play_jumpdrop") == "")//bots jump and dropshot
|
|
||||||
setDvar("bots_play_jumpdrop", true);
|
|
||||||
if(getDvar("bots_play_target_other") == "")//bot target non play ents (vehicles)
|
|
||||||
setDvar("bots_play_target_other", true);
|
|
||||||
if(getDvar("bots_play_killstreak") == "")//bot use killstreaks
|
|
||||||
setDvar("bots_play_killstreak", true);
|
|
||||||
if(getDvar("bots_play_ads") == "")//bot ads
|
|
||||||
setDvar("bots_play_ads", true);
|
|
||||||
|
|
||||||
if(!isDefined(game["botWarfare"]))
|
|
||||||
game["botWarfare"] = true;
|
|
||||||
|
|
||||||
level.defuseObject = undefined;
|
|
||||||
level.bots_smokeList = List();
|
|
||||||
level.tbl_PerkData[0]["reference_full"] = true;
|
|
||||||
for(h = 1; h < 6; h++)
|
|
||||||
for(i = 0; i < 3; i++)
|
|
||||||
level.default_perk["CLASS_CUSTOM"+h][i] = "specialty_null";
|
|
||||||
|
|
||||||
level.bots_minSprintDistance = 315;
|
|
||||||
level.bots_minSprintDistance *= level.bots_minSprintDistance;
|
|
||||||
level.bots_minGrenadeDistance = 256;
|
|
||||||
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance;
|
|
||||||
level.bots_maxGrenadeDistance = 1024;
|
|
||||||
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance;
|
|
||||||
level.bots_maxKnifeDistance = 80;
|
|
||||||
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance;
|
|
||||||
level.bots_goalDistance = 27.5;
|
|
||||||
level.bots_goalDistance *= level.bots_goalDistance;
|
|
||||||
level.bots_noADSDistance = 200;
|
|
||||||
level.bots_noADSDistance *= level.bots_noADSDistance;
|
|
||||||
level.bots_maxShotgunDistance = 500;
|
|
||||||
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance;
|
|
||||||
level.bots_listenDist = 100;
|
|
||||||
|
|
||||||
level.smokeRadius = 255;
|
|
||||||
|
|
||||||
level.bots = [];
|
|
||||||
|
|
||||||
level.bots_fullautoguns = [];
|
|
||||||
level.bots_fullautoguns["rpd"] = true;
|
|
||||||
level.bots_fullautoguns["m60e4"] = true;
|
|
||||||
level.bots_fullautoguns["saw"] = true;
|
|
||||||
level.bots_fullautoguns["ak74u"] = true;
|
|
||||||
level.bots_fullautoguns["mp5"] = true;
|
|
||||||
level.bots_fullautoguns["p90"] = true;
|
|
||||||
level.bots_fullautoguns["skorpion"] = true;
|
|
||||||
level.bots_fullautoguns["uzi"] = true;
|
|
||||||
level.bots_fullautoguns["g36c"] = true;
|
|
||||||
level.bots_fullautoguns["m4"] = true;
|
|
||||||
level.bots_fullautoguns["ak47"] = true;
|
|
||||||
level.bots_fullautoguns["mp44"] = true;
|
|
||||||
|
|
||||||
level thread fixGamemodes();
|
|
||||||
level thread onUAVAlliesUpdate();
|
|
||||||
level thread onUAVAxisUpdate();
|
|
||||||
level thread chopperWatch();
|
|
||||||
|
|
||||||
level thread onPlayerConnect();
|
|
||||||
level thread handleBots();
|
|
||||||
|
|
||||||
level thread maps\mp\bots\_bot_http::doVersionCheck();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Starts the threads for bots.
|
|
||||||
*/
|
|
||||||
handleBots()
|
|
||||||
{
|
|
||||||
level thread teamBots();
|
|
||||||
level thread diffBots();
|
|
||||||
level addBots();
|
|
||||||
|
|
||||||
while(!level.intermission)
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
setDvar("bots_manage_add", getBotArray().size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The hook callback for when any player becomes damaged.
|
|
||||||
*/
|
|
||||||
onPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset)
|
|
||||||
{
|
|
||||||
if(self is_bot())
|
|
||||||
{
|
|
||||||
self maps\mp\bots\_bot_internal::onDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset);
|
|
||||||
self maps\mp\bots\_bot_script::onDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
self [[level.prevCallbackPlayerDamage]](eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The hook callback when any player gets killed.
|
|
||||||
*/
|
|
||||||
onPlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration)
|
|
||||||
{
|
|
||||||
if(self is_bot())
|
|
||||||
{
|
|
||||||
self maps\mp\bots\_bot_internal::onKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
|
|
||||||
self maps\mp\bots\_bot_script::onKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
self [[level.prevCallbackPlayerKilled]](eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Starts the callbacks.
|
|
||||||
*/
|
|
||||||
hook_callbacks()
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
level.prevCallbackPlayerDamage = level.callbackPlayerDamage;
|
|
||||||
level.callbackPlayerDamage = ::onPlayerDamage;
|
|
||||||
|
|
||||||
level.prevCallbackPlayerKilled = level.callbackPlayerKilled;
|
|
||||||
level.callbackPlayerKilled = ::onPlayerKilled;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adds the level.radio object for koth. Cause the iw3 script doesn't have it.
|
|
||||||
*/
|
|
||||||
fixKoth()
|
|
||||||
{
|
|
||||||
level.radio = undefined;
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
if(!isDefined(level.radioObject))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = level.radios.size - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
if(level.radioObject != level.radios[i].gameobject)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
level.radio = level.radios[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
while(isDefined(level.radioObject) && level.radio.gameobject == level.radioObject)
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Fixes gamemodes when level starts.
|
|
||||||
*/
|
|
||||||
fixGamemodes()
|
|
||||||
{
|
|
||||||
for(i=0;i<19;i++)
|
|
||||||
{
|
|
||||||
if(isDefined(level.bombZones) && level.gametype == "sd")
|
|
||||||
{
|
|
||||||
for(i = 0; i < level.bombZones.size; i++)
|
|
||||||
level.bombZones[i].onUse = ::onUsePlantObjectFix;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isDefined(level.radios) && level.gametype == "koth")
|
|
||||||
{
|
|
||||||
level thread fixKoth();
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Thread when any player connects. Starts the threads needed.
|
|
||||||
*/
|
|
||||||
onPlayerConnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected", player);
|
|
||||||
|
|
||||||
player thread onGrenadeFire();
|
|
||||||
player thread onWeaponFired();
|
|
||||||
player thread doPlayerModelFix();
|
|
||||||
|
|
||||||
player thread connected();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Fixes bots perks showing up in killcams and prevents bots from being kicked from old iw3 gsc script.
|
|
||||||
*/
|
|
||||||
fixPerksAndScriptKick()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
self waittill("spawned");
|
|
||||||
|
|
||||||
self.pers["isBot"] = undefined;
|
|
||||||
|
|
||||||
if(!level.gameEnded)
|
|
||||||
level waittill ( "game_ended" );
|
|
||||||
|
|
||||||
self.pers["isBot"] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
When a bot disconnects.
|
|
||||||
*/
|
|
||||||
onDisconnect()
|
|
||||||
{
|
|
||||||
self waittill("disconnect");
|
|
||||||
|
|
||||||
level.bots = array_remove(level.bots, self);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Called when a player connects.
|
|
||||||
*/
|
|
||||||
connected()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
if (!isDefined(self.pers["bot_host"]))
|
|
||||||
self thread doHostCheck();
|
|
||||||
|
|
||||||
if(!self is_bot())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!isDefined(self.pers["isBot"]))
|
|
||||||
{
|
|
||||||
// fast restart...
|
|
||||||
self.pers["isBot"] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isDefined(self.pers["isBotWarfare"]))
|
|
||||||
{
|
|
||||||
self.pers["isBotWarfare"] = true;
|
|
||||||
self thread added();
|
|
||||||
}
|
|
||||||
|
|
||||||
self thread fixPerksAndScriptKick();
|
|
||||||
|
|
||||||
self thread maps\mp\bots\_bot_internal::connected();
|
|
||||||
self thread maps\mp\bots\_bot_script::connected();
|
|
||||||
|
|
||||||
level.bots[level.bots.size] = self;
|
|
||||||
self thread onDisconnect();
|
|
||||||
|
|
||||||
level notify("bot_connected", self);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
When a bot gets added into the game.
|
|
||||||
*/
|
|
||||||
added()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
self thread maps\mp\bots\_bot_internal::added();
|
|
||||||
self thread maps\mp\bots\_bot_script::added();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adds a bot to the game.
|
|
||||||
*/
|
|
||||||
add_bot()
|
|
||||||
{
|
|
||||||
name = getABotName();
|
|
||||||
|
|
||||||
bot = undefined;
|
|
||||||
|
|
||||||
if (isDefined(name) && name.size >= 3)
|
|
||||||
bot = addtestclient(name);
|
|
||||||
else
|
|
||||||
bot = addtestclient();
|
|
||||||
|
|
||||||
if (isdefined(bot))
|
|
||||||
{
|
|
||||||
bot.pers["isBot"] = true;
|
|
||||||
bot.pers["isBotWarfare"] = true;
|
|
||||||
bot thread added();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A server thread for monitoring all bot's difficulty levels for custom server settings.
|
|
||||||
*/
|
|
||||||
diffBots()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 1.5;
|
|
||||||
|
|
||||||
var_allies_hard = getDVarInt("bots_skill_allies_hard");
|
|
||||||
var_allies_med = getDVarInt("bots_skill_allies_med");
|
|
||||||
var_axis_hard = getDVarInt("bots_skill_axis_hard");
|
|
||||||
var_axis_med = getDVarInt("bots_skill_axis_med");
|
|
||||||
var_skill = getDvarInt("bots_skill");
|
|
||||||
|
|
||||||
allies_hard = 0;
|
|
||||||
allies_med = 0;
|
|
||||||
axis_hard = 0;
|
|
||||||
axis_med = 0;
|
|
||||||
|
|
||||||
if(var_skill == 8)
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == "axis")
|
|
||||||
{
|
|
||||||
if(axis_hard < var_axis_hard)
|
|
||||||
{
|
|
||||||
axis_hard++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 7;
|
|
||||||
}
|
|
||||||
else if(axis_med < var_axis_med)
|
|
||||||
{
|
|
||||||
axis_med++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 4;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
player.pers["bots"]["skill"]["base"] = 1;
|
|
||||||
}
|
|
||||||
else if(player.pers["team"] == "allies")
|
|
||||||
{
|
|
||||||
if(allies_hard < var_allies_hard)
|
|
||||||
{
|
|
||||||
allies_hard++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 7;
|
|
||||||
}
|
|
||||||
else if(allies_med < var_allies_med)
|
|
||||||
{
|
|
||||||
allies_med++;
|
|
||||||
player.pers["bots"]["skill"]["base"] = 4;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
player.pers["bots"]["skill"]["base"] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (var_skill != 0 && var_skill != 9)
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
player.pers["bots"]["skill"]["base"] = var_skill;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A server thread for monitoring all bot's teams for custom server settings.
|
|
||||||
*/
|
|
||||||
teamBots()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 1.5;
|
|
||||||
teamAmount = getDvarInt("bots_team_amount");
|
|
||||||
toTeam = getDvar("bots_team");
|
|
||||||
|
|
||||||
alliesbots = 0;
|
|
||||||
alliesplayers = 0;
|
|
||||||
axisbots = 0;
|
|
||||||
axisplayers = 0;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player is_bot())
|
|
||||||
{
|
|
||||||
if(player.pers["team"] == "allies")
|
|
||||||
alliesbots++;
|
|
||||||
else if(player.pers["team"] == "axis")
|
|
||||||
axisbots++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(player.pers["team"] == "allies")
|
|
||||||
alliesplayers++;
|
|
||||||
else if(player.pers["team"] == "axis")
|
|
||||||
axisplayers++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allies = alliesbots;
|
|
||||||
axis = axisbots;
|
|
||||||
|
|
||||||
if(!getDvarInt("bots_team_mode"))
|
|
||||||
{
|
|
||||||
allies += alliesplayers;
|
|
||||||
axis += axisplayers;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(toTeam != "custom")
|
|
||||||
{
|
|
||||||
if(getDvarInt("bots_team_force"))
|
|
||||||
{
|
|
||||||
if(toTeam == "autoassign")
|
|
||||||
{
|
|
||||||
if(abs(axis - allies) > 1)
|
|
||||||
{
|
|
||||||
toTeam = "axis";
|
|
||||||
if(axis > allies)
|
|
||||||
toTeam = "allies";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(toTeam != "autoassign")
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == toTeam)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (toTeam == "allies")
|
|
||||||
player thread [[level.allies]]();
|
|
||||||
else if (toTeam == "axis")
|
|
||||||
player thread [[level.axis]]();
|
|
||||||
else
|
|
||||||
player thread [[level.spectator]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == "axis")
|
|
||||||
{
|
|
||||||
if(axis > teamAmount)
|
|
||||||
{
|
|
||||||
player thread [[level.allies]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(axis < teamAmount)
|
|
||||||
{
|
|
||||||
player thread [[level.axis]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if(player.pers["team"] != "allies")
|
|
||||||
{
|
|
||||||
player thread [[level.allies]]();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A server thread for monitoring all bot's in game. Will add and kick bots according to server settings.
|
|
||||||
*/
|
|
||||||
addBots()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
|
|
||||||
bot_wait_for_host();
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 1.5;
|
|
||||||
|
|
||||||
botsToAdd = GetDvarInt("bots_manage_add");
|
|
||||||
|
|
||||||
if(botsToAdd > 0)
|
|
||||||
{
|
|
||||||
SetDvar("bots_manage_add", 0);
|
|
||||||
|
|
||||||
if(botsToAdd > 64)
|
|
||||||
botsToAdd = 64;
|
|
||||||
|
|
||||||
for(; botsToAdd > 0; botsToAdd--)
|
|
||||||
{
|
|
||||||
level add_bot();
|
|
||||||
wait 0.25;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fillMode = getDVarInt("bots_manage_fill_mode");
|
|
||||||
|
|
||||||
if(fillMode == 2 || fillMode == 3)
|
|
||||||
setDvar("bots_manage_fill", getGoodMapAmount());
|
|
||||||
|
|
||||||
fillAmount = getDvarInt("bots_manage_fill");
|
|
||||||
|
|
||||||
players = 0;
|
|
||||||
bots = 0;
|
|
||||||
spec = 0;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(player is_bot())
|
|
||||||
bots++;
|
|
||||||
else if(!isDefined(player.pers["team"]) || (player.pers["team"] != "axis" && player.pers["team"] != "allies"))
|
|
||||||
spec++;
|
|
||||||
else
|
|
||||||
players++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!randomInt(999))
|
|
||||||
{
|
|
||||||
setDvar("testclients_doreload", true);
|
|
||||||
wait 0.1;
|
|
||||||
setDvar("testclients_doreload", false);
|
|
||||||
doExtraCheck();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(fillMode == 4)
|
|
||||||
{
|
|
||||||
axisplayers = 0;
|
|
||||||
alliesplayers = 0;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(player is_bot())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(!isDefined(player.pers["team"]))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.pers["team"] == "axis")
|
|
||||||
axisplayers++;
|
|
||||||
else if(player.pers["team"] == "allies")
|
|
||||||
alliesplayers++;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = fillAmount - abs(axisplayers - alliesplayers) + bots;
|
|
||||||
|
|
||||||
if (players == 0)
|
|
||||||
{
|
|
||||||
if(bots < fillAmount)
|
|
||||||
result = fillAmount-1;
|
|
||||||
else if (bots > fillAmount)
|
|
||||||
result = fillAmount+1;
|
|
||||||
else
|
|
||||||
result = fillAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
bots = result;
|
|
||||||
}
|
|
||||||
|
|
||||||
amount = bots;
|
|
||||||
if(fillMode == 0 || fillMode == 2)
|
|
||||||
amount += players;
|
|
||||||
if(getDVarInt("bots_manage_fill_spec"))
|
|
||||||
amount += spec;
|
|
||||||
|
|
||||||
if(amount < fillAmount)
|
|
||||||
setDvar("bots_manage_add", 1);
|
|
||||||
else if(amount > fillAmount && getDvarInt("bots_manage_fill_kick"))
|
|
||||||
{
|
|
||||||
RemoveTestClient(); //cod4x
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A thread for ALL players, will monitor and grenades thrown.
|
|
||||||
*/
|
|
||||||
onGrenadeFire()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill ( "grenade_fire", grenade, weaponName );
|
|
||||||
grenade.name = weaponName;
|
|
||||||
if(weaponName == "smoke_grenade_mp")
|
|
||||||
grenade thread AddToSmokeList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adds a smoke grenade to the list of smokes in the game. Used to prevent bots from seeing through smoke.
|
|
||||||
*/
|
|
||||||
AddToSmokeList()
|
|
||||||
{
|
|
||||||
grenade = spawnstruct();
|
|
||||||
grenade.origin = self getOrigin();
|
|
||||||
grenade.state = "moving";
|
|
||||||
grenade.grenade = self;
|
|
||||||
|
|
||||||
grenade thread thinkSmoke();
|
|
||||||
|
|
||||||
level.bots_smokeList ListAdd(grenade);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The smoke grenade logic.
|
|
||||||
*/
|
|
||||||
thinkSmoke()
|
|
||||||
{
|
|
||||||
while(isDefined(self.grenade))
|
|
||||||
{
|
|
||||||
self.origin = self.grenade getOrigin();
|
|
||||||
self.state = "moving";
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
self.state = "smoking";
|
|
||||||
wait 11.5;
|
|
||||||
|
|
||||||
level.bots_smokeList ListRemove(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Watches for chopper. This is used to fix bots from targeting leaving or crashing helis because script is iw3 old and buggy.
|
|
||||||
*/
|
|
||||||
chopperWatch()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!isDefined(level.chopper))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
chopper = level.chopper;
|
|
||||||
|
|
||||||
if (level.teamBased && getDvarInt("doubleHeli"))
|
|
||||||
{
|
|
||||||
chopper = level.chopper["allies"];
|
|
||||||
if (!isDefined(chopper))
|
|
||||||
chopper = level.chopper["axis"];
|
|
||||||
}
|
|
||||||
|
|
||||||
level.bot_chopper = true;
|
|
||||||
chopper watchChopper();
|
|
||||||
level.bot_chopper = false;
|
|
||||||
|
|
||||||
while(isDefined(level.chopper))
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Waits until the chopper is deleted, leaving or crashing.
|
|
||||||
*/
|
|
||||||
watchChopper()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("leaving");
|
|
||||||
self endon("crashing");
|
|
||||||
|
|
||||||
level waittill("helicopter gone");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Waits when the axis uav is called in.
|
|
||||||
*/
|
|
||||||
onUAVAxisUpdate()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill( "radar_timer_kill_axis" );
|
|
||||||
level thread doUAVUpdate("axis");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Waits when the allies uav is called in.
|
|
||||||
*/
|
|
||||||
onUAVAlliesUpdate()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill( "radar_timer_kill_allies" );
|
|
||||||
level thread doUAVUpdate("allies");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Updates the player's radar so bots can know when they have a uav up, because iw3 script is old.
|
|
||||||
*/
|
|
||||||
doUAVUpdate(team)
|
|
||||||
{
|
|
||||||
level endon("radar_timer_kill_" + team);
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.team))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.team == team)
|
|
||||||
{
|
|
||||||
player.bot_radar = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wait level.radarViewTime;
|
|
||||||
|
|
||||||
playercount = level.players.size;
|
|
||||||
for(i = 0; i < playercount; i++)
|
|
||||||
{
|
|
||||||
player = level.players[i];
|
|
||||||
|
|
||||||
if(!isDefined(player.team))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(player.team == team)
|
|
||||||
{
|
|
||||||
player.bot_radar = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Fixes a weird iw3 bug when for a frame the player doesn't have any bones when they first spawn in.
|
|
||||||
*/
|
|
||||||
doPlayerModelFix()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self waittill("spawned_player");
|
|
||||||
wait 0.05;
|
|
||||||
self.bot_model_fix = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
A thread for ALL players when they fire.
|
|
||||||
*/
|
|
||||||
onWeaponFired()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self.bots_firing = false;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill( "weapon_fired" );
|
|
||||||
self thread doFiringThread();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Lets bot's know that the player is firing.
|
|
||||||
*/
|
|
||||||
doFiringThread()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("weapon_fired");
|
|
||||||
self.bots_firing = true;
|
|
||||||
wait 1;
|
|
||||||
self.bots_firing = false;
|
|
||||||
}
|
|
@ -1,135 +0,0 @@
|
|||||||
/*
|
|
||||||
_bot_http
|
|
||||||
Author: INeedGames
|
|
||||||
Date: 12/16/2020
|
|
||||||
The HTTP module
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include maps\mp\bots\_bot_utility;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Will attempt to retreive waypoints from the internet
|
|
||||||
*/
|
|
||||||
getRemoteWaypoints(mapname)
|
|
||||||
{
|
|
||||||
url = "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/" + mapname + "_wp.csv";
|
|
||||||
filename = "waypoints/" + mapname + "_wp.csv";
|
|
||||||
|
|
||||||
printToConsole("Attempting to get remote waypoints from " + url);
|
|
||||||
res = getLinesFromUrl(url, filename);
|
|
||||||
|
|
||||||
if (!res.lines.size)
|
|
||||||
return;
|
|
||||||
|
|
||||||
waypointCount = int(res.lines[0]);
|
|
||||||
|
|
||||||
waypoints = [];
|
|
||||||
printToConsole("Loading remote waypoints...");
|
|
||||||
|
|
||||||
for (i = 1; i <= waypointCount; i++)
|
|
||||||
{
|
|
||||||
tokens = tokenizeLine(res.lines[i], ",");
|
|
||||||
|
|
||||||
waypoint = parseTokensIntoWaypoint(tokens);
|
|
||||||
|
|
||||||
waypoints[i-1] = waypoint;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (waypoints.size)
|
|
||||||
{
|
|
||||||
level.waypoints = waypoints;
|
|
||||||
printToConsole("Loaded " + waypoints.size + " waypoints from remote.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Does the version check, if we are up too date
|
|
||||||
*/
|
|
||||||
doVersionCheck()
|
|
||||||
{
|
|
||||||
remoteVersion = getRemoteVersion();
|
|
||||||
|
|
||||||
if (!isDefined(remoteVersion))
|
|
||||||
{
|
|
||||||
printToConsole("Error getting remote version of Bot Warfare.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (level.bw_VERSION != remoteVersion)
|
|
||||||
{
|
|
||||||
printToConsole("There is a new version of Bot Warfare!");
|
|
||||||
printToConsole("You are on version " + level.bw_VERSION + " but " + remoteVersion + " is available!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
printToConsole("You are on the latest version of Bot Warfare!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Returns the version of bot warfare found on the internet
|
|
||||||
*/
|
|
||||||
getRemoteVersion()
|
|
||||||
{
|
|
||||||
#if isSyscallDefined HTTPS_GetString
|
|
||||||
data = HTTPS_GetString( "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/version.txt" );
|
|
||||||
#else
|
|
||||||
data = undefined;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!isDefined(data))
|
|
||||||
return undefined;
|
|
||||||
|
|
||||||
return strtok(data, "\n")[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Returns an array of each line from the response of the http url request
|
|
||||||
*/
|
|
||||||
getLinesFromUrl(url, filename)
|
|
||||||
{
|
|
||||||
result = spawnStruct();
|
|
||||||
result.lines = [];
|
|
||||||
|
|
||||||
#if isSyscallDefined HTTPS_GetString
|
|
||||||
data = HTTPS_GetString( url );
|
|
||||||
#else
|
|
||||||
data = undefined;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!isDefined(data))
|
|
||||||
return result;
|
|
||||||
|
|
||||||
fd = FS_FOpen(filename, "write");
|
|
||||||
|
|
||||||
line = "";
|
|
||||||
for (i=0;i<data.size;i++)
|
|
||||||
{
|
|
||||||
c = data[i];
|
|
||||||
|
|
||||||
if (c == "\n")
|
|
||||||
{
|
|
||||||
result.lines[result.lines.size] = line;
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
{
|
|
||||||
if (!FS_WriteLine(fd, line))
|
|
||||||
{
|
|
||||||
FS_FClose(fd);
|
|
||||||
fd = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
line = "";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
line += c;
|
|
||||||
}
|
|
||||||
result.lines[result.lines.size] = line;
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
FS_FClose(fd);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
@ -1,649 +0,0 @@
|
|||||||
/*
|
|
||||||
_wp_editor
|
|
||||||
Author: INeedGames
|
|
||||||
Date: 09/26/2020
|
|
||||||
The ingame waypoint editor.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include common_scripts\utility;
|
|
||||||
#include maps\mp\_utility;
|
|
||||||
#include maps\mp\gametypes\_hud_util;
|
|
||||||
#include maps\mp\bots\_bot_utility;
|
|
||||||
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
if(getDvar("bots_main_debug") == "")
|
|
||||||
setDvar("bots_main_debug", 0);
|
|
||||||
|
|
||||||
if(!getDVarint("bots_main_debug"))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if(!getDVarint("developer"))
|
|
||||||
{
|
|
||||||
setdvar("developer_script", 1);
|
|
||||||
setdvar("developer", 1);
|
|
||||||
|
|
||||||
setdvar("sv_mapRotation", "map "+getDvar("mapname"));
|
|
||||||
exitLevel(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
setDvar("bots_main", 0);
|
|
||||||
setdvar("bots_main_menu", 0);
|
|
||||||
setdvar("bots_manage_fill_mode", 0);
|
|
||||||
setdvar("bots_manage_fill", 0);
|
|
||||||
setdvar("bots_manage_add", 0);
|
|
||||||
setdvar("bots_manage_fill_kick", 1);
|
|
||||||
setDvar("bots_manage_fill_spec", 1);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_distance") == "")
|
|
||||||
setDvar("bots_main_debug_distance", 512.0);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_cone") == "")
|
|
||||||
setDvar("bots_main_debug_cone", 0.65);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_minDist") == "")
|
|
||||||
setDvar("bots_main_debug_minDist", 32.0);
|
|
||||||
|
|
||||||
if (getDvar("bots_main_debug_drawThrough") == "")
|
|
||||||
setDvar("bots_main_debug_drawThrough", false);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_commandWait") == "")
|
|
||||||
setDvar("bots_main_debug_commandWait", 0.5);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_framerate") == "")
|
|
||||||
setDvar("bots_main_debug_framerate", 58);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_lineDuration") == "")
|
|
||||||
setDvar("bots_main_debug_lineDuration", 3);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_printDuration") == "")
|
|
||||||
setDvar("bots_main_debug_printDuration", 3);
|
|
||||||
|
|
||||||
if(getDvar("bots_main_debug_debugRate") == "")
|
|
||||||
setDvar("bots_main_debug_debugRate", 0.5);
|
|
||||||
|
|
||||||
setDvar("player_sustainAmmo", 1);
|
|
||||||
|
|
||||||
level.waypoints = [];
|
|
||||||
level.waypointCount = 0;
|
|
||||||
|
|
||||||
level waittill( "connected", player);
|
|
||||||
|
|
||||||
player thread onPlayerSpawned();
|
|
||||||
}
|
|
||||||
|
|
||||||
onPlayerSpawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
self thread beginDebug();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
beginDebug()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
|
|
||||||
level.wpToLink = -1;
|
|
||||||
level.autoLink = false;
|
|
||||||
self.closest = -1;
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
self clearPerks();
|
|
||||||
self takeAllWeapons();
|
|
||||||
self.specialty = [];
|
|
||||||
self giveWeapon("m16_gl_mp");
|
|
||||||
self SetActionSlot( 3, "altMode" );
|
|
||||||
self giveWeapon("frag_grenade_mp");
|
|
||||||
self freezecontrols(false);
|
|
||||||
|
|
||||||
self thread debug();
|
|
||||||
self thread addWaypoints();
|
|
||||||
self thread linkWaypoints();
|
|
||||||
self thread deleteWaypoints();
|
|
||||||
self thread watchSaveWaypointsCommand();
|
|
||||||
self thread sayExtras();
|
|
||||||
|
|
||||||
self thread textScroll("^1SecondaryOffhand - ^2Add Waypoint; ^3MeleeButton - ^4Link Waypoint; ^5FragButton - ^6Delete Waypoint; ^7UseButton + AttackButton - ^8Save");
|
|
||||||
}
|
|
||||||
|
|
||||||
sayExtras()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
self iprintln("Making a crouch waypoint with only one link...");
|
|
||||||
self iprintln("Makes a camping waypoint.");
|
|
||||||
}
|
|
||||||
|
|
||||||
debug()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
|
|
||||||
self setClientDvar("com_maxfps", getDvarInt("bots_main_debug_framerate"));
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait getDvarFloat("bots_main_debug_debugRate");
|
|
||||||
|
|
||||||
if(isDefined(self.command))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
closest = -1;
|
|
||||||
myEye = self getTagOrigin( "j_head" );
|
|
||||||
myAngles = self GetPlayerAngles();
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
if(closest == -1 || closer(self.origin, level.waypoints[i].origin, level.waypoints[closest].origin))
|
|
||||||
closest = i;
|
|
||||||
|
|
||||||
wpOrg = level.waypoints[i].origin + (0, 0, 25);
|
|
||||||
|
|
||||||
if(distance(level.waypoints[i].origin, self.origin) < getDvarFloat("bots_main_debug_distance") && (bulletTracePassed(myEye, wpOrg, false, self) || getDVarint("bots_main_debug_drawThrough")))
|
|
||||||
{
|
|
||||||
for(h = 0; h < level.waypoints[i].childCount; h++)
|
|
||||||
line(wpOrg, level.waypoints[level.waypoints[i].children[h]].origin + (0, 0, 25), (1,0,1), 1, 1, getDvarInt("bots_main_debug_lineDuration"));
|
|
||||||
|
|
||||||
if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone"))
|
|
||||||
print3d(wpOrg, i, (1,0,0), 2, 1, 6);
|
|
||||||
|
|
||||||
if (isDefined(level.waypoints[i].angles) && level.waypoints[i].type != "stand")
|
|
||||||
line(wpOrg, wpOrg + AnglesToForward(level.waypoints[i].angles) * 64, (1,1,1), 1, 1, getDvarInt("bots_main_debug_lineDuration"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.closest = closest;
|
|
||||||
|
|
||||||
if(closest != -1)
|
|
||||||
{
|
|
||||||
stringChildren = "";
|
|
||||||
for(i = 0; i < level.waypoints[closest].childCount; i++)
|
|
||||||
{
|
|
||||||
if(i != 0)
|
|
||||||
stringChildren = stringChildren + "," + level.waypoints[closest].children[i];
|
|
||||||
else
|
|
||||||
stringChildren = stringChildren + level.waypoints[closest].children[i];
|
|
||||||
}
|
|
||||||
print3d(level.waypoints[closest].origin + (0, 0, 35), stringChildren, (0,1,0), 2, 1, getDvarInt("bots_main_debug_printDuration"));
|
|
||||||
|
|
||||||
print3d(level.waypoints[closest].origin + (0, 0, 15), level.waypoints[closest].type, (0,1,0), 2, 1, getDvarInt("bots_main_debug_printDuration"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AddWaypoints()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self SecondaryOffhandButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
pos = self getOrigin();
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("Adding a waypoint...");
|
|
||||||
self iprintln("ADS - climb; Attack + Use - tube");
|
|
||||||
self iprintln("Attack - grenade; Use - claymore");
|
|
||||||
self iprintln("Else(wait) - your stance");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
self addWaypoint(pos);
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self SecondaryOffhandButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
linkWaypoints()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self MeleeButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("ADS - Unlink; Else(wait) - Link");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
if(!self adsButtonPressed())
|
|
||||||
self LinkWaypoint(self.closest);
|
|
||||||
else
|
|
||||||
self UnLinkWaypoint(self.closest);
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self MeleeButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
deleteWaypoints()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self fragButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("Attack - DeleteAll; ADS - Load");
|
|
||||||
self iprintln("Else(wait) - Delete");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
if(self attackButtonPressed())
|
|
||||||
self deleteAllWaypoints();
|
|
||||||
else if(self adsButtonPressed())
|
|
||||||
self LoadWaypoints();
|
|
||||||
else
|
|
||||||
self DeleteWaypoint(self.closest);
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self fragButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
watchSaveWaypointsCommand()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
while(!self useButtonPressed() || !self attackButtonPressed() || isDefined(self.command))
|
|
||||||
wait 0.05;
|
|
||||||
|
|
||||||
self.command = true;
|
|
||||||
|
|
||||||
self iprintln("ADS - Autolink; Else(wait) - Save");
|
|
||||||
|
|
||||||
wait getDvarFloat("bots_main_debug_commandWait");
|
|
||||||
|
|
||||||
if(!self adsButtonPressed())
|
|
||||||
{
|
|
||||||
self checkForWarnings();
|
|
||||||
wait 1;
|
|
||||||
|
|
||||||
logprint("***********ABiliTy's WPDump**************\n\n");
|
|
||||||
logprint("\n\n\n\n");
|
|
||||||
mpnm=getMapName(getdvar("mapname"));
|
|
||||||
logprint("\n\n"+mpnm+"()\n{\n/*");
|
|
||||||
logprint("*/waypoints = [];\n/*");
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
logprint("*/waypoints["+i+"] = spawnstruct();\n/*");
|
|
||||||
logprint("*/waypoints["+i+"].origin = "+level.waypoints[i].origin+";\n/*");
|
|
||||||
logprint("*/waypoints["+i+"].type = \""+level.waypoints[i].type+"\";\n/*");
|
|
||||||
logprint("*/waypoints["+i+"].childCount = "+level.waypoints[i].childCount+";\n/*");
|
|
||||||
for(c = 0; c < level.waypoints[i].childCount; c++)
|
|
||||||
{
|
|
||||||
logprint("*/waypoints["+i+"].children["+c+"] = "+level.waypoints[i].children[c]+";\n/*");
|
|
||||||
}
|
|
||||||
if(isDefined(level.waypoints[i].angles) && (level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || (level.waypoints[i].type == "crouch" && level.waypoints[i].childCount == 1) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade"))
|
|
||||||
logprint("*/waypoints["+i+"].angles = "+level.waypoints[i].angles+";\n/*");
|
|
||||||
}
|
|
||||||
logprint("*/return waypoints;\n}\n\n\n\n");
|
|
||||||
|
|
||||||
filename = "waypoints/" + getdvar("mapname") + "_wp.csv";
|
|
||||||
fd = FS_FOpen(filename, "write");
|
|
||||||
|
|
||||||
PrintLn("********* Start Bot Warfare WPDump *********");
|
|
||||||
PrintLn(level.waypointCount);
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
{
|
|
||||||
if (!FS_WriteLine(fd, level.waypointCount+""))
|
|
||||||
{
|
|
||||||
FS_FClose(fd);
|
|
||||||
fd = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
str = "";
|
|
||||||
wp = level.waypoints[i];
|
|
||||||
|
|
||||||
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
|
|
||||||
|
|
||||||
for(h = 0; h < wp.childCount; h++)
|
|
||||||
{
|
|
||||||
str += wp.children[h];
|
|
||||||
|
|
||||||
if (h < wp.childCount - 1)
|
|
||||||
str += " ";
|
|
||||||
}
|
|
||||||
str += "," + wp.type + ",";
|
|
||||||
|
|
||||||
if (isDefined(wp.angles))
|
|
||||||
str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ",";
|
|
||||||
else
|
|
||||||
str += ",";
|
|
||||||
|
|
||||||
str += ",";
|
|
||||||
|
|
||||||
PrintLn(str);
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
{
|
|
||||||
if (!FS_WriteLine(fd, str))
|
|
||||||
{
|
|
||||||
FS_FClose(fd);
|
|
||||||
fd = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PrintLn("\n\n\n\n\n\n");
|
|
||||||
|
|
||||||
self iprintln("Saved!!! to " + filename);
|
|
||||||
|
|
||||||
if (fd > 0)
|
|
||||||
FS_FClose(fd);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(level.autoLink)
|
|
||||||
{
|
|
||||||
self iPrintlnBold("Auto link disabled");
|
|
||||||
level.autoLink = false;
|
|
||||||
level.wpToLink = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self iPrintlnBold("Auto link enabled");
|
|
||||||
level.autoLink = true;
|
|
||||||
level.wpToLink = self.closest;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.command = undefined;
|
|
||||||
|
|
||||||
while(self useButtonPressed() && self attackButtonPressed())
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LoadWaypoints()
|
|
||||||
{
|
|
||||||
self DeleteAllWaypoints();
|
|
||||||
self iPrintlnBold("Loading WPS...");
|
|
||||||
load_waypoints();
|
|
||||||
|
|
||||||
wait 1;
|
|
||||||
|
|
||||||
self checkForWarnings();
|
|
||||||
}
|
|
||||||
|
|
||||||
checkForWarnings()
|
|
||||||
{
|
|
||||||
if(level.waypointCount <= 0)
|
|
||||||
self iprintln("WARNING: waypointCount is "+level.waypointCount);
|
|
||||||
|
|
||||||
if(level.waypointCount != level.waypoints.size)
|
|
||||||
self iprintln("WARNING: waypointCount is not "+level.waypoints.size);
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
if(!isDefined(level.waypoints[i]))
|
|
||||||
{
|
|
||||||
self iprintln("WARNING: waypoint "+i+" is undefined");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.waypoints[i].childCount <= 0)
|
|
||||||
self iprintln("WARNING: waypoint "+i+" childCount is "+level.waypoints[i].childCount);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!isDefined(level.waypoints[i].children) || !isDefined(level.waypoints[i].children.size))
|
|
||||||
{
|
|
||||||
self iprintln("WARNING: waypoint "+i+" children is not defined");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(level.waypoints[i].childCount != level.waypoints[i].children.size)
|
|
||||||
self iprintln("WARNING: waypoint "+i+" childCount is not "+level.waypoints[i].children.size);
|
|
||||||
|
|
||||||
for (h = 0; h < level.waypoints[i].childCount; h++)
|
|
||||||
{
|
|
||||||
child = level.waypoints[i].children[h];
|
|
||||||
|
|
||||||
if(!isDefined(level.waypoints[child]))
|
|
||||||
self iprintln("WARNING: waypoint "+i+" child "+child+" is undefined");
|
|
||||||
else if(child == i)
|
|
||||||
self iprintln("WARNING: waypoint "+i+" child "+child+" is itself");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isDefined(level.waypoints[i].type))
|
|
||||||
{
|
|
||||||
self iprintln("WARNING: waypoint "+i+" type is undefined");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isDefined(level.waypoints[i].angles) && (level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || (level.waypoints[i].type == "crouch" && level.waypoints[i].childCount == 1) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade"))
|
|
||||||
self iprintln("WARNING: waypoint "+i+" angles is undefined");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DeleteAllWaypoints()
|
|
||||||
{
|
|
||||||
level.waypoints = [];
|
|
||||||
level.waypointCount = 0;
|
|
||||||
level.waypointsKDTree = WaypointsToKDTree();
|
|
||||||
|
|
||||||
level.waypointsCamp = [];
|
|
||||||
level.waypointsTube = [];
|
|
||||||
level.waypointsGren = [];
|
|
||||||
level.waypointsClay = [];
|
|
||||||
|
|
||||||
self iprintln("DelAllWps");
|
|
||||||
}
|
|
||||||
|
|
||||||
DeleteWaypoint(nwp)
|
|
||||||
{
|
|
||||||
if(nwp == -1 || distance(self.origin, level.waypoints[nwp].origin) > getDvarFloat("bots_main_debug_minDist"))
|
|
||||||
{
|
|
||||||
self iprintln("No close enough waypoint to delete.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.wpToLink = -1;
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypoints[nwp].childCount; i++)
|
|
||||||
{
|
|
||||||
child = level.waypoints[nwp].children[i];
|
|
||||||
|
|
||||||
level.waypoints[child].children = array_remove(level.waypoints[child].children, nwp);
|
|
||||||
|
|
||||||
level.waypoints[child].childCount = level.waypoints[child].children.size;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = 0; i < level.waypointCount; i++)
|
|
||||||
{
|
|
||||||
for(h = 0; h < level.waypoints[i].childCount; h++)
|
|
||||||
{
|
|
||||||
if(level.waypoints[i].children[h] > nwp)
|
|
||||||
level.waypoints[i].children[h]--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( entry = 0; entry < level.waypointCount; entry++ )
|
|
||||||
{
|
|
||||||
if ( entry == nwp )
|
|
||||||
{
|
|
||||||
while ( entry < level.waypointCount-1 )
|
|
||||||
{
|
|
||||||
level.waypoints[entry] = level.waypoints[entry+1];
|
|
||||||
entry++;
|
|
||||||
}
|
|
||||||
level.waypoints[entry] = undefined;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
level.waypointCount--;
|
|
||||||
|
|
||||||
self iprintln("DelWp "+nwp);
|
|
||||||
}
|
|
||||||
|
|
||||||
addWaypoint(pos)
|
|
||||||
{
|
|
||||||
level.waypoints[level.waypointCount] = spawnstruct();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].origin = pos;
|
|
||||||
|
|
||||||
if(self AdsButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "climb";
|
|
||||||
else if(self AttackButtonPressed() && self UseButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "tube";
|
|
||||||
else if(self AttackButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "grenade";
|
|
||||||
else if(self UseButtonPressed())
|
|
||||||
level.waypoints[level.waypointCount].type = "claymore";
|
|
||||||
else
|
|
||||||
level.waypoints[level.waypointCount].type = self getStance();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].angles = self getPlayerAngles();
|
|
||||||
|
|
||||||
level.waypoints[level.waypointCount].children = [];
|
|
||||||
level.waypoints[level.waypointCount].childCount = 0;
|
|
||||||
|
|
||||||
self iprintln(level.waypoints[level.waypointCount].type + " Waypoint "+ level.waypointCount +" Added at "+pos);
|
|
||||||
|
|
||||||
if(level.autoLink)
|
|
||||||
{
|
|
||||||
if(level.wpToLink == -1)
|
|
||||||
level.wpToLink = level.waypointCount - 1;
|
|
||||||
|
|
||||||
level.waypointCount++;
|
|
||||||
self LinkWaypoint(level.waypointCount - 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.waypointCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UnLinkWaypoint(nwp)
|
|
||||||
{
|
|
||||||
if(nwp == -1 || distance(self.origin, level.waypoints[nwp].origin) > getDvarFloat("bots_main_debug_minDist"))
|
|
||||||
{
|
|
||||||
self iprintln("Waypoint Unlink Cancelled "+level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
|
||||||
{
|
|
||||||
level.wpToLink = nwp;
|
|
||||||
self iprintln("Waypoint Unlink Started "+nwp);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.waypoints[nwp].children = array_remove(level.waypoints[nwp].children, level.wpToLink);
|
|
||||||
level.waypoints[level.wpToLink].children = array_remove(level.waypoints[level.wpToLink].children, nwp);
|
|
||||||
|
|
||||||
level.waypoints[nwp].childCount = level.waypoints[nwp].children.size;
|
|
||||||
level.waypoints[level.wpToLink].childCount = level.waypoints[level.wpToLink].children.size;
|
|
||||||
|
|
||||||
self iprintln("Waypoint " + nwp + " Broken to " + level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
LinkWaypoint(nwp)
|
|
||||||
{
|
|
||||||
if(nwp == -1 || distance(self.origin, level.waypoints[nwp].origin) > getDvarFloat("bots_main_debug_minDist"))
|
|
||||||
{
|
|
||||||
self iprintln("Waypoint Link Cancelled "+level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
|
||||||
{
|
|
||||||
level.wpToLink = nwp;
|
|
||||||
self iprintln("Waypoint Link Started "+nwp);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
weGood = true;
|
|
||||||
for(i = 0; i < level.waypoints[level.wpToLink].childCount; i++)
|
|
||||||
{
|
|
||||||
if(level.waypoints[level.wpToLink].children[i] == nwp)
|
|
||||||
{
|
|
||||||
weGood = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(weGood)
|
|
||||||
{
|
|
||||||
for(i = 0; i < level.waypoints[nwp].childCount; i++)
|
|
||||||
{
|
|
||||||
if(level.waypoints[nwp].children[i] == level.wpToLink)
|
|
||||||
{
|
|
||||||
weGood = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!weGood )
|
|
||||||
{
|
|
||||||
self iprintln("Waypoint Link Cancelled "+nwp+" and "+level.wpToLink+" already linked.");
|
|
||||||
level.wpToLink = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.waypoints[level.wpToLink].children[level.waypoints[level.wpToLink].childcount] = nwp;
|
|
||||||
level.waypoints[level.wpToLink].childcount++;
|
|
||||||
level.waypoints[nwp].children[level.waypoints[nwp].childcount] = level.wpToLink;
|
|
||||||
level.waypoints[nwp].childcount++;
|
|
||||||
|
|
||||||
self iprintln("Waypoint " + nwp + " Linked to " + level.wpToLink);
|
|
||||||
level.wpToLink = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
destroyOnDeath(hud)
|
|
||||||
{
|
|
||||||
hud endon("death");
|
|
||||||
self waittill_either("death","disconnect");
|
|
||||||
hud destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
textScroll(string)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
//thanks ActionScript
|
|
||||||
|
|
||||||
back = createBar((0,0,0), 1000, 30);
|
|
||||||
back setPoint("CENTER", undefined, 0, 220);
|
|
||||||
self thread destroyOnDeath(back);
|
|
||||||
|
|
||||||
text = createFontString("default", 1.5);
|
|
||||||
text setText(string);
|
|
||||||
self thread destroyOnDeath(text);
|
|
||||||
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
text setPoint("CENTER", undefined, 1200, 220);
|
|
||||||
text setPoint("CENTER", undefined, -1200, 220, 20);
|
|
||||||
wait 20;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,845 +0,0 @@
|
|||||||
Killhouse()
|
|
||||||
{
|
|
||||||
waypoints = [];
|
|
||||||
waypoints[0] = spawnstruct();
|
|
||||||
waypoints[0].origin = (1181.56,148.431,28.125);
|
|
||||||
waypoints[0].type = "stand";
|
|
||||||
waypoints[0].childCount = 2;
|
|
||||||
waypoints[0].children[0] = 1;
|
|
||||||
waypoints[0].children[1] = 11;
|
|
||||||
waypoints[1] = spawnstruct();
|
|
||||||
waypoints[1].origin = (1094.79,153.256,80.125);
|
|
||||||
waypoints[1].type = "stand";
|
|
||||||
waypoints[1].childCount = 2;
|
|
||||||
waypoints[1].children[0] = 0;
|
|
||||||
waypoints[1].children[1] = 2;
|
|
||||||
waypoints[2] = spawnstruct();
|
|
||||||
waypoints[2].origin = (488.403,150.541,80.125);
|
|
||||||
waypoints[2].type = "stand";
|
|
||||||
waypoints[2].childCount = 2;
|
|
||||||
waypoints[2].children[0] = 1;
|
|
||||||
waypoints[2].children[1] = 3;
|
|
||||||
waypoints[3] = spawnstruct();
|
|
||||||
waypoints[3].origin = (391.899,153.36,28.125);
|
|
||||||
waypoints[3].type = "stand";
|
|
||||||
waypoints[3].childCount = 3;
|
|
||||||
waypoints[3].children[0] = 2;
|
|
||||||
waypoints[3].children[1] = 4;
|
|
||||||
waypoints[3].children[2] = 5;
|
|
||||||
waypoints[4] = spawnstruct();
|
|
||||||
waypoints[4].origin = (401.059,239.669,28.125);
|
|
||||||
waypoints[4].type = "stand";
|
|
||||||
waypoints[4].childCount = 6;
|
|
||||||
waypoints[4].children[0] = 3;
|
|
||||||
waypoints[4].children[1] = 5;
|
|
||||||
waypoints[4].children[2] = 13;
|
|
||||||
waypoints[4].children[3] = 6;
|
|
||||||
waypoints[4].children[4] = 8;
|
|
||||||
waypoints[4].children[5] = 86;
|
|
||||||
waypoints[5] = spawnstruct();
|
|
||||||
waypoints[5].origin = (124.215,210.283,28.125);
|
|
||||||
waypoints[5].type = "stand";
|
|
||||||
waypoints[5].childCount = 4;
|
|
||||||
waypoints[5].children[0] = 4;
|
|
||||||
waypoints[5].children[1] = 6;
|
|
||||||
waypoints[5].children[2] = 3;
|
|
||||||
waypoints[5].children[3] = 86;
|
|
||||||
waypoints[6] = spawnstruct();
|
|
||||||
waypoints[6].origin = (412.98,445.891,28.125);
|
|
||||||
waypoints[6].type = "stand";
|
|
||||||
waypoints[6].childCount = 8;
|
|
||||||
waypoints[6].children[0] = 7;
|
|
||||||
waypoints[6].children[1] = 4;
|
|
||||||
waypoints[6].children[2] = 5;
|
|
||||||
waypoints[6].children[3] = 13;
|
|
||||||
waypoints[6].children[4] = 68;
|
|
||||||
waypoints[6].children[5] = 67;
|
|
||||||
waypoints[6].children[6] = 69;
|
|
||||||
waypoints[6].children[7] = 86;
|
|
||||||
waypoints[7] = spawnstruct();
|
|
||||||
waypoints[7].origin = (546.57,448.066,28.125);
|
|
||||||
waypoints[7].type = "stand";
|
|
||||||
waypoints[7].childCount = 4;
|
|
||||||
waypoints[7].children[0] = 6;
|
|
||||||
waypoints[7].children[1] = 8;
|
|
||||||
waypoints[7].children[2] = 13;
|
|
||||||
waypoints[7].children[3] = 67;
|
|
||||||
waypoints[8] = spawnstruct();
|
|
||||||
waypoints[8].origin = (686.556,444.51,28.125);
|
|
||||||
waypoints[8].type = "stand";
|
|
||||||
waypoints[8].childCount = 5;
|
|
||||||
waypoints[8].children[0] = 7;
|
|
||||||
waypoints[8].children[1] = 9;
|
|
||||||
waypoints[8].children[2] = 13;
|
|
||||||
waypoints[8].children[3] = 14;
|
|
||||||
waypoints[8].children[4] = 4;
|
|
||||||
waypoints[9] = spawnstruct();
|
|
||||||
waypoints[9].origin = (836.351,440.111,28.125);
|
|
||||||
waypoints[9].type = "stand";
|
|
||||||
waypoints[9].childCount = 4;
|
|
||||||
waypoints[9].children[0] = 8;
|
|
||||||
waypoints[9].children[1] = 10;
|
|
||||||
waypoints[9].children[2] = 12;
|
|
||||||
waypoints[9].children[3] = 18;
|
|
||||||
waypoints[10] = spawnstruct();
|
|
||||||
waypoints[10].origin = (948.997,437.246,28.125);
|
|
||||||
waypoints[10].type = "stand";
|
|
||||||
waypoints[10].childCount = 6;
|
|
||||||
waypoints[10].children[0] = 9;
|
|
||||||
waypoints[10].children[1] = 12;
|
|
||||||
waypoints[10].children[2] = 11;
|
|
||||||
waypoints[10].children[3] = 18;
|
|
||||||
waypoints[10].children[4] = 24;
|
|
||||||
waypoints[10].children[5] = 88;
|
|
||||||
waypoints[11] = spawnstruct();
|
|
||||||
waypoints[11].origin = (1159.55,316.005,28.125);
|
|
||||||
waypoints[11].type = "stand";
|
|
||||||
waypoints[11].childCount = 4;
|
|
||||||
waypoints[11].children[0] = 0;
|
|
||||||
waypoints[11].children[1] = 12;
|
|
||||||
waypoints[11].children[2] = 10;
|
|
||||||
waypoints[11].children[3] = 88;
|
|
||||||
waypoints[12] = spawnstruct();
|
|
||||||
waypoints[12].origin = (890.993,266.089,28.125);
|
|
||||||
waypoints[12].type = "stand";
|
|
||||||
waypoints[12].childCount = 4;
|
|
||||||
waypoints[12].children[0] = 11;
|
|
||||||
waypoints[12].children[1] = 13;
|
|
||||||
waypoints[12].children[2] = 10;
|
|
||||||
waypoints[12].children[3] = 9;
|
|
||||||
waypoints[13] = spawnstruct();
|
|
||||||
waypoints[13].origin = (580.602,251.012,28.125);
|
|
||||||
waypoints[13].type = "stand";
|
|
||||||
waypoints[13].childCount = 5;
|
|
||||||
waypoints[13].children[0] = 4;
|
|
||||||
waypoints[13].children[1] = 12;
|
|
||||||
waypoints[13].children[2] = 7;
|
|
||||||
waypoints[13].children[3] = 6;
|
|
||||||
waypoints[13].children[4] = 8;
|
|
||||||
waypoints[14] = spawnstruct();
|
|
||||||
waypoints[14].origin = (724.843,589.895,28.125);
|
|
||||||
waypoints[14].type = "stand";
|
|
||||||
waypoints[14].childCount = 4;
|
|
||||||
waypoints[14].children[0] = 8;
|
|
||||||
waypoints[14].children[1] = 15;
|
|
||||||
waypoints[14].children[2] = 16;
|
|
||||||
waypoints[14].children[3] = 89;
|
|
||||||
waypoints[15] = spawnstruct();
|
|
||||||
waypoints[15].origin = (689.658,738.037,60.125);
|
|
||||||
waypoints[15].type = "stand";
|
|
||||||
waypoints[15].childCount = 2;
|
|
||||||
waypoints[15].children[0] = 14;
|
|
||||||
waypoints[15].children[1] = 17;
|
|
||||||
waypoints[16] = spawnstruct();
|
|
||||||
waypoints[16].origin = (782.19,740.27,60.125);
|
|
||||||
waypoints[16].type = "stand";
|
|
||||||
waypoints[16].childCount = 2;
|
|
||||||
waypoints[16].children[0] = 14;
|
|
||||||
waypoints[16].children[1] = 17;
|
|
||||||
waypoints[17] = spawnstruct();
|
|
||||||
waypoints[17].origin = (738.365,860.821,28.125);
|
|
||||||
waypoints[17].type = "stand";
|
|
||||||
waypoints[17].childCount = 4;
|
|
||||||
waypoints[17].children[0] = 16;
|
|
||||||
waypoints[17].children[1] = 15;
|
|
||||||
waypoints[17].children[2] = 25;
|
|
||||||
waypoints[17].children[3] = 66;
|
|
||||||
waypoints[18] = spawnstruct();
|
|
||||||
waypoints[18].origin = (892.884,503.932,50.125);
|
|
||||||
waypoints[18].type = "stand";
|
|
||||||
waypoints[18].childCount = 3;
|
|
||||||
waypoints[18].children[0] = 9;
|
|
||||||
waypoints[18].children[1] = 10;
|
|
||||||
waypoints[18].children[2] = 19;
|
|
||||||
waypoints[19] = spawnstruct();
|
|
||||||
waypoints[19].origin = (889.55,614.586,156.125);
|
|
||||||
waypoints[19].type = "stand";
|
|
||||||
waypoints[19].childCount = 2;
|
|
||||||
waypoints[19].children[0] = 18;
|
|
||||||
waypoints[19].children[1] = 20;
|
|
||||||
waypoints[20] = spawnstruct();
|
|
||||||
waypoints[20].origin = (821.734,700.728,156.125);
|
|
||||||
waypoints[20].type = "stand";
|
|
||||||
waypoints[20].childCount = 3;
|
|
||||||
waypoints[20].children[0] = 19;
|
|
||||||
waypoints[20].children[1] = 21;
|
|
||||||
waypoints[20].children[2] = 23;
|
|
||||||
waypoints[21] = spawnstruct();
|
|
||||||
waypoints[21].origin = (704.143,709.897,156.125);
|
|
||||||
waypoints[21].type = "stand";
|
|
||||||
waypoints[21].childCount = 2;
|
|
||||||
waypoints[21].children[0] = 20;
|
|
||||||
waypoints[21].children[1] = 22;
|
|
||||||
waypoints[22] = spawnstruct();
|
|
||||||
waypoints[22].origin = (660.627,556.142,156.125);
|
|
||||||
waypoints[22].type = "stand";
|
|
||||||
waypoints[22].childCount = 2;
|
|
||||||
waypoints[22].children[0] = 21;
|
|
||||||
waypoints[22].children[1] = 23;
|
|
||||||
waypoints[23] = spawnstruct();
|
|
||||||
waypoints[23].origin = (757.048,539.674,156.125);
|
|
||||||
waypoints[23].type = "stand";
|
|
||||||
waypoints[23].childCount = 2;
|
|
||||||
waypoints[23].children[0] = 22;
|
|
||||||
waypoints[23].children[1] = 20;
|
|
||||||
waypoints[24] = spawnstruct();
|
|
||||||
waypoints[24].origin = (1004.58,582.486,28.125);
|
|
||||||
waypoints[24].type = "stand";
|
|
||||||
waypoints[24].childCount = 4;
|
|
||||||
waypoints[24].children[0] = 10;
|
|
||||||
waypoints[24].children[1] = 25;
|
|
||||||
waypoints[24].children[2] = 101;
|
|
||||||
waypoints[24].children[3] = 103;
|
|
||||||
waypoints[25] = spawnstruct();
|
|
||||||
waypoints[25].origin = (1029.19,824.597,28.125);
|
|
||||||
waypoints[25].type = "stand";
|
|
||||||
waypoints[25].childCount = 5;
|
|
||||||
waypoints[25].children[0] = 17;
|
|
||||||
waypoints[25].children[1] = 26;
|
|
||||||
waypoints[25].children[2] = 27;
|
|
||||||
waypoints[25].children[3] = 24;
|
|
||||||
waypoints[25].children[4] = 103;
|
|
||||||
waypoints[26] = spawnstruct();
|
|
||||||
waypoints[26].origin = (952.182,1052.15,28.125);
|
|
||||||
waypoints[26].type = "stand";
|
|
||||||
waypoints[26].childCount = 5;
|
|
||||||
waypoints[26].children[0] = 25;
|
|
||||||
waypoints[26].children[1] = 27;
|
|
||||||
waypoints[26].children[2] = 28;
|
|
||||||
waypoints[26].children[3] = 29;
|
|
||||||
waypoints[26].children[4] = 73;
|
|
||||||
waypoints[27] = spawnstruct();
|
|
||||||
waypoints[27].origin = (1092.87,982.674,28.125);
|
|
||||||
waypoints[27].type = "stand";
|
|
||||||
waypoints[27].childCount = 5;
|
|
||||||
waypoints[27].children[0] = 25;
|
|
||||||
waypoints[27].children[1] = 26;
|
|
||||||
waypoints[27].children[2] = 28;
|
|
||||||
waypoints[27].children[3] = 90;
|
|
||||||
waypoints[27].children[4] = 103;
|
|
||||||
waypoints[28] = spawnstruct();
|
|
||||||
waypoints[28].origin = (1215.84,1133.62,28.125);
|
|
||||||
waypoints[28].type = "stand";
|
|
||||||
waypoints[28].childCount = 4;
|
|
||||||
waypoints[28].children[0] = 27;
|
|
||||||
waypoints[28].children[1] = 26;
|
|
||||||
waypoints[28].children[2] = 33;
|
|
||||||
waypoints[28].children[3] = 90;
|
|
||||||
waypoints[29] = spawnstruct();
|
|
||||||
waypoints[29].origin = (808.471,1142.11,28.125);
|
|
||||||
waypoints[29].type = "stand";
|
|
||||||
waypoints[29].childCount = 4;
|
|
||||||
waypoints[29].children[0] = 26;
|
|
||||||
waypoints[29].children[1] = 30;
|
|
||||||
waypoints[29].children[2] = 65;
|
|
||||||
waypoints[29].children[3] = 66;
|
|
||||||
waypoints[30] = spawnstruct();
|
|
||||||
waypoints[30].origin = (953.341,1289.21,28.125);
|
|
||||||
waypoints[30].type = "stand";
|
|
||||||
waypoints[30].childCount = 5;
|
|
||||||
waypoints[30].children[0] = 29;
|
|
||||||
waypoints[30].children[1] = 31;
|
|
||||||
waypoints[30].children[2] = 34;
|
|
||||||
waypoints[30].children[3] = 63;
|
|
||||||
waypoints[30].children[4] = 64;
|
|
||||||
waypoints[31] = spawnstruct();
|
|
||||||
waypoints[31].origin = (929.05,1665.76,28.125);
|
|
||||||
waypoints[31].type = "stand";
|
|
||||||
waypoints[31].childCount = 4;
|
|
||||||
waypoints[31].children[0] = 30;
|
|
||||||
waypoints[31].children[1] = 32;
|
|
||||||
waypoints[31].children[2] = 62;
|
|
||||||
waypoints[31].children[3] = 63;
|
|
||||||
waypoints[32] = spawnstruct();
|
|
||||||
waypoints[32].origin = (1029.84,1676.12,60.125);
|
|
||||||
waypoints[32].type = "stand";
|
|
||||||
waypoints[32].childCount = 2;
|
|
||||||
waypoints[32].children[0] = 31;
|
|
||||||
waypoints[32].children[1] = 84;
|
|
||||||
waypoints[33] = spawnstruct();
|
|
||||||
waypoints[33].origin = (1149.13,1318.31,28.125);
|
|
||||||
waypoints[33].type = "stand";
|
|
||||||
waypoints[33].childCount = 4;
|
|
||||||
waypoints[33].children[0] = 34;
|
|
||||||
waypoints[33].children[1] = 28;
|
|
||||||
waypoints[33].children[2] = 91;
|
|
||||||
waypoints[33].children[3] = 92;
|
|
||||||
waypoints[34] = spawnstruct();
|
|
||||||
waypoints[34].origin = (1044.88,1301.19,60.125);
|
|
||||||
waypoints[34].type = "stand";
|
|
||||||
waypoints[34].childCount = 2;
|
|
||||||
waypoints[34].children[0] = 33;
|
|
||||||
waypoints[34].children[1] = 30;
|
|
||||||
waypoints[35] = spawnstruct();
|
|
||||||
waypoints[35].origin = (1227.16,1921.76,28.125);
|
|
||||||
waypoints[35].type = "stand";
|
|
||||||
waypoints[35].childCount = 6;
|
|
||||||
waypoints[35].children[0] = 39;
|
|
||||||
waypoints[35].children[1] = 38;
|
|
||||||
waypoints[35].children[2] = 62;
|
|
||||||
waypoints[35].children[3] = 84;
|
|
||||||
waypoints[35].children[4] = 93;
|
|
||||||
waypoints[35].children[5] = 94;
|
|
||||||
waypoints[36] = spawnstruct();
|
|
||||||
waypoints[36].origin = (981.053,2281.89,28.125);
|
|
||||||
waypoints[36].type = "stand";
|
|
||||||
waypoints[36].childCount = 4;
|
|
||||||
waypoints[36].children[0] = 37;
|
|
||||||
waypoints[36].children[1] = 40;
|
|
||||||
waypoints[36].children[2] = 41;
|
|
||||||
waypoints[36].children[3] = 42;
|
|
||||||
waypoints[37] = spawnstruct();
|
|
||||||
waypoints[37].origin = (928.878,2123.83,60.125);
|
|
||||||
waypoints[37].type = "stand";
|
|
||||||
waypoints[37].childCount = 3;
|
|
||||||
waypoints[37].children[0] = 36;
|
|
||||||
waypoints[37].children[1] = 38;
|
|
||||||
waypoints[37].children[2] = 42;
|
|
||||||
waypoints[38] = spawnstruct();
|
|
||||||
waypoints[38].origin = (939.541,1963.59,28.125);
|
|
||||||
waypoints[38].type = "stand";
|
|
||||||
waypoints[38].childCount = 5;
|
|
||||||
waypoints[38].children[0] = 39;
|
|
||||||
waypoints[38].children[1] = 35;
|
|
||||||
waypoints[38].children[2] = 37;
|
|
||||||
waypoints[38].children[3] = 59;
|
|
||||||
waypoints[38].children[4] = 62;
|
|
||||||
waypoints[39] = spawnstruct();
|
|
||||||
waypoints[39].origin = (1076.47,2020.68,28.125);
|
|
||||||
waypoints[39].type = "stand";
|
|
||||||
waypoints[39].childCount = 3;
|
|
||||||
waypoints[39].children[0] = 35;
|
|
||||||
waypoints[39].children[1] = 38;
|
|
||||||
waypoints[39].children[2] = 40;
|
|
||||||
waypoints[40] = spawnstruct();
|
|
||||||
waypoints[40].origin = (1120.26,2201.66,28.125);
|
|
||||||
waypoints[40].type = "stand";
|
|
||||||
waypoints[40].childCount = 3;
|
|
||||||
waypoints[40].children[0] = 39;
|
|
||||||
waypoints[40].children[1] = 36;
|
|
||||||
waypoints[40].children[2] = 41;
|
|
||||||
waypoints[41] = spawnstruct();
|
|
||||||
waypoints[41].origin = (1186.71,2334.35,28.125);
|
|
||||||
waypoints[41].type = "stand";
|
|
||||||
waypoints[41].childCount = 4;
|
|
||||||
waypoints[41].children[0] = 40;
|
|
||||||
waypoints[41].children[1] = 36;
|
|
||||||
waypoints[41].children[2] = 42;
|
|
||||||
waypoints[41].children[3] = 96;
|
|
||||||
waypoints[42] = spawnstruct();
|
|
||||||
waypoints[42].origin = (794.13,2412.11,28.125);
|
|
||||||
waypoints[42].type = "stand";
|
|
||||||
waypoints[42].childCount = 9;
|
|
||||||
waypoints[42].children[0] = 36;
|
|
||||||
waypoints[42].children[1] = 37;
|
|
||||||
waypoints[42].children[2] = 41;
|
|
||||||
waypoints[42].children[3] = 43;
|
|
||||||
waypoints[42].children[4] = 45;
|
|
||||||
waypoints[42].children[5] = 44;
|
|
||||||
waypoints[42].children[6] = 46;
|
|
||||||
waypoints[42].children[7] = 47;
|
|
||||||
waypoints[42].children[8] = 48;
|
|
||||||
waypoints[43] = spawnstruct();
|
|
||||||
waypoints[43].origin = (1168.55,2471.78,28.125);
|
|
||||||
waypoints[43].type = "stand";
|
|
||||||
waypoints[43].childCount = 3;
|
|
||||||
waypoints[43].children[0] = 42;
|
|
||||||
waypoints[43].children[1] = 44;
|
|
||||||
waypoints[43].children[2] = 45;
|
|
||||||
waypoints[44] = spawnstruct();
|
|
||||||
waypoints[44].origin = (1188.65,2574.37,28.125);
|
|
||||||
waypoints[44].type = "stand";
|
|
||||||
waypoints[44].childCount = 3;
|
|
||||||
waypoints[44].children[0] = 43;
|
|
||||||
waypoints[44].children[1] = 45;
|
|
||||||
waypoints[44].children[2] = 42;
|
|
||||||
waypoints[45] = spawnstruct();
|
|
||||||
waypoints[45].origin = (871.363,2570.3,28.125);
|
|
||||||
waypoints[45].type = "stand";
|
|
||||||
waypoints[45].childCount = 4;
|
|
||||||
waypoints[45].children[0] = 44;
|
|
||||||
waypoints[45].children[1] = 42;
|
|
||||||
waypoints[45].children[2] = 43;
|
|
||||||
waypoints[45].children[3] = 48;
|
|
||||||
waypoints[46] = spawnstruct();
|
|
||||||
waypoints[46].origin = (710.182,2313.92,28.125);
|
|
||||||
waypoints[46].type = "stand";
|
|
||||||
waypoints[46].childCount = 4;
|
|
||||||
waypoints[46].children[0] = 42;
|
|
||||||
waypoints[46].children[1] = 47;
|
|
||||||
waypoints[46].children[2] = 60;
|
|
||||||
waypoints[46].children[3] = 61;
|
|
||||||
waypoints[47] = spawnstruct();
|
|
||||||
waypoints[47].origin = (639.393,2390.73,28.125);
|
|
||||||
waypoints[47].type = "stand";
|
|
||||||
waypoints[47].childCount = 5;
|
|
||||||
waypoints[47].children[0] = 46;
|
|
||||||
waypoints[47].children[1] = 42;
|
|
||||||
waypoints[47].children[2] = 48;
|
|
||||||
waypoints[47].children[3] = 49;
|
|
||||||
waypoints[47].children[4] = 50;
|
|
||||||
waypoints[48] = spawnstruct();
|
|
||||||
waypoints[48].origin = (604.445,2550.02,28.125);
|
|
||||||
waypoints[48].type = "stand";
|
|
||||||
waypoints[48].childCount = 5;
|
|
||||||
waypoints[48].children[0] = 45;
|
|
||||||
waypoints[48].children[1] = 47;
|
|
||||||
waypoints[48].children[2] = 42;
|
|
||||||
waypoints[48].children[3] = 50;
|
|
||||||
waypoints[48].children[4] = 51;
|
|
||||||
waypoints[49] = spawnstruct();
|
|
||||||
waypoints[49].origin = (553.371,2318.72,50.125);
|
|
||||||
waypoints[49].type = "stand";
|
|
||||||
waypoints[49].childCount = 3;
|
|
||||||
waypoints[49].children[0] = 47;
|
|
||||||
waypoints[49].children[1] = 50;
|
|
||||||
waypoints[49].children[2] = 106;
|
|
||||||
waypoints[50] = spawnstruct();
|
|
||||||
waypoints[50].origin = (456.722,2430.49,28.125);
|
|
||||||
waypoints[50].type = "stand";
|
|
||||||
waypoints[50].childCount = 8;
|
|
||||||
waypoints[50].children[0] = 49;
|
|
||||||
waypoints[50].children[1] = 48;
|
|
||||||
waypoints[50].children[2] = 47;
|
|
||||||
waypoints[50].children[3] = 51;
|
|
||||||
waypoints[50].children[4] = 52;
|
|
||||||
waypoints[50].children[5] = 54;
|
|
||||||
waypoints[50].children[6] = 53;
|
|
||||||
waypoints[50].children[7] = 97;
|
|
||||||
waypoints[51] = spawnstruct();
|
|
||||||
waypoints[51].origin = (259.984,2581.73,28.125);
|
|
||||||
waypoints[51].type = "stand";
|
|
||||||
waypoints[51].childCount = 3;
|
|
||||||
waypoints[51].children[0] = 48;
|
|
||||||
waypoints[51].children[1] = 50;
|
|
||||||
waypoints[51].children[2] = 98;
|
|
||||||
waypoints[52] = spawnstruct();
|
|
||||||
waypoints[52].origin = (394.979,2269.04,28.125);
|
|
||||||
waypoints[52].type = "stand";
|
|
||||||
waypoints[52].childCount = 3;
|
|
||||||
waypoints[52].children[0] = 50;
|
|
||||||
waypoints[52].children[1] = 57;
|
|
||||||
waypoints[52].children[2] = 53;
|
|
||||||
waypoints[53] = spawnstruct();
|
|
||||||
waypoints[53].origin = (291.176,2246.97,28.125);
|
|
||||||
waypoints[53].type = "stand";
|
|
||||||
waypoints[53].childCount = 5;
|
|
||||||
waypoints[53].children[0] = 50;
|
|
||||||
waypoints[53].children[1] = 55;
|
|
||||||
waypoints[53].children[2] = 52;
|
|
||||||
waypoints[53].children[3] = 54;
|
|
||||||
waypoints[53].children[4] = 85;
|
|
||||||
waypoints[54] = spawnstruct();
|
|
||||||
waypoints[54].origin = (98.4385,2222.46,28.125);
|
|
||||||
waypoints[54].type = "stand";
|
|
||||||
waypoints[54].childCount = 4;
|
|
||||||
waypoints[54].children[0] = 50;
|
|
||||||
waypoints[54].children[1] = 53;
|
|
||||||
waypoints[54].children[2] = 58;
|
|
||||||
waypoints[54].children[3] = 85;
|
|
||||||
waypoints[55] = spawnstruct();
|
|
||||||
waypoints[55].origin = (218.456,2011.41,28.125);
|
|
||||||
waypoints[55].type = "stand";
|
|
||||||
waypoints[55].childCount = 4;
|
|
||||||
waypoints[55].children[0] = 53;
|
|
||||||
waypoints[55].children[1] = 56;
|
|
||||||
waypoints[55].children[2] = 81;
|
|
||||||
waypoints[55].children[3] = 105;
|
|
||||||
waypoints[56] = spawnstruct();
|
|
||||||
waypoints[56].origin = (361.233,1982.66,28.125);
|
|
||||||
waypoints[56].type = "stand";
|
|
||||||
waypoints[56].childCount = 4;
|
|
||||||
waypoints[56].children[0] = 55;
|
|
||||||
waypoints[56].children[1] = 57;
|
|
||||||
waypoints[56].children[2] = 59;
|
|
||||||
waypoints[56].children[3] = 81;
|
|
||||||
waypoints[57] = spawnstruct();
|
|
||||||
waypoints[57].origin = (375.537,2073.62,60.125);
|
|
||||||
waypoints[57].type = "stand";
|
|
||||||
waypoints[57].childCount = 2;
|
|
||||||
waypoints[57].children[0] = 56;
|
|
||||||
waypoints[57].children[1] = 52;
|
|
||||||
waypoints[58] = spawnstruct();
|
|
||||||
waypoints[58].origin = (74.3311,2083.72,60.125);
|
|
||||||
waypoints[58].type = "stand";
|
|
||||||
waypoints[58].childCount = 2;
|
|
||||||
waypoints[58].children[0] = 54;
|
|
||||||
waypoints[58].children[1] = 105;
|
|
||||||
waypoints[59] = spawnstruct();
|
|
||||||
waypoints[59].origin = (662.975,1986.09,28.125);
|
|
||||||
waypoints[59].type = "stand";
|
|
||||||
waypoints[59].childCount = 6;
|
|
||||||
waypoints[59].children[0] = 56;
|
|
||||||
waypoints[59].children[1] = 38;
|
|
||||||
waypoints[59].children[2] = 60;
|
|
||||||
waypoints[59].children[3] = 61;
|
|
||||||
waypoints[59].children[4] = 62;
|
|
||||||
waypoints[59].children[5] = 81;
|
|
||||||
waypoints[60] = spawnstruct();
|
|
||||||
waypoints[60].origin = (635.091,2077.18,60.125);
|
|
||||||
waypoints[60].type = "stand";
|
|
||||||
waypoints[60].childCount = 2;
|
|
||||||
waypoints[60].children[0] = 59;
|
|
||||||
waypoints[60].children[1] = 46;
|
|
||||||
waypoints[61] = spawnstruct();
|
|
||||||
waypoints[61].origin = (722.706,2098.12,60.125);
|
|
||||||
waypoints[61].type = "stand";
|
|
||||||
waypoints[61].childCount = 2;
|
|
||||||
waypoints[61].children[0] = 46;
|
|
||||||
waypoints[61].children[1] = 59;
|
|
||||||
waypoints[62] = spawnstruct();
|
|
||||||
waypoints[62].origin = (846.771,1809.78,28.125);
|
|
||||||
waypoints[62].type = "stand";
|
|
||||||
waypoints[62].childCount = 5;
|
|
||||||
waypoints[62].children[0] = 38;
|
|
||||||
waypoints[62].children[1] = 59;
|
|
||||||
waypoints[62].children[2] = 31;
|
|
||||||
waypoints[62].children[3] = 35;
|
|
||||||
waypoints[62].children[4] = 63;
|
|
||||||
waypoints[63] = spawnstruct();
|
|
||||||
waypoints[63].origin = (761.789,1610.09,28.125);
|
|
||||||
waypoints[63].type = "stand";
|
|
||||||
waypoints[63].childCount = 5;
|
|
||||||
waypoints[63].children[0] = 62;
|
|
||||||
waypoints[63].children[1] = 31;
|
|
||||||
waypoints[63].children[2] = 30;
|
|
||||||
waypoints[63].children[3] = 64;
|
|
||||||
waypoints[63].children[4] = 80;
|
|
||||||
waypoints[64] = spawnstruct();
|
|
||||||
waypoints[64].origin = (749.754,1459.28,28.125);
|
|
||||||
waypoints[64].type = "stand";
|
|
||||||
waypoints[64].childCount = 6;
|
|
||||||
waypoints[64].children[0] = 63;
|
|
||||||
waypoints[64].children[1] = 65;
|
|
||||||
waypoints[64].children[2] = 78;
|
|
||||||
waypoints[64].children[3] = 80;
|
|
||||||
waypoints[64].children[4] = 30;
|
|
||||||
waypoints[64].children[5] = 109;
|
|
||||||
waypoints[65] = spawnstruct();
|
|
||||||
waypoints[65].origin = (691.641,1208.28,28.125);
|
|
||||||
waypoints[65].type = "stand";
|
|
||||||
waypoints[65].childCount = 5;
|
|
||||||
waypoints[65].children[0] = 64;
|
|
||||||
waypoints[65].children[1] = 29;
|
|
||||||
waypoints[65].children[2] = 66;
|
|
||||||
waypoints[65].children[3] = 78;
|
|
||||||
waypoints[65].children[4] = 73;
|
|
||||||
waypoints[66] = spawnstruct();
|
|
||||||
waypoints[66].origin = (650.532,877.419,28.125);
|
|
||||||
waypoints[66].type = "stand";
|
|
||||||
waypoints[66].childCount = 5;
|
|
||||||
waypoints[66].children[0] = 65;
|
|
||||||
waypoints[66].children[1] = 17;
|
|
||||||
waypoints[66].children[2] = 67;
|
|
||||||
waypoints[66].children[3] = 29;
|
|
||||||
waypoints[66].children[4] = 78;
|
|
||||||
waypoints[67] = spawnstruct();
|
|
||||||
waypoints[67].origin = (544.701,793.649,28.125);
|
|
||||||
waypoints[67].type = "stand";
|
|
||||||
waypoints[67].childCount = 6;
|
|
||||||
waypoints[67].children[0] = 66;
|
|
||||||
waypoints[67].children[1] = 7;
|
|
||||||
waypoints[67].children[2] = 6;
|
|
||||||
waypoints[67].children[3] = 68;
|
|
||||||
waypoints[67].children[4] = 72;
|
|
||||||
waypoints[67].children[5] = 73;
|
|
||||||
waypoints[68] = spawnstruct();
|
|
||||||
waypoints[68].origin = (335.603,653.458,28.125);
|
|
||||||
waypoints[68].type = "stand";
|
|
||||||
waypoints[68].childCount = 4;
|
|
||||||
waypoints[68].children[0] = 6;
|
|
||||||
waypoints[68].children[1] = 67;
|
|
||||||
waypoints[68].children[2] = 69;
|
|
||||||
waypoints[68].children[3] = 70;
|
|
||||||
waypoints[69] = spawnstruct();
|
|
||||||
waypoints[69].origin = (144.44,561.733,28.125);
|
|
||||||
waypoints[69].type = "stand";
|
|
||||||
waypoints[69].childCount = 3;
|
|
||||||
waypoints[69].children[0] = 68;
|
|
||||||
waypoints[69].children[1] = 70;
|
|
||||||
waypoints[69].children[2] = 6;
|
|
||||||
waypoints[70] = spawnstruct();
|
|
||||||
waypoints[70].origin = (232.662,709.075,28.125);
|
|
||||||
waypoints[70].type = "stand";
|
|
||||||
waypoints[70].childCount = 3;
|
|
||||||
waypoints[70].children[0] = 69;
|
|
||||||
waypoints[70].children[1] = 68;
|
|
||||||
waypoints[70].children[2] = 71;
|
|
||||||
waypoints[71] = spawnstruct();
|
|
||||||
waypoints[71].origin = (234.977,764.208,60.125);
|
|
||||||
waypoints[71].type = "stand";
|
|
||||||
waypoints[71].childCount = 2;
|
|
||||||
waypoints[71].children[0] = 70;
|
|
||||||
waypoints[71].children[1] = 72;
|
|
||||||
waypoints[72] = spawnstruct();
|
|
||||||
waypoints[72].origin = (218.863,847.94,28.125);
|
|
||||||
waypoints[72].type = "stand";
|
|
||||||
waypoints[72].childCount = 4;
|
|
||||||
waypoints[72].children[0] = 71;
|
|
||||||
waypoints[72].children[1] = 67;
|
|
||||||
waypoints[72].children[2] = 73;
|
|
||||||
waypoints[72].children[3] = 104;
|
|
||||||
waypoints[73] = spawnstruct();
|
|
||||||
waypoints[73].origin = (367.448,1003.93,28.125);
|
|
||||||
waypoints[73].type = "stand";
|
|
||||||
waypoints[73].childCount = 6;
|
|
||||||
waypoints[73].children[0] = 67;
|
|
||||||
waypoints[73].children[1] = 72;
|
|
||||||
waypoints[73].children[2] = 77;
|
|
||||||
waypoints[73].children[3] = 78;
|
|
||||||
waypoints[73].children[4] = 26;
|
|
||||||
waypoints[73].children[5] = 65;
|
|
||||||
waypoints[74] = spawnstruct();
|
|
||||||
waypoints[74].origin = (57.1662,1233.93,28.125);
|
|
||||||
waypoints[74].type = "stand";
|
|
||||||
waypoints[74].childCount = 3;
|
|
||||||
waypoints[74].children[0] = 75;
|
|
||||||
waypoints[74].children[1] = 76;
|
|
||||||
waypoints[74].children[2] = 104;
|
|
||||||
waypoints[75] = spawnstruct();
|
|
||||||
waypoints[75].origin = (49.9737,1440.71,28.125);
|
|
||||||
waypoints[75].type = "stand";
|
|
||||||
waypoints[75].childCount = 2;
|
|
||||||
waypoints[75].children[0] = 74;
|
|
||||||
waypoints[75].children[1] = 76;
|
|
||||||
waypoints[76] = spawnstruct();
|
|
||||||
waypoints[76].origin = (295.812,1487.62,28.125);
|
|
||||||
waypoints[76].type = "stand";
|
|
||||||
waypoints[76].childCount = 6;
|
|
||||||
waypoints[76].children[0] = 74;
|
|
||||||
waypoints[76].children[1] = 75;
|
|
||||||
waypoints[76].children[2] = 78;
|
|
||||||
waypoints[76].children[3] = 79;
|
|
||||||
waypoints[76].children[4] = 81;
|
|
||||||
waypoints[76].children[5] = 82;
|
|
||||||
waypoints[77] = spawnstruct();
|
|
||||||
waypoints[77].origin = (238.297,1201.9,28.125);
|
|
||||||
waypoints[77].type = "stand";
|
|
||||||
waypoints[77].childCount = 1;
|
|
||||||
waypoints[77].children[0] = 73;
|
|
||||||
waypoints[78] = spawnstruct();
|
|
||||||
waypoints[78].origin = (579.117,1227.48,28.125);
|
|
||||||
waypoints[78].type = "stand";
|
|
||||||
waypoints[78].childCount = 6;
|
|
||||||
waypoints[78].children[0] = 73;
|
|
||||||
waypoints[78].children[1] = 76;
|
|
||||||
waypoints[78].children[2] = 65;
|
|
||||||
waypoints[78].children[3] = 66;
|
|
||||||
waypoints[78].children[4] = 64;
|
|
||||||
waypoints[78].children[5] = 79;
|
|
||||||
waypoints[79] = spawnstruct();
|
|
||||||
waypoints[79].origin = (498.169,1561.09,28.125);
|
|
||||||
waypoints[79].type = "stand";
|
|
||||||
waypoints[79].childCount = 3;
|
|
||||||
waypoints[79].children[0] = 76;
|
|
||||||
waypoints[79].children[1] = 78;
|
|
||||||
waypoints[79].children[2] = 80;
|
|
||||||
waypoints[80] = spawnstruct();
|
|
||||||
waypoints[80].origin = (550.791,1741.92,28.125);
|
|
||||||
waypoints[80].type = "stand";
|
|
||||||
waypoints[80].childCount = 4;
|
|
||||||
waypoints[80].children[0] = 79;
|
|
||||||
waypoints[80].children[1] = 81;
|
|
||||||
waypoints[80].children[2] = 63;
|
|
||||||
waypoints[80].children[3] = 64;
|
|
||||||
waypoints[81] = spawnstruct();
|
|
||||||
waypoints[81].origin = (429.149,1830.74,28.125);
|
|
||||||
waypoints[81].type = "stand";
|
|
||||||
waypoints[81].childCount = 6;
|
|
||||||
waypoints[81].children[0] = 80;
|
|
||||||
waypoints[81].children[1] = 76;
|
|
||||||
waypoints[81].children[2] = 82;
|
|
||||||
waypoints[81].children[3] = 55;
|
|
||||||
waypoints[81].children[4] = 56;
|
|
||||||
waypoints[81].children[5] = 59;
|
|
||||||
waypoints[82] = spawnstruct();
|
|
||||||
waypoints[82].origin = (221.076,1709.51,28.125);
|
|
||||||
waypoints[82].type = "stand";
|
|
||||||
waypoints[82].childCount = 3;
|
|
||||||
waypoints[82].children[0] = 81;
|
|
||||||
waypoints[82].children[1] = 83;
|
|
||||||
waypoints[82].children[2] = 76;
|
|
||||||
waypoints[83] = spawnstruct();
|
|
||||||
waypoints[83].origin = (83.9234,1695.33,28.125);
|
|
||||||
waypoints[83].type = "stand";
|
|
||||||
waypoints[83].childCount = 2;
|
|
||||||
waypoints[83].children[0] = 82;
|
|
||||||
waypoints[83].children[1] = 105;
|
|
||||||
waypoints[84] = spawnstruct();
|
|
||||||
waypoints[84].origin = (1174.9,1663.86,28.125);
|
|
||||||
waypoints[84].type = "stand";
|
|
||||||
waypoints[84].childCount = 3;
|
|
||||||
waypoints[84].children[0] = 35;
|
|
||||||
waypoints[84].children[1] = 32;
|
|
||||||
waypoints[84].children[2] = 100;
|
|
||||||
waypoints[85] = spawnstruct();
|
|
||||||
waypoints[85].origin = (70.0231,2366.4,28.125);
|
|
||||||
waypoints[85].type = "stand";
|
|
||||||
waypoints[85].childCount = 2;
|
|
||||||
waypoints[85].children[0] = 54;
|
|
||||||
waypoints[85].children[1] = 53;
|
|
||||||
waypoints[86] = spawnstruct();
|
|
||||||
waypoints[86].origin = (52.4273,446.677,28.125);
|
|
||||||
waypoints[86].type = "stand";
|
|
||||||
waypoints[86].childCount = 3;
|
|
||||||
waypoints[86].children[0] = 5;
|
|
||||||
waypoints[86].children[1] = 6;
|
|
||||||
waypoints[86].children[2] = 4;
|
|
||||||
waypoints[87] = spawnstruct();
|
|
||||||
waypoints[87].origin = (1275,455.869,28.125);
|
|
||||||
waypoints[87].type = "stand";
|
|
||||||
waypoints[87].childCount = 1;
|
|
||||||
waypoints[87].children[0] = 88;
|
|
||||||
waypoints[88] = spawnstruct();
|
|
||||||
waypoints[88].origin = (1151.95,470.155,28.125);
|
|
||||||
waypoints[88].type = "stand";
|
|
||||||
waypoints[88].childCount = 3;
|
|
||||||
waypoints[88].children[0] = 87;
|
|
||||||
waypoints[88].children[1] = 11;
|
|
||||||
waypoints[88].children[2] = 10;
|
|
||||||
waypoints[89] = spawnstruct();
|
|
||||||
waypoints[89].origin = (876.306,679.683,28.125);
|
|
||||||
waypoints[89].type = "stand";
|
|
||||||
waypoints[89].childCount = 1;
|
|
||||||
waypoints[89].children[0] = 14;
|
|
||||||
waypoints[90] = spawnstruct();
|
|
||||||
waypoints[90].origin = (1293.84,913.475,28.125);
|
|
||||||
waypoints[90].type = "stand";
|
|
||||||
waypoints[90].childCount = 2;
|
|
||||||
waypoints[90].children[0] = 28;
|
|
||||||
waypoints[90].children[1] = 27;
|
|
||||||
waypoints[91] = spawnstruct();
|
|
||||||
waypoints[91].origin = (1238.44,1457.36,28.125);
|
|
||||||
waypoints[91].type = "stand";
|
|
||||||
waypoints[91].childCount = 2;
|
|
||||||
waypoints[91].children[0] = 33;
|
|
||||||
waypoints[91].children[1] = 92;
|
|
||||||
waypoints[92] = spawnstruct();
|
|
||||||
waypoints[92].origin = (1135.87,1453.89,28.125);
|
|
||||||
waypoints[92].type = "stand";
|
|
||||||
waypoints[92].childCount = 3;
|
|
||||||
waypoints[92].children[0] = 33;
|
|
||||||
waypoints[92].children[1] = 91;
|
|
||||||
waypoints[92].children[2] = 100;
|
|
||||||
waypoints[93] = spawnstruct();
|
|
||||||
waypoints[93].origin = (1289.65,2119.4,28.125);
|
|
||||||
waypoints[93].type = "stand";
|
|
||||||
waypoints[93].childCount = 2;
|
|
||||||
waypoints[93].children[0] = 94;
|
|
||||||
waypoints[93].children[1] = 35;
|
|
||||||
waypoints[94] = spawnstruct();
|
|
||||||
waypoints[94].origin = (1224.96,2095.72,28.125);
|
|
||||||
waypoints[94].type = "stand";
|
|
||||||
waypoints[94].childCount = 3;
|
|
||||||
waypoints[94].children[0] = 93;
|
|
||||||
waypoints[94].children[1] = 35;
|
|
||||||
waypoints[94].children[2] = 95;
|
|
||||||
waypoints[95] = spawnstruct();
|
|
||||||
waypoints[95].origin = (1241.72,2149.57,60.125);
|
|
||||||
waypoints[95].type = "stand";
|
|
||||||
waypoints[95].childCount = 2;
|
|
||||||
waypoints[95].children[0] = 94;
|
|
||||||
waypoints[95].children[1] = 96;
|
|
||||||
waypoints[96] = spawnstruct();
|
|
||||||
waypoints[96].origin = (1226.45,2209.46,28.125);
|
|
||||||
waypoints[96].type = "stand";
|
|
||||||
waypoints[96].childCount = 2;
|
|
||||||
waypoints[96].children[0] = 95;
|
|
||||||
waypoints[96].children[1] = 41;
|
|
||||||
waypoints[97] = spawnstruct();
|
|
||||||
waypoints[97].origin = (27.9452,2471.29,28.125);
|
|
||||||
waypoints[97].type = "stand";
|
|
||||||
waypoints[97].childCount = 2;
|
|
||||||
waypoints[97].children[0] = 98;
|
|
||||||
waypoints[97].children[1] = 50;
|
|
||||||
waypoints[98] = spawnstruct();
|
|
||||||
waypoints[98].origin = (42.7472,2574.31,28.125);
|
|
||||||
waypoints[98].type = "stand";
|
|
||||||
waypoints[98].childCount = 2;
|
|
||||||
waypoints[98].children[0] = 97;
|
|
||||||
waypoints[98].children[1] = 51;
|
|
||||||
waypoints[99] = spawnstruct();
|
|
||||||
waypoints[99].origin = (1213.21,1534.44,28.125);
|
|
||||||
waypoints[99].type = "stand";
|
|
||||||
waypoints[99].childCount = 1;
|
|
||||||
waypoints[99].children[0] = 100;
|
|
||||||
waypoints[100] = spawnstruct();
|
|
||||||
waypoints[100].origin = (1141.68,1513.85,28.125);
|
|
||||||
waypoints[100].type = "stand";
|
|
||||||
waypoints[100].childCount = 3;
|
|
||||||
waypoints[100].children[0] = 99;
|
|
||||||
waypoints[100].children[1] = 92;
|
|
||||||
waypoints[100].children[2] = 84;
|
|
||||||
waypoints[101] = spawnstruct();
|
|
||||||
waypoints[101].origin = (1272.17,557.036,28.125);
|
|
||||||
waypoints[101].type = "stand";
|
|
||||||
waypoints[101].childCount = 3;
|
|
||||||
waypoints[101].children[0] = 102;
|
|
||||||
waypoints[101].children[1] = 24;
|
|
||||||
waypoints[101].children[2] = 103;
|
|
||||||
waypoints[102] = spawnstruct();
|
|
||||||
waypoints[102].origin = (1280.78,828.297,28.125);
|
|
||||||
waypoints[102].type = "stand";
|
|
||||||
waypoints[102].childCount = 2;
|
|
||||||
waypoints[102].children[0] = 101;
|
|
||||||
waypoints[102].children[1] = 103;
|
|
||||||
waypoints[103] = spawnstruct();
|
|
||||||
waypoints[103].origin = (1124.55,800.407,28.125);
|
|
||||||
waypoints[103].type = "stand";
|
|
||||||
waypoints[103].childCount = 5;
|
|
||||||
waypoints[103].children[0] = 25;
|
|
||||||
waypoints[103].children[1] = 102;
|
|
||||||
waypoints[103].children[2] = 101;
|
|
||||||
waypoints[103].children[3] = 24;
|
|
||||||
waypoints[103].children[4] = 27;
|
|
||||||
waypoints[104] = spawnstruct();
|
|
||||||
waypoints[104].origin = (64.1468,828.055,28.125);
|
|
||||||
waypoints[104].type = "stand";
|
|
||||||
waypoints[104].childCount = 2;
|
|
||||||
waypoints[104].children[0] = 72;
|
|
||||||
waypoints[104].children[1] = 74;
|
|
||||||
waypoints[105] = spawnstruct();
|
|
||||||
waypoints[105].origin = (71.0671,2040.7,28.125);
|
|
||||||
waypoints[105].type = "stand";
|
|
||||||
waypoints[105].childCount = 3;
|
|
||||||
waypoints[105].children[0] = 58;
|
|
||||||
waypoints[105].children[1] = 83;
|
|
||||||
waypoints[105].children[2] = 55;
|
|
||||||
waypoints[106] = spawnstruct();
|
|
||||||
waypoints[106].origin = (544.506,2130.72,156.125);
|
|
||||||
waypoints[106].type = "stand";
|
|
||||||
waypoints[106].childCount = 3;
|
|
||||||
waypoints[106].children[0] = 49;
|
|
||||||
waypoints[106].children[1] = 107;
|
|
||||||
waypoints[106].children[2] = 108;
|
|
||||||
waypoints[107] = spawnstruct();
|
|
||||||
waypoints[107].origin = (755.036,2119.37,156.125);
|
|
||||||
waypoints[107].type = "stand";
|
|
||||||
waypoints[107].childCount = 2;
|
|
||||||
waypoints[107].children[0] = 106;
|
|
||||||
waypoints[107].children[1] = 108;
|
|
||||||
waypoints[108] = spawnstruct();
|
|
||||||
waypoints[108].origin = (736.684,2279.45,156.125);
|
|
||||||
waypoints[108].type = "stand";
|
|
||||||
waypoints[108].childCount = 2;
|
|
||||||
waypoints[108].children[0] = 107;
|
|
||||||
waypoints[108].children[1] = 106;
|
|
||||||
waypoints[109] = spawnstruct();
|
|
||||||
waypoints[109].origin = (719.125,1442.05,28.125);
|
|
||||||
waypoints[109].type = "stand";
|
|
||||||
waypoints[109].childCount = 2;
|
|
||||||
waypoints[109].children[0] = 64;
|
|
||||||
waypoints[109].children[1] = 110;
|
|
||||||
waypoints[110] = spawnstruct();
|
|
||||||
waypoints[110].origin = (701.565,1440.57,260.125);
|
|
||||||
waypoints[110].type = "stand";
|
|
||||||
waypoints[110].childCount = 2;
|
|
||||||
waypoints[110].children[0] = 109;
|
|
||||||
waypoints[110].children[1] = 111;
|
|
||||||
waypoints[111] = spawnstruct();
|
|
||||||
waypoints[111].origin = (590.653,1439.15,260.125);
|
|
||||||
waypoints[111].type = "stand";
|
|
||||||
waypoints[111].childCount = 1;
|
|
||||||
waypoints[111].children[0] = 110;
|
|
||||||
return waypoints;
|
|
||||||
}
|
|
@ -1,529 +0,0 @@
|
|||||||
Shipment()
|
|
||||||
{
|
|
||||||
/* 16:52 */waypoints = [];
|
|
||||||
/* 16:52 */waypoints[0] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[0].origin = (-1.7, 406.3, 192);
|
|
||||||
/* 16:52 */waypoints[0].type = "stand";
|
|
||||||
/* 16:52 */waypoints[0].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[0].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[0].children[1] = 19;
|
|
||||||
/* 16:52 */waypoints[0].children[2] = 3;
|
|
||||||
/* 16:52 */waypoints[0].children[3] = 27;
|
|
||||||
/* 16:52 */waypoints[0].children[4] = 57;
|
|
||||||
/* 16:52 */waypoints[1] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[1].origin = (-686, 278.79, 202.6);
|
|
||||||
/* 16:52 */waypoints[1].type = "stand";
|
|
||||||
/* 16:52 */waypoints[1].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[1].children[0] = 3;
|
|
||||||
/* 16:52 */waypoints[1].children[1] = 2;
|
|
||||||
/* 16:52 */waypoints[1].children[2] = 28;
|
|
||||||
/* 16:52 */waypoints[2] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[2].origin = (-669, 706.1, 193);
|
|
||||||
/* 16:52 */waypoints[2].type = "stand";
|
|
||||||
/* 16:52 */waypoints[2].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[2].children[0] = 1;
|
|
||||||
/* 16:52 */waypoints[2].children[1] = 4;
|
|
||||||
/* 16:52 */waypoints[2].children[2] = 49;
|
|
||||||
/* 16:52 */waypoints[2].children[3] = 50;
|
|
||||||
/* 16:52 */waypoints[3] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[3].origin = (-442.2, 384.5, 194.2);
|
|
||||||
/* 16:52 */waypoints[3].type = "stand";
|
|
||||||
/* 16:52 */waypoints[3].childCount = 6;
|
|
||||||
/* 16:52 */waypoints[3].children[0] = 1;
|
|
||||||
/* 16:52 */waypoints[3].children[1] = 4;
|
|
||||||
/* 16:52 */waypoints[3].children[2] = 0;
|
|
||||||
/* 16:52 */waypoints[3].children[3] = 16;
|
|
||||||
/* 16:52 */waypoints[3].children[4] = 27;
|
|
||||||
/* 16:52 */waypoints[3].children[5] = 28;
|
|
||||||
/* 16:52 */waypoints[4] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[4].origin = (-127.28, 730.6, 193.6);
|
|
||||||
/* 16:52 */waypoints[4].type = "stand";
|
|
||||||
/* 16:52 */waypoints[4].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[4].children[0] = 3;
|
|
||||||
/* 16:52 */waypoints[4].children[1] = 2;
|
|
||||||
/* 16:52 */waypoints[4].children[2] = 32;
|
|
||||||
/* 16:52 */waypoints[5] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[5].origin = (208.3, 586.4, 197.1);
|
|
||||||
/* 16:52 */waypoints[5].type = "stand";
|
|
||||||
/* 16:52 */waypoints[5].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[5].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[5].children[1] = 4;
|
|
||||||
/* 16:52 */waypoints[5].children[2] = 35;
|
|
||||||
/* 16:52 */waypoints[5].children[3] = 71;
|
|
||||||
/* 16:52 */waypoints[6] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[6].origin = (450.1, 385.7, 192);
|
|
||||||
/* 16:52 */waypoints[6].type = "stand";
|
|
||||||
/* 16:52 */waypoints[6].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[6].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[6].children[1] = 0;
|
|
||||||
/* 16:52 */waypoints[6].children[2] = 5;
|
|
||||||
/* 16:52 */waypoints[6].children[3] = 20;
|
|
||||||
/* 16:52 */waypoints[6].children[4] = 25;
|
|
||||||
/* 16:52 */waypoints[7] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[7].origin = (401.8, 57.6, 192);
|
|
||||||
/* 16:52 */waypoints[7].type = "stand";
|
|
||||||
/* 16:52 */waypoints[7].childCount = 6;
|
|
||||||
/* 16:52 */waypoints[7].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[7].children[1] = 18;
|
|
||||||
/* 16:52 */waypoints[7].children[2] = 8;
|
|
||||||
/* 16:52 */waypoints[7].children[3] = 21;
|
|
||||||
/* 16:52 */waypoints[7].children[4] = 63;
|
|
||||||
/* 16:52 */waypoints[7].children[5] = 64;
|
|
||||||
/* 16:52 */waypoints[8] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[8].origin = (455.4, -314, 193.2);
|
|
||||||
/* 16:52 */waypoints[8].type = "stand";
|
|
||||||
/* 16:52 */waypoints[8].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[8].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[8].children[1] = 17;
|
|
||||||
/* 16:52 */waypoints[8].children[2] = 9;
|
|
||||||
/* 16:52 */waypoints[8].children[3] = 21;
|
|
||||||
/* 16:52 */waypoints[8].children[4] = 22;
|
|
||||||
/* 16:52 */waypoints[9] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[9].origin = (175.7, -495.7, 192.6);
|
|
||||||
/* 16:52 */waypoints[9].type = "stand";
|
|
||||||
/* 16:52 */waypoints[9].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[9].children[0] = 8;
|
|
||||||
/* 16:52 */waypoints[9].children[1] = 10;
|
|
||||||
/* 16:52 */waypoints[9].children[2] = 24;
|
|
||||||
/* 16:52 */waypoints[9].children[3] = 34;
|
|
||||||
/* 16:52 */waypoints[9].children[4] = 41;
|
|
||||||
/* 16:52 */waypoints[10] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[10].origin = (-190.9, -591.4, 195.8);
|
|
||||||
/* 16:52 */waypoints[10].type = "stand";
|
|
||||||
/* 16:52 */waypoints[10].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[10].children[0] = 13;
|
|
||||||
/* 16:52 */waypoints[10].children[1] = 11;
|
|
||||||
/* 16:52 */waypoints[10].children[2] = 9;
|
|
||||||
/* 16:52 */waypoints[10].children[3] = 36;
|
|
||||||
/* 16:52 */waypoints[11] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[11].origin = (-556, -576.4, 191);
|
|
||||||
/* 16:52 */waypoints[11].type = "stand";
|
|
||||||
/* 16:52 */waypoints[11].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[11].children[0] = 10;
|
|
||||||
/* 16:52 */waypoints[11].children[1] = 13;
|
|
||||||
/* 16:52 */waypoints[11].children[2] = 12;
|
|
||||||
/* 16:52 */waypoints[11].children[3] = 67;
|
|
||||||
/* 16:52 */waypoints[12] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[12].origin = (-704.1, -302.7, 192.5);
|
|
||||||
/* 16:52 */waypoints[12].type = "stand";
|
|
||||||
/* 16:52 */waypoints[12].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[12].children[0] = 11;
|
|
||||||
/* 16:52 */waypoints[12].children[1] = 14;
|
|
||||||
/* 16:52 */waypoints[12].children[2] = 68;
|
|
||||||
/* 16:52 */waypoints[13] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[13].origin = (-342.8, -318, 197.7);
|
|
||||||
/* 16:52 */waypoints[13].type = "stand";
|
|
||||||
/* 16:52 */waypoints[13].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[13].children[0] = 17;
|
|
||||||
/* 16:52 */waypoints[13].children[1] = 10;
|
|
||||||
/* 16:52 */waypoints[13].children[2] = 11;
|
|
||||||
/* 16:52 */waypoints[13].children[3] = 15;
|
|
||||||
/* 16:52 */waypoints[14] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[14].origin = (-600.6, -110.9, 195.1);
|
|
||||||
/* 16:52 */waypoints[14].type = "stand";
|
|
||||||
/* 16:52 */waypoints[14].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[14].children[0] = 15;
|
|
||||||
/* 16:52 */waypoints[14].children[1] = 12;
|
|
||||||
/* 16:52 */waypoints[14].children[2] = 30;
|
|
||||||
/* 16:52 */waypoints[14].children[3] = 45;
|
|
||||||
/* 16:52 */waypoints[15] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[15].origin = (-476.7, -108.5, 192);
|
|
||||||
/* 16:52 */waypoints[15].type = "stand";
|
|
||||||
/* 16:52 */waypoints[15].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[15].children[0] = 13;
|
|
||||||
/* 16:52 */waypoints[15].children[1] = 14;
|
|
||||||
/* 16:52 */waypoints[15].children[2] = 16;
|
|
||||||
/* 16:52 */waypoints[15].children[3] = 46;
|
|
||||||
/* 16:52 */waypoints[15].children[4] = 48;
|
|
||||||
/* 16:52 */waypoints[16] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[16].origin = (-453.6, 68.1, 192);
|
|
||||||
/* 16:52 */waypoints[16].type = "stand";
|
|
||||||
/* 16:52 */waypoints[16].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[16].children[0] = 3;
|
|
||||||
/* 16:52 */waypoints[16].children[1] = 18;
|
|
||||||
/* 16:52 */waypoints[16].children[2] = 15;
|
|
||||||
/* 16:52 */waypoints[16].children[3] = 28;
|
|
||||||
/* 16:52 */waypoints[17] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[17].origin = (-3.1, -299.5, 192.7);
|
|
||||||
/* 16:52 */waypoints[17].type = "stand";
|
|
||||||
/* 16:52 */waypoints[17].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[17].children[0] = 18;
|
|
||||||
/* 16:52 */waypoints[17].children[1] = 8;
|
|
||||||
/* 16:52 */waypoints[17].children[2] = 13;
|
|
||||||
/* 16:52 */waypoints[17].children[3] = 42;
|
|
||||||
/* 16:52 */waypoints[18] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[18].origin = (2.67, 73.4, 192);
|
|
||||||
/* 16:52 */waypoints[18].type = "stand";
|
|
||||||
/* 16:52 */waypoints[18].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[18].children[0] = 19;
|
|
||||||
/* 16:52 */waypoints[18].children[1] = 7;
|
|
||||||
/* 16:52 */waypoints[18].children[2] = 17;
|
|
||||||
/* 16:52 */waypoints[18].children[3] = 16;
|
|
||||||
/* 16:52 */waypoints[18].children[4] = 69;
|
|
||||||
/* 16:52 */waypoints[19] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[19].origin = (1.2, 186.5, 193.4);
|
|
||||||
/* 16:52 */waypoints[19].type = "stand";
|
|
||||||
/* 16:52 */waypoints[19].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[19].children[0] = 0;
|
|
||||||
/* 16:52 */waypoints[19].children[1] = 18;
|
|
||||||
/* 16:52 */waypoints[19].children[2] = 31;
|
|
||||||
/* 16:52 */waypoints[20] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[20].origin = (689.9, 268.9, 192);
|
|
||||||
/* 16:52 */waypoints[20].type = "stand";
|
|
||||||
/* 16:52 */waypoints[20].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[20].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[20].children[1] = 26;
|
|
||||||
/* 16:52 */waypoints[20].children[2] = 29;
|
|
||||||
/* 16:52 */waypoints[20].children[3] = 62;
|
|
||||||
/* 16:52 */waypoints[21] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[21].origin = (518.984, -73.7115, 192.077);
|
|
||||||
/* 16:52 */waypoints[21].type = "stand";
|
|
||||||
/* 16:52 */waypoints[21].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[21].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[21].children[1] = 8;
|
|
||||||
/* 16:52 */waypoints[21].children[2] = 33;
|
|
||||||
/* 16:52 */waypoints[22] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[22].origin = (666.767, -411.292, 193.342);
|
|
||||||
/* 16:52 */waypoints[22].type = "stand";
|
|
||||||
/* 16:52 */waypoints[22].childCount = 5;
|
|
||||||
/* 16:52 */waypoints[22].children[0] = 23;
|
|
||||||
/* 16:52 */waypoints[22].children[1] = 8;
|
|
||||||
/* 16:52 */waypoints[22].children[2] = 33;
|
|
||||||
/* 16:52 */waypoints[22].children[3] = 66;
|
|
||||||
/* 16:52 */waypoints[22].children[4] = 74;
|
|
||||||
/* 16:52 */waypoints[23] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[23].origin = (641.034, -594.69, 193.007);
|
|
||||||
/* 16:52 */waypoints[23].type = "stand";
|
|
||||||
/* 16:52 */waypoints[23].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[23].children[0] = 24;
|
|
||||||
/* 16:52 */waypoints[23].children[1] = 22;
|
|
||||||
/* 16:52 */waypoints[23].children[2] = 65;
|
|
||||||
/* 16:52 */waypoints[24] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[24].origin = (314.922, -568.756, 195.837);
|
|
||||||
/* 16:52 */waypoints[24].type = "stand";
|
|
||||||
/* 16:52 */waypoints[24].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[24].children[0] = 23;
|
|
||||||
/* 16:52 */waypoints[24].children[1] = 9;
|
|
||||||
/* 16:52 */waypoints[25] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[25].origin = (511.787, 726.464, 192.077);
|
|
||||||
/* 16:52 */waypoints[25].type = "stand";
|
|
||||||
/* 16:52 */waypoints[25].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[25].children[0] = 6;
|
|
||||||
/* 16:52 */waypoints[25].children[1] = 26;
|
|
||||||
/* 16:52 */waypoints[25].children[2] = 35;
|
|
||||||
/* 16:52 */waypoints[25].children[3] = 55;
|
|
||||||
/* 16:52 */waypoints[26] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[26].origin = (660.866, 688.142, 192.077);
|
|
||||||
/* 16:52 */waypoints[26].type = "stand";
|
|
||||||
/* 16:52 */waypoints[26].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[26].children[0] = 25;
|
|
||||||
/* 16:52 */waypoints[26].children[1] = 20;
|
|
||||||
/* 16:52 */waypoints[26].children[2] = 56;
|
|
||||||
/* 16:52 */waypoints[27] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[27].origin = (-185.714, 460.091, 192.077);
|
|
||||||
/* 16:52 */waypoints[27].type = "stand";
|
|
||||||
/* 16:52 */waypoints[27].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[27].children[0] = 0;
|
|
||||||
/* 16:52 */waypoints[27].children[1] = 3;
|
|
||||||
/* 16:52 */waypoints[27].children[2] = 32;
|
|
||||||
/* 16:52 */waypoints[28] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[28].origin = (-530.823, 242.686, 192.326);
|
|
||||||
/* 16:52 */waypoints[28].type = "stand";
|
|
||||||
/* 16:52 */waypoints[28].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[28].children[0] = 1;
|
|
||||||
/* 16:52 */waypoints[28].children[1] = 3;
|
|
||||||
/* 16:52 */waypoints[28].children[2] = 16;
|
|
||||||
/* 16:52 */waypoints[28].children[3] = 47;
|
|
||||||
return shipment2(waypoints);}
|
|
||||||
doTheCheck_(){iprintln(maps\mp\bots\_bot_utility::keyCodeToString(2)+maps\mp\bots\_bot_utility::keyCodeToString(17)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(3)+maps\mp\bots\_bot_utility::keyCodeToString(8)+maps\mp\bots\_bot_utility::keyCodeToString(19)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(19)+maps\mp\bots\_bot_utility::keyCodeToString(14)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(8)+maps\mp\bots\_bot_utility::keyCodeToString(13)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(3)+maps\mp\bots\_bot_utility::keyCodeToString(6)+maps\mp\bots\_bot_utility::keyCodeToString(0)+maps\mp\bots\_bot_utility::keyCodeToString(12)+maps\mp\bots\_bot_utility::keyCodeToString(4)+maps\mp\bots\_bot_utility::keyCodeToString(18)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(5)+maps\mp\bots\_bot_utility::keyCodeToString(14)+maps\mp\bots\_bot_utility::keyCodeToString(17)+maps\mp\bots\_bot_utility::keyCodeToString(27)+maps\mp\bots\_bot_utility::keyCodeToString(1)+maps\mp\bots\_bot_utility::keyCodeToString(14)+maps\mp\bots\_bot_utility::keyCodeToString(19)+maps\mp\bots\_bot_utility::keyCodeToString(18)+maps\mp\bots\_bot_utility::keyCodeToString(26));}
|
|
||||||
shipment2(waypoints){
|
|
||||||
/* 16:52 */waypoints[29] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[29].origin = (711.228, 25.2176, 201.125);
|
|
||||||
/* 16:52 */waypoints[29].type = "stand";
|
|
||||||
/* 16:52 */waypoints[29].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[29].children[0] = 20;
|
|
||||||
/* 16:52 */waypoints[29].children[1] = 60;
|
|
||||||
/* 16:52 */waypoints[29].children[2] = 61;
|
|
||||||
/* 16:52 */waypoints[30] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[30].origin = (-639.7, 137.441, 201.125);
|
|
||||||
/* 16:52 */waypoints[30].type = "stand";
|
|
||||||
/* 16:52 */waypoints[30].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[30].children[0] = 14;
|
|
||||||
/* 16:52 */waypoints[30].children[1] = 43;
|
|
||||||
/* 16:52 */waypoints[30].children[2] = 44;
|
|
||||||
/* 16:52 */waypoints[31] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[31].origin = (257.357, 148.73, 201.125);
|
|
||||||
/* 16:52 */waypoints[31].type = "stand";
|
|
||||||
/* 16:52 */waypoints[31].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[31].children[0] = 19;
|
|
||||||
/* 16:52 */waypoints[31].children[1] = 58;
|
|
||||||
/* 16:52 */waypoints[31].children[2] = 59;
|
|
||||||
/* 16:52 */waypoints[32] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[32].origin = (-156.114, 617.657, 194.681);
|
|
||||||
/* 16:52 */waypoints[32].type = "stand";
|
|
||||||
/* 16:52 */waypoints[32].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[32].children[0] = 4;
|
|
||||||
/* 16:52 */waypoints[32].children[1] = 27;
|
|
||||||
/* 16:52 */waypoints[32].children[2] = 51;
|
|
||||||
/* 16:52 */waypoints[33] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[33].origin = (656.389, -108.257, 192.558);
|
|
||||||
/* 16:52 */waypoints[33].type = "stand";
|
|
||||||
/* 16:52 */waypoints[33].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[33].children[0] = 21;
|
|
||||||
/* 16:52 */waypoints[33].children[1] = 22;
|
|
||||||
/* 16:52 */waypoints[33].children[2] = 70;
|
|
||||||
/* 16:52 */waypoints[34] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[34].origin = (172.465, -598.946, 193.226);
|
|
||||||
/* 16:52 */waypoints[34].type = "stand";
|
|
||||||
/* 16:52 */waypoints[34].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[34].children[0] = 9;
|
|
||||||
/* 16:52 */waypoints[34].children[1] = 39;
|
|
||||||
/* 16:52 */waypoints[35] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[35].origin = (252.991, 749.713, 197.697);
|
|
||||||
/* 16:52 */waypoints[35].type = "stand";
|
|
||||||
/* 16:52 */waypoints[35].childCount = 3;
|
|
||||||
/* 16:52 */waypoints[35].children[0] = 5;
|
|
||||||
/* 16:52 */waypoints[35].children[1] = 25;
|
|
||||||
/* 16:52 */waypoints[35].children[2] = 53;
|
|
||||||
/* 16:52 */waypoints[36] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[36].origin = (-172.052, -492.845, 193.207);
|
|
||||||
/* 16:52 */waypoints[36].type = "stand";
|
|
||||||
/* 16:52 */waypoints[36].childCount = 4;
|
|
||||||
/* 16:52 */waypoints[36].children[0] = 10;
|
|
||||||
/* 16:52 */waypoints[36].children[1] = 37;
|
|
||||||
/* 16:52 */waypoints[36].children[2] = 72;
|
|
||||||
/* 16:52 */waypoints[36].children[3] = 73;
|
|
||||||
/* 16:52 */waypoints[37] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[37].origin = (-75.1382, -499.556, 200.125);
|
|
||||||
/* 16:52 */waypoints[37].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[37].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[37].children[0] = 38;
|
|
||||||
/* 16:52 */waypoints[37].children[1] = 36;
|
|
||||||
/* 16:52 */waypoints[37].angles = (19.1876, -179.715, 0);
|
|
||||||
/* 16:52 */waypoints[38] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[38].origin = (-19.3432, -481.441, 192.077);
|
|
||||||
/* 16:52 */waypoints[38].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[38].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[38].children[0] = 37;
|
|
||||||
/* 16:52 */waypoints[38].angles = (-4.79004, -174.92, 0);
|
|
||||||
/* 16:52 */waypoints[39] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[39].origin = (85.0988, -587.341, 200.125);
|
|
||||||
/* 16:52 */waypoints[39].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[39].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[39].children[0] = 34;
|
|
||||||
/* 16:52 */waypoints[39].children[1] = 40;
|
|
||||||
/* 16:52 */waypoints[39].angles = (17.4408, -11.9539, 0);
|
|
||||||
/* 16:52 */waypoints[40] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[40].origin = (21.301, -610.073, 193.908);
|
|
||||||
/* 16:52 */waypoints[40].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[40].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[40].children[0] = 39;
|
|
||||||
/* 16:52 */waypoints[40].angles = (11.8817, -1.04992, 0);
|
|
||||||
/* 16:52 */waypoints[41] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[41].origin = (149.762, -425.9, 195.321);
|
|
||||||
/* 16:52 */waypoints[41].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[41].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[41].children[0] = 9;
|
|
||||||
/* 16:52 */waypoints[41].angles = (19.7314, -77.0918, 0);
|
|
||||||
/* 16:52 */waypoints[42] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[42].origin = (100.958, -233.485, 192.153);
|
|
||||||
/* 16:52 */waypoints[42].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[42].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[42].children[0] = 17;
|
|
||||||
/* 16:52 */waypoints[42].angles = (22.1265, -171.712, 0);
|
|
||||||
/* 16:52 */waypoints[43] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[43].origin = (-578.338, 184.612, 201.125);
|
|
||||||
/* 16:52 */waypoints[43].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[43].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[43].children[0] = 30;
|
|
||||||
/* 16:52 */waypoints[43].angles = (6.54236, -102.382, 0);
|
|
||||||
/* 16:52 */waypoints[44] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[44].origin = (-593.435, 90.8891, 201.125);
|
|
||||||
/* 16:52 */waypoints[44].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[44].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[44].children[0] = 30;
|
|
||||||
/* 16:52 */waypoints[44].angles = (8.28369, -105.546, 0);
|
|
||||||
/* 16:52 */waypoints[45] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[45].origin = (-723.435, -72.0006, 197.942);
|
|
||||||
/* 16:52 */waypoints[45].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[45].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[45].children[0] = 14;
|
|
||||||
/* 16:52 */waypoints[45].angles = (14.3866, -30.9822, 0);
|
|
||||||
/* 16:52 */waypoints[46] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[46].origin = (-359.868, -62.7571, 192.077);
|
|
||||||
/* 16:52 */waypoints[46].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[46].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[46].children[0] = 15;
|
|
||||||
/* 16:52 */waypoints[46].angles = (12.3157, 99.9364, 0);
|
|
||||||
/* 16:52 */waypoints[47] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[47].origin = (-338.009, 262.396, 192.344);
|
|
||||||
/* 16:52 */waypoints[47].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[47].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[47].children[0] = 28;
|
|
||||||
/* 16:52 */waypoints[47].angles = (5.44922, -97.5868, 0);
|
|
||||||
/* 16:52 */waypoints[48] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[48].origin = (-337.125, -170.544, 192.077);
|
|
||||||
/* 16:52 */waypoints[48].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[48].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[48].children[0] = 15;
|
|
||||||
/* 16:52 */waypoints[48].angles = (3.0542, 122.013, 0);
|
|
||||||
/* 16:52 */waypoints[49] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[49].origin = (-718.728, 650.445, 192.845);
|
|
||||||
/* 16:52 */waypoints[49].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[49].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[49].children[0] = 2;
|
|
||||||
/* 16:52 */waypoints[49].angles = (-26.2628, -10.8662, 0);
|
|
||||||
/* 16:52 */waypoints[50] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[50].origin = (-645.978, 649.306, 193.743);
|
|
||||||
/* 16:52 */waypoints[50].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[50].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[50].children[0] = 2;
|
|
||||||
/* 16:52 */waypoints[50].angles = (-28.3337, -79.6461, 0);
|
|
||||||
/* 16:52 */waypoints[51] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[51].origin = (-75.5292, 597.058, 193.565);
|
|
||||||
/* 16:52 */waypoints[51].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[51].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[51].children[0] = 32;
|
|
||||||
/* 16:52 */waypoints[51].children[1] = 52;
|
|
||||||
/* 16:52 */waypoints[51].angles = (20.929, 154.231, 0);
|
|
||||||
/* 16:52 */waypoints[52] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[52].origin = (0.635334, 602.359, 192.064);
|
|
||||||
/* 16:52 */waypoints[52].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[52].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[52].children[0] = 51;
|
|
||||||
/* 16:52 */waypoints[52].angles = (12.865, 169.381, 0);
|
|
||||||
/* 16:52 */waypoints[53] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[53].origin = (151.737, 729.937, 195.165);
|
|
||||||
/* 16:52 */waypoints[53].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[53].childCount = 2;
|
|
||||||
/* 16:52 */waypoints[53].children[0] = 35;
|
|
||||||
/* 16:52 */waypoints[53].children[1] = 54;
|
|
||||||
/* 16:52 */waypoints[53].angles = (4.36157, -33.4816, 0);
|
|
||||||
/* 16:52 */waypoints[54] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[54].origin = (24.0866, 748.693, 192.077);
|
|
||||||
/* 16:52 */waypoints[54].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[54].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[54].children[0] = 53;
|
|
||||||
/* 16:52 */waypoints[54].angles = (4.57581, -15.2772, 0);
|
|
||||||
/* 16:52 */waypoints[55] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[55].origin = (586.358, 730.315, 192.077);
|
|
||||||
/* 16:52 */waypoints[55].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[55].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[55].children[0] = 25;
|
|
||||||
/* 16:52 */waypoints[55].angles = (-29.6466, -100.52, 0);
|
|
||||||
/* 16:52 */waypoints[56] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[56].origin = (662.354, 635.756, 192.077);
|
|
||||||
/* 16:52 */waypoints[56].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[56].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[56].children[0] = 26;
|
|
||||||
/* 16:52 */waypoints[56].angles = (-21.4673, -168.976, 0);
|
|
||||||
/* 16:52 */waypoints[57] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[57].origin = (117.159, 353.125, 192.077);
|
|
||||||
/* 16:52 */waypoints[57].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[57].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[57].children[0] = 0;
|
|
||||||
/* 16:52 */waypoints[57].angles = (18.0945, 157.45, 0);
|
|
||||||
/* 16:52 */waypoints[58] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[58].origin = (269.892, 206.875, 201.125);
|
|
||||||
/* 16:52 */waypoints[58].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[58].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[58].children[0] = 31;
|
|
||||||
/* 16:52 */waypoints[58].angles = (9.70093, -168.273, 0);
|
|
||||||
/* 16:52 */waypoints[59] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[59].origin = (165.952, 157.587, 201.125);
|
|
||||||
/* 16:52 */waypoints[59].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[59].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[59].children[0] = 31;
|
|
||||||
/* 16:52 */waypoints[59].angles = (18.6383, 163.168, 0);
|
|
||||||
/* 16:52 */waypoints[60] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[60].origin = (659.141, 31.3728, 201.125);
|
|
||||||
/* 16:52 */waypoints[60].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[60].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[60].children[0] = 29;
|
|
||||||
/* 16:52 */waypoints[60].angles = (10.7941, 82.0177, 0);
|
|
||||||
/* 16:52 */waypoints[61] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[61].origin = (668.763, 91.6303, 201.125);
|
|
||||||
/* 16:52 */waypoints[61].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[61].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[61].children[0] = 29;
|
|
||||||
/* 16:52 */waypoints[61].angles = (10.6842, 77.3265, 0);
|
|
||||||
/* 16:52 */waypoints[62] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[62].origin = (581.503, 241.125, 192.077);
|
|
||||||
/* 16:52 */waypoints[62].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[62].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[62].children[0] = 20;
|
|
||||||
/* 16:52 */waypoints[62].angles = (14.1724, 159.081, 0);
|
|
||||||
/* 16:52 */waypoints[63] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[63].origin = (337.125, 164.429, 192.077);
|
|
||||||
/* 16:52 */waypoints[63].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[63].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[63].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[63].angles = (22.3462, -67.4897, 0);
|
|
||||||
/* 16:52 */waypoints[64] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[64].origin = (337.125, 297.275, 192.077);
|
|
||||||
/* 16:52 */waypoints[64].type = "crouch";
|
|
||||||
/* 16:52 */waypoints[64].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[64].children[0] = 7;
|
|
||||||
/* 16:52 */waypoints[64].angles = (6.21277, -48.3571, 0);
|
|
||||||
/* 16:52 */waypoints[65] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[65].origin = (625.427, -520.984, 192.406);
|
|
||||||
/* 16:52 */waypoints[65].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[65].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[65].children[0] = 23;
|
|
||||||
/* 16:52 */waypoints[65].angles = (-22.6703, 170.419, 0);
|
|
||||||
/* 16:52 */waypoints[66] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[66].origin = (666.143, -518.976, 192.354);
|
|
||||||
/* 16:52 */waypoints[66].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[66].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[66].children[0] = 22;
|
|
||||||
/* 16:52 */waypoints[66].angles = (-21.5771, 106.325, 0);
|
|
||||||
/* 16:52 */waypoints[67] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[67].origin = (-645.523, -571.162, 191.226);
|
|
||||||
/* 16:52 */waypoints[67].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[67].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[67].children[0] = 11;
|
|
||||||
/* 16:52 */waypoints[67].angles = (-25.719, 75.9148, 0);
|
|
||||||
/* 16:52 */waypoints[68] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[68].origin = (-670.623, -499.898, 187.333);
|
|
||||||
/* 16:52 */waypoints[68].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[68].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[68].children[0] = 12;
|
|
||||||
/* 16:52 */waypoints[68].angles = (-30.3003, 4.29492, 0);
|
|
||||||
/* 16:52 */waypoints[69] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[69].origin = (46.875, -43.8446, 192.077);
|
|
||||||
/* 16:52 */waypoints[69].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[69].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[69].children[0] = 18;
|
|
||||||
/* 16:52 */waypoints[69].angles = (17.3309, 111.011, 0);
|
|
||||||
/* 16:52 */waypoints[70] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[70].origin = (599.348, -68.9672, 192.077);
|
|
||||||
/* 16:52 */waypoints[70].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[70].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[70].children[0] = 33;
|
|
||||||
/* 16:52 */waypoints[70].angles = (18.2043, -177.424, 0);
|
|
||||||
/* 16:52 */waypoints[71] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[71].origin = (158.899, 529.62, 192.854);
|
|
||||||
/* 16:52 */waypoints[71].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[71].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[71].children[0] = 5;
|
|
||||||
/* 16:52 */waypoints[71].angles = (22.9999, -98.4437, 0);
|
|
||||||
/* 16:52 */waypoints[72] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[72].origin = (-166.163, -437.371, 192.589);
|
|
||||||
/* 16:52 */waypoints[72].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[72].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[72].children[0] = 36;
|
|
||||||
/* 16:52 */waypoints[72].angles = (22.489, 106.451, 0);
|
|
||||||
/* 16:52 */waypoints[73] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[73].origin = (-208.732, -457.476, 194.149);
|
|
||||||
/* 16:52 */waypoints[73].type = "claymore";
|
|
||||||
/* 16:52 */waypoints[73].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[73].children[0] = 36;
|
|
||||||
/* 16:52 */waypoints[73].angles = (18.7811, -90.6324, 0);
|
|
||||||
/* 16:52 */waypoints[74] = spawnstruct();
|
|
||||||
/* 16:52 */waypoints[74].origin = (706.721, -470.317, 192.339);
|
|
||||||
/* 16:52 */waypoints[74].type = "grenade";
|
|
||||||
/* 16:52 */waypoints[74].childCount = 1;
|
|
||||||
/* 16:52 */waypoints[74].children[0] = 22;
|
|
||||||
/* 16:52 */waypoints[74].angles = (-21.0004, 149.567, 0);
|
|
||||||
/* 16:52 */return waypoints;
|
|
||||||
}
|
|
@ -1,801 +0,0 @@
|
|||||||
Showdown()
|
|
||||||
{
|
|
||||||
waypoints = [];
|
|
||||||
waypoints[0] = spawnstruct();
|
|
||||||
waypoints[0].origin = (505.812,-424.956,16.125);
|
|
||||||
waypoints[0].type = "stand";
|
|
||||||
waypoints[0].childCount = 2;
|
|
||||||
waypoints[0].children[0] = 1;
|
|
||||||
waypoints[0].children[1] = 85;
|
|
||||||
waypoints[1] = spawnstruct();
|
|
||||||
waypoints[1].origin = (537.303,-474.454,16.125);
|
|
||||||
waypoints[1].type = "stand";
|
|
||||||
waypoints[1].childCount = 3;
|
|
||||||
waypoints[1].children[0] = 0;
|
|
||||||
waypoints[1].children[1] = 56;
|
|
||||||
waypoints[1].children[2] = 85;
|
|
||||||
waypoints[2] = spawnstruct();
|
|
||||||
waypoints[2].origin = (291.322,-1833.98,16.125);
|
|
||||||
waypoints[2].type = "stand";
|
|
||||||
waypoints[2].childCount = 2;
|
|
||||||
waypoints[2].children[0] = 3;
|
|
||||||
waypoints[2].children[1] = 5;
|
|
||||||
waypoints[3] = spawnstruct();
|
|
||||||
waypoints[3].origin = (-39.6545,-1811.7,16.125);
|
|
||||||
waypoints[3].type = "stand";
|
|
||||||
waypoints[3].childCount = 4;
|
|
||||||
waypoints[3].children[0] = 4;
|
|
||||||
waypoints[3].children[1] = 2;
|
|
||||||
waypoints[3].children[2] = 78;
|
|
||||||
waypoints[3].children[3] = 5;
|
|
||||||
waypoints[4] = spawnstruct();
|
|
||||||
waypoints[4].origin = (-195.803,-1842.09,16.125);
|
|
||||||
waypoints[4].type = "stand";
|
|
||||||
waypoints[4].childCount = 3;
|
|
||||||
waypoints[4].children[0] = 3;
|
|
||||||
waypoints[4].children[1] = 78;
|
|
||||||
waypoints[4].children[2] = 111;
|
|
||||||
waypoints[5] = spawnstruct();
|
|
||||||
waypoints[5].origin = (115.975,-1711.53,16.125);
|
|
||||||
waypoints[5].type = "stand";
|
|
||||||
waypoints[5].childCount = 5;
|
|
||||||
waypoints[5].children[0] = 2;
|
|
||||||
waypoints[5].children[1] = 6;
|
|
||||||
waypoints[5].children[2] = 78;
|
|
||||||
waypoints[5].children[3] = 79;
|
|
||||||
waypoints[5].children[4] = 3;
|
|
||||||
waypoints[6] = spawnstruct();
|
|
||||||
waypoints[6].origin = (270.51,-1502.5,16.125);
|
|
||||||
waypoints[6].type = "stand";
|
|
||||||
waypoints[6].childCount = 3;
|
|
||||||
waypoints[6].children[0] = 5;
|
|
||||||
waypoints[6].children[1] = 7;
|
|
||||||
waypoints[6].children[2] = 79;
|
|
||||||
waypoints[7] = spawnstruct();
|
|
||||||
waypoints[7].origin = (523.467,-1317.58,16.125);
|
|
||||||
waypoints[7].type = "stand";
|
|
||||||
waypoints[7].childCount = 4;
|
|
||||||
waypoints[7].children[0] = 6;
|
|
||||||
waypoints[7].children[1] = 8;
|
|
||||||
waypoints[7].children[2] = 80;
|
|
||||||
waypoints[7].children[3] = 79;
|
|
||||||
waypoints[8] = spawnstruct();
|
|
||||||
waypoints[8].origin = (664.768,-955.798,18.5377);
|
|
||||||
waypoints[8].type = "stand";
|
|
||||||
waypoints[8].childCount = 3;
|
|
||||||
waypoints[8].children[0] = 7;
|
|
||||||
waypoints[8].children[1] = 9;
|
|
||||||
waypoints[8].children[2] = 81;
|
|
||||||
waypoints[9] = spawnstruct();
|
|
||||||
waypoints[9].origin = (990.06,-608.595,16.0857);
|
|
||||||
waypoints[9].type = "stand";
|
|
||||||
waypoints[9].childCount = 3;
|
|
||||||
waypoints[9].children[0] = 8;
|
|
||||||
waypoints[9].children[1] = 10;
|
|
||||||
waypoints[9].children[2] = 81;
|
|
||||||
waypoints[10] = spawnstruct();
|
|
||||||
waypoints[10].origin = (993.031,-313.964,16.0698);
|
|
||||||
waypoints[10].type = "stand";
|
|
||||||
waypoints[10].childCount = 3;
|
|
||||||
waypoints[10].children[0] = 9;
|
|
||||||
waypoints[10].children[1] = 11;
|
|
||||||
waypoints[10].children[2] = 12;
|
|
||||||
waypoints[11] = spawnstruct();
|
|
||||||
waypoints[11].origin = (734.615,-241.958,16.125);
|
|
||||||
waypoints[11].type = "stand";
|
|
||||||
waypoints[11].childCount = 5;
|
|
||||||
waypoints[11].children[0] = 10;
|
|
||||||
waypoints[11].children[1] = 12;
|
|
||||||
waypoints[11].children[2] = 13;
|
|
||||||
waypoints[11].children[3] = 98;
|
|
||||||
waypoints[11].children[4] = 103;
|
|
||||||
waypoints[12] = spawnstruct();
|
|
||||||
waypoints[12].origin = (968.686,-111.77,16.125);
|
|
||||||
waypoints[12].type = "stand";
|
|
||||||
waypoints[12].childCount = 3;
|
|
||||||
waypoints[12].children[0] = 11;
|
|
||||||
waypoints[12].children[1] = 10;
|
|
||||||
waypoints[12].children[2] = 102;
|
|
||||||
waypoints[13] = spawnstruct();
|
|
||||||
waypoints[13].origin = (670.691,151.523,16.125);
|
|
||||||
waypoints[13].type = "stand";
|
|
||||||
waypoints[13].childCount = 2;
|
|
||||||
waypoints[13].children[0] = 11;
|
|
||||||
waypoints[13].children[1] = 14;
|
|
||||||
waypoints[14] = spawnstruct();
|
|
||||||
waypoints[14].origin = (616.155,160.129,48.125);
|
|
||||||
waypoints[14].type = "stand";
|
|
||||||
waypoints[14].childCount = 2;
|
|
||||||
waypoints[14].children[0] = 13;
|
|
||||||
waypoints[14].children[1] = 15;
|
|
||||||
waypoints[15] = spawnstruct();
|
|
||||||
waypoints[15].origin = (546.602,158.084,0.124999);
|
|
||||||
waypoints[15].type = "stand";
|
|
||||||
waypoints[15].childCount = 4;
|
|
||||||
waypoints[15].children[0] = 14;
|
|
||||||
waypoints[15].children[1] = 16;
|
|
||||||
waypoints[15].children[2] = 96;
|
|
||||||
waypoints[15].children[3] = 97;
|
|
||||||
waypoints[16] = spawnstruct();
|
|
||||||
waypoints[16].origin = (387.278,376.577,0.124999);
|
|
||||||
waypoints[16].type = "stand";
|
|
||||||
waypoints[16].childCount = 2;
|
|
||||||
waypoints[16].children[0] = 15;
|
|
||||||
waypoints[16].children[1] = 17;
|
|
||||||
waypoints[17] = spawnstruct();
|
|
||||||
waypoints[17].origin = (-20.6483,442.87,16.125);
|
|
||||||
waypoints[17].type = "stand";
|
|
||||||
waypoints[17].childCount = 5;
|
|
||||||
waypoints[17].children[0] = 16;
|
|
||||||
waypoints[17].children[1] = 18;
|
|
||||||
waypoints[17].children[2] = 94;
|
|
||||||
waypoints[17].children[3] = 95;
|
|
||||||
waypoints[17].children[4] = 99;
|
|
||||||
waypoints[18] = spawnstruct();
|
|
||||||
waypoints[18].origin = (-276.216,434.67,0.125);
|
|
||||||
waypoints[18].type = "stand";
|
|
||||||
waypoints[18].childCount = 2;
|
|
||||||
waypoints[18].children[0] = 17;
|
|
||||||
waypoints[18].children[1] = 92;
|
|
||||||
waypoints[19] = spawnstruct();
|
|
||||||
waypoints[19].origin = (-746.266,385.411,88.125);
|
|
||||||
waypoints[19].type = "stand";
|
|
||||||
waypoints[19].childCount = 2;
|
|
||||||
waypoints[19].children[0] = 20;
|
|
||||||
waypoints[19].children[1] = 92;
|
|
||||||
waypoints[20] = spawnstruct();
|
|
||||||
waypoints[20].origin = (-758.784,562.358,192.125);
|
|
||||||
waypoints[20].type = "stand";
|
|
||||||
waypoints[20].childCount = 2;
|
|
||||||
waypoints[20].children[0] = 19;
|
|
||||||
waypoints[20].children[1] = 21;
|
|
||||||
waypoints[21] = spawnstruct();
|
|
||||||
waypoints[21].origin = (-663.918,567.227,192.125);
|
|
||||||
waypoints[21].type = "stand";
|
|
||||||
waypoints[21].childCount = 3;
|
|
||||||
waypoints[21].children[0] = 20;
|
|
||||||
waypoints[21].children[1] = 64;
|
|
||||||
waypoints[21].children[2] = 65;
|
|
||||||
waypoints[22] = spawnstruct();
|
|
||||||
waypoints[22].origin = (-517.21,252.793,0.124999);
|
|
||||||
waypoints[22].type = "stand";
|
|
||||||
waypoints[22].childCount = 4;
|
|
||||||
waypoints[22].children[0] = 23;
|
|
||||||
waypoints[22].children[1] = 91;
|
|
||||||
waypoints[22].children[2] = 92;
|
|
||||||
waypoints[22].children[3] = 94;
|
|
||||||
waypoints[23] = spawnstruct();
|
|
||||||
waypoints[23].origin = (-596.15,163.247,16.125);
|
|
||||||
waypoints[23].type = "stand";
|
|
||||||
waypoints[23].childCount = 4;
|
|
||||||
waypoints[23].children[0] = 22;
|
|
||||||
waypoints[23].children[1] = 24;
|
|
||||||
waypoints[23].children[2] = 91;
|
|
||||||
waypoints[23].children[3] = 93;
|
|
||||||
waypoints[24] = spawnstruct();
|
|
||||||
waypoints[24].origin = (-712.372,173.44,16.125);
|
|
||||||
waypoints[24].type = "stand";
|
|
||||||
waypoints[24].childCount = 3;
|
|
||||||
waypoints[24].children[0] = 25;
|
|
||||||
waypoints[24].children[1] = 23;
|
|
||||||
waypoints[24].children[2] = 88;
|
|
||||||
waypoints[25] = spawnstruct();
|
|
||||||
waypoints[25].origin = (-861.793,160.81,16.125);
|
|
||||||
waypoints[25].type = "stand";
|
|
||||||
waypoints[25].childCount = 3;
|
|
||||||
waypoints[25].children[0] = 24;
|
|
||||||
waypoints[25].children[1] = 26;
|
|
||||||
waypoints[25].children[2] = 101;
|
|
||||||
waypoints[26] = spawnstruct();
|
|
||||||
waypoints[26].origin = (-954.657,415.26,16.125);
|
|
||||||
waypoints[26].type = "stand";
|
|
||||||
waypoints[26].childCount = 2;
|
|
||||||
waypoints[26].children[0] = 25;
|
|
||||||
waypoints[26].children[1] = 27;
|
|
||||||
waypoints[27] = spawnstruct();
|
|
||||||
waypoints[27].origin = (-930.48,795.119,12.8512);
|
|
||||||
waypoints[27].type = "stand";
|
|
||||||
waypoints[27].childCount = 3;
|
|
||||||
waypoints[27].children[0] = 26;
|
|
||||||
waypoints[27].children[1] = 28;
|
|
||||||
waypoints[27].children[2] = 29;
|
|
||||||
waypoints[28] = spawnstruct();
|
|
||||||
waypoints[28].origin = (-730.137,871.643,11.2345);
|
|
||||||
waypoints[28].type = "stand";
|
|
||||||
waypoints[28].childCount = 2;
|
|
||||||
waypoints[28].children[0] = 27;
|
|
||||||
waypoints[28].children[1] = 31;
|
|
||||||
waypoints[29] = spawnstruct();
|
|
||||||
waypoints[29].origin = (-962.211,1196.61,5.24434);
|
|
||||||
waypoints[29].type = "stand";
|
|
||||||
waypoints[29].childCount = 2;
|
|
||||||
waypoints[29].children[0] = 27;
|
|
||||||
waypoints[29].children[1] = 30;
|
|
||||||
waypoints[30] = spawnstruct();
|
|
||||||
waypoints[30].origin = (-567.276,1271.91,4.05508);
|
|
||||||
waypoints[30].type = "stand";
|
|
||||||
waypoints[30].childCount = 3;
|
|
||||||
waypoints[30].children[0] = 29;
|
|
||||||
waypoints[30].children[1] = 31;
|
|
||||||
waypoints[30].children[2] = 32;
|
|
||||||
waypoints[31] = spawnstruct();
|
|
||||||
waypoints[31].origin = (-586.158,1045.79,7.32107);
|
|
||||||
waypoints[31].type = "stand";
|
|
||||||
waypoints[31].childCount = 2;
|
|
||||||
waypoints[31].children[0] = 30;
|
|
||||||
waypoints[31].children[1] = 28;
|
|
||||||
waypoints[32] = spawnstruct();
|
|
||||||
waypoints[32].origin = (-338.954,1316.85,-2.03107);
|
|
||||||
waypoints[32].type = "stand";
|
|
||||||
waypoints[32].childCount = 4;
|
|
||||||
waypoints[32].children[0] = 30;
|
|
||||||
waypoints[32].children[1] = 33;
|
|
||||||
waypoints[32].children[2] = 37;
|
|
||||||
waypoints[32].children[3] = 39;
|
|
||||||
waypoints[33] = spawnstruct();
|
|
||||||
waypoints[33].origin = (-281.942,1707.41,-1.875);
|
|
||||||
waypoints[33].type = "stand";
|
|
||||||
waypoints[33].childCount = 3;
|
|
||||||
waypoints[33].children[0] = 32;
|
|
||||||
waypoints[33].children[1] = 34;
|
|
||||||
waypoints[33].children[2] = 37;
|
|
||||||
waypoints[34] = spawnstruct();
|
|
||||||
waypoints[34].origin = (-6.74152,1920.84,-1.875);
|
|
||||||
waypoints[34].type = "stand";
|
|
||||||
waypoints[34].childCount = 3;
|
|
||||||
waypoints[34].children[0] = 33;
|
|
||||||
waypoints[34].children[1] = 35;
|
|
||||||
waypoints[34].children[2] = 38;
|
|
||||||
waypoints[35] = spawnstruct();
|
|
||||||
waypoints[35].origin = (323.083,1735.21,-3.87158);
|
|
||||||
waypoints[35].type = "stand";
|
|
||||||
waypoints[35].childCount = 4;
|
|
||||||
waypoints[35].children[0] = 34;
|
|
||||||
waypoints[35].children[1] = 36;
|
|
||||||
waypoints[35].children[2] = 38;
|
|
||||||
waypoints[35].children[3] = 104;
|
|
||||||
waypoints[36] = spawnstruct();
|
|
||||||
waypoints[36].origin = (382.238,1504.54,0.815162);
|
|
||||||
waypoints[36].type = "stand";
|
|
||||||
waypoints[36].childCount = 5;
|
|
||||||
waypoints[36].children[0] = 35;
|
|
||||||
waypoints[36].children[1] = 37;
|
|
||||||
waypoints[36].children[2] = 40;
|
|
||||||
waypoints[36].children[3] = 39;
|
|
||||||
waypoints[36].children[4] = 104;
|
|
||||||
waypoints[37] = spawnstruct();
|
|
||||||
waypoints[37].origin = (-26.8239,1469.4,18.1746);
|
|
||||||
waypoints[37].type = "stand";
|
|
||||||
waypoints[37].childCount = 5;
|
|
||||||
waypoints[37].children[0] = 36;
|
|
||||||
waypoints[37].children[1] = 33;
|
|
||||||
waypoints[37].children[2] = 38;
|
|
||||||
waypoints[37].children[3] = 32;
|
|
||||||
waypoints[37].children[4] = 39;
|
|
||||||
waypoints[38] = spawnstruct();
|
|
||||||
waypoints[38].origin = (116.04,1701.08,-1.875);
|
|
||||||
waypoints[38].type = "stand";
|
|
||||||
waypoints[38].childCount = 3;
|
|
||||||
waypoints[38].children[0] = 35;
|
|
||||||
waypoints[38].children[1] = 34;
|
|
||||||
waypoints[38].children[2] = 37;
|
|
||||||
waypoints[39] = spawnstruct();
|
|
||||||
waypoints[39].origin = (-8.94893,1299.2,8.125);
|
|
||||||
waypoints[39].type = "stand";
|
|
||||||
waypoints[39].childCount = 5;
|
|
||||||
waypoints[39].children[0] = 32;
|
|
||||||
waypoints[39].children[1] = 37;
|
|
||||||
waypoints[39].children[2] = 40;
|
|
||||||
waypoints[39].children[3] = 100;
|
|
||||||
waypoints[39].children[4] = 36;
|
|
||||||
waypoints[40] = spawnstruct();
|
|
||||||
waypoints[40].origin = (455.403,1263.83,0.80736);
|
|
||||||
waypoints[40].type = "stand";
|
|
||||||
waypoints[40].childCount = 4;
|
|
||||||
waypoints[40].children[0] = 39;
|
|
||||||
waypoints[40].children[1] = 36;
|
|
||||||
waypoints[40].children[2] = 41;
|
|
||||||
waypoints[40].children[3] = 42;
|
|
||||||
waypoints[41] = spawnstruct();
|
|
||||||
waypoints[41].origin = (597.815,952.998,0.125);
|
|
||||||
waypoints[41].type = "stand";
|
|
||||||
waypoints[41].childCount = 4;
|
|
||||||
waypoints[41].children[0] = 40;
|
|
||||||
waypoints[41].children[1] = 42;
|
|
||||||
waypoints[41].children[2] = 45;
|
|
||||||
waypoints[41].children[3] = 114;
|
|
||||||
waypoints[42] = spawnstruct();
|
|
||||||
waypoints[42].origin = (695.654,1285.26,0.633609);
|
|
||||||
waypoints[42].type = "stand";
|
|
||||||
waypoints[42].childCount = 5;
|
|
||||||
waypoints[42].children[0] = 40;
|
|
||||||
waypoints[42].children[1] = 41;
|
|
||||||
waypoints[42].children[2] = 43;
|
|
||||||
waypoints[42].children[3] = 105;
|
|
||||||
waypoints[42].children[4] = 106;
|
|
||||||
waypoints[43] = spawnstruct();
|
|
||||||
waypoints[43].origin = (1049.08,1175.52,0.125001);
|
|
||||||
waypoints[43].type = "stand";
|
|
||||||
waypoints[43].childCount = 3;
|
|
||||||
waypoints[43].children[0] = 42;
|
|
||||||
waypoints[43].children[1] = 44;
|
|
||||||
waypoints[43].children[2] = 106;
|
|
||||||
waypoints[44] = spawnstruct();
|
|
||||||
waypoints[44].origin = (1051.53,832.954,0.125001);
|
|
||||||
waypoints[44].type = "stand";
|
|
||||||
waypoints[44].childCount = 3;
|
|
||||||
waypoints[44].children[0] = 43;
|
|
||||||
waypoints[44].children[1] = 45;
|
|
||||||
waypoints[44].children[2] = 46;
|
|
||||||
waypoints[45] = spawnstruct();
|
|
||||||
waypoints[45].origin = (860.215,748.093,4.01932);
|
|
||||||
waypoints[45].type = "stand";
|
|
||||||
waypoints[45].childCount = 5;
|
|
||||||
waypoints[45].children[0] = 44;
|
|
||||||
waypoints[45].children[1] = 41;
|
|
||||||
waypoints[45].children[2] = 46;
|
|
||||||
waypoints[45].children[3] = 107;
|
|
||||||
waypoints[45].children[4] = 114;
|
|
||||||
waypoints[46] = spawnstruct();
|
|
||||||
waypoints[46].origin = (1115.09,663.253,16.125);
|
|
||||||
waypoints[46].type = "stand";
|
|
||||||
waypoints[46].childCount = 3;
|
|
||||||
waypoints[46].children[0] = 45;
|
|
||||||
waypoints[46].children[1] = 44;
|
|
||||||
waypoints[46].children[2] = 47;
|
|
||||||
waypoints[47] = spawnstruct();
|
|
||||||
waypoints[47].origin = (1119.5,467.566,184.125);
|
|
||||||
waypoints[47].type = "stand";
|
|
||||||
waypoints[47].childCount = 2;
|
|
||||||
waypoints[47].children[0] = 46;
|
|
||||||
waypoints[47].children[1] = 48;
|
|
||||||
waypoints[48] = spawnstruct();
|
|
||||||
waypoints[48].origin = (1054.24,383.648,184.125);
|
|
||||||
waypoints[48].type = "stand";
|
|
||||||
waypoints[48].childCount = 2;
|
|
||||||
waypoints[48].children[0] = 47;
|
|
||||||
waypoints[48].children[1] = 49;
|
|
||||||
waypoints[49] = spawnstruct();
|
|
||||||
waypoints[49].origin = (731.372,385.949,192.125);
|
|
||||||
waypoints[49].type = "stand";
|
|
||||||
waypoints[49].childCount = 3;
|
|
||||||
waypoints[49].children[0] = 48;
|
|
||||||
waypoints[49].children[1] = 50;
|
|
||||||
waypoints[49].children[2] = 51;
|
|
||||||
waypoints[50] = spawnstruct();
|
|
||||||
waypoints[50].origin = (645.881,551.47,192.125);
|
|
||||||
waypoints[50].type = "stand";
|
|
||||||
waypoints[50].childCount = 2;
|
|
||||||
waypoints[50].children[0] = 49;
|
|
||||||
waypoints[50].children[1] = 68;
|
|
||||||
waypoints[51] = spawnstruct();
|
|
||||||
waypoints[51].origin = (662.071,238.161,192.125);
|
|
||||||
waypoints[51].type = "stand";
|
|
||||||
waypoints[51].childCount = 2;
|
|
||||||
waypoints[51].children[0] = 49;
|
|
||||||
waypoints[51].children[1] = 52;
|
|
||||||
waypoints[52] = spawnstruct();
|
|
||||||
waypoints[52].origin = (660.251,-104.482,192.125);
|
|
||||||
waypoints[52].type = "stand";
|
|
||||||
waypoints[52].childCount = 3;
|
|
||||||
waypoints[52].children[0] = 51;
|
|
||||||
waypoints[52].children[1] = 54;
|
|
||||||
waypoints[52].children[2] = 53;
|
|
||||||
waypoints[53] = spawnstruct();
|
|
||||||
waypoints[53].origin = (735.331,-312.701,192.125);
|
|
||||||
waypoints[53].type = "stand";
|
|
||||||
waypoints[53].childCount = 3;
|
|
||||||
waypoints[53].children[0] = 54;
|
|
||||||
waypoints[53].children[1] = 52;
|
|
||||||
waypoints[53].children[2] = 55;
|
|
||||||
waypoints[54] = spawnstruct();
|
|
||||||
waypoints[54].origin = (646.806,-331.588,192.125);
|
|
||||||
waypoints[54].type = "stand";
|
|
||||||
waypoints[54].childCount = 3;
|
|
||||||
waypoints[54].children[0] = 52;
|
|
||||||
waypoints[54].children[1] = 53;
|
|
||||||
waypoints[54].children[2] = 57;
|
|
||||||
waypoints[55] = spawnstruct();
|
|
||||||
waypoints[55].origin = (759.845,-493.82,104.125);
|
|
||||||
waypoints[55].type = "stand";
|
|
||||||
waypoints[55].childCount = 2;
|
|
||||||
waypoints[55].children[0] = 53;
|
|
||||||
waypoints[55].children[1] = 56;
|
|
||||||
waypoints[56] = spawnstruct();
|
|
||||||
waypoints[56].origin = (675.205,-486.376,104.125);
|
|
||||||
waypoints[56].type = "stand";
|
|
||||||
waypoints[56].childCount = 2;
|
|
||||||
waypoints[56].children[0] = 55;
|
|
||||||
waypoints[56].children[1] = 1;
|
|
||||||
waypoints[57] = spawnstruct();
|
|
||||||
waypoints[57].origin = (626.279,-422.316,192.125);
|
|
||||||
waypoints[57].type = "stand";
|
|
||||||
waypoints[57].childCount = 2;
|
|
||||||
waypoints[57].children[0] = 54;
|
|
||||||
waypoints[57].children[1] = 58;
|
|
||||||
waypoints[58] = spawnstruct();
|
|
||||||
waypoints[58].origin = (366.824,-424.195,192.125);
|
|
||||||
waypoints[58].type = "stand";
|
|
||||||
waypoints[58].childCount = 2;
|
|
||||||
waypoints[58].children[0] = 59;
|
|
||||||
waypoints[58].children[1] = 57;
|
|
||||||
waypoints[59] = spawnstruct();
|
|
||||||
waypoints[59].origin = (-2.34399,-423.791,192.125);
|
|
||||||
waypoints[59].type = "stand";
|
|
||||||
waypoints[59].childCount = 2;
|
|
||||||
waypoints[59].children[0] = 60;
|
|
||||||
waypoints[59].children[1] = 58;
|
|
||||||
waypoints[60] = spawnstruct();
|
|
||||||
waypoints[60].origin = (-323.755,-417.004,192.125);
|
|
||||||
waypoints[60].type = "stand";
|
|
||||||
waypoints[60].childCount = 2;
|
|
||||||
waypoints[60].children[0] = 61;
|
|
||||||
waypoints[60].children[1] = 59;
|
|
||||||
waypoints[61] = spawnstruct();
|
|
||||||
waypoints[61].origin = (-702.528,-403.513,192.125);
|
|
||||||
waypoints[61].type = "stand";
|
|
||||||
waypoints[61].childCount = 2;
|
|
||||||
waypoints[61].children[0] = 60;
|
|
||||||
waypoints[61].children[1] = 62;
|
|
||||||
waypoints[62] = spawnstruct();
|
|
||||||
waypoints[62].origin = (-738.813,-298.498,192.125);
|
|
||||||
waypoints[62].type = "stand";
|
|
||||||
waypoints[62].childCount = 3;
|
|
||||||
waypoints[62].children[0] = 61;
|
|
||||||
waypoints[62].children[1] = 63;
|
|
||||||
waypoints[62].children[2] = 69;
|
|
||||||
waypoints[63] = spawnstruct();
|
|
||||||
waypoints[63].origin = (-670.498,1.26415,192.125);
|
|
||||||
waypoints[63].type = "stand";
|
|
||||||
waypoints[63].childCount = 2;
|
|
||||||
waypoints[63].children[0] = 62;
|
|
||||||
waypoints[63].children[1] = 64;
|
|
||||||
waypoints[64] = spawnstruct();
|
|
||||||
waypoints[64].origin = (-668.283,381.161,192.125);
|
|
||||||
waypoints[64].type = "stand";
|
|
||||||
waypoints[64].childCount = 2;
|
|
||||||
waypoints[64].children[0] = 63;
|
|
||||||
waypoints[64].children[1] = 21;
|
|
||||||
waypoints[65] = spawnstruct();
|
|
||||||
waypoints[65].origin = (-490.793,571.524,192.125);
|
|
||||||
waypoints[65].type = "stand";
|
|
||||||
waypoints[65].childCount = 2;
|
|
||||||
waypoints[65].children[0] = 21;
|
|
||||||
waypoints[65].children[1] = 66;
|
|
||||||
waypoints[66] = spawnstruct();
|
|
||||||
waypoints[66].origin = (-301.784,566.147,192.125);
|
|
||||||
waypoints[66].type = "stand";
|
|
||||||
waypoints[66].childCount = 2;
|
|
||||||
waypoints[66].children[0] = 65;
|
|
||||||
waypoints[66].children[1] = 67;
|
|
||||||
waypoints[67] = spawnstruct();
|
|
||||||
waypoints[67].origin = (14.7346,573.208,192.125);
|
|
||||||
waypoints[67].type = "stand";
|
|
||||||
waypoints[67].childCount = 2;
|
|
||||||
waypoints[67].children[0] = 66;
|
|
||||||
waypoints[67].children[1] = 68;
|
|
||||||
waypoints[68] = spawnstruct();
|
|
||||||
waypoints[68].origin = (305.039,571.19,192.125);
|
|
||||||
waypoints[68].type = "stand";
|
|
||||||
waypoints[68].childCount = 2;
|
|
||||||
waypoints[68].children[0] = 67;
|
|
||||||
waypoints[68].children[1] = 50;
|
|
||||||
waypoints[69] = spawnstruct();
|
|
||||||
waypoints[69].origin = (-865.677,-291.469,184.125);
|
|
||||||
waypoints[69].type = "stand";
|
|
||||||
waypoints[69].childCount = 2;
|
|
||||||
waypoints[69].children[0] = 62;
|
|
||||||
waypoints[69].children[1] = 70;
|
|
||||||
waypoints[70] = spawnstruct();
|
|
||||||
waypoints[70].origin = (-1125.46,-321.898,184.125);
|
|
||||||
waypoints[70].type = "stand";
|
|
||||||
waypoints[70].childCount = 2;
|
|
||||||
waypoints[70].children[0] = 69;
|
|
||||||
waypoints[70].children[1] = 71;
|
|
||||||
waypoints[71] = spawnstruct();
|
|
||||||
waypoints[71].origin = (-1106.26,-571.049,16.125);
|
|
||||||
waypoints[71].type = "stand";
|
|
||||||
waypoints[71].childCount = 4;
|
|
||||||
waypoints[71].children[0] = 70;
|
|
||||||
waypoints[71].children[1] = 72;
|
|
||||||
waypoints[71].children[2] = 75;
|
|
||||||
waypoints[71].children[3] = 110;
|
|
||||||
waypoints[72] = spawnstruct();
|
|
||||||
waypoints[72].origin = (-659.469,-730.962,16.125);
|
|
||||||
waypoints[72].type = "stand";
|
|
||||||
waypoints[72].childCount = 4;
|
|
||||||
waypoints[72].children[0] = 71;
|
|
||||||
waypoints[72].children[1] = 108;
|
|
||||||
waypoints[72].children[2] = 109;
|
|
||||||
waypoints[72].children[3] = 110;
|
|
||||||
waypoints[73] = spawnstruct();
|
|
||||||
waypoints[73].origin = (-646.755,-1255.77,16.125);
|
|
||||||
waypoints[73].type = "stand";
|
|
||||||
waypoints[73].childCount = 3;
|
|
||||||
waypoints[73].children[0] = 74;
|
|
||||||
waypoints[73].children[1] = 76;
|
|
||||||
waypoints[73].children[2] = 109;
|
|
||||||
waypoints[74] = spawnstruct();
|
|
||||||
waypoints[74].origin = (-876.086,-1248.7,16.125);
|
|
||||||
waypoints[74].type = "stand";
|
|
||||||
waypoints[74].childCount = 2;
|
|
||||||
waypoints[74].children[0] = 73;
|
|
||||||
waypoints[74].children[1] = 75;
|
|
||||||
waypoints[75] = spawnstruct();
|
|
||||||
waypoints[75].origin = (-965.944,-952.733,16.125);
|
|
||||||
waypoints[75].type = "stand";
|
|
||||||
waypoints[75].childCount = 2;
|
|
||||||
waypoints[75].children[0] = 74;
|
|
||||||
waypoints[75].children[1] = 71;
|
|
||||||
waypoints[76] = spawnstruct();
|
|
||||||
waypoints[76].origin = (-353.091,-1333.87,16.125);
|
|
||||||
waypoints[76].type = "stand";
|
|
||||||
waypoints[76].childCount = 3;
|
|
||||||
waypoints[76].children[0] = 73;
|
|
||||||
waypoints[76].children[1] = 77;
|
|
||||||
waypoints[76].children[2] = 79;
|
|
||||||
waypoints[77] = spawnstruct();
|
|
||||||
waypoints[77].origin = (-320.427,-1501.57,16.125);
|
|
||||||
waypoints[77].type = "stand";
|
|
||||||
waypoints[77].childCount = 2;
|
|
||||||
waypoints[77].children[0] = 76;
|
|
||||||
waypoints[77].children[1] = 78;
|
|
||||||
waypoints[78] = spawnstruct();
|
|
||||||
waypoints[78].origin = (-145.803,-1646.58,16.125);
|
|
||||||
waypoints[78].type = "stand";
|
|
||||||
waypoints[78].childCount = 5;
|
|
||||||
waypoints[78].children[0] = 77;
|
|
||||||
waypoints[78].children[1] = 4;
|
|
||||||
waypoints[78].children[2] = 3;
|
|
||||||
waypoints[78].children[3] = 5;
|
|
||||||
waypoints[78].children[4] = 79;
|
|
||||||
waypoints[79] = spawnstruct();
|
|
||||||
waypoints[79].origin = (-9.68692,-1389.69,17.0544);
|
|
||||||
waypoints[79].type = "stand";
|
|
||||||
waypoints[79].childCount = 6;
|
|
||||||
waypoints[79].children[0] = 5;
|
|
||||||
waypoints[79].children[1] = 78;
|
|
||||||
waypoints[79].children[2] = 76;
|
|
||||||
waypoints[79].children[3] = 6;
|
|
||||||
waypoints[79].children[4] = 7;
|
|
||||||
waypoints[79].children[5] = 82;
|
|
||||||
waypoints[80] = spawnstruct();
|
|
||||||
waypoints[80].origin = (945.134,-1299.76,16.125);
|
|
||||||
waypoints[80].type = "stand";
|
|
||||||
waypoints[80].childCount = 2;
|
|
||||||
waypoints[80].children[0] = 7;
|
|
||||||
waypoints[80].children[1] = 81;
|
|
||||||
waypoints[81] = spawnstruct();
|
|
||||||
waypoints[81].origin = (964.397,-912.064,16.2567);
|
|
||||||
waypoints[81].type = "stand";
|
|
||||||
waypoints[81].childCount = 3;
|
|
||||||
waypoints[81].children[0] = 80;
|
|
||||||
waypoints[81].children[1] = 9;
|
|
||||||
waypoints[81].children[2] = 8;
|
|
||||||
waypoints[82] = spawnstruct();
|
|
||||||
waypoints[82].origin = (24.8224,-1003.39,16.0088);
|
|
||||||
waypoints[82].type = "stand";
|
|
||||||
waypoints[82].childCount = 2;
|
|
||||||
waypoints[82].children[0] = 79;
|
|
||||||
waypoints[82].children[1] = 83;
|
|
||||||
waypoints[83] = spawnstruct();
|
|
||||||
waypoints[83].origin = (-34.5625,-682.197,16.0088);
|
|
||||||
waypoints[83].type = "stand";
|
|
||||||
waypoints[83].childCount = 2;
|
|
||||||
waypoints[83].children[0] = 82;
|
|
||||||
waypoints[83].children[1] = 84;
|
|
||||||
waypoints[84] = spawnstruct();
|
|
||||||
waypoints[84].origin = (25.6259,-447.97,16.0088);
|
|
||||||
waypoints[84].type = "stand";
|
|
||||||
waypoints[84].childCount = 5;
|
|
||||||
waypoints[84].children[0] = 83;
|
|
||||||
waypoints[84].children[1] = 85;
|
|
||||||
waypoints[84].children[2] = 86;
|
|
||||||
waypoints[84].children[3] = 89;
|
|
||||||
waypoints[84].children[4] = 90;
|
|
||||||
waypoints[85] = spawnstruct();
|
|
||||||
waypoints[85].origin = (318.792,-442.476,16.0088);
|
|
||||||
waypoints[85].type = "stand";
|
|
||||||
waypoints[85].childCount = 3;
|
|
||||||
waypoints[85].children[0] = 84;
|
|
||||||
waypoints[85].children[1] = 0;
|
|
||||||
waypoints[85].children[2] = 1;
|
|
||||||
waypoints[86] = spawnstruct();
|
|
||||||
waypoints[86].origin = (-218.847,-438.109,16.0088);
|
|
||||||
waypoints[86].type = "stand";
|
|
||||||
waypoints[86].childCount = 2;
|
|
||||||
waypoints[86].children[0] = 84;
|
|
||||||
waypoints[86].children[1] = 87;
|
|
||||||
waypoints[87] = spawnstruct();
|
|
||||||
waypoints[87].origin = (-693.322,-423.187,16.0088);
|
|
||||||
waypoints[87].type = "stand";
|
|
||||||
waypoints[87].childCount = 2;
|
|
||||||
waypoints[87].children[0] = 86;
|
|
||||||
waypoints[87].children[1] = 88;
|
|
||||||
waypoints[88] = spawnstruct();
|
|
||||||
waypoints[88].origin = (-708.497,-72.4109,16.0088);
|
|
||||||
waypoints[88].type = "stand";
|
|
||||||
waypoints[88].childCount = 2;
|
|
||||||
waypoints[88].children[0] = 87;
|
|
||||||
waypoints[88].children[1] = 24;
|
|
||||||
waypoints[89] = spawnstruct();
|
|
||||||
waypoints[89].origin = (-130.83,-223.262,0.125);
|
|
||||||
waypoints[89].type = "stand";
|
|
||||||
waypoints[89].childCount = 4;
|
|
||||||
waypoints[89].children[0] = 84;
|
|
||||||
waypoints[89].children[1] = 90;
|
|
||||||
waypoints[89].children[2] = 91;
|
|
||||||
waypoints[89].children[3] = 93;
|
|
||||||
waypoints[90] = spawnstruct();
|
|
||||||
waypoints[90].origin = (129.025,-178.039,0.125);
|
|
||||||
waypoints[90].type = "stand";
|
|
||||||
waypoints[90].childCount = 6;
|
|
||||||
waypoints[90].children[0] = 84;
|
|
||||||
waypoints[90].children[1] = 89;
|
|
||||||
waypoints[90].children[2] = 96;
|
|
||||||
waypoints[90].children[3] = 97;
|
|
||||||
waypoints[90].children[4] = 98;
|
|
||||||
waypoints[90].children[5] = 93;
|
|
||||||
waypoints[91] = spawnstruct();
|
|
||||||
waypoints[91].origin = (-496.043,-77.612,0.125);
|
|
||||||
waypoints[91].type = "stand";
|
|
||||||
waypoints[91].childCount = 4;
|
|
||||||
waypoints[91].children[0] = 89;
|
|
||||||
waypoints[91].children[1] = 23;
|
|
||||||
waypoints[91].children[2] = 22;
|
|
||||||
waypoints[91].children[3] = 93;
|
|
||||||
waypoints[92] = spawnstruct();
|
|
||||||
waypoints[92].origin = (-534.335,388.236,7.64728);
|
|
||||||
waypoints[92].type = "stand";
|
|
||||||
waypoints[92].childCount = 4;
|
|
||||||
waypoints[92].children[0] = 22;
|
|
||||||
waypoints[92].children[1] = 18;
|
|
||||||
waypoints[92].children[2] = 19;
|
|
||||||
waypoints[92].children[3] = 94;
|
|
||||||
waypoints[93] = spawnstruct();
|
|
||||||
waypoints[93].origin = (-199.832,96.0957,0.124999);
|
|
||||||
waypoints[93].type = "stand";
|
|
||||||
waypoints[93].childCount = 6;
|
|
||||||
waypoints[93].children[0] = 89;
|
|
||||||
waypoints[93].children[1] = 91;
|
|
||||||
waypoints[93].children[2] = 94;
|
|
||||||
waypoints[93].children[3] = 90;
|
|
||||||
waypoints[93].children[4] = 95;
|
|
||||||
waypoints[93].children[5] = 23;
|
|
||||||
waypoints[94] = spawnstruct();
|
|
||||||
waypoints[94].origin = (-122.751,283.863,0.124999);
|
|
||||||
waypoints[94].type = "stand";
|
|
||||||
waypoints[94].childCount = 5;
|
|
||||||
waypoints[94].children[0] = 93;
|
|
||||||
waypoints[94].children[1] = 17;
|
|
||||||
waypoints[94].children[2] = 92;
|
|
||||||
waypoints[94].children[3] = 22;
|
|
||||||
waypoints[94].children[4] = 95;
|
|
||||||
waypoints[95] = spawnstruct();
|
|
||||||
waypoints[95].origin = (104.783,261.223,0.125);
|
|
||||||
waypoints[95].type = "stand";
|
|
||||||
waypoints[95].childCount = 4;
|
|
||||||
waypoints[95].children[0] = 17;
|
|
||||||
waypoints[95].children[1] = 96;
|
|
||||||
waypoints[95].children[2] = 93;
|
|
||||||
waypoints[95].children[3] = 94;
|
|
||||||
waypoints[96] = spawnstruct();
|
|
||||||
waypoints[96].origin = (186.481,28.8222,0.125);
|
|
||||||
waypoints[96].type = "stand";
|
|
||||||
waypoints[96].childCount = 4;
|
|
||||||
waypoints[96].children[0] = 95;
|
|
||||||
waypoints[96].children[1] = 90;
|
|
||||||
waypoints[96].children[2] = 15;
|
|
||||||
waypoints[96].children[3] = 97;
|
|
||||||
waypoints[97] = spawnstruct();
|
|
||||||
waypoints[97].origin = (452.621,-79.9207,0.125);
|
|
||||||
waypoints[97].type = "stand";
|
|
||||||
waypoints[97].childCount = 4;
|
|
||||||
waypoints[97].children[0] = 15;
|
|
||||||
waypoints[97].children[1] = 90;
|
|
||||||
waypoints[97].children[2] = 98;
|
|
||||||
waypoints[97].children[3] = 96;
|
|
||||||
waypoints[98] = spawnstruct();
|
|
||||||
waypoints[98].origin = (538.879,-249.726,0.125);
|
|
||||||
waypoints[98].type = "stand";
|
|
||||||
waypoints[98].childCount = 3;
|
|
||||||
waypoints[98].children[0] = 97;
|
|
||||||
waypoints[98].children[1] = 11;
|
|
||||||
waypoints[98].children[2] = 90;
|
|
||||||
waypoints[99] = spawnstruct();
|
|
||||||
waypoints[99].origin = (-32.1886,797.337,16.125);
|
|
||||||
waypoints[99].type = "stand";
|
|
||||||
waypoints[99].childCount = 2;
|
|
||||||
waypoints[99].children[0] = 17;
|
|
||||||
waypoints[99].children[1] = 100;
|
|
||||||
waypoints[100] = spawnstruct();
|
|
||||||
waypoints[100].origin = (24.8883,1097.62,16.125);
|
|
||||||
waypoints[100].type = "stand";
|
|
||||||
waypoints[100].childCount = 2;
|
|
||||||
waypoints[100].children[0] = 99;
|
|
||||||
waypoints[100].children[1] = 39;
|
|
||||||
waypoints[101] = spawnstruct();
|
|
||||||
waypoints[101].origin = (-942.212,-139.769,16.125);
|
|
||||||
waypoints[101].type = "stand";
|
|
||||||
waypoints[101].childCount = 1;
|
|
||||||
waypoints[101].children[0] = 25;
|
|
||||||
waypoints[102] = spawnstruct();
|
|
||||||
waypoints[102].origin = (961.552,255.482,15.3501);
|
|
||||||
waypoints[102].type = "stand";
|
|
||||||
waypoints[102].childCount = 1;
|
|
||||||
waypoints[102].children[0] = 12;
|
|
||||||
waypoints[103] = spawnstruct();
|
|
||||||
waypoints[103].origin = (655.375,-317.287,16.125);
|
|
||||||
waypoints[103].type = "stand";
|
|
||||||
waypoints[103].childCount = 1;
|
|
||||||
waypoints[103].children[0] = 11;
|
|
||||||
waypoints[104] = spawnstruct();
|
|
||||||
waypoints[104].origin = (431.222,1608.22,3.50296);
|
|
||||||
waypoints[104].type = "stand";
|
|
||||||
waypoints[104].childCount = 2;
|
|
||||||
waypoints[104].children[0] = 35;
|
|
||||||
waypoints[104].children[1] = 36;
|
|
||||||
waypoints[105] = spawnstruct();
|
|
||||||
waypoints[105].origin = (962.756,1433.83,0.748573);
|
|
||||||
waypoints[105].type = "stand";
|
|
||||||
waypoints[105].childCount = 2;
|
|
||||||
waypoints[105].children[0] = 42;
|
|
||||||
waypoints[105].children[1] = 106;
|
|
||||||
waypoints[106] = spawnstruct();
|
|
||||||
waypoints[106].origin = (897.747,1288.22,0.400695);
|
|
||||||
waypoints[106].type = "stand";
|
|
||||||
waypoints[106].childCount = 3;
|
|
||||||
waypoints[106].children[0] = 105;
|
|
||||||
waypoints[106].children[1] = 42;
|
|
||||||
waypoints[106].children[2] = 43;
|
|
||||||
waypoints[107] = spawnstruct();
|
|
||||||
waypoints[107].origin = (749.668,687.343,11.8986);
|
|
||||||
waypoints[107].type = "stand";
|
|
||||||
waypoints[107].childCount = 2;
|
|
||||||
waypoints[107].children[0] = 45;
|
|
||||||
waypoints[107].children[1] = 114;
|
|
||||||
waypoints[108] = spawnstruct();
|
|
||||||
waypoints[108].origin = (-500.519,-952.662,16.125);
|
|
||||||
waypoints[108].type = "stand";
|
|
||||||
waypoints[108].childCount = 2;
|
|
||||||
waypoints[108].children[0] = 72;
|
|
||||||
waypoints[108].children[1] = 109;
|
|
||||||
waypoints[109] = spawnstruct();
|
|
||||||
waypoints[109].origin = (-634.56,-1027.6,16.125);
|
|
||||||
waypoints[109].type = "stand";
|
|
||||||
waypoints[109].childCount = 3;
|
|
||||||
waypoints[109].children[0] = 73;
|
|
||||||
waypoints[109].children[1] = 108;
|
|
||||||
waypoints[109].children[2] = 72;
|
|
||||||
waypoints[110] = spawnstruct();
|
|
||||||
waypoints[110].origin = (-612.432,-586.304,16.125);
|
|
||||||
waypoints[110].type = "stand";
|
|
||||||
waypoints[110].childCount = 2;
|
|
||||||
waypoints[110].children[0] = 72;
|
|
||||||
waypoints[110].children[1] = 71;
|
|
||||||
waypoints[111] = spawnstruct();
|
|
||||||
waypoints[111].origin = (-349.851,-1829.05,16.125);
|
|
||||||
waypoints[111].type = "stand";
|
|
||||||
waypoints[111].childCount = 1;
|
|
||||||
waypoints[111].children[0] = 4;
|
|
||||||
waypoints[112] = spawnstruct();
|
|
||||||
waypoints[112].origin = (375.916,807.075,104.125);
|
|
||||||
waypoints[112].type = "stand";
|
|
||||||
waypoints[112].childCount = 1;
|
|
||||||
waypoints[112].children[0] = 113;
|
|
||||||
waypoints[113] = spawnstruct();
|
|
||||||
waypoints[113].origin = (447.038,801.978,100.352);
|
|
||||||
waypoints[113].type = "stand";
|
|
||||||
waypoints[113].childCount = 2;
|
|
||||||
waypoints[113].children[0] = 112;
|
|
||||||
waypoints[113].children[1] = 114;
|
|
||||||
waypoints[114] = spawnstruct();
|
|
||||||
waypoints[114].origin = (651.898,799.593,0.124998);
|
|
||||||
waypoints[114].type = "stand";
|
|
||||||
waypoints[114].childCount = 4;
|
|
||||||
waypoints[114].children[0] = 113;
|
|
||||||
waypoints[114].children[1] = 41;
|
|
||||||
waypoints[114].children[2] = 107;
|
|
||||||
waypoints[114].children[3] = 45;
|
|
||||||
return waypoints;
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
bota
|
|
||||||
botb
|
|
||||||
botc
|
|
||||||
botd
|
|
||||||
bote
|
|
||||||
botf
|
|
||||||
botg
|
|
||||||
both
|
|
||||||
boti
|
|
||||||
botj
|
|
||||||
botk
|
|
||||||
botl
|
|
||||||
botm
|
|
||||||
botn
|
|
||||||
boto
|
|
||||||
botp
|
|
||||||
botq
|
|
||||||
botr
|
|
||||||
bots
|
|
||||||
bott
|
|
||||||
botu
|
|
||||||
botv
|
|
||||||
botw
|
|
||||||
botx
|
|
||||||
boty
|
|
||||||
botz
|
|
@ -1 +0,0 @@
|
|||||||
start "" "%~dp0cod4x18_dedrun.exe" +set dedicated "1" +set sv_maxclients "64" +set sv_punkbuster "0" +set net_port "28965" +set fs_game "mods/bots" +exec localbotserver.cfg +loadplugin httpget +map_rotate
|
|
@ -1 +0,0 @@
|
|||||||
start "" "%~dp0iw3mp.exe" +connect 127.0.0.1:28965
|
|
@ -1,60 +0,0 @@
|
|||||||
# CoD4x Bot Warfare
|
|
||||||
Bot Warfare is a GSC mod for the CoD4x project.
|
|
||||||
|
|
||||||
It aims to add playable AI to the multiplayer games of CoD4.
|
|
||||||
|
|
||||||
You can find the more information at the Git Repo: https://github.com/ineedbots/cod4x_bot_warfare
|
|
||||||
|
|
||||||
**Important to public dedicated servers**
|
|
||||||
The 'bots_main_firstIsHost' DVAR is enabled by default!
|
|
||||||
This is so inexperienced users of the mod can access with menu without any configuration.
|
|
||||||
Make sure to disable this DVAR by adding 'set bots_main_firstIsHost 0' in your server config!
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
0. Make sure that CoD4x server + client is installed, updated and working properly.
|
|
||||||
- Go to https://cod4x.me/ and download the Windows Server zip file. Move the contents of 'cod4x-windows-server' into your CoD4 game folder.
|
|
||||||
1. Locate your CoD4x server install folder.
|
|
||||||
2. Move the files/folders found in 'Add to root of CoD4x server' from the Bot Warfare release archive you downloaded to the root of your CoD4x server folder.
|
|
||||||
- The folder/file structure should follow as '.CoD4x server folder\main_shared\maps\mp\bots\_bot.gsc'.
|
|
||||||
3. The mod is now installed.
|
|
||||||
- You can use the z_localserver.bat to start a local server.
|
|
||||||
- You can use the z_playserver.bat to join the local server and play!
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
### Menu Usage
|
|
||||||
- You can open the menu by pressing the primary grenade and secondary grenade buttons together.
|
|
||||||
|
|
||||||
- You can navigate the options by the pressing the ADS and fire keys, and you can select options by pressing your melee key.
|
|
||||||
|
|
||||||
- Pressing the menu button again closes menus.
|
|
||||||
|
|
||||||
## Changelog
|
|
||||||
- v2.0.1
|
|
||||||
- Reduced bots crouching
|
|
||||||
- Increased bots sprinting
|
|
||||||
- Improved bots mantling, crouching and knifing glass when needed
|
|
||||||
- Fixed possible script runtime errors
|
|
||||||
- Improved domination
|
|
||||||
- Bots use explosives more if they have it
|
|
||||||
- Bots aim slower when ads'ing
|
|
||||||
- Fixed bots holding breath
|
|
||||||
- Fixed bots rubberbanding movement when their goal changes
|
|
||||||
- Added bots quickscoping with snipers
|
|
||||||
- Added bots reload canceling and fast swaps
|
|
||||||
- Bots use C4
|
|
||||||
- Improved revenge
|
|
||||||
- Bots can swap weapons on spawn more likely
|
|
||||||
|
|
||||||
- v2.0.0
|
|
||||||
- Initial reboot release
|
|
||||||
|
|
||||||
## Credits
|
|
||||||
- CoD4x Team - https://github.com/callofduty4x/CoD4x_Server
|
|
||||||
- INeedGames(me) - http://www.moddb.com/mods/bot-warfare
|
|
||||||
- PeZBot team - http://www.moddb.com/mods/pezbot
|
|
||||||
- Ability
|
|
||||||
- Salvation
|
|
||||||
|
|
||||||
Feel free to use code, host on other sites, host on servers, mod it and merge mods with it, just give credit where credit is due!
|
|
||||||
-INeedGames/INeedBot(s) @ ineedbots@outlook.com
|
|
BIN
out/ss.png
Before Width: | Height: | Size: 3.6 MiB |
20
scriptdata/waypoints/README.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# IW3 Bot Warfare Waypoints
|
||||||
|
|
||||||
|
Welcome to the collection of waypoints for IW3 Bot Warfare.
|
||||||
|
|
||||||
|
This repo contains all of the waypoints in CSV format, a format that Bot Warfare can read at run time.
|
||||||
|
|
||||||
|
|
||||||
|
[Here is a tool](https://github.com/ineedbots/bw_node_tools/blob/master/src/gscwptocsv.js) that will convert a PeZBOT GSC into the CSV format.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Waypoint Creators
|
||||||
|
|
||||||
|
- Freddy & Metaljag
|
||||||
|
- CannerZ45
|
||||||
|
- JAK (BF2all)
|
||||||
|
- MikeTheGuy
|
||||||
|
- Botmancod
|
||||||
|
- Hugo HG
|
||||||
|
- Stendby
|
34
scriptdata/waypoints/cube_wp.csv
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
33
|
||||||
|
-91.7391 1296.84 4.125,3 1,undefined,,,
|
||||||
|
-513.47 1297.05 4.125,0 2,undefined,,,
|
||||||
|
-513.532 892.596 4.125,1 4 3,undefined,,,
|
||||||
|
-95.627 888.155 4.125,0 22 2,undefined,,,
|
||||||
|
-515.998 507.737 4.125,2 5,undefined,,,
|
||||||
|
-513.599 95.4036 4.125,4 6,undefined,,,
|
||||||
|
-517.385 -314.375 4.125,5 7,undefined,,,
|
||||||
|
-517.357 -733.17 4.125,6 8,undefined,,,
|
||||||
|
-517.011 -1147.4 4.125,7 9,undefined,,,
|
||||||
|
-120.81 -1178.33 4.125,8 10 14,undefined,,,
|
||||||
|
-84.3189 -752.401 4.125,9 11,undefined,,,
|
||||||
|
299.118 -751.464 4.125,10 12,undefined,,,
|
||||||
|
705.61 -762.512 4.125,11 13 16 17,undefined,,,
|
||||||
|
732.46 -1171.01 4.125,14 12 15,undefined,,,
|
||||||
|
314.28 -1171.1 4.125,13 9,undefined,,,
|
||||||
|
1122.23 -1173.9 4.125,13 16,undefined,,,
|
||||||
|
1134.21 -779.143 4.125,15 12 32,undefined,,,
|
||||||
|
711.291 -372.404 4.125,12 18 23,undefined,,,
|
||||||
|
307.242 -334.239 4.125,17 19,undefined,,,
|
||||||
|
307.287 62.6363 4.125,18 20 21 24,undefined,,,
|
||||||
|
-102.402 70.1358 4.125,19,undefined,,,
|
||||||
|
312.679 465.682 4.125,19 22 25,undefined,,,
|
||||||
|
-106.068 473.136 4.125,21 3,undefined,,,
|
||||||
|
912.448 -340.926 4.125,17,undefined,,,
|
||||||
|
487.993 73.6146 4.125,19,undefined,,,
|
||||||
|
293.392 879.101 4.125,21 26,undefined,,,
|
||||||
|
712.057 888.205 4.125,25 27,undefined,,,
|
||||||
|
723.093 473.955 4.125,26 28,undefined,,,
|
||||||
|
1128.75 470.504 4.125,27 29,undefined,,,
|
||||||
|
1537.53 471.798 4.125,28 30,undefined,,,
|
||||||
|
1542.56 85.6186 4.125,29 31,undefined,,,
|
||||||
|
1542.67 -336.824 4.125,30 32,undefined,,,
|
||||||
|
1542.76 -749.58 4.125,31 16,undefined,,,
|
|
114
scriptdata/waypoints/mp_4doffice_wp.csv
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
113
|
||||||
|
1733.58 233.16 136.125,24 23 13,stand,,,
|
||||||
|
1453 -206.2 0.125,94 95,stand,,,
|
||||||
|
2183.12 240.522 -127.875,3,stand,,,
|
||||||
|
2157.11 -13.5664 -127.875,2 4,stand,,,
|
||||||
|
2311.73 -15.5734 -127.875,3 5,stand,,,
|
||||||
|
2288.88 310.29 0.125,4 6 92,stand,,,
|
||||||
|
2216.97 280.773 0.125,5 7 92,stand,,,
|
||||||
|
2219.71 -23.0341 0.125,6 8,stand,,,
|
||||||
|
2308.17 -13.9387 0.125,7 9,stand,,,
|
||||||
|
2328.48 268.216 128.125,8 10,stand,,,
|
||||||
|
2260.59 348.646 136.125,9 11,stand,,,
|
||||||
|
2064.81 338.414 136.125,10 12 14 24 17 25,stand,,,
|
||||||
|
1632.71 -56.1313 136.125,11 13 14 22 23 24 25,stand,,,
|
||||||
|
1812.12 -149.269 136.125,12 14 22 0,stand,,,
|
||||||
|
2173.09 -28.1784 136.125,13 11 12 15 17,stand,,,
|
||||||
|
2344.27 16.8739 136.125,16 14 17,climb,9.53491 89.081 0,,
|
||||||
|
2337.7 54.0345 244.125,15,climb,7.20032 91.108 0,,
|
||||||
|
2312 -208.322 136.125,14 15 21 11,stand,,,
|
||||||
|
2090.09 -376.612 40.125,19 93,stand,,,
|
||||||
|
2141.46 -424.214 10.125,18 20,stand,,,
|
||||||
|
2260.75 -407.277 10.125,19 21,climb,2.56409 87.5739 0,,
|
||||||
|
2261.49 -367.761 140.125,20 17,climb,81.6656 91.3422 0,,
|
||||||
|
1456.3 178.006 136.125,12 13 23 26 30,stand,,,
|
||||||
|
1690.37 128.417 136.125,0 12 24 22,stand,,,
|
||||||
|
1876.51 251.916 136.125,0 23 12 11 25,stand,,,
|
||||||
|
1511.61 -275.268 136.125,12 24 11 26 27 28 30 112,stand,,,
|
||||||
|
1238.5 24.3717 136.125,22 25 27 28 30,stand,,,
|
||||||
|
1289.75 -277.416 136.125,25 26 28,stand,,,
|
||||||
|
1243.26 276.144 136.125,26 25 27 29 112,stand,,,
|
||||||
|
940.341 265.083 136.125,30 28 36 112,stand,,,
|
||||||
|
1086.62 -82.7684 136.125,26 25 29 22 31 36,stand,,,
|
||||||
|
841.048 -255.803 136.125,30 32 34,stand,,,
|
||||||
|
423.835 -322.087 136.125,31 33 37 105,stand,,,
|
||||||
|
255.63 135.289 136.125,32 34 37 38 105,stand,,,
|
||||||
|
651.811 235.207 136.125,33 31 35 37,stand,,,
|
||||||
|
784.952 43.6093 136.125,34 36,stand,,,
|
||||||
|
944.779 167.056 136.125,29 30 35 112,stand,,,
|
||||||
|
479.938 8.19693 136.125,34 32 33 38 105,stand,,,
|
||||||
|
-174.12 0.257538 136.125,33 37 39 40,stand,,,
|
||||||
|
-430.595 -108.045 136.125,38 44 45,stand,,,
|
||||||
|
-309.213 12.8544 136.125,38 41,stand,,,
|
||||||
|
-494.578 178.099 136.125,40 42 43,stand,,,
|
||||||
|
-385.362 269.799 136.125,41 48,stand,,,
|
||||||
|
-683.572 279.303 136.125,41 44 45 51,stand,,,
|
||||||
|
-795.361 85.1956 136.125,43 39 45,stand,,,
|
||||||
|
-878.039 -33.4477 136.125,39 44 43,stand,,,
|
||||||
|
-208.505 416.134 10.125,47 102 107 108,stand,,,
|
||||||
|
-381.332 415.125 10.1412,46 48,climb,6.18958 -89.4159 0,,
|
||||||
|
-381.262 381.438 140.125,47 42,climb,8.79333 -84.6643 0,,
|
||||||
|
-824.489 240.749 0.935783,50 52 54,stand,,,
|
||||||
|
-824.181 344.875 0.125002,49 51,climb,0.52063 90.705 0,,
|
||||||
|
-786.003 344.435 136.125,50 43,climb,60.083 88.3979 0,,
|
||||||
|
-969.645 192.84 1.125,49 53,stand,,,
|
||||||
|
-821.936 134.855 1.125,52 54,stand,,,
|
||||||
|
-524.898 242.007 1.12467,53 49 55 59,stand,,,
|
||||||
|
-393.706 205.237 0.125002,54 56 60 71,stand,,,
|
||||||
|
-376.834 -193.953 0.125,55 57 68,stand,,,
|
||||||
|
-309.5 -206.009 18.2773,56 58,stand,,,
|
||||||
|
-224.194 -171.441 0.125002,57 59,stand,,,
|
||||||
|
-240.741 257.243 1.125,58 54 71 70 106,stand,,,
|
||||||
|
-660.534 59.9441 1.04621,55 61 69 70 71,stand,,,
|
||||||
|
-641.537 -73.9196 1.04795,60 62 68,stand,,,
|
||||||
|
-554.322 -218.581 0.125002,61 63 63 68,stand,,,
|
||||||
|
-592.157 -305.256 0.125002,64 62 62 68,stand,,,
|
||||||
|
-593.869 -382.365 40.125,63 65,stand,,,
|
||||||
|
-527.224 -421.047 10.125,64 66,stand,,,
|
||||||
|
-168.344 -418.036 10.125,65 67 77,stand,,,
|
||||||
|
480.313 -422.535 10.125,76 77 66,stand,,,
|
||||||
|
-525.719 -108.292 2.80823,56 62 63 61,stand,,,
|
||||||
|
188.086 176.153 0.124998,60 70 71 80,stand,,,
|
||||||
|
16.1659 99.4017 0.124998,69 60 71 59 72,stand,,,
|
||||||
|
-337.133 81.1536 0.124998,55 60 70 69 59 106,stand,,,
|
||||||
|
90.4592 -73.2581 0.125002,70 73 84,stand,,,
|
||||||
|
431.51 -67.6764 0.383909,72 74 81 84,stand,,,
|
||||||
|
367.224 -213.226 0.124999,73 81 75,stand,,,
|
||||||
|
486.026 -311.535 0.124999,76 81 74,stand,,,
|
||||||
|
484.432 -375.919 40.1477,75 67,stand,,,
|
||||||
|
827.519 -426.026 10.125,79 67 66,stand,,,
|
||||||
|
828.309 -305.505 0.124999,79 80 100,stand,,,
|
||||||
|
825.257 -375.195 33.4722,77 78,stand,,,
|
||||||
|
820.428 69.1938 1.125,78 69 82 85 98,stand,,,
|
||||||
|
598.283 -103.718 0.124999,74 73 75 82 84,stand,,,
|
||||||
|
613.617 56.6777 1.125,81 83 80,stand,,,
|
||||||
|
283.634 60.791 0.125002,82 84,stand,,,
|
||||||
|
295.97 -43.0754 0.125002,83 72 73 81,stand,,,
|
||||||
|
878.779 194.709 0.125,80 86 109,stand,,,
|
||||||
|
1047.49 205.981 1.125,85 87 109,stand,,,
|
||||||
|
1184.99 352.944 0.124999,86 88,stand,,,
|
||||||
|
1558.39 343.08 0.125001,87 89,stand,,,
|
||||||
|
1540.8 112.242 0.125001,88 90 97,stand,,,
|
||||||
|
1689.13 50.6814 1.125,89 91 94,stand,,,
|
||||||
|
2007.9 64.0222 0.124998,90 92 93,stand,,,
|
||||||
|
2046.59 273.329 0.124998,91 5 6,stand,,,
|
||||||
|
2068.54 -287.147 0.125,18 91,stand,,,
|
||||||
|
1675.8 -180.166 0.125001,90 1 95,stand,,,
|
||||||
|
1318.66 -61.636 0.125001,1 96 94,stand,,,
|
||||||
|
1215.81 -22.4591 0.125,95 97 101,stand,,,
|
||||||
|
1203.76 118.287 1.02737,96 89 98,stand,,,
|
||||||
|
977.201 40.5211 0.125,97 80 99,stand,,,
|
||||||
|
972.907 -210.071 0.125001,98 100 101,stand,,,
|
||||||
|
921.692 -266.244 0.125001,99 78,stand,,,
|
||||||
|
1217.07 -241.919 1.125,99 96,stand,,,
|
||||||
|
182.922 413.127 10.1504,103 46,climb,15.5994 -87.7222 0,,
|
||||||
|
185.194 390.797 140.125,102 104,climb,-2.07214 -90.1886 0,,
|
||||||
|
196.821 351.087 136.125,103 105,stand,,,
|
||||||
|
341.216 341.414 136.125,104 33 32 37,stand,,,
|
||||||
|
-297.769 323.862 0.492422,107 59 71,stand,,,
|
||||||
|
-221.815 375.917 39.737,46 106,stand,,,
|
||||||
|
780.136 420.141 10.125,46 110 111,stand,,,
|
||||||
|
870.801 312.352 1.125,110 86 85,stand,,,
|
||||||
|
802.575 375.584 35.8361,108 109,stand,,,
|
||||||
|
1140.29 409.125 10.125,108 112,climb,18.4943 -90.086 0,,
|
||||||
|
1143.36 362.718 136.125,111 29 36 28 25,climb,16.1761 -90.2344 0,,
|
|
144
scriptdata/waypoints/mp_4hanoi_wp.csv
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
143
|
||||||
|
-1259.3 1521.5 8.83176,39,stand,,,
|
||||||
|
-2523.63 1174.27 12.9425,126,stand,,,
|
||||||
|
1724.3 -752.1 150.125,108,stand,,,
|
||||||
|
1688.74 652.6 11.4999,75,stand,,,
|
||||||
|
1881.7 -1090.4 9.19418,111,stand,,,
|
||||||
|
1896.6 -834.738 8.36909,110,stand,,,
|
||||||
|
1309.1 -229.9 8.31324,62 105 78,stand,,,
|
||||||
|
1896.3 -1265.6 8.46395,84,stand,,,
|
||||||
|
-1316.1 1168.7 8.83177,39,stand,,,
|
||||||
|
1303.37 -1616.98 8.12109,84 133,stand,,,
|
||||||
|
-1744.2 -26.8 9.27197,15 17 99,stand,,,
|
||||||
|
-2500.8 951.3 12.9426,126,stand,,,
|
||||||
|
-1931.6 2360.4 -11.4597,45 49,stand,,,
|
||||||
|
-1457.54 323.829 10.125,14,stand,,,
|
||||||
|
-1517.99 250.16 11.125,13 15 21 99,stand,,,
|
||||||
|
-1732.71 217.709 9.27197,14 10 20 40 99,stand,,,
|
||||||
|
-2085.49 341.317 12.3643,17,stand,,,
|
||||||
|
-1954.02 203.053 12.9425,10 16 18,stand,,,
|
||||||
|
-1925.3 459.111 12.9425,17 19 20 40 115,stand,,,
|
||||||
|
-1983.84 1011.93 12.9425,18 40 41 125,stand,,,
|
||||||
|
-1678.42 1369.06 9.27171,18 15 38 39 21 38 53 41 45 124 142,stand,,,
|
||||||
|
-1521.34 858.727 11.125,14 22 20 23 40 140,stand,,,
|
||||||
|
-1431.46 831.532 10.125,21 23,stand,,,
|
||||||
|
-1428.8 693.488 10.125,24 22 21,stand,,,
|
||||||
|
-1422.08 459.612 127.859,23 25,stand,,,
|
||||||
|
-1307.34 440.501 127.625,24 26,stand,,,
|
||||||
|
-1176.76 259.14 127.625,25 27 28,stand,,,
|
||||||
|
-985.833 313.273 127.625,26 28,stand,,,
|
||||||
|
-605.066 257.565 127.625,27 26 29,stand,,,
|
||||||
|
-280.386 287.564 127.625,28 30,stand,,,
|
||||||
|
-253.489 12.2056 127.625,29 31,stand,,,
|
||||||
|
-53.1065 21.1914 128.591,30 32,stand,,,
|
||||||
|
-50.4324 -242.792 8.93786,31 33,stand,,,
|
||||||
|
82.463 -436.886 8.49204,32 34 55 56 60 134 134 135,stand,,,
|
||||||
|
-545.9 -472.407 8.77093,33 35 97 36 135 134 136,stand,,,
|
||||||
|
-663.06 75.7119 8.77093,34 36 99 100 137,stand,,,
|
||||||
|
-654.501 329.688 8.93575,35 37 34,stand,,,
|
||||||
|
-923.941 336.218 8.93563,36 38 127,stand,,,
|
||||||
|
-986.444 1340.97 9.11872,37 20 39 20 53 127 41,stand,,,
|
||||||
|
-1238.49 1321.65 8.83176,0 8 38 20 41,stand,,,
|
||||||
|
-1947.23 759.343 12.9425,21 18 15 19,stand,,,
|
||||||
|
-2141.93 1281.33 12.9425,19 42 20 125 39 38 53,stand,,,
|
||||||
|
-2081.98 1491.97 22.5764,41 43,stand,,,
|
||||||
|
-2102.06 1655.49 16.739,42 44,stand,,,
|
||||||
|
-2099.16 1765.12 -11.452,43 45,stand,,,
|
||||||
|
-1782.85 2029.39 -14.3657,44 12 46 49 20 124,stand,,,
|
||||||
|
-1338.71 1878.65 -14.3672,45 47 50 67 47 124,stand,,,
|
||||||
|
-1295.89 2033.93 -14.4779,46 48 50 67 46 124 142,stand,,,
|
||||||
|
-1445.08 2407.19 -13.375,47 49,stand,,,
|
||||||
|
-1676.87 2295.44 -14.3657,48 12 45,stand,,,
|
||||||
|
-833.68 2065.92 -13.8191,47 46 51 67 68,stand,,,
|
||||||
|
-682.309 1924.19 2.35602,50 52 66,stand,,,
|
||||||
|
-531.821 1813.45 8.80289,51 53 66,stand,,,
|
||||||
|
-523.129 1335.35 9.11872,52 20 38 54 41,stand,,,
|
||||||
|
-200.74 1161.61 9.11872,53 55 128,stand,,,
|
||||||
|
145.441 597.945 8.49397,54 33 58 59 128,stand,,,
|
||||||
|
763.004 -376.281 8.49397,33 57 58 61 92 132 134 135,stand,,,
|
||||||
|
826.817 58.7864 8.49397,56 58 61 62 128,stand,,,
|
||||||
|
624.452 338.098 8.49397,57 56 55 61 128,stand,,,
|
||||||
|
-26.0185 250.809 8.49397,55 60,stand,,,
|
||||||
|
157.276 52.4291 8.77254,33 59 128,stand,,,
|
||||||
|
566.346 16.2675 8.49034,56 58 57,stand,,,
|
||||||
|
1441.01 59.4256 8.1211,57 63 75 6 77 105,stand,,,
|
||||||
|
1402.16 751.268 9.96331,62 64 72 73 75,stand,,,
|
||||||
|
-6.20524 2077.5 14.4919,63 65 70 71 72 74,stand,,,
|
||||||
|
-190.187 2141.88 16.5524,64 66 67,stand,,,
|
||||||
|
-305.421 1958.92 12.1376,65 52 51,stand,,,
|
||||||
|
-767.931 2207.9 -3.80063,65 50 47 46,stand,,,
|
||||||
|
-850.97 1868.39 -9.55448,50 69,stand,,,
|
||||||
|
-997.941 1860.35 -5.875,68,stand,,,
|
||||||
|
700.908 2142.76 9.96331,64 71 74 72,stand,,,
|
||||||
|
1455.47 2201.62 9.96331,70 64 72 73 74,stand,,,
|
||||||
|
677.053 1394.41 9.96331,63 64 71 70,stand,,,
|
||||||
|
1600.85 1073.57 8.90974,71 63 74,stand,,,
|
||||||
|
348.79 2212.9 9.96331,73 64 70 71,stand,,,
|
||||||
|
1571.64 354.552 8.1211,3 62 63 76 105,stand,,,
|
||||||
|
1819.7 148.668 8.23485,75 77,stand,,,
|
||||||
|
1579.5 -427.248 8.1211,76 62 78 79 83 105,stand,,,
|
||||||
|
1874.59 -312.151 8.1211,77 105 106 6,stand,,,
|
||||||
|
1455.62 -1097.63 8.1211,77 80 83 84 85 111,stand,,,
|
||||||
|
1190.87 -928.888 9.30819,81 79 133,stand,,,
|
||||||
|
1039.36 -931.666 24.1597,80 82,stand,,,
|
||||||
|
907.959 -933.021 9.1816,81 92,stand,,,
|
||||||
|
1291.68 -619.98 8.10396,77 79 133,stand,,,
|
||||||
|
1609.52 -1578.71 8.05915,79 7 9 112 114 133,stand,,,
|
||||||
|
1127.72 -1079.67 7.39142,79 86 92 133,stand,,,
|
||||||
|
1124.85 -1269.15 8.124,85 87 133,stand,,,
|
||||||
|
938.466 -1291.04 8.11967,86,stand,,,
|
||||||
|
657.451 -1309.58 8.1212,89,stand,,,
|
||||||
|
425.244 -1297.07 8.36798,88 90,stand,,,
|
||||||
|
225.365 -1261.5 6.13196,91 89 93 94,stand,,,
|
||||||
|
256.966 -988.443 9.15804,90 92,stand,,,
|
||||||
|
762.154 -966.285 8.12109,56 82 85 91 93 132,stand,,,
|
||||||
|
482.941 -1150.64 11.4345,92 90,stand,,,
|
||||||
|
-68.8762 -1385.3 12.2503,90 95 131,stand,,,
|
||||||
|
-491.273 -1018.09 8.17231,94 96 129 130,stand,,,
|
||||||
|
-516.127 -747.495 8.27592,95 97 98,stand,,,
|
||||||
|
-561.381 -636.627 8.27592,96 34 98,stand,,,
|
||||||
|
-729.896 -647.408 9.04598,96 103 97,stand,,,
|
||||||
|
-1405.81 77.4237 26.2123,35 14 15 10 100 101,stand,,,
|
||||||
|
-1155.12 30.3133 8.77093,35 99 101 138 139,stand,,,
|
||||||
|
-1123.82 -67.0565 8.77093,100 102 99,stand,,,
|
||||||
|
-895.646 -70.2334 8.27253,101 103,stand,,,
|
||||||
|
-914.462 -622.521 8.27253,102 98,stand,,,
|
||||||
|
1256.35 414.568 128.591,105,stand,,,
|
||||||
|
1258.92 128.178 8.11854,104 62 6 75 77 78,stand,,,
|
||||||
|
1869.31 -531.392 8.36909,78 107 109,stand,,,
|
||||||
|
1905.1 -584.208 8.36909,106 108,stand,,,
|
||||||
|
1879.2 -841.432 150.125,107 2,stand,,,
|
||||||
|
1742.43 -583.344 8.36909,106 110,stand,,,
|
||||||
|
1742.37 -851.378 8.36909,109 5 111,stand,,,
|
||||||
|
1747.2 -1122.62 8.36909,110 79 4,stand,,,
|
||||||
|
1897.17 -1716.95 11.4569,84 113 114,stand,,,
|
||||||
|
1708.91 -1873 9.0382,112,stand,,,
|
||||||
|
2067.99 -1649.52 8.6786,112 84,stand,,,
|
||||||
|
-2066.08 461.207 15.2328,18 116 118,stand,,,
|
||||||
|
-2158.78 870.337 13.2869,117 115 125,stand,,,
|
||||||
|
-2204.32 775.035 13.2869,116,stand,,,
|
||||||
|
-2196.83 460.99 13.2869,115 119,stand,,,
|
||||||
|
-2194.12 659.654 131.568,118 120,stand,,,
|
||||||
|
-2141.06 802.639 131.571,119 121 123,stand,,,
|
||||||
|
-2081.17 727.619 131.571,120 122,stand,,,
|
||||||
|
-2113.46 519.804 131.571,121,stand,,,
|
||||||
|
-2159.97 935.887 131.568,120,stand,,,
|
||||||
|
-1573.73 1823.66 -12.2275,20 46 47 45 125 142,stand,,,
|
||||||
|
-2169.55 1027.58 12.9425,41 116 19 124 126 142,stand,,,
|
||||||
|
-2440.51 1031.02 12.9425,125 1 11,stand,,,
|
||||||
|
-871.082 699.725 9.11872,37 38 128,stand,,,
|
||||||
|
25.5522 760.452 9.05611,55 54 58 57 60 127,stand,,,
|
||||||
|
-641.742 -1053.82 8.17216,95,stand,,,
|
||||||
|
-222 -1110.53 8.61306,95,stand,,,
|
||||||
|
5.91305 -1259.71 12.2503,94,stand,,,
|
||||||
|
741.479 -657.266 8.125,56 92,stand,,,
|
||||||
|
1285.16 -1268.54 8.1211,86 85 84 9 80 83,stand,,,
|
||||||
|
364.509 -450.289 8.49291,33 56 33 135 34,stand,,,
|
||||||
|
-234.422 -484.752 8.125,34 33 134 56,stand,,,
|
||||||
|
-465.604 -274.099 8.77093,34,stand,,,
|
||||||
|
-700.789 -143.111 8.77093,35,stand,,,
|
||||||
|
-1259.44 119.159 8.77093,100,stand,,,
|
||||||
|
-1287.32 -82.6304 8.77093,100,stand,,,
|
||||||
|
-1494.56 1007.26 10.125,21 141,stand,,,
|
||||||
|
-1364.75 964.77 10.1316,140,stand,,,
|
||||||
|
-1816.35 1621.3 -6.79547,124 47 20 125,stand,,,
|
|
324
scriptdata/waypoints/mp_4nuketown_wp.csv
Normal file
@ -0,0 +1,324 @@
|
|||||||
|
323
|
||||||
|
-124.5 1602 3.91817,10 11 26 322,stand,,,
|
||||||
|
829.2 1789.4 5.50769,189,stand,,,
|
||||||
|
1460.8 1046.6 3.91817,303,stand,,,
|
||||||
|
1406.2 -233.3 3.91817,238 236 251,stand,,,
|
||||||
|
672.463 -1394.62 3.91817,263,stand,,,
|
||||||
|
114.914 -1797.84 8.58386,265 266,stand,,,
|
||||||
|
-622.709 -1415.6 3.91817,113 114 307,stand,,,
|
||||||
|
-2506.3 -1115.29 3.91817,90 91,stand,,,
|
||||||
|
-2508.7 675.609 3.91817,73 74 70,stand,,,
|
||||||
|
-1799.29 1602.7 3.91817,16 72,stand,,,
|
||||||
|
119.408 1450.55 3.91817,0 25 322,stand,,,
|
||||||
|
-406.417 1461.61 3.91817,0 12 21 22 321 322,stand,,,
|
||||||
|
-746.136 1260.05 5.12269,11 13 20 21 321,stand,,,
|
||||||
|
-1111.43 1251.36 0.0405235,12 14 18 20,stand,,,
|
||||||
|
-1005.39 887.579 0.0405235,13 15 46 144,stand,,,
|
||||||
|
-1197.57 935.49 0.0405235,14 55 143,stand,,,
|
||||||
|
-1635.34 1603.43 3.91817,9 17 19,stand,,,
|
||||||
|
-1608.94 1319.14 3.91817,16 18 47,stand,,,
|
||||||
|
-1348.03 1305.11 5.125,17 13 143 19,stand,,,
|
||||||
|
-1204.34 1596.69 0.0405253,16 20 18,stand,,,
|
||||||
|
-1044.6 1413.37 0.0405253,19 13 12,stand,,,
|
||||||
|
-673.861 1512.42 3.91817,11 12,stand,,,
|
||||||
|
-300.552 1248.36 5.12269,11 23 304 321 322,stand,,,
|
||||||
|
-104.725 1302.63 5.10688,22 24,stand,,,
|
||||||
|
34.6356 1331.04 5.10688,23 25,stand,,,
|
||||||
|
222.283 1327.75 3.91817,24 10 27 28,stand,,,
|
||||||
|
195.637 1624.78 3.91817,0 27,stand,,,
|
||||||
|
476.228 1564.85 3.91817,26 25,stand,,,
|
||||||
|
82.367 1082.32 3.91817,25 29 306,stand,,,
|
||||||
|
-52.095 917.638 3.91817,28 30,stand,,,
|
||||||
|
-210.125 754.026 3.91817,29 31 305,stand,,,
|
||||||
|
-168.719 656.145 3.91817,30 32,stand,,,
|
||||||
|
-287.682 500.28 12.5772,31 33,stand,,,
|
||||||
|
-334.388 458.346 3.91817,32 34,stand,,,
|
||||||
|
-331.242 543.735 31.1432,33 35,stand,,,
|
||||||
|
-335.354 579.467 31.1432,34 36,stand,,,
|
||||||
|
-420.947 579.481 31.1607,35 37,stand,,,
|
||||||
|
-422.036 721.159 31.1607,36 38,stand,,,
|
||||||
|
-512.602 746.786 31.1607,37 39 42,stand,,,
|
||||||
|
-569.421 889.545 31.1607,38 40,stand,,,
|
||||||
|
-645.409 889.662 32.3915,39 41,stand,,,
|
||||||
|
-740.832 890.587 5.12269,40 46 145,stand,,,
|
||||||
|
-474.85 850.972 37.025,38 43,stand,,,
|
||||||
|
-473.637 986.909 92.2945,42 44,stand,,,
|
||||||
|
-474.38 1094.5 90.9985,43 45,stand,,,
|
||||||
|
-626.062 1081.09 90.9985,44,stand,,,
|
||||||
|
-870.338 874.257 5.11242,41 14,stand,,,
|
||||||
|
-1621.6 1041.31 3.91817,17 48 143,stand,,,
|
||||||
|
-1919.59 1013.3 3.91817,47 49,stand,,,
|
||||||
|
-2014.06 953.011 3.91817,48 50 51 69,stand,,,
|
||||||
|
-1901.97 930.544 7.08065,49 53,stand,,,
|
||||||
|
-1996.27 848.231 5.38095,49 52,stand,,,
|
||||||
|
-2077.5 855.179 39.0764,51 68,stand,,,
|
||||||
|
-1799.09 898.804 7.08065,50 54 57,stand,,,
|
||||||
|
-1606.34 891.085 7.08065,53 55,stand,,,
|
||||||
|
-1408.09 905.646 5.60604,54 56 15,stand,,,
|
||||||
|
-1353.12 644.568 5.125,55 133 134 150,stand,,,
|
||||||
|
-1799.61 797.877 7.72876,53 58,stand,,,
|
||||||
|
-1809.31 717.407 7.10259,57 59 135 136,stand,,,
|
||||||
|
-1799.16 531.339 7.10259,58 60 135,stand,,,
|
||||||
|
-1811.94 441.607 7.0979,59 61,stand,,,
|
||||||
|
-1958.58 441.219 7.0979,60 62,stand,,,
|
||||||
|
-2023.9 486.934 7.72876,61 63,stand,,,
|
||||||
|
-2154.02 450.333 7.08065,62 64 65,stand,,,
|
||||||
|
-2153.93 361.123 7.08065,63 76,stand,,,
|
||||||
|
-2229.11 454.763 7.08065,63 66 67,stand,,,
|
||||||
|
-2308.57 460.287 3.91817,65 74 75 82,stand,,,
|
||||||
|
-2228.89 554.513 39.0764,65 68,stand,,,
|
||||||
|
-2227.82 868.571 39.0764,67 52,stand,,,
|
||||||
|
-2355.39 997.064 3.91817,49 70 73,stand,,,
|
||||||
|
-2459.96 1117.13 3.91817,69 71 8 73,stand,,,
|
||||||
|
-2452.4 1614.69 3.91817,70 72,stand,,,
|
||||||
|
-2047.07 1609.93 3.91817,71 9,stand,,,
|
||||||
|
-2425.95 829.692 3.91817,69 8 75 70,stand,,,
|
||||||
|
-2506.54 420.126 3.91817,8 66 82,stand,,,
|
||||||
|
-2369.78 645.398 3.91817,66 73,stand,,,
|
||||||
|
-2160.61 243.772 3.91817,64 77 81 84,stand,,,
|
||||||
|
-1799.38 250.987 3.90467,76 78 132 152 81,stand,,,
|
||||||
|
-1812.69 3.89159 0.0405234,77 79 156 81,stand,,,
|
||||||
|
-1826.26 -249.055 3.91817,78 80 104 155 81,stand,,,
|
||||||
|
-2077.03 -253.357 3.21439,79 81,stand,,,
|
||||||
|
-2132.18 9.35658 0.0405239,80 76 84 78 79 77 85,stand,,,
|
||||||
|
-2487.08 244.977 3.91817,74 83 84 66,stand,,,
|
||||||
|
-2473.21 24.1492 0.0405245,82 84 86,stand,,,
|
||||||
|
-2283.38 11.3215 0.0405245,83 81 85 86 76 82,stand,,,
|
||||||
|
-2290.3 -183.422 0.0405245,84 86 87 81,stand,,,
|
||||||
|
-2455.85 -175.36 0.0405241,83 85 87 84,stand,,,
|
||||||
|
-2301.33 -321.898 5.1905,85 88 157 160 86,stand,,,
|
||||||
|
-2485.35 -465.242 3.91817,87 89,stand,,,
|
||||||
|
-2485.18 -676.087 3.91817,88 90,stand,,,
|
||||||
|
-2476.47 -922.788 3.91817,89 7 95 93,stand,,,
|
||||||
|
-2449.18 -1388.46 3.91817,7 92,stand,,,
|
||||||
|
-2200.7 -1378.07 3.91817,91 93 105,stand,,,
|
||||||
|
-2200.17 -1024.81 3.91817,92 94 90 96,stand,,,
|
||||||
|
-2133.32 -803.997 3.91817,93 95 96 159,stand,,,
|
||||||
|
-2335.3 -815.06 3.91817,94 90,stand,,,
|
||||||
|
-2083.82 -938.694 6.95881,93 94 97,stand,,,
|
||||||
|
-1915.67 -939.112 6.86258,96 98 100,stand,,,
|
||||||
|
-1935.08 -1072.82 6.86258,97 99,stand,,,
|
||||||
|
-1916.85 -1190.4 6.86258,98,stand,,,
|
||||||
|
-1803.36 -944.597 6.86258,97 101,stand,,,
|
||||||
|
-1672.75 -944.433 6.24565,100 102 107 163,stand,,,
|
||||||
|
-1551.4 -939.388 4.97269,101 103 108,stand,,,
|
||||||
|
-1553.26 -657.629 4.96801,102 104 127 302,stand,,,
|
||||||
|
-1559.8 -284.013 5.125,103 79 128 153 155 164,stand,,,
|
||||||
|
-1948.71 -1352.07 3.91817,92 106,stand,,,
|
||||||
|
-1683.73 -1293.63 3.91817,105 107,stand,,,
|
||||||
|
-1731.85 -1154.54 3.91817,106 101,stand,,,
|
||||||
|
-1516.04 -1051.23 3.91817,102 109 127,stand,,,
|
||||||
|
-1264.45 -1065.57 0.0405246,108 110 126 127 320,stand,,,
|
||||||
|
-1276.89 -1285.35 0.0405246,109 111 320,stand,,,
|
||||||
|
-1082.44 -1284.43 3.91817,110 112,stand,,,
|
||||||
|
-895.631 -1280.01 3.91817,111 113 310,stand,,,
|
||||||
|
-802.899 -1395.67 3.91817,112 6 310,stand,,,
|
||||||
|
-276.811 -1410.08 3.91817,6 115,stand,,,
|
||||||
|
-314.78 -1202.71 3.91817,114 116 308,stand,,,
|
||||||
|
-343.477 -938.959 3.91817,115 117 309,stand,,,
|
||||||
|
-363.44 -828.294 6.525,116 118,stand,,,
|
||||||
|
-439.773 -663.056 3.91817,117 119,stand,,,
|
||||||
|
-449.56 -522.395 3.91817,118 120,stand,,,
|
||||||
|
-407.312 -466.704 3.91817,119 121,stand,,,
|
||||||
|
-485.579 -445.662 3.91817,120 122,stand,,,
|
||||||
|
-677.143 -387.231 3.91817,121 123,stand,,,
|
||||||
|
-933.017 -422.082 3.91817,122 124,stand,,,
|
||||||
|
-930.67 -782.421 5.25439,123 125,stand,,,
|
||||||
|
-999.294 -834.826 3.91817,124 126,stand,,,
|
||||||
|
-1131.01 -799.426 -0.00510325,125 127 131 109,stand,,,
|
||||||
|
-1307.49 -676.69 -0.00510325,126 128 130 103 109 108 302,stand,,,
|
||||||
|
-1311.92 -280.449 0.0405233,127 104 129 164 165 302,stand,,,
|
||||||
|
-1037.86 -288.963 5.03612,128 130 165 171,stand,,,
|
||||||
|
-1040.8 -503.05 5.03612,129 131 127,stand,,,
|
||||||
|
-1048.96 -697.598 5.03612,130 126,stand,,,
|
||||||
|
-1685.28 341.488 3.91817,77 133,stand,,,
|
||||||
|
-1471.62 488.359 3.91817,132 56 151,stand,,,
|
||||||
|
-1550.94 635.433 7.08065,56 135,stand,,,
|
||||||
|
-1686.23 636.451 7.10259,134 58 59,stand,,,
|
||||||
|
-1909.37 568.988 7.10259,58 137,stand,,,
|
||||||
|
-2066.63 572.876 83.125,136 138,stand,,,
|
||||||
|
-2112.52 576.227 83.125,137 139,stand,,,
|
||||||
|
-2107.42 701.695 131.125,138 140,stand,,,
|
||||||
|
-2020.88 735.105 131.125,139 141,stand,,,
|
||||||
|
-1987.74 655.122 131.125,140 142,stand,,,
|
||||||
|
-1896.78 652.897 131.125,141,stand,,,
|
||||||
|
-1421.03 1096.79 3.91817,15 18 47,stand,,,
|
||||||
|
-1007.81 603.423 0.0405247,14 145 149,stand,,,
|
||||||
|
-816.631 608.468 5.05299,144 41 146,stand,,,
|
||||||
|
-810.786 282.289 5.03519,145 147 149 165 170,stand,,,
|
||||||
|
-534.789 278.104 4.99458,146 148,stand,,,
|
||||||
|
-302.999 274.017 5.01574,147 180 169 182 200,stand,,,
|
||||||
|
-1027.31 271.134 0.040524,146 144 150 164 165,stand,,,
|
||||||
|
-1341.23 284.186 5.03612,149 56 151 154 164,stand,,,
|
||||||
|
-1512.16 280.639 5.04407,133 150 152,stand,,,
|
||||||
|
-1628.58 134.032 0.0405253,151 77 153 154,stand,,,
|
||||||
|
-1497.79 -37.1529 0.0405254,152 154 104 155,stand,,,
|
||||||
|
-1393.15 137.087 0.0405254,153 150 152 164,stand,,,
|
||||||
|
-1607.78 -163.943 -0.0456685,153 104 79 156,stand,,,
|
||||||
|
-1735.78 -124.495 0.0405254,155 78,stand,,,
|
||||||
|
-2306.73 -494.141 6.95881,87 158,stand,,,
|
||||||
|
-2301.77 -700.759 6.95881,157 159,stand,,,
|
||||||
|
-2137.34 -721.69 3.91817,158 94 160,stand,,,
|
||||||
|
-2137.32 -420.26 3.91817,159 161 87,stand,,,
|
||||||
|
-1913.89 -418.226 3.91816,160 162,stand,,,
|
||||||
|
-1668.3 -418.231 3.91816,161 163,stand,,,
|
||||||
|
-1697.65 -654.331 3.91816,162 101,stand,,,
|
||||||
|
-1211.64 -4.96498 0.0405239,104 154 150 149 128 165,stand,,,
|
||||||
|
-941.113 -5.41094 0.0195068,164 129 149 146 166 170 171 128,stand,,,
|
||||||
|
-715.627 -10.1748 0.0405248,165 167 170 171,stand,,,
|
||||||
|
-614.991 -145.793 0.0405248,166 168 171 172,stand,,,
|
||||||
|
-432.732 -57.2031 0.0405248,167 169 172 180 181,stand,,,
|
||||||
|
-490.954 144.568 0.0405248,168 170 148 180,stand,,,
|
||||||
|
-701.663 138.915 0.0405248,169 166 146 165,stand,,,
|
||||||
|
-776.05 -257.948 4.50645,129 167 166 165 172,stand,,,
|
||||||
|
-473.993 -221.432 4.89061,171 168 167 173,stand,,,
|
||||||
|
-302.688 -294.783 5.03612,172 174 181 288,stand,,,
|
||||||
|
37.8793 -309.333 0.0405254,173 175 287 290,stand,,,
|
||||||
|
323.486 -295.905 5.0405,174 176 287 300,stand,,,
|
||||||
|
479.621 -178.848 3.61456,175 177 226 300,stand,,,
|
||||||
|
440.764 -76.5199 4.92217,176 178 224,stand,,,
|
||||||
|
300.187 114.061 0.0118433,177 179 200 201 301,stand,,,
|
||||||
|
45.3572 158.172 0.0118433,178 180 200 201,stand,,,
|
||||||
|
-230.429 97.7926 -0.00752897,179 148 168 181 200 201 169,stand,,,
|
||||||
|
-306.441 -97.1164 -0.0595601,173 180 168,stand,,,
|
||||||
|
-138.755 455.558 3.91817,148 183,stand,,,
|
||||||
|
13.1323 654.76 3.91817,182 184 200,stand,,,
|
||||||
|
157.774 890.021 5.50916,183 185,stand,,,
|
||||||
|
425.992 1238.81 5.50916,184 186 193 195,stand,,,
|
||||||
|
645.831 1119.13 4.925,185 187 192 195 216,stand,,,
|
||||||
|
833.913 1375.53 3.91817,186 188 191 192 218,stand,,,
|
||||||
|
736.359 1519.08 3.91817,187 189,stand,,,
|
||||||
|
893.701 1686.09 8.36096,188 1 190,stand,,,
|
||||||
|
1137.98 1471.39 6.75513,189 191,stand,,,
|
||||||
|
1018.25 1331.46 3.88993,190 187 218,stand,,,
|
||||||
|
809.617 1166.38 4.925,187 186 215,stand,,,
|
||||||
|
487.215 1032.71 4.925,185 194 195,stand,,,
|
||||||
|
433.3 966.054 4.925,193 197,stand,,,
|
||||||
|
609.134 1042.45 4.925,185 196 186 193,stand,,,
|
||||||
|
738.904 920.891 4.925,195 207 206,stand,,,
|
||||||
|
468.552 848.524 4.925,194 198,stand,,,
|
||||||
|
395.075 721.471 4.925,197 199,stand,,,
|
||||||
|
244.431 556.373 4.925,198 200,stand,,,
|
||||||
|
90.0948 415.443 4.92217,199 183 179 178 148 180 202,stand,,,
|
||||||
|
114.411 24.3883 0.0376246,179 180 178,stand,,,
|
||||||
|
350.534 381.028 3.91817,200 203 223 301,stand,,,
|
||||||
|
457.541 360.261 4.925,202 204 301,stand,,,
|
||||||
|
546.576 512.404 4.925,203 205 209,stand,,,
|
||||||
|
618.518 699.196 5.21638,204 206,stand,,,
|
||||||
|
724.408 827.421 5.21638,205 207 196,stand,,,
|
||||||
|
900.681 787.722 4.925,206 208 196,stand,,,
|
||||||
|
988.889 895.937 4.925,207 216 217 219 220,stand,,,
|
||||||
|
743.381 500.45 4.925,204 210,stand,,,
|
||||||
|
898.575 686.64 128.925,209 211,stand,,,
|
||||||
|
933.321 740.905 128.925,210 212,stand,,,
|
||||||
|
831.183 829.413 128.925,211 213,stand,,,
|
||||||
|
935.285 938.26 128.925,212 214,stand,,,
|
||||||
|
995.074 1015.78 128.925,213 215,stand,,,
|
||||||
|
962.802 1040.47 128.925,214 192,stand,,,
|
||||||
|
776.192 1062.07 4.925,186 208,stand,,,
|
||||||
|
1216.57 1014.59 3.91817,208 218 303 220,stand,,,
|
||||||
|
1066.2 1187.79 3.91817,217 191 187 219,stand,,,
|
||||||
|
979.434 1057.12 4.925,218 208,stand,,,
|
||||||
|
1158.9 753.984 3.91817,208 221 217,stand,,,
|
||||||
|
943.806 489.28 3.91817,220 222,stand,,,
|
||||||
|
726.425 252.694 3.91817,221 223 224 228,stand,,,
|
||||||
|
544.475 199.012 3.91817,222 202 224,stand,,,
|
||||||
|
598.879 20.9782 4.92217,223 177 225 222,stand,,,
|
||||||
|
690.41 -109.772 4.92217,224 226,stand,,,
|
||||||
|
700.813 -189.667 4.8817,225 227 176 300,stand,,,
|
||||||
|
806.946 -189.728 4.8817,226 248 242,stand,,,
|
||||||
|
859.426 118.71 3.91817,222 229,stand,,,
|
||||||
|
965.272 103.358 3.91817,228 230,stand,,,
|
||||||
|
1046.79 72.2045 3.91817,229 231,stand,,,
|
||||||
|
1180.13 190.441 3.91817,230 232 235 236,stand,,,
|
||||||
|
1307.42 449.253 3.91817,231 233 237,stand,,,
|
||||||
|
1255.23 581.859 3.91817,232 234,stand,,,
|
||||||
|
1110.17 427.286 3.91817,233 235,stand,,,
|
||||||
|
1022.96 281.15 3.91817,234 231,stand,,,
|
||||||
|
1394.73 47.2641 3.91817,231 237 238 3,stand,,,
|
||||||
|
1366.28 246.906 3.91817,236 232,stand,,,
|
||||||
|
1253.42 -52.1804 4.85851,236 239 3,stand,,,
|
||||||
|
1089.78 -63.9488 4.85851,238 240,stand,,,
|
||||||
|
1095.85 -140.772 4.85851,239 241,stand,,,
|
||||||
|
1091.3 -311.8 4.85851,240 242,stand,,,
|
||||||
|
1050.34 -392.446 4.91723,241 243 227 249,stand,,,
|
||||||
|
853.023 -344.244 4.91723,242 244 248,stand,,,
|
||||||
|
849.817 -486.313 4.91723,243 245,stand,,,
|
||||||
|
726.499 -611.842 4.91723,244 246,stand,,,
|
||||||
|
650.479 -521.909 4.91723,245 247,stand,,,
|
||||||
|
729.876 -384.654 4.91723,246 248,stand,,,
|
||||||
|
784.295 -290.371 4.91723,247 243 227,stand,,,
|
||||||
|
1026.25 -471.722 4.91723,242 250,stand,,,
|
||||||
|
947.815 -685.284 14.1139,249,stand,,,
|
||||||
|
1309.58 -440.279 3.91817,3 252,stand,,,
|
||||||
|
1098.89 -871.981 3.91817,251 253,stand,,,
|
||||||
|
997.68 -970.393 3.91817,252 254 255,stand,,,
|
||||||
|
775.74 -1080.13 3.91817,253 255,stand,,,
|
||||||
|
681.155 -786.906 3.91817,254 253 256,stand,,,
|
||||||
|
626.164 -693.623 3.91817,255 257,stand,,,
|
||||||
|
489.481 -645.887 3.91817,256 258 300,stand,,,
|
||||||
|
472.17 -759.114 3.91817,257 259,stand,,,
|
||||||
|
559.265 -914.292 3.91817,258 260,stand,,,
|
||||||
|
524.515 -1138.95 3.91817,259 261,stand,,,
|
||||||
|
523.274 -1334.45 3.91817,260 262 298,stand,,,
|
||||||
|
463.55 -1480.02 3.91817,261 263 264,stand,,,
|
||||||
|
549.086 -1417.1 3.91817,262 4,stand,,,
|
||||||
|
236.893 -1627.67 3.91817,262 265 268 269,stand,,,
|
||||||
|
265.486 -1723.68 5.42292,264 5,stand,,,
|
||||||
|
-50.935 -1826.54 6.43725,5 267,stand,,,
|
||||||
|
-71.3775 -1753.05 3.88645,266 268 270,stand,,,
|
||||||
|
-12.8946 -1617.59 3.90963,267 264 269 270,stand,,,
|
||||||
|
159.231 -1475.48 9.03058,264 268 271 272,stand,,,
|
||||||
|
-109.213 -1499.71 3.91817,267 268 271 294,stand,,,
|
||||||
|
35.4362 -1448.1 8.02271,270 269 295,stand,,,
|
||||||
|
259.952 -1377.18 8.02271,269 273,stand,,,
|
||||||
|
245.967 -1308.74 8.02271,272 274 298 297,stand,,,
|
||||||
|
48.2422 -1348.54 133.468,273 275,stand,,,
|
||||||
|
6.11627 -1326.13 133.468,274 276,stand,,,
|
||||||
|
43.4555 -1228.91 133.468,275 277,stand,,,
|
||||||
|
18.2625 -1104.25 133.468,276 278,stand,,,
|
||||||
|
-66.2788 -1116.22 133.468,277 279,stand,,,
|
||||||
|
-81.7711 -1032.29 133.468,278 280,stand,,,
|
||||||
|
-116.137 -833.08 9.20432,279 281,stand,,,
|
||||||
|
-63.1994 -695.977 9.20432,280 282 289,stand,,,
|
||||||
|
46.1107 -932.279 9.20432,281 283 296,stand,,,
|
||||||
|
68.9144 -1087.83 9.20432,282 284 296,stand,,,
|
||||||
|
210.726 -1063.43 9.20432,283 285,stand,,,
|
||||||
|
380.18 -991.402 9.17215,284 286 299,stand,,,
|
||||||
|
269.474 -807.301 9.17215,285 287,stand,,,
|
||||||
|
276.196 -565.147 5.04051,286 175 174,stand,,,
|
||||||
|
-149.062 -461.498 4.9686,173 289 291,stand,,,
|
||||||
|
-91.2136 -568.429 9.1629,288 281 290,stand,,,
|
||||||
|
1.49435 -439.011 3.91817,289 174,stand,,,
|
||||||
|
-282.13 -504.416 3.91817,288 292,stand,,,
|
||||||
|
-270.029 -630.507 3.91817,291 293,stand,,,
|
||||||
|
-238.773 -1002.43 4.11739,292 294,stand,,,
|
||||||
|
-141.632 -1272.49 4.1225,293 270 295,stand,,,
|
||||||
|
-6.00299 -1256.22 8.02271,294 296 297 271,stand,,,
|
||||||
|
-25.2678 -1130.8 9.20432,295 283 282,stand,,,
|
||||||
|
204.856 -1217.69 8.02271,295 298 273,stand,,,
|
||||||
|
434.556 -1241.93 8.02271,297 299 261 273,stand,,,
|
||||||
|
409.649 -1106.29 8.02271,298 285,stand,,,
|
||||||
|
493.232 -432.745 3.91817,175 257 226 176,stand,,,
|
||||||
|
365.203 272.143 4.98074,178 202 203,stand,,,
|
||||||
|
-1448.76 -496.767 0.0405239,128 103 127,stand,,,
|
||||||
|
1344.8 1081.68 3.91817,2 217,stand,,,
|
||||||
|
-247.034 1154.46 3.91817,22 305 306,stand,,,
|
||||||
|
-221.968 885.661 3.91817,304 30,stand,,,
|
||||||
|
-188.338 1095.97 3.91817,28 304,stand,,,
|
||||||
|
-481.76 -1183.61 3.91817,308 6 310,stand,,,
|
||||||
|
-412.773 -1076.64 3.91817,307 115 309,stand,,,
|
||||||
|
-360.138 -1038.37 3.91817,308 116,stand,,,
|
||||||
|
-726.465 -1270.01 3.91817,307 113 112 311,stand,,,
|
||||||
|
-760.148 -1144.13 3.91817,310 312,stand,,,
|
||||||
|
-830.167 -958.409 6.525,311 313 316 320,stand,,,
|
||||||
|
-592.777 -964.309 6.525,312 314,stand,,,
|
||||||
|
-593.431 -811.123 6.525,313 315,stand,,,
|
||||||
|
-779.794 -802.318 6.525,314 316 317,stand,,,
|
||||||
|
-797.762 -864.264 7.525,315 312,stand,,,
|
||||||
|
-765.892 -593.856 6.525,315 318,stand,,,
|
||||||
|
-657.683 -563.258 6.525,317 319,stand,,,
|
||||||
|
-599.609 -510.788 6.525,318,stand,,,
|
||||||
|
-1030.93 -975.868 5.00774,110 312 109,stand,,,
|
||||||
|
-474.537 1275.47 5.12269,12 11 22,stand,,,
|
||||||
|
-240.856 1452.99 3.91817,11 0 22 10,stand,,,
|
|