Compare commits
69 Commits
Author | SHA1 | Date | |
---|---|---|---|
d2ddce2169 | |||
7028290495 | |||
39c6f5054f | |||
b47088538e | |||
1e0daca087 | |||
dfe2ba0c47 | |||
c8df9ef311 | |||
0b22a6b8a6 | |||
60a8f65180 | |||
5719080f45 | |||
1bf8314acd | |||
f31a306b0a | |||
c4a222089c | |||
a1651baa5a | |||
748d261c02 | |||
06dfea7790 | |||
a9ea7acec3 | |||
26a5adae13 | |||
a37aadfc2b | |||
f0a37dcfb7 | |||
0e8c73357e | |||
04f5bc79ed | |||
469918d271 | |||
65e8d0629c | |||
d48f35bcff | |||
a56b11d478 | |||
02017ca288 | |||
3ff48407d5 | |||
04b7296246 | |||
ca17899595 | |||
2459a37a64 | |||
11e6ab8469 | |||
a1d7e85fbc | |||
d738287275 | |||
72997da9d6 | |||
a2e8e1bb3b | |||
bd2207eaf5 | |||
a32b0ac00d | |||
6042bcbd41 | |||
e664f60335 | |||
a838a56770 | |||
2eff53e976 | |||
9a0db18829 | |||
814cd9609e | |||
f0db932a5a | |||
145f4da703 | |||
f6d050631a | |||
8971cd806d | |||
3debfd92d2 | |||
119a8f8639 | |||
5ceeabcc2a | |||
e02f7d6cb2 | |||
8ecaf48ba9 | |||
b5cfd27fa0 | |||
1a991fbc95 | |||
980faf9174 | |||
41862fb341 | |||
ea9ea321c7 | |||
5f621bbf09 | |||
fed01fb54c | |||
6903fe09fc | |||
47168c27d9 | |||
b0bd171b31 | |||
98aa33dbf0 | |||
07f24e266f | |||
32a76e964f | |||
9c013c5bd8 | |||
38ddce8e71 | |||
6a5af7d510 |
14
.astylerc
@ -1,21 +1,27 @@
|
||||
# try to mimic the original gsc provided
|
||||
# mode=ghc
|
||||
mode=c
|
||||
style=allman
|
||||
|
||||
indent=tab
|
||||
indent=force-tab=2
|
||||
lineend=windows
|
||||
|
||||
pad-oper
|
||||
pad-paren-in
|
||||
pad-header
|
||||
|
||||
# delete-empty-lines
|
||||
# pad-brackets-in
|
||||
fill-empty-lines
|
||||
squeeze-lines=2
|
||||
squeeze-ws
|
||||
break-one-line-headers
|
||||
add-braces
|
||||
remove-comment-prefix
|
||||
|
||||
break-blocks
|
||||
# remove-braces
|
||||
|
||||
indent-switches
|
||||
indent-cases
|
||||
indent-after-parens
|
||||
indent-col1-comments
|
||||
|
||||
remove-comment-prefix
|
||||
|
@ -4,7 +4,7 @@ root = true
|
||||
indent_style = tab
|
||||
indent_size = 2
|
||||
charset = latin1
|
||||
trim_trailing_whitespace = true
|
||||
trim_trailing_whitespace = false
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
|
21
.github/workflows/gsc-tool.yml
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
name: gsc-tool
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
main-win:
|
||||
name: Compile 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: Run script
|
||||
run: |
|
||||
ci/gsc-tool.bat
|
16
.github/workflows/pregsc.ymloff
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
name: pregsc
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
main-win:
|
||||
name: Run on Windows
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- name: Check out files
|
||||
uses: actions/checkout@main
|
||||
|
||||
- name: Run script
|
||||
run: |
|
||||
ci/pregsc.bat
|
54
.gitignore
vendored
@ -1,52 +1,14 @@
|
||||
# Ignore everything in repository root
|
||||
/*
|
||||
|
||||
# Files to not ignore
|
||||
!/.gitignore
|
||||
!/.vscode
|
||||
!/.editorconfig
|
||||
!/.gitattributes
|
||||
|
||||
# Folder to not ignore
|
||||
!/raw
|
||||
/raw/*
|
||||
!/raw/scripts
|
||||
|
||||
!/.astylerc
|
||||
!/deploy.js
|
||||
!/deploy.bat
|
||||
!/z_deploy.bat
|
||||
|
||||
!/raw/maps
|
||||
/raw/maps/*
|
||||
!/raw/maps/mp/
|
||||
/raw/maps/mp/**
|
||||
!/raw/maps/mp/bots/
|
||||
!/raw/maps/mp/bots/_bot_chat.gsc
|
||||
!/raw/bw-assets
|
||||
!/raw/bots.txt
|
||||
!/out
|
||||
|
||||
!/raw/maps/mp/gametypes
|
||||
!/raw/maps/mp/killstreaks
|
||||
!/raw/maps/mp/mp_rust.d3dbsp.ents
|
||||
!/raw/maps/mp/mp_nuked.d3dbsp.ents
|
||||
|
||||
|
||||
!/admin
|
||||
/admin/*
|
||||
|
||||
!/admin/server.cfg
|
||||
!/admin/server.dsr
|
||||
!/z_server.bat
|
||||
|
||||
!/README.md
|
||||
|
||||
|
||||
*.zip
|
||||
*.log
|
||||
*.stat
|
||||
*.exe
|
||||
*.gscbin
|
||||
!ci/
|
||||
out/
|
||||
logs/
|
||||
demos/
|
||||
images/
|
||||
missingasset.csv
|
||||
compiled/
|
||||
source/
|
||||
pregsc/
|
||||
pregsc.dat
|
||||
|
71
README.md
@ -1,11 +1,11 @@
|
||||

|
||||

|
||||
|
||||
# PlutoniumIW5 Bot Warfare
|
||||
# IW5 Bot Warfare
|
||||
Bot Warfare is a GSC mod for the [PlutoniumIW5 project](https://plutonium.pw/).
|
||||
|
||||
It aims to add playable AI to the multiplayer games of Modern Warfare 3.
|
||||
|
||||
You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfare/downloads/piw5-bot-warfare-latest).
|
||||
You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfare/downloads/iw5-bot-warfare-latest).
|
||||
|
||||
## Contents
|
||||
- [Features](#Features)
|
||||
@ -15,7 +15,7 @@ You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfar
|
||||
- [Credits](#Credits)
|
||||
|
||||
## Features
|
||||
- A Waypoint Editor for creating and modifying bot's waypoints of traversing the map. Have a look at [Using the Waypoint editor](/raw/bw-assets/wpedit.md).
|
||||
- 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.
|
||||
|
||||
@ -52,7 +52,7 @@ You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfar
|
||||
|
||||
## Installation
|
||||
0. Make sure that [PlutoniumIW5](https://plutonium.pw/docs/install/#iw5) is installed, updated and working properly.
|
||||
- Download the [latest release](https://github.com/ineedbots/piw5_bot_warfare/releases) of Bot Warfare.
|
||||
- Download the [latest release](https://github.com/ineedbots/iw5_bot_warfare/releases) of Bot Warfare.
|
||||
1. Extract all the files from the Bot Warfare release archive you downloaded to anywhere on your computer.
|
||||
2. Run the 'install.bat'. This copies the mod to your PlutoniumIW5 storage folder.
|
||||
3. The mod is now installed, now run your game.
|
||||
@ -70,48 +70,60 @@ You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfar
|
||||
### DVARs
|
||||
| Dvar | Description | Default Value |
|
||||
|----------------------------------|---------------------------------------------------------------------------------------------|--------------:|
|
||||
| bots_main | Enable this mod. | true |
|
||||
| bots_main_firstIsHost | The first player to connect will be given host. | false |
|
||||
| bots_main_GUIDs | A comma separated list of GUIDs of players who will be given host. | "" |
|
||||
| bots_main | Enable this mod. | 1 |
|
||||
| bots_main_firstIsHost | The first player to connect will be given host. | 0 |
|
||||
| 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. | true |
|
||||
| bots_main_debug | Enable the in-game waypoint editor. | false |
|
||||
| bots_main_kickBotsAtEnd | Kick the bots at the end of a match. | false |
|
||||
| bots_main_menu | Enable the in-game menu for hosts. | 1 |
|
||||
| bots_main_debug | Enable the in-game waypoint editor. | 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></ul> | 0 |
|
||||
| bots_manage_fill_kick | If the amount of players/bots in the match exceeds `bots_manage_fill`, kick bots until no longer exceeds. | false |
|
||||
| bots_manage_fill_spec | If when counting players for `bots_manage_fill` should include spectators. | true |
|
||||
| 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`. | false |
|
||||
| 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 `true` 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></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></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. | false |
|
||||
| bots_loadout_allow_op | If the bots should be able to use overpowered and annoying create-a-class selections. | true |
|
||||
| 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_loadout_prestige | What prestige to set the bots.<ul><li>`-1` - Same as host player in the match.</li><li>`-2` - All random.</li><li>`0` or higher - Sets the bots' prestige to this.</li></ul> | -1 |
|
||||
| bots_play_move | If the bots can move. | true |
|
||||
| bots_play_knife | If the bots can knife. | true |
|
||||
| bots_play_fire | If the bots can fire. | true |
|
||||
| bots_play_nade | If the bots can grenade. | true |
|
||||
| bots_play_take_carepackages | If the bots can take carepackages. | true |
|
||||
| bots_play_obj | If the bots can play the objective. | true |
|
||||
| bots_play_camp | If the bots can camp. | true |
|
||||
| bots_play_jumpdrop | If the bots can jump/drop shot. | true |
|
||||
| bots_play_target_other | If the bots can target other entities other than players. | true |
|
||||
| bots_play_killstreak | If the bots can call in killstreaks. | true |
|
||||
| bots_play_ads | If the bots can aim down sights. | true |
|
||||
| bots_play_aim | If the bots can aim. | true |
|
||||
| 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_take_carepackages | If the bots can take carepackages. | 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 |
|
||||
|
||||
## Changelog
|
||||
- v2.3.0 (not released yet)
|
||||
- Fixed bots aiming in ac130/chopper being broken at times
|
||||
- Bots properly use pred missiles
|
||||
- Smoothed bot aim at range
|
||||
- Fixed bots_manage_fill_spec players being counted with bots_manage_fill_mode 1 (bot only)
|
||||
|
||||
- v2.2.0
|
||||
- Bots can now melee lunge
|
||||
- Fixed some chat related script runtime errors
|
||||
- Fix bots possibly being stuck in sab
|
||||
- Major cleanup
|
||||
|
||||
- v2.1.0
|
||||
- Initial release (sync'd versions with other Bot Warfares)
|
||||
|
||||
@ -124,6 +136,7 @@ You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfar
|
||||
- apdonato - http://rsebots.blogspot.ca/
|
||||
- Ability
|
||||
- Salvation
|
||||
- Xensik - https://github.com/xensik/gsc-tool
|
||||
|
||||
### Waypoint Creators
|
||||
- FragsAreUs - https://github.com/FragsAreUs
|
||||
|
202
admin/server.cfg
@ -1,202 +0,0 @@
|
||||
///////////////////////////////////////////////////
|
||||
/// PlutoIW5 Server Configuration file //
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// SERVER NAME & COLORS TIPS //
|
||||
///////////////////////////////////////////////////
|
||||
// //
|
||||
// ^1 Red //
|
||||
// ^2 Green //
|
||||
// ^3 yellow //
|
||||
// ^4 Blue //
|
||||
// ^5 Cyan //
|
||||
// ^6 Pink //
|
||||
// ^7 White //
|
||||
// ^8 Depends on the team colors playing. //
|
||||
// ^9 Grey //
|
||||
// ^0 Black //
|
||||
// //
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
|
||||
set sv_hostname "^1Bot ^3War^5fare" // Probbly useless. Change sv_hostname by changing your key at http://platform.plutonium.pw/serverkeys
|
||||
set sv_motd "^1Bot ^3War^5fare" // Sets a custom motd which is shown on the intel message loadscreen when a player joins. leave blank for defualt intel messages.
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// BASIC CONFIGURATION //
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
set g_password "" // Password Protected Server. Leave blank if you want players to join or set password if you want to keep public out.
|
||||
set sv_maxclients "18" // Max players in your server. (Range 2-18)
|
||||
set sv_timeout "20" // Timeout time period. You will timeout after (20) seconds when attempting to connect or if you are getting connection interruptions
|
||||
set sv_reconnectlimit "3" // How many times you can try to reconnect
|
||||
set sv_kickBanTime "0" // Time in seconds for a player temporary ban (on kick/tempban) (range 0 - 3600)
|
||||
set sv_allowClientConsole "1" // Enable or Disable players ability to access server commands
|
||||
set sv_pure "0" // verifying cilent files.
|
||||
set sv_floodProtect "1" // Chat Spam Protection.
|
||||
set scr_teambalance "0" // Balance players on team based games for for fair play.
|
||||
seta g_allowVote "0" // Toggle voting for [player kick/map restart/next map] (0 or 1 (default) )
|
||||
seta g_deadChat "1" // Toggle allowing dead players to chat with living players (0 (default) or 1)
|
||||
set sv_enableBounces "1" // Enables bouncing on the server.
|
||||
seta sv_enableDoubleTaps "1" // Allow double tap on weapon switching.
|
||||
set g_inactivity "180" // Enable auto kick feature for idle/AFK players
|
||||
set sv_allowAimAssist "1" // aa for controllers
|
||||
|
||||
set g_inactivitySpectator "180" // Time in seconds before a spectator gets kicked
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// MOD SETTINGS //
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
seta sv_wwwBaseURL "" // Configure the URL to Fast DL mods from. (i.e. http://domain.tld/iw5)
|
||||
seta fs_game "" // What mod are we loading? (i.e. "mods/MyMod")
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// PRIVATE SLOT SETTINGS //
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
seta sv_privateClients "0" // Maximum number of private clients allowed on the server (range 0-18 (clamped to sv_maxclients) )
|
||||
// Password for the private slots on this server. If set, users will be prompted on join attempt.
|
||||
// Users providing this password will have access to all slots.
|
||||
// Users providing an incorrect password will have access to the (sv_maxClients - sv_privateClients) public slots.
|
||||
seta sv_privatePassword ""
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// B3, IW4MADMIN, GAME LOG & RCON SETTINGS //
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
set logfile "2" // Enable loging 1-2? enable. 0 disable. Leave it on if you plan on using B3 or IW4MAdmin.
|
||||
set g_logSync "1" // 0 only flush on game end, 1 flush when buffer full, 2 always flush after a write, 3 append to old logs.
|
||||
set g_log "logs\games_mp.log" // IMPORTANT! Make sure the filename is unique for each server you clone!
|
||||
set sv_sayName "^7Server^7" // name server-side 'say' commands show up as.
|
||||
set sv_voice "1"
|
||||
set sv_voiceQuality "0"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// LOAD GAMETYPE DSR RECIPE CONFIGURATION //
|
||||
//////////////////////////////////////////////////////
|
||||
// This is defualt gametypes from admin folder. //
|
||||
// //
|
||||
// Can always custom make one in Private Match or //
|
||||
// edit existing defulat DSR file with Notepad. //
|
||||
// //
|
||||
// TDM_default Team Deathmatch //
|
||||
// DOM_default Domination //
|
||||
// CTF_default Capture The Flag //
|
||||
// DZ_default Drop Zone //
|
||||
// FFA_default Free For All //
|
||||
// GG_default Gun Game //
|
||||
// HQ_default Headquarters //
|
||||
// INF_default Infected //
|
||||
// JUG_default Juggernaut //
|
||||
// KC_default Kill Confirmed //
|
||||
// OIC_default One In The Chamber //
|
||||
// SAB_default Sabotage //
|
||||
// SD_default Search and Destroy //
|
||||
// TDEF_default Team Defender //
|
||||
// TJ_default Team Juggernaut //
|
||||
// //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// MAP SHORT NAMES ROTATION LIST //
|
||||
//////////////////////////////////////////////////////
|
||||
// //
|
||||
// mp_alpha - Lockdown //
|
||||
// mp_bootleg - Bootleg //
|
||||
// mp_bravo - Mission //
|
||||
// mp_carbon - Carbon //
|
||||
// mp_dome - Dome //
|
||||
// mp_exchange - Downturn //
|
||||
// mp_hardhat - Hardhat //
|
||||
// mp_interchange - Interchange //
|
||||
// mp_lambeth - Fallen //
|
||||
// mp_mogadishu - Bakaara //
|
||||
// mp_paris - Resistance //
|
||||
// mp_plaza2 - Arkaden //
|
||||
// mp_radar - Outpost //
|
||||
// mp_seatown - Seatown //
|
||||
// mp_underground - Underground //
|
||||
// mp_village - Village //
|
||||
// //
|
||||
//// DLC FREE ////////////////////////////////////////
|
||||
// //
|
||||
// mp_terminal_cls - Terminal //
|
||||
// mp_aground_ss - Aground //
|
||||
// mp_courtyard_ss - Erosion //
|
||||
// //
|
||||
//// DLC COLLECTION 1 ////////////////////////////////
|
||||
// //
|
||||
// mp_italy - Piazza //
|
||||
// mp_overwatch - Overwatch //
|
||||
// mp_morningwood - Black Box //
|
||||
// mp_park - Liberation //
|
||||
// //
|
||||
//// DLC COLLECTION 2 ////////////////////////////////
|
||||
// //
|
||||
// mp_meteora - Sanctuary //
|
||||
// mp_cement - Foundation //
|
||||
// mp_qadeem - Oasis //
|
||||
// mp_restrepo_ss - Lookout //
|
||||
// mp_hillside_ss - Getaway //
|
||||
// //
|
||||
//// DLC COLLECTION 3 ////////////////////////////////
|
||||
// //
|
||||
// mp_crosswalk_ss - Intersection //
|
||||
// mp_burn_ss - U-Turn //
|
||||
// mp_six_ss - Vortex //
|
||||
// //
|
||||
//// DLC COLLECTION 4 ////////////////////////////////
|
||||
// //
|
||||
// mp_boardwalk - Boardwalk //
|
||||
// mp_moab - Gulch //
|
||||
// mp_roughneck - Off Shore //
|
||||
// mp_shipbreaker - Decommission //
|
||||
// mp_nola - Parish //
|
||||
// //
|
||||
//// PLUTONIUM DLC ///////////////////////////////////
|
||||
// //
|
||||
// mp_rust - Rust //
|
||||
// //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
set bots_manage_add "9"
|
||||
set bots_manage_fill "9"
|
||||
set bots_manage_fill_kick "1"
|
||||
set bots_manage_fill_spec "0"
|
||||
set bots_manage_fill_mode "1"
|
||||
set bots_team_force "1"
|
||||
set bots_team_mode "0"
|
||||
set bots_team "axis"
|
||||
set bots_main_waitforhosttime "0"
|
||||
set bots_loadout_allow_op "0"
|
||||
set bots_main_menu "0"
|
||||
|
||||
set bots_skill "8"
|
||||
set bots_skill_axis_med "3"
|
||||
|
||||
set dom_lastFlagUseTimeMulti "4.0"
|
||||
set scr_showHP "1"
|
||||
set scr_killstreak_print "2"
|
||||
set scr_printDamage "1"
|
||||
|
||||
set g_playerCollision "1"
|
||||
set g_playerEjection "1"
|
||||
set g_fixBulletDamageDupe "1"
|
||||
set bullet_penetration_affected_by_team "0"
|
||||
set sv_patchXmagShotguns "0"
|
||||
|
||||
set scr_xpscale_ "10"
|
||||
set scr_weaponxpscale_ "2"
|
||||
set killstreakSpawnShield "0"
|
||||
|
||||
set sv_local_client_snapshot_msec "-1"
|
||||
set cl_penaltyTimeBookend "0"
|
||||
set cl_adjTimeDeltaCalcAlgorithmMW2 "1"
|
||||
|
||||
set sv_maprotation "dsr server map mp_dome map mp_rust map mp_nuked"
|
651
admin/server.dsr
@ -1,651 +0,0 @@
|
||||
gameOpt commonOption.allowCustomClasses "1" // [ 0, 1 ]
|
||||
gameOpt commonOption.allowKillstreaks "1" // [ 0, 1 ]
|
||||
gameOpt commonOption.allowPerks "1" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.acog "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.akimbo "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.eotech "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.gl "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.gp25 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.grip "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.hamrhybrid "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.heartbeat "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.hybrid "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.m320 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.reflex "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.rof "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.shotgun "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.silencer "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.silencer02 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.silencer03 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.tactical "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.thermal "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.vzscope "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.attachmentRestricted.xmags "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.forceRespawn "1" // [ 0, 1 ]
|
||||
gameOpt commonOption.forceThirdPersonView "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.friendlyFire "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.hardcoreModeOn "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.headshotsOnly "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.healthRegen "5.0000" // [ 5, 0-10 ]
|
||||
gameOpt commonOption.killstreakClassRestricted.streaktype_assault "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakClassRestricted.streaktype_specialist "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakClassRestricted.streaktype_support "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted._specialty_blastshield_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.ac130 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.airdrop_assault "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.airdrop_juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.airdrop_juggernaut_recon "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.airdrop_remote_tank "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.airdrop_sentry_minigun "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.airdrop_trap "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.counter_uav "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.deployable_vest "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.emp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.escort_airdrop "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.helicopter "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.helicopter_flares "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.ims "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.littlebird_flock "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.littlebird_support "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.osprey_gunner "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.precision_airstrike "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.predator_missile "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.remote_mg_turret "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.remote_mortar "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.remote_uav "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.sam_turret "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_autospot_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_blindeye_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_bulletaccuracy_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_coldblooded_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_detectexplosive_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_fastreload_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_hardline_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_longersprint_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_paint_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_quickdraw_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_quieter_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_scavenger_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.specialty_stalker_ks "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.stealth_airstrike "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.triple_uav "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.uav "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.killstreakRestricted.uav_support "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.maxHealth "100.0000" // [ 30, 50, 100, 200 ]
|
||||
gameOpt commonOption.numLives "0" // [ 0, 1, 2, 3, 5, 9 ]
|
||||
gameOpt commonOption.perkRestricted._specialty_blastshield "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.bouncingbetty_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.c4_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.claymore_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.concussion_grenade_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.emp_grenade_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.flash_grenade_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.frag_grenade_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.semtex_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.smoke_grenade_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_autospot "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_blindeye "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_bling "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_bulletaccuracy "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_c4death "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_coldblooded "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_detectexplosive "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_fastermelee "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_fastreload "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_finalstand "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_grenadepulldeath "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_hardline "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_holdbreathwhileads "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_juiced "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_lightweight "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_longerrange "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_longersprint "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_marksman "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_moredamage "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_paint "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_portable_radar "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_quickdraw "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_quieter "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_reducedsway "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_revenge "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_scavenger "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_scrambler "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_sharp_focus "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_stalker "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_stopping_power "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_tacticalinsertion "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.specialty_twoprimaries "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.throwingknife_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.perkRestricted.trophy_mp "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.radarAlwaysOn "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.respawnDelay "0.0000" // [ 0, 5, 7.5, 10, 15, 30 ]
|
||||
gameOpt commonOption.scoreLimit "250" // [ 0, 1, 3, 4, 5, 8, 10, 12, 15, 20, 24, 30, 50, 65, 80, 100, 200, 250, 500, 750, 1000, 1500, 2500, 3000, 5000, 7000, 7500, 10000, 15000, 20000, 30000 ]
|
||||
gameOpt commonOption.showKillcam "1" // [ 0, 1 ]
|
||||
gameOpt commonOption.spectateModeAllowed "2" // [ 0, 1, 2 ]
|
||||
gameOpt commonOption.timeLimit "30" // [ 0-30 ]
|
||||
gameOpt commonOption.waveRespawnDelay "0" // [ 0, 5, 10, 15, 30 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_1887 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_44magnum "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_aa12 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_acr "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_ak47 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_ak74u "0"
|
||||
gameOpt commonOption.weaponRestricted.iw5_as50 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_barrett "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_cheytac "0"
|
||||
gameOpt commonOption.weaponRestricted.iw5_cm901 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_deserteagle "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_dragunov "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_fad "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_fmg9 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_fnfiveseven "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_g18 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_g36c "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_ksg "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_l96a1 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_m16 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_m4 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_m60 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_m9 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_mg36 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_mk14 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_mk46 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_mp412 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_mp5 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_mp7 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_mp9 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_msr "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_p90 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_p99 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_pecheneg "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_pp90m1 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_rsass "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_sa80 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_scar "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_skorpion "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_smaw "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_spas12 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_striker "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_type95 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_ump45 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_usas12 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.iw5_usp45 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.javelin "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.m320 "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.riotshield "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.rpg "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.stinger "0" // [ 0, 1 ]
|
||||
gameOpt commonOption.weaponRestricted.xm25 "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[0].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[0].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[0].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[0].class.deathstreak "specialty_finalstand" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.allies.[0].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[0].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[0].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[0].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[0].class.name "AR"
|
||||
gameOpt defaultClasses.allies.[0].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.allies.[0].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.allies.[0].class.perks.[2] "specialty_hardline" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.allies.[0].class.perks.[3] "specialty_stalker" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.allies.[0].class.perks.[5] "streaktype_specialist" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.allies.[0].class.perks.[6] "specialty_portable_radar" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.allies.[0].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[0].class.specialistStreakKills.[1] "4" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[0].class.specialistStreakKills.[2] "6" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[0].class.specialistStreaks.[0] "specialty_autospot_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[0].class.specialistStreaks.[1] "specialty_fastreload_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[0].class.specialistStreaks.[2] "specialty_quickdraw_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[0].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[0].attachment.[1] "silencer" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[0].buff "specialty_bling" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[0].weapon "iw5_acr" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[1].attachment.[0] "akimbo" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[0].class.weaponSetups.[1].weapon "iw5_fmg9" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[0].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[1].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[1].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[1].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[1].class.deathstreak "specialty_stopping_power" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.allies.[1].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[1].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[1].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[1].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[1].class.name "SHOTGUN"
|
||||
gameOpt defaultClasses.allies.[1].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.allies.[1].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.allies.[1].class.perks.[2] "specialty_hardline" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.allies.[1].class.perks.[3] "specialty_bulletaccuracy" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.allies.[1].class.perks.[5] "streaktype_specialist" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.allies.[1].class.perks.[6] "specialty_tacticalinsertion" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.allies.[1].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[1].class.specialistStreakKills.[1] "4" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[1].class.specialistStreakKills.[2] "6" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[1].class.specialistStreaks.[0] "specialty_fastreload_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[1].class.specialistStreaks.[1] "specialty_longersprint_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[1].class.specialistStreaks.[2] "specialty_detectexplosive_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[1].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[0].buff "specialty_longerrange" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[0].weapon "iw5_striker" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[1].attachment.[0] "akimbo" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[1].class.weaponSetups.[1].weapon "iw5_skorpion" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[1].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[2].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[2].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[2].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[2].class.deathstreak "specialty_juiced" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.allies.[2].class.defenseStreaks.[0] "uav_support" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[2].class.defenseStreaks.[1] "stealth_airstrike" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[2].class.defenseStreaks.[2] "emp" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[2].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[2].class.name "SNIPER"
|
||||
gameOpt defaultClasses.allies.[2].class.perks.[0] "throwingknife_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.allies.[2].class.perks.[1] "specialty_fastreload" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.allies.[2].class.perks.[2] "specialty_quickdraw" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.allies.[2].class.perks.[3] "specialty_bulletaccuracy" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.allies.[2].class.perks.[5] "streaktype_support" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.allies.[2].class.perks.[6] "specialty_tacticalinsertion" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.allies.[2].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[2].class.specialistStreakKills.[1] "4" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[2].class.specialistStreakKills.[2] "6" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[2].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[2].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[2].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[2].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[0].buff "specialty_reducedsway" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[0].weapon "iw5_msr" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[1].attachment.[0] "tactical" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[2].class.weaponSetups.[1].weapon "iw5_p99" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[2].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[3].class.assaultStreaks.[0] "predator_missile" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[3].class.assaultStreaks.[1] "littlebird_flock" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[3].class.assaultStreaks.[2] "helicopter_flares" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[3].class.deathstreak "specialty_grenadepulldeath" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.allies.[3].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[3].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[3].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[3].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[3].class.name "LMG"
|
||||
gameOpt defaultClasses.allies.[3].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.allies.[3].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.allies.[3].class.perks.[2] "specialty_twoprimaries" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.allies.[3].class.perks.[3] "specialty_stalker" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.allies.[3].class.perks.[5] "streaktype_assault" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.allies.[3].class.perks.[6] "specialty_portable_radar" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.allies.[3].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[3].class.specialistStreakKills.[1] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[3].class.specialistStreakKills.[2] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[3].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[3].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[3].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[3].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[0].attachment.[0] "reflex" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[0].buff "specialty_lightweight" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[0].weapon "iw5_m60" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[1].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[1].buff "specialty_lightweight" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[3].class.weaponSetups.[1].weapon "riotshield" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[3].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[4].class.assaultStreaks.[0] "ims" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[4].class.assaultStreaks.[1] "precision_airstrike" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[4].class.assaultStreaks.[2] "littlebird_support" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[4].class.deathstreak "specialty_finalstand" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.allies.[4].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[4].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[4].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[4].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[4].class.name "SMG"
|
||||
gameOpt defaultClasses.allies.[4].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.allies.[4].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.allies.[4].class.perks.[2] "specialty_hardline" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.allies.[4].class.perks.[3] "specialty_bulletaccuracy" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.allies.[4].class.perks.[5] "streaktype_assault" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.allies.[4].class.perks.[6] "specialty_portable_radar" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.allies.[4].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[4].class.specialistStreakKills.[1] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[4].class.specialistStreakKills.[2] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[4].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[4].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[4].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[4].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[0].attachment.[1] "silencer" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[0].buff "specialty_bling" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[0].weapon "iw5_mp7" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[1].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[4].class.weaponSetups.[1].weapon "javelin" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[4].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[5].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[5].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[5].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.allies.[5].class.deathstreak "specialty_null" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.allies.[5].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[5].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[5].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.allies.[5].class.inUse "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[5].class.name "Custom Class 6"
|
||||
gameOpt defaultClasses.allies.[5].class.perks.[0] "specialty_null" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.allies.[5].class.perks.[1] "specialty_null" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.allies.[5].class.perks.[2] "specialty_null" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.allies.[5].class.perks.[3] "specialty_null" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.allies.[5].class.perks.[5] "specialty_null" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.allies.[5].class.perks.[6] "specialty_null" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.allies.[5].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[5].class.specialistStreakKills.[1] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[5].class.specialistStreakKills.[2] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.allies.[5].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[5].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[5].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.allies.[5].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[0].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[0].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[0].weapon "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[1].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.allies.[5].class.weaponSetups.[1].weapon "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.allies.[5].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[0].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[0].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[0].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[0].class.deathstreak "specialty_finalstand" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.axis.[0].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[0].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[0].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[0].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[0].class.name "AR"
|
||||
gameOpt defaultClasses.axis.[0].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.axis.[0].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.axis.[0].class.perks.[2] "specialty_hardline" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.axis.[0].class.perks.[3] "specialty_stalker" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.axis.[0].class.perks.[5] "streaktype_specialist" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.axis.[0].class.perks.[6] "specialty_portable_radar" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.axis.[0].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[0].class.specialistStreakKills.[1] "4" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[0].class.specialistStreakKills.[2] "6" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[0].class.specialistStreaks.[0] "specialty_autospot_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[0].class.specialistStreaks.[1] "specialty_fastreload_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[0].class.specialistStreaks.[2] "specialty_quickdraw_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[0].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[0].attachment.[1] "silencer" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[0].buff "specialty_bling" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[0].weapon "iw5_acr" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[1].attachment.[0] "akimbo" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[0].class.weaponSetups.[1].weapon "iw5_fmg9" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[0].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[1].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[1].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[1].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[1].class.deathstreak "specialty_stopping_power" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.axis.[1].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[1].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[1].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[1].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[1].class.name "SHOTGUN"
|
||||
gameOpt defaultClasses.axis.[1].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.axis.[1].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.axis.[1].class.perks.[2] "specialty_hardline" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.axis.[1].class.perks.[3] "specialty_bulletaccuracy" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.axis.[1].class.perks.[5] "streaktype_specialist" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.axis.[1].class.perks.[6] "specialty_tacticalinsertion" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.axis.[1].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[1].class.specialistStreakKills.[1] "4" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[1].class.specialistStreakKills.[2] "6" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[1].class.specialistStreaks.[0] "specialty_fastreload_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[1].class.specialistStreaks.[1] "specialty_longersprint_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[1].class.specialistStreaks.[2] "specialty_detectexplosive_ks" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[1].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[0].buff "specialty_longerrange" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[0].weapon "iw5_striker" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[1].attachment.[0] "akimbo" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[1].class.weaponSetups.[1].weapon "iw5_skorpion" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[1].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[2].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[2].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[2].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[2].class.deathstreak "specialty_juiced" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.axis.[2].class.defenseStreaks.[0] "uav_support" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[2].class.defenseStreaks.[1] "stealth_airstrike" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[2].class.defenseStreaks.[2] "emp" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[2].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[2].class.name "SNIPER"
|
||||
gameOpt defaultClasses.axis.[2].class.perks.[0] "throwingknife_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.axis.[2].class.perks.[1] "specialty_fastreload" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.axis.[2].class.perks.[2] "specialty_quickdraw" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.axis.[2].class.perks.[3] "specialty_bulletaccuracy" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.axis.[2].class.perks.[5] "streaktype_support" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.axis.[2].class.perks.[6] "specialty_tacticalinsertion" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.axis.[2].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[2].class.specialistStreakKills.[1] "4" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[2].class.specialistStreakKills.[2] "6" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[2].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[2].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[2].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[2].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[0].buff "specialty_reducedsway" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[0].weapon "iw5_msr" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[1].attachment.[0] "tactical" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[2].class.weaponSetups.[1].weapon "iw5_p99" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[2].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[3].class.assaultStreaks.[0] "predator_missile" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[3].class.assaultStreaks.[1] "littlebird_flock" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[3].class.assaultStreaks.[2] "helicopter_flares" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[3].class.deathstreak "specialty_grenadepulldeath" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.axis.[3].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[3].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[3].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[3].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[3].class.name "LMG"
|
||||
gameOpt defaultClasses.axis.[3].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.axis.[3].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.axis.[3].class.perks.[2] "specialty_twoprimaries" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.axis.[3].class.perks.[3] "specialty_stalker" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.axis.[3].class.perks.[5] "streaktype_assault" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.axis.[3].class.perks.[6] "specialty_portable_radar" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.axis.[3].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[3].class.specialistStreakKills.[1] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[3].class.specialistStreakKills.[2] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[3].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[3].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[3].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[3].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[0].attachment.[0] "reflex" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[0].buff "specialty_lightweight" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[0].weapon "iw5_m60" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[1].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[1].buff "specialty_lightweight" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[3].class.weaponSetups.[1].weapon "riotshield" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[3].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[4].class.assaultStreaks.[0] "ims" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[4].class.assaultStreaks.[1] "precision_airstrike" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[4].class.assaultStreaks.[2] "littlebird_support" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[4].class.deathstreak "specialty_finalstand" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.axis.[4].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[4].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[4].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[4].class.inUse "1" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[4].class.name "SMG"
|
||||
gameOpt defaultClasses.axis.[4].class.perks.[0] "c4_mp" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.axis.[4].class.perks.[1] "specialty_scavenger" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.axis.[4].class.perks.[2] "specialty_hardline" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.axis.[4].class.perks.[3] "specialty_bulletaccuracy" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.axis.[4].class.perks.[5] "streaktype_assault" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.axis.[4].class.perks.[6] "specialty_portable_radar" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.axis.[4].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[4].class.specialistStreakKills.[1] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[4].class.specialistStreakKills.[2] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[4].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[4].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[4].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[4].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[0].attachment.[0] "xmags" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[0].attachment.[1] "silencer" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[0].buff "specialty_bling" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[0].weapon "iw5_mp7" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[1].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[4].class.weaponSetups.[1].weapon "javelin" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[4].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[5].class.assaultStreaks.[0] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[5].class.assaultStreaks.[1] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[5].class.assaultStreaks.[2] "none" // [ none, uav, airdrop_assault, ims, predator_missile, airdrop_sentry_minigun, precision_airstrike, helicopter, littlebird_flock, littlebird_support, remote_mortar, airdrop_remote_tank, ac130, helicopter_flares, airdrop_juggernaut, osprey_gunner ]
|
||||
gameOpt defaultClasses.axis.[5].class.deathstreak "specialty_null" // [ specialty_null, specialty_juiced, specialty_revenge, specialty_finalstand, specialty_grenadepulldeath, specialty_c4death, specialty_stopping_power ]
|
||||
gameOpt defaultClasses.axis.[5].class.defenseStreaks.[0] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[5].class.defenseStreaks.[1] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[5].class.defenseStreaks.[2] "none" // [ none, uav_support, counter_uav, deployable_vest, sam_turret, remote_uav, airdrop_trap, triple_uav, remote_mg_turret, emp, stealth_airstrike, airdrop_juggernaut_recon, escort_airdrop ]
|
||||
gameOpt defaultClasses.axis.[5].class.inUse "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[5].class.name "Custom Class 6"
|
||||
gameOpt defaultClasses.axis.[5].class.perks.[0] "specialty_null" // [ specialty_null, bouncingbetty_mp, frag_grenade_mp, semtex_mp, throwingknife_mp, claymore_mp, c4_mp ]
|
||||
gameOpt defaultClasses.axis.[5].class.perks.[1] "specialty_null" // [ specialty_null, specialty_paint, specialty_fastreload, specialty_blindeye, specialty_longersprint, specialty_scavenger ]
|
||||
gameOpt defaultClasses.axis.[5].class.perks.[2] "specialty_null" // [ specialty_null, specialty_quickdraw, _specialty_blastshield, specialty_hardline, specialty_coldblooded, specialty_twoprimaries ]
|
||||
gameOpt defaultClasses.axis.[5].class.perks.[3] "specialty_null" // [ specialty_null, specialty_autospot, specialty_stalker, specialty_detectexplosive, specialty_bulletaccuracy, specialty_quieter ]
|
||||
gameOpt defaultClasses.axis.[5].class.perks.[5] "specialty_null" // [ specialty_null, streaktype_specialist, streaktype_support, streaktype_assault ]
|
||||
gameOpt defaultClasses.axis.[5].class.perks.[6] "specialty_null" // [ specialty_null, flash_grenade_mp, concussion_grenade_mp, specialty_scrambler, emp_grenade_mp, smoke_grenade_mp, trophy_mp, specialty_tacticalinsertion, specialty_portable_radar ]
|
||||
gameOpt defaultClasses.axis.[5].class.specialistStreakKills.[0] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[5].class.specialistStreakKills.[1] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[5].class.specialistStreakKills.[2] "2" // [ 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
gameOpt defaultClasses.axis.[5].class.specialistStreaks.[0] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[5].class.specialistStreaks.[1] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[5].class.specialistStreaks.[2] "none" // [ none, specialty_longersprint_ks, specialty_fastreload_ks, specialty_scavenger_ks, specialty_blindeye_ks, specialty_paint_ks, specialty_hardline_ks, specialty_coldblooded_ks, specialty_quickdraw_ks, _specialty_blastshield_ks, specialty_detectexplosive_ks, specialty_autospot_ks, specialty_bulletaccuracy_ks, specialty_quieter_ks, specialty_stalker_ks ]
|
||||
gameOpt defaultClasses.axis.[5].class.specialistStreaksBeenPicked "0" // [ 0, 1 ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[0].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[0].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[0].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[0].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[0].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[0].weapon "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[1].attachment.[0] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[1].attachment.[1] "none" // [ none, reflex, acog, grip, akimbo, thermal, shotgun, heartbeat, xmags, rof, eotech, tactical, vzscope, gl, gp25, m320, silencer, silencer02, silencer03, hamrhybrid, hybrid ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[1].buff "specialty_null" // [ specialty_marksman, specialty_bulletpenetration, specialty_bling, specialty_sharp_focus, specialty_holdbreathwhileads, specialty_reducedsway, specialty_longerrange, specialty_fastermelee, specialty_lightweight, specialty_moredamage, specialty_null ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[1].camo "none" // [ none, classic, snow, multi, d_urban, hex, choco, marine, snake, winter, blue, red, autumn, gold ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[1].reticle "none" // [ none, ret1, ret2, ret3, ret4, ret5, ret6 ]
|
||||
gameOpt defaultClasses.axis.[5].class.weaponSetups.[1].weapon "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, stinger, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt defaultClasses.axis.[5].juggernaut "0" // [ 0, 1 ]
|
||||
gameOpt demData.bombTimer "0" // [ 0-120 ]
|
||||
gameOpt demData.defuseTime "0.0000" // [ 0-10 ]
|
||||
gameOpt demData.extraTime "0.0000" // [ 0-5 ]
|
||||
gameOpt demData.plantTime "0.0000" // [ 0-10 ]
|
||||
gameOpt demData.roundSwitch "0" // [ 0, 1, 2, 3, 4 ]
|
||||
gameOpt gametype "dom" // [ war, dm, sd, sab, dom, koth, ctf, dd, tdef, conf, grnd, tjugg, jugg, gun, infect, oic ]
|
||||
gameOpt grndData.dropTime "0.0000" // [ 0-120 ]
|
||||
gameOpt grndData.zoneSwitchTime "0.0000" // [ 0-5 ]
|
||||
gameOpt gunData.guns.[0] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[1] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[2] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[3] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[4] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[5] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[6] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[7] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[8] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[9] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[10] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[11] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[12] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[13] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[14] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[15] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[16] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[17] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[18] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.guns.[19] "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, riotshield, xm25 ]
|
||||
gameOpt gunData.numGuns "0" // [ 0-20 ]
|
||||
gameOpt gunData.randomize "0" // [ 0, 1 ]
|
||||
gameOpt hqData.HQActivateDelay "0" // [ 0-60 ]
|
||||
gameOpt hqData.HQLifetime "0" // [ 0-120 ]
|
||||
gameOpt infectData.numInitialInfected "0" // [ 0-9 ]
|
||||
gameOpt juggData.respawnNewJugg "0" // [ 0, 1 ]
|
||||
gameOpt juggData.showJuggRadarIcon "0" // [ 0, 1 ]
|
||||
gameOpt juggData.showJuggWorldIcon "0" // [ 0, 1 ]
|
||||
gameOpt juggData.useJuggTimeLimit "0"
|
||||
gameOpt oicData.initialAmmoCount "0" // [ 1, 0-15 ]
|
||||
gameOpt oicData.killRewardAmmoCount "0" // [ 1, 0-15 ]
|
||||
gameOpt oicData.oneShotKill "0" // [ 0, 1 ]
|
||||
gameOpt oicData.weapon "none" // [ none, iw5_usp45, iw5_mp412, iw5_44magnum, iw5_deserteagle, iw5_p99, iw5_fnfiveseven, iw5_acr, iw5_type95, iw5_m4, iw5_ak47, iw5_m16, iw5_mk14, iw5_g36c, iw5_scar, iw5_fad, iw5_cm901, iw5_mp5, iw5_m9, iw5_p90, iw5_pp90m1, iw5_ump45, iw5_mp7, iw5_fmg9, iw5_g18, iw5_mp9, iw5_skorpion, iw5_spas12, iw5_aa12, iw5_striker, iw5_1887, iw5_usas12, iw5_ksg, iw5_m60, iw5_mk46, iw5_pecheneg, iw5_sa80, iw5_mg36, iw5_barrett, iw5_msr, iw5_rsass, iw5_dragunov, iw5_as50, iw5_l96a1, rpg, javelin, iw5_smaw, m320, xm25 ]
|
||||
gameOpt sabData.bombTimer "0" // [ 5, 0-120 ]
|
||||
gameOpt sabData.defuseTime "0.0000" // [ 5, 0-10 ]
|
||||
gameOpt sabData.plantTime "0.0000" // [ 1, 0-10 ]
|
||||
gameOpt sabData.sharedBombTimer "0" // [ 0, 1 ]
|
||||
gameOpt sdData.bombTimer "0" // [ 0-60 ]
|
||||
gameOpt sdData.defuseTime "0.0000" // [ 0-10 ]
|
||||
gameOpt sdData.multiBomb "0" // [ 0, 1 ]
|
||||
gameOpt sdData.plantTime "0.0000" // [ 0-10 ]
|
||||
gameOpt sdData.roundLength "0.0000" // [ 0-10 ]
|
||||
gameOpt sdData.roundSwitch "0" // [ 0-4 ]
|
||||
gameOpt tdefData.enemyFlagRadar "0" // [ 0, 1 ]
|
||||
gameOpt tjuggData.juggSwitchTime "0.0000" // [ 0-120 ]
|
Before Width: | Height: | Size: 731 KiB After Width: | Height: | Size: 731 KiB |
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 172 KiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
BIN
bw-assets/wp-editor-wps-path.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
bw-assets/wp-editor-wps.png
Normal file
After Width: | Height: | Size: 44 KiB |
@ -13,15 +13,15 @@ Now if you want to modify existing or create new waypoints for PlutoniumIW5 maps
|
||||
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 game, and load up the Bot Warfare mod. Now open your console with tilde(~).<br>
|
||||

|
||||

|
||||
|
||||
In the console, type in ```set bots_main_debug 1```<br>
|
||||

|
||||

|
||||
|
||||
Now start a match with the map you want to edit.
|
||||
|
||||
## The Editor
|
||||
<br>
|
||||
<br>
|
||||
This is the Waypoint Editor. You can view, edit and create the waypoint graph.
|
||||
- Each death icons you see are waypoints.
|
||||
- Each line of knives show the links between the waypoints, a link defines that a bot can walk from A to B.
|
||||
@ -59,10 +59,10 @@ Pressing any of these buttons will initiate a command to the Waypoint Editor.
|
||||
Okay, now that you know how to control the Editor, lets now goahead 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:
|
||||
@ -75,7 +75,7 @@ There are several types of waypoints, holding a modifier button before pressing
|
||||
- javelin - bots will use the javelin and lockon at the target location
|
||||
|
||||
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.
|
||||
|
||||
@ -84,19 +84,29 @@ Now go and waypoint the whole map out. This may take awhile and can be pretty te
|
||||
Once you feel like you are done, press the Save button. This will output the waypoints to your `games_mp.log` file.
|
||||
|
||||
Your `games_mp.log` can be located at the `C:\Users\<LOGINNAME>\AppData\Plutonium\storage\iw5` folder.<br>
|
||||

|
||||

|
||||
|
||||
|
||||
The editor will generate some GSC code for the waypoints.<br>
|
||||
<br>
|
||||
<br>
|
||||
This is the GSC function that will generate the waypoints for the map. If you have trouble beyond this point, simply create an Issue and provide the output from here, I can do the rest from there.
|
||||
|
||||
You can create/replace the map's waypoints GSC file with the function in `games_mp.log`. Just copy and paste the function into the `maps\mp\bots\waypoints\<MAPNAME>.gsc` file.<br>
|
||||

|
||||
You can create/replace the map's waypoints GSC file with the function in `games_mp.log`.
|
||||
Just copy and paste the function into the `scripts\mp\<MAPNAME>\<WAYPOINT>.gsc` file.
|
||||
If you're working with a custom map you might need to create the folder with your map's name.
|
||||
Then inside that newly created folder put your waypoints GSC file.
|
||||
Make sure to have it named `wps_mapname`.
|
||||
Also you need to add this `main` function at the topc of your waypoints GSC file to ensure Bot Warfare will load your waypoints. Replace `Dome` with the name of the function in your file.
|
||||
```
|
||||
main()
|
||||
{
|
||||
level.waypoints = Dome();
|
||||
}
|
||||
```
|
||||
<br>
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
The waypoints are loaded in the `maps\mp\bots\_bot_utility::load_waypoints()` function. Make changes accordingly to have Bot Warfare load your waypoints.<br>
|
||||

|
||||
|
||||
|
||||
Now Bot Warfare will use your waypoints you've created! Create a pull request to have your waypoints included in the mod if you like, any help is greatly appreciated.
|
||||
Now Bot Warfare will use your waypoints you've created!
|
BIN
ci/30.gscbin
Normal file
BIN
ci/366.gscbin
Normal file
BIN
ci/851.gscbin
Normal file
6
ci/gsc-tool.bat
Normal file
@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
|
||||
xcopy /y .\ci\*.gscbin .\
|
||||
rm .\scripts\mp\bots_adapter_piw5.gsc
|
||||
|
||||
gsc-tool.exe -m comp -g iw5 -s pc .\
|
10
ci/pregsc.bat
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
if not exist ".\source\" mkdir .\source\
|
||||
if not exist ".\source\scripts\" mkdir .\source\scripts\
|
||||
if not exist ".\source\maps\" mkdir .\source\maps\
|
||||
|
||||
xcopy /y /s /e .\scripts\ .\source\scripts\
|
||||
xcopy /y /s /e .\maps\ .\source\maps\
|
||||
|
||||
preGSC.exe -noforeach -nopause -infold .\source\ -outfold .\pregsc\
|
@ -1,4 +0,0 @@
|
||||
xcopy piw5_bot_warfare\raw\maps raw\maps\ /Y /I /E /H /C
|
||||
xcopy piw5_bot_warfare\raw\scripts raw\scripts\ /Y /I /E /H /C
|
||||
xcopy piw5_bot_warfare\admin admin\ /Y /I /E /H /C
|
||||
xcopy piw5_bot_warfare\raw\bots.txt raw\ /Y /I /H /C
|
54
deploy.js
@ -1,54 +0,0 @@
|
||||
// nodejs 14+
|
||||
|
||||
const exec = require('util').promisify(require('child_process').exec)
|
||||
|
||||
const repo_name = 'piw5_bot_warfare'
|
||||
const repo_url = `https://github.com/ineedbots/${repo_name}`
|
||||
const deploy_check_rate = 60000
|
||||
const title = 'PIW5 Bot Warfare Git Deployer'
|
||||
|
||||
function printToConsole(what, error = false)
|
||||
{
|
||||
log = error ? console.error : console.log
|
||||
|
||||
log(`[${new Date().toISOString()}]:`, what)
|
||||
}
|
||||
|
||||
async function doDeploy() {
|
||||
try {
|
||||
const { stdout, stderr } = await exec(`cd ${repo_name} && git fetch`)
|
||||
|
||||
if (stderr.length <= 0)
|
||||
return
|
||||
|
||||
if (stderr.startsWith('From '))
|
||||
{
|
||||
printToConsole('git fetched! Pulling...')
|
||||
await exec(`cd ${repo_name} && git pull && git submodule update --init --recursive`)
|
||||
printToConsole('Deploying...')
|
||||
await exec('deploy.bat')
|
||||
printToConsole('Deployed!')
|
||||
}
|
||||
} catch (e) {
|
||||
printToConsole(e, true)
|
||||
|
||||
if (!e.stderr.startsWith('The system cannot find the path specified'))
|
||||
return
|
||||
|
||||
printToConsole('Cloning repo...')
|
||||
try {
|
||||
await exec(`git clone ${repo_url} && cd ${repo_name} && git submodule update --init --recursive`)
|
||||
|
||||
printToConsole('Cloned!')
|
||||
printToConsole('Deploying...')
|
||||
await exec('deploy.bat')
|
||||
printToConsole('Deployed!')
|
||||
} catch (f) {
|
||||
printToConsole(f, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
process.stdout.write(`${String.fromCharCode(27)}]0;${title}${String.fromCharCode(7)}`)
|
||||
doDeploy()
|
||||
setInterval(doDeploy, deploy_check_rate)
|
1619
maps/mp/bots/_bot.gsc
Normal file
@ -15,8 +15,10 @@
|
||||
*/
|
||||
init()
|
||||
{
|
||||
if ( getDvar( "bots_main_chat" ) == "" )
|
||||
setDvar( "bots_main_chat", 1.0 );
|
||||
if ( getdvar( "bots_main_chat" ) == "" )
|
||||
{
|
||||
setdvar( "bots_main_chat", 1.0 );
|
||||
}
|
||||
|
||||
level thread onBotConnected();
|
||||
}
|
||||
@ -39,19 +41,24 @@ onBotConnected()
|
||||
*/
|
||||
BotDoChat( chance, string, isTeam )
|
||||
{
|
||||
mod = getDvarFloat( "bots_main_chat" );
|
||||
mod = getdvarfloat( "bots_main_chat" );
|
||||
|
||||
if ( mod <= 0.0 )
|
||||
return;
|
||||
|
||||
if ( chance >= 100 || mod >= 100.0 ||
|
||||
( RandomInt( 100 ) < ( chance * mod ) + 0 ) )
|
||||
{
|
||||
if ( isDefined( isTeam ) && isTeam )
|
||||
return;
|
||||
}
|
||||
|
||||
if ( chance >= 100 || mod >= 100.0 || ( randomint( 100 ) < ( chance * mod ) + 0 ) )
|
||||
{
|
||||
if ( isdefined( isTeam ) && isTeam )
|
||||
{
|
||||
self sayteam( string );
|
||||
}
|
||||
else
|
||||
{
|
||||
self sayall( string );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -80,12 +87,14 @@ start_onnuke_call()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
while ( !isDefined( level.nukeIncoming ) && !isDefined( level.moabIncoming ) )
|
||||
wait 0.05 + randomInt( 4 );
|
||||
while ( !isdefined( level.nukeincoming ) && !isdefined( level.moabincoming ) )
|
||||
{
|
||||
wait 0.05 + randomint( 4 );
|
||||
}
|
||||
|
||||
self thread bot_onnukecall_watch();
|
||||
|
||||
wait level.nukeTimer + 5;
|
||||
wait level.nuketimer + 5;
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,9 +109,9 @@ start_death_watch()
|
||||
{
|
||||
self waittill( "death" );
|
||||
|
||||
self thread bot_chat_death_watch( self.lastAttacker, self.bots_lastKS );
|
||||
self thread bot_chat_death_watch( self.lastattacker, self.bots_lastks );
|
||||
|
||||
self.bots_lastKS = 0;
|
||||
self.bots_lastks = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,12 +138,14 @@ start_random_chat()
|
||||
{
|
||||
wait 1;
|
||||
|
||||
if ( randomInt( 100 ) < 1 )
|
||||
if ( randomint( 100 ) < 1 )
|
||||
{
|
||||
if ( randomint( 100 ) < 1 && isreallyalive( self ) )
|
||||
{
|
||||
if ( randomInt( 100 ) < 1 && isReallyAlive( self ) )
|
||||
self thread doQuickMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -144,23 +155,23 @@ start_killed_watch()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self.bots_lastKS = 0;
|
||||
self.bots_lastks = 0;
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "killed_enemy" );
|
||||
|
||||
if ( self.bots_lastKS < self.pers["cur_kill_streak"] )
|
||||
if ( self.bots_lastks < self.pers[ "cur_kill_streak" ] )
|
||||
{
|
||||
for ( i = self.bots_lastKS + 1; i <= self.pers["cur_kill_streak"]; i++ )
|
||||
for ( i = self.bots_lastks + 1; i <= self.pers[ "cur_kill_streak" ]; i++ )
|
||||
{
|
||||
self thread bot_chat_streak( i );
|
||||
}
|
||||
}
|
||||
|
||||
self.bots_lastKS = self.pers["cur_kill_streak"];
|
||||
self.bots_lastks = self.pers[ "cur_kill_streak" ];
|
||||
|
||||
self thread bot_chat_killed_watch( self.lastKilledPlayer );
|
||||
self thread bot_chat_killed_watch( self.lastkilledplayer );
|
||||
}
|
||||
}
|
||||
|
||||
@ -317,10 +328,43 @@ start_chat_watch()
|
||||
case "box_cap":
|
||||
self thread bot_chat_box_cap_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "connection":
|
||||
self thread bot_chat_connection_player_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
|
||||
case "chat":
|
||||
self thread bot_chat_chat_player_watch( a, b, c, d, e, f, g );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
When another player chats
|
||||
*/
|
||||
bot_chat_chat_player_watch( chatstr, message, player, is_hidden, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
}
|
||||
|
||||
/*
|
||||
When a player connected
|
||||
*/
|
||||
bot_chat_connection_player_watch( conn, player, playername, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
switch ( conn )
|
||||
{
|
||||
case "connected":
|
||||
break;
|
||||
|
||||
case "disconnected":
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
start_startgame_watch
|
||||
*/
|
||||
@ -476,7 +520,7 @@ doQuickMessage()
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
if ( !isDefined( self.talking ) || !self.talking )
|
||||
if ( !isdefined( self.talking ) || !self.talking )
|
||||
{
|
||||
self.talking = true;
|
||||
soundalias = "";
|
||||
@ -514,16 +558,18 @@ doQuickMessage()
|
||||
|
||||
if ( soundalias != "" && saytext != "" )
|
||||
{
|
||||
self maps\mp\gametypes\_quickmessages::saveHeadIcon();
|
||||
self maps\mp\gametypes\_quickmessages::doQuickMessage( soundalias, saytext );
|
||||
self maps\mp\gametypes\_quickmessages::saveheadicon();
|
||||
self maps\mp\gametypes\_quickmessages::doquickmessage( soundalias, saytext );
|
||||
wait 2;
|
||||
self maps\mp\gametypes\_quickmessages::restoreHeadIcon();
|
||||
self maps\mp\gametypes\_quickmessages::restoreheadicon();
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( randomint( 100 ) < 1 )
|
||||
{
|
||||
self BotDoChat( 1, 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 ) );
|
||||
}
|
||||
}
|
||||
|
||||
self.spamdelay = undefined;
|
||||
wait randomint( 5 );
|
||||
@ -546,26 +592,26 @@ endgame_chat()
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
player = level.players[ i ];
|
||||
|
||||
if ( player.pers["score"] > b )
|
||||
if ( player.pers[ "score" ] > b )
|
||||
{
|
||||
winner = player;
|
||||
b = player.pers["score"];
|
||||
b = player.pers[ "score" ];
|
||||
}
|
||||
|
||||
if ( player.pers["score"] < w )
|
||||
if ( player.pers[ "score" ] < w )
|
||||
{
|
||||
loser = player;
|
||||
w = player.pers["score"];
|
||||
w = player.pers[ "score" ];
|
||||
}
|
||||
}
|
||||
|
||||
if ( level.teamBased )
|
||||
if ( level.teambased )
|
||||
{
|
||||
winningteam = maps\mp\gametypes\_gamescore::getWinningTeam();
|
||||
winningteam = maps\mp\gametypes\_gamescore::getwinningteam();
|
||||
|
||||
if ( self.pers["team"] == winningteam )
|
||||
if ( self.pers[ "team" ] == winningteam )
|
||||
{
|
||||
switch ( randomint( 21 ) )
|
||||
{
|
||||
@ -598,7 +644,7 @@ endgame_chat()
|
||||
break;
|
||||
|
||||
case 7:
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers["team"] + " always wins!!" );
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers[ "team" ] + " always wins!!" );
|
||||
break;
|
||||
|
||||
case 8:
|
||||
@ -639,25 +685,41 @@ endgame_chat()
|
||||
|
||||
case 17:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "LOL we wouldn't of won without me!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "damn i sucked but i still won" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "lol " + loser.name + " sucked hard!" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "wow " + winner.name + " did very well!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 18:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "I'm the VERY BEST!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "lol my team is good, i suck doe" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "lol " + loser.name + " should be playing a noobier game" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "i think " + winner.name + " is a hacker" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -693,7 +755,7 @@ endgame_chat()
|
||||
break;
|
||||
|
||||
case 5:
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers["team"] + " always loses!!" );
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "My team " + self.pers[ "team" ] + " always loses!!" );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
@ -734,25 +796,41 @@ endgame_chat()
|
||||
|
||||
case 14:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "LOL we lost even with my score." );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "damn im probally the reason we lost" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, loser.name + " should just leave" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "kwtf " + winner.name + " is a hacker" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 15:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "my teammates are garabge" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "lol im garbage" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, loser.name + " sux" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, winner.name + " is a noob!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -822,37 +900,61 @@ endgame_chat()
|
||||
{
|
||||
case 0:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Haha Suck it, you all just got pwnd!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol i Sucked in this game, just look at my score!" );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "gga, Bad luck " + loser.name );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "This game sucked, " + winner.name + " is such a hacker!!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "GGA i suck, Nice score " + winner.name );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Rofl, " + loser.name + " dude, you suck!!" );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Nice Score " + winner.name + ", how did you get to be so good?" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if ( self == winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "LOL i just wasted you all!! Whoot whoot!" );
|
||||
}
|
||||
else if ( self == loser )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "nice wallhacks " + winner.name );
|
||||
}
|
||||
else if ( self != loser && randomint( 2 ) == 1 )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "Lol atleast i did better then " + loser.name );
|
||||
}
|
||||
else if ( self != winner )
|
||||
{
|
||||
self BotDoChat( 20, "^" + ( randomint( 6 ) + 1 ) + "lolwtf " + winner.name );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -937,18 +1039,26 @@ bot_onnukecall_watch()
|
||||
switch ( randomint( 4 ) )
|
||||
{
|
||||
case 0:
|
||||
if ( level.nukeInfo.player != self )
|
||||
if ( level.nukeinfo.player != self )
|
||||
{
|
||||
self BotDoChat( 30, "Wow who got a nuke?" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self BotDoChat( 30, "NUUUUUUKKKKKKEEEEEE!!!! :D" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if ( level.nukeInfo.player != self )
|
||||
self BotDoChat( 30, "lol " + level.nukeInfo.player.name + " is a hacker" );
|
||||
if ( level.nukeinfo.player != self )
|
||||
{
|
||||
self BotDoChat( 30, "lol " + level.nukeinfo.player.name + " is a hacker" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self BotDoChat( 30, "im the best!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -957,10 +1067,14 @@ bot_onnukecall_watch()
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if ( level.nukeInfo.team != self.team )
|
||||
if ( level.nukeinfo.team != self.team )
|
||||
{
|
||||
self BotDoChat( 30, "man my team sucks ):" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self BotDoChat( 30, "man my team is good lol" );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@ -975,7 +1089,7 @@ bot_chat_streak( streakCount )
|
||||
|
||||
if ( streakCount == 25 )
|
||||
{
|
||||
if ( self.pers["lastEarnedStreak"] == "nuke" )
|
||||
if ( self.pers[ "lastEarnedStreak" ] == "nuke" )
|
||||
{
|
||||
switch ( randomint( 5 ) )
|
||||
{
|
||||
@ -1010,8 +1124,10 @@ bot_chat_killed_watch( victim )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isDefined( victim ) || !isDefined( victim.name ) )
|
||||
if ( !isdefined( victim ) || !isdefined( victim.name ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
message = "";
|
||||
|
||||
@ -1138,11 +1254,11 @@ bot_chat_killed_watch( victim )
|
||||
break;
|
||||
|
||||
case 30:
|
||||
message = ( "haha thanks " + victim.name + ", im at a " + self.pers["cur_kill_streak"] + " streak." );
|
||||
message = ( "haha thanks " + victim.name + ", im at a " + self.pers[ "cur_kill_streak" ] + " streak." );
|
||||
break;
|
||||
|
||||
case 31:
|
||||
message = ( "lol " + victim.name + " is at a " + victim.pers["cur_death_streak"] + " deathstreak" );
|
||||
message = ( "lol " + victim.name + " is at a " + victim.pers[ "cur_death_streak" ] + " deathstreak" );
|
||||
break;
|
||||
|
||||
case 32:
|
||||
@ -1178,8 +1294,10 @@ bot_chat_killed_watch( victim )
|
||||
break;
|
||||
|
||||
case 40:
|
||||
if ( isDefined( victim.attackerData[self.guid] ) && isDefined( victim.attackerData[self.guid].weapon ) )
|
||||
message = ( "Man, I sure love my " + getBaseWeaponName( victim.attackerData[self.guid].weapon ) + "!" );
|
||||
if ( isdefined( victim.attackerdata ) && isdefined( victim.attackerdata[ self.guid ] ) && isdefined( victim.attackerdata[ self.guid ].weapon ) )
|
||||
{
|
||||
message = ( "Man, I sure love my " + getbaseweaponname( victim.attackerdata[ self.guid ].weapon ) + "!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -1199,8 +1317,10 @@ bot_chat_death_watch( killer, last_ks )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isDefined( killer ) || !isDefined( killer.name ) )
|
||||
if ( !isdefined( killer ) || !isdefined( killer.name ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
message = "";
|
||||
|
||||
@ -1224,14 +1344,18 @@ bot_chat_death_watch( killer, last_ks )
|
||||
|
||||
case 4:
|
||||
if ( last_ks > 0 )
|
||||
{
|
||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Nooooooooo my killstreaks!! :( I had a " + last_ks + " killstreak!!" );
|
||||
}
|
||||
else
|
||||
message = ( "man im getting spawn killed, i have a " + self.pers["cur_death_streak"] + " deathstreak!" );
|
||||
{
|
||||
message = ( "man im getting spawn killed, i have a " + self.pers[ "cur_death_streak" ] + " deathstreak!" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 5:
|
||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Stop Spawn KILLING!!!" );
|
||||
message = ( "^" + ( randomint( 6 ) + 1 ) + "Stop spawn KILLING!!!" );
|
||||
break;
|
||||
|
||||
case 6:
|
||||
@ -1323,19 +1447,19 @@ bot_chat_death_watch( killer, last_ks )
|
||||
break;
|
||||
|
||||
case 28:
|
||||
message = ( "AHH! IM DEAD BECAUSE " + level.players[randomint( level.players.size )].name + " is a noob!" );
|
||||
message = ( "AHH! IM DEAD BECAUSE " + level.players[ randomint( level.players.size ) ].name + " is a noob!" );
|
||||
break;
|
||||
|
||||
case 29:
|
||||
message = ( level.players[randomint( level.players.size )].name + ", please don't talk." );
|
||||
message = ( level.players[ randomint( level.players.size ) ].name + ", please don't talk." );
|
||||
break;
|
||||
|
||||
case 30:
|
||||
message = ( "Wow " + level.players[randomint( level.players.size )].name + " is a blocker noob!" );
|
||||
message = ( "Wow " + level.players[ randomint( level.players.size ) ].name + " is a blocker noob!" );
|
||||
break;
|
||||
|
||||
case 31:
|
||||
message = ( "Next time GET OUT OF MY WAY " + level.players[randomint( level.players.size )].name + "!!" );
|
||||
message = ( "Next time GET OUT OF MY WAY " + level.players[ randomint( level.players.size ) ].name + "!!" );
|
||||
break;
|
||||
|
||||
case 32:
|
||||
@ -1391,7 +1515,7 @@ bot_chat_death_watch( killer, last_ks )
|
||||
break;
|
||||
|
||||
case 45:
|
||||
message = ( "someone kill " + killer.name + ", they are on a streak of " + killer.pers["cur_kill_streak"] + "!" );
|
||||
message = ( "someone kill " + killer.name + ", they are on a streak of " + killer.pers[ "cur_kill_streak" ] + "!" );
|
||||
break;
|
||||
|
||||
case 46:
|
||||
@ -1451,8 +1575,10 @@ bot_chat_death_watch( killer, last_ks )
|
||||
break;
|
||||
|
||||
case 60:
|
||||
if ( isDefined( self.attackerData[killer.guid] ) && isDefined( self.attackerData[killer.guid].weapon ) )
|
||||
message = "Wow! Nice " + getBaseWeaponName( self.attackerData[killer.guid].weapon ) + " you got there, " + killer.name + "!";
|
||||
if ( isdefined( self.attackerdata ) && isdefined( self.attackerdata[ killer.guid ] ) && isdefined( self.attackerdata[ killer.guid ].weapon ) )
|
||||
{
|
||||
message = "Wow! Nice " + getbaseweaponname( self.attackerdata[ killer.guid ].weapon ) + " you got there, " + killer.name + "!";
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -1499,7 +1625,7 @@ bot_chat_revive_watch( state, revive, c, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am going to revive " + revive.name );
|
||||
@ -1509,7 +1635,7 @@ bot_chat_revive_watch( state, revive, c, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am reviving " + revive.name );
|
||||
@ -1519,7 +1645,7 @@ bot_chat_revive_watch( state, revive, c, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i revived " + revive.name );
|
||||
@ -1540,7 +1666,7 @@ bot_chat_killcam_watch( state, b, c, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
switch ( randomInt( 2 ) )
|
||||
switch ( randomint( 2 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 1, "WTF?!?!?!! Dude youre a hacker and a half!!" );
|
||||
@ -1554,7 +1680,7 @@ bot_chat_killcam_watch( state, b, c, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
switch ( randomInt( 2 ) )
|
||||
switch ( randomint( 2 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 1, "Wow... Im reporting you!!!" );
|
||||
@ -1576,7 +1702,7 @@ bot_chat_stuck_watch( a, b, c, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
sayLength = randomintRange( 5, 30 );
|
||||
sayLength = randomintrange( 5, 30 );
|
||||
msg = "";
|
||||
|
||||
for ( i = 0; i < sayLength; i++ )
|
||||
@ -1634,7 +1760,7 @@ bot_chat_tube_watch( state, tubeWp, tubeWeap, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i am going to go tube" );
|
||||
@ -1644,7 +1770,7 @@ bot_chat_tube_watch( state, tubeWp, tubeWeap, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "i tubed" );
|
||||
@ -1807,16 +1933,25 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isdefined( aircare ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomint( 2 ) )
|
||||
{
|
||||
case 0:
|
||||
if ( !isDefined( aircare.owner ) || aircare.owner == self )
|
||||
if ( !isdefined( aircare.owner ) || aircare.owner == self )
|
||||
{
|
||||
self BotDoChat( 5, "going to my carepackage" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self BotDoChat( 5, "going to " + aircare.owner.name + "'s carepackage" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -1831,10 +1966,14 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
|
||||
switch ( randomint( 2 ) )
|
||||
{
|
||||
case 0:
|
||||
if ( !isDefined( aircare.owner ) || aircare.owner == self )
|
||||
if ( !isdefined( aircare.owner ) || aircare.owner == self )
|
||||
{
|
||||
self BotDoChat( 15, "taking my carepackage" );
|
||||
}
|
||||
else
|
||||
{
|
||||
self BotDoChat( 15, "taking " + aircare.owner.name + "'s carepackage" );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -1846,7 +1985,7 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "stop":
|
||||
if ( !isDefined( aircare.owner ) || aircare.owner == self )
|
||||
if ( !isdefined( aircare.owner ) || aircare.owner == self )
|
||||
{
|
||||
switch ( randomint( 6 ) )
|
||||
{
|
||||
@ -1871,8 +2010,10 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if ( isDefined( aircare.crateType ) )
|
||||
self BotDoChat( 10, ":3 i got my " + aircare.crateType );
|
||||
if ( isdefined( aircare.cratetype ) )
|
||||
{
|
||||
self BotDoChat( 10, ":3 i got my " + aircare.cratetype );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@ -1898,8 +2039,10 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if ( isDefined( aircare.crateType ) )
|
||||
self BotDoChat( 10, "hahaah jajaja i took your " + aircare.crateType );
|
||||
if ( isdefined( aircare.cratetype ) )
|
||||
{
|
||||
self BotDoChat( 10, "hahaah jajaja i took your " + aircare.cratetype );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@ -1927,8 +2070,10 @@ bot_chat_crate_cap_watch( state, aircare, player, d, e, f, g )
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if ( isDefined( aircare.crateType ) )
|
||||
self BotDoChat( 10, "Wow! there goes my " + aircare.crateType + "!" );
|
||||
if ( isdefined( aircare.cratetype ) )
|
||||
{
|
||||
self BotDoChat( 10, "Wow! there goes my " + aircare.cratetype + "!" );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@ -2014,10 +2159,12 @@ bot_chat_attack_vehicle_watch( state, vehicle, rocketAmmo, d, e, f, g )
|
||||
case 13:
|
||||
weap = rocketAmmo;
|
||||
|
||||
if ( !isDefined( weap ) )
|
||||
weap = self getCurrentWeapon();
|
||||
if ( !isdefined( weap ) )
|
||||
{
|
||||
weap = self getcurrentweapon();
|
||||
}
|
||||
|
||||
self BotDoChat( 10, "Im going to takedown your ks with my " + getBaseWeaponName( weap ) );
|
||||
self BotDoChat( 10, "Im going to takedown your ks with my " + getbaseweaponname( weap ) );
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2117,6 +2264,11 @@ bot_chat_follow_watch( state, player, time, d, e, f, g )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isdefined( player ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch ( state )
|
||||
{
|
||||
case "start":
|
||||
@ -2163,20 +2315,20 @@ bot_chat_equ_watch( state, wp, weap, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "going to place a " + getBaseWeaponName( weap ) );
|
||||
self BotDoChat( 10, "going to place a " + getbaseweaponname( weap ) );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "placed a " + getBaseWeaponName( weap ) );
|
||||
self BotDoChat( 10, "placed a " + getbaseweaponname( weap ) );
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2194,20 +2346,20 @@ bot_chat_nade_watch( state, wp, weap, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "going to throw a " + getBaseWeaponName( weap ) );
|
||||
self BotDoChat( 10, "going to throw a " + getbaseweaponname( weap ) );
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "threw a " + getBaseWeaponName( weap ) );
|
||||
self BotDoChat( 10, "threw a " + getbaseweaponname( weap ) );
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2430,7 +2582,7 @@ bot_chat_turret_attack_watch( state, turret, c, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 5, "going to this sentry..." );
|
||||
@ -2440,7 +2592,7 @@ bot_chat_turret_attack_watch( state, turret, c, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "start":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 5, "attacking this sentry..." );
|
||||
@ -2464,7 +2616,7 @@ bot_chat_attack_equ_watch( state, equ, c, d, e, f, g )
|
||||
switch ( state )
|
||||
{
|
||||
case "go_ti":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "going to this ti..." );
|
||||
@ -2474,7 +2626,7 @@ bot_chat_attack_equ_watch( state, equ, c, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "camp_ti":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "lol im camping this ti!" );
|
||||
@ -2484,7 +2636,7 @@ bot_chat_attack_equ_watch( state, equ, c, d, e, f, g )
|
||||
break;
|
||||
|
||||
case "trigger_ti":
|
||||
switch ( randomInt( 1 ) )
|
||||
switch ( randomint( 1 ) )
|
||||
{
|
||||
case 0:
|
||||
self BotDoChat( 10, "lol i destoryed this ti!" );
|
3562
maps/mp/bots/_bot_internal.gsc
Normal file
3900
maps/mp/bots/_bot_utility.gsc
Normal file
1346
maps/mp/bots/_menu.gsc
Normal file
1084
maps/mp/bots/_wp_editor.gsc
Normal file
@ -1,46 +0,0 @@
|
||||
# PlutoniumIW5 Bot Warfare v2.1.0
|
||||
Bot Warfare is a GSC mod for the PlutoniumIW5 project.
|
||||
|
||||
It aims to add playable AI to the multiplayer games of Modern Warfare 3.
|
||||
|
||||
You can find the GitHub containing more info at https://github.com/ineedbots/piw5_bot_warfare
|
||||
|
||||
## Installation
|
||||
0. Make sure that PlutoniumIW5 is installed, updated and working properly.
|
||||
1. Extract all the files from this archive to anywhere on your computer.
|
||||
2. Run the 'install.bat'. This copies the mod to your PlutoniumIW5 storage folder.
|
||||
3. The mod is now installed, now run your game.
|
||||
4. The mod should be loaded! Now go start a map and play!
|
||||
|
||||
## Menu Usage
|
||||
- You can open the menu by pressing the Action Slot 1 key (default 'N', nightvision key).
|
||||
|
||||
- You can navigate the options by pressing your movement keys (default WASD), and you can select options by pressing your jump key (default SPACE).
|
||||
|
||||
- Pressing the menu button again closes menus.
|
||||
|
||||
## Changelog
|
||||
- v2.1.0
|
||||
- Initial release (sync'd versions with other Bot Warfares)
|
||||
|
||||
## Credits
|
||||
- Plutonium Team - https://plutonium.pw/
|
||||
- CoD4x Team - https://github.com/callofduty4x/CoD4x_Server
|
||||
- INeedGames - http://www.moddb.com/mods/bot-warfare
|
||||
- tinkie101 - https://web.archive.org/web/20120326060712/http://alteriw.net/viewtopic.php?f=72&t=4869
|
||||
- PeZBot team - http://www.moddb.com/mods/pezbot
|
||||
- apdonato - http://rsebots.blogspot.ca/
|
||||
- Ability
|
||||
- Salvation
|
||||
|
||||
## Waypoint Creators
|
||||
- FragsAreUs - https://github.com/FragsAreUs
|
||||
- Aesirix - https://github.com/Aesirix
|
||||
- EpikIzCool - https://github.com/super23
|
||||
- doa3 - https://github.com/doa3
|
||||
- ghostwulf - https://github.com/ghostwulf
|
||||
- LeRutY - https://github.com/LeRutY
|
||||
- GaryTheNoTrashCougar - https://github.com/GaryTheNoTrashCougar
|
||||
|
||||
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
|
@ -1,2 +0,0 @@
|
||||
xcopy z_svr_bots.iwd "%LOCALAPPDATA%"\Plutonium\storage\iw5\ /Y
|
||||
pause
|
BIN
out/ss.jpg
Before Width: | Height: | Size: 1.3 MiB |
26
raw/bots.txt
@ -1,26 +0,0 @@
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
e
|
||||
f
|
||||
g
|
||||
h
|
||||
i
|
||||
j
|
||||
k
|
||||
l
|
||||
m
|
||||
n
|
||||
o
|
||||
p
|
||||
q
|
||||
r
|
||||
s
|
||||
t
|
||||
u
|
||||
v
|
||||
w
|
||||
x
|
||||
y
|
||||
z
|
Before Width: | Height: | Size: 29 KiB |
@ -1,964 +0,0 @@
|
||||
/*
|
||||
_wp_editor
|
||||
Author: INeedGames
|
||||
Date: 05/08/2021
|
||||
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_updateRate" ) == "" )
|
||||
setDvar( "bots_main_debug_updateRate", 500 );
|
||||
|
||||
if ( getDvar( "bots_main_debug_dashAmount" ) == "" )
|
||||
setDvar( "bots_main_debug_dashAmount", 35.0 );
|
||||
|
||||
setDvar( "player_sustainAmmo", 1 );
|
||||
|
||||
|
||||
if ( !isDefined( level.waypoints ) )
|
||||
level.waypoints = [];
|
||||
|
||||
level.waypointCount = 0;
|
||||
|
||||
level waittill( "connected", player );
|
||||
player thread onPlayerSpawned();
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
self thread startDev();
|
||||
}
|
||||
}
|
||||
|
||||
StartDev()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
level.wpToLink = -1;
|
||||
level.autoLink = false;
|
||||
self.nearest = -1;
|
||||
|
||||
self takeAllWeapons();
|
||||
self giveWeapon( "iw5_m16_mp_gl" ); //to knife windows
|
||||
self giveWeapon( "javelin_mp" ); //to mark jav spots
|
||||
self SetOffhandPrimaryClass( "other" );
|
||||
self giveWeapon( "semtex_mp" );
|
||||
self _clearperks();
|
||||
self.specialty = [];
|
||||
// need to find out how to setperks in mw3
|
||||
/* self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");*/
|
||||
self freezecontrols( false );
|
||||
|
||||
self thread watchAddWaypointCommand();
|
||||
self thread watchDeleteAllWaypointsCommand();
|
||||
self thread watchDeleteWaypointCommand();
|
||||
self thread watchLinkWaypointCommand();
|
||||
self thread watchLoadWaypointsCommand();
|
||||
self thread watchSaveWaypointsCommand();
|
||||
self thread watchUnlinkWaypointCommand();
|
||||
self thread watchAutoLinkCommand();
|
||||
self thread updateWaypointsStats();
|
||||
self thread watchAstarCommand();
|
||||
|
||||
self thread sayExtras();
|
||||
}
|
||||
|
||||
sayExtras()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self iprintln( "Before adding waypoints, holding buttons:" );
|
||||
wait 4;
|
||||
self iprintln( "ADS - climb" );
|
||||
self iprintln( "Use + Attack - tube" );
|
||||
self iprintln( "Attack - grenade" );
|
||||
self iprintln( "Use - claymore" );
|
||||
wait 4;
|
||||
self iprintln( "Else the waypoint will be your stance." );
|
||||
self iprintln( "Making a crouch waypoint with only one link..." );
|
||||
self iprintln( "Makes a camping waypoint." );
|
||||
}
|
||||
|
||||
watchAstarCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "astar", "+gostand" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "astar" );
|
||||
|
||||
if ( 1 )
|
||||
continue;
|
||||
|
||||
self iprintln( "Start AStar" );
|
||||
self.astar = undefined;
|
||||
astar = spawnStruct();
|
||||
astar.start = self.origin;
|
||||
|
||||
self waittill( "astar" );
|
||||
self iprintln( "End AStar" );
|
||||
astar.goal = self.origin;
|
||||
|
||||
astar.nodes = AStarSearch( astar.start, astar.goal, undefined, true );
|
||||
self iprintln( "AStar size: " + astar.nodes.size );
|
||||
|
||||
self.astar = astar;
|
||||
}
|
||||
}
|
||||
|
||||
drawWaypoint( i )
|
||||
{
|
||||
if ( !isDefined( level.drawn_wps ) )
|
||||
level.drawn_wps = [];
|
||||
|
||||
newdeathicon = newHudElem();
|
||||
newdeathicon.x = level.waypoints[i].origin[0];
|
||||
newdeathicon.y = level.waypoints[i].origin[1];
|
||||
newdeathicon.z = level.waypoints[i].origin[2] + 50;
|
||||
newdeathicon.alpha = .61;
|
||||
newdeathicon.archived = true;
|
||||
newdeathicon setShader( "headicon_dead", 5, 5 );
|
||||
newdeathicon setwaypoint( true, false );
|
||||
|
||||
level.drawn_wps[level.drawn_wps.size] = newdeathicon;
|
||||
}
|
||||
|
||||
drawPath( where )
|
||||
{
|
||||
if ( !isDefined( level.drawn_wps ) )
|
||||
level.drawn_wps = [];
|
||||
|
||||
newdeathicon = newHudElem();
|
||||
newdeathicon.x = where[0];
|
||||
newdeathicon.y = where[1];
|
||||
newdeathicon.z = where[2] + 20;
|
||||
newdeathicon.alpha = .61;
|
||||
newdeathicon.archived = true;
|
||||
newdeathicon setShader( "headicon_dead", 5, 5 );
|
||||
newdeathicon setwaypoint( true, false );
|
||||
|
||||
level.drawn_wps[level.drawn_wps.size] = newdeathicon;
|
||||
}
|
||||
|
||||
clearWaypoints()
|
||||
{
|
||||
if ( !isDefined( level.drawn_wps ) )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.drawn_wps.size; i++ )
|
||||
{
|
||||
level.drawn_wps[i] destroy();
|
||||
}
|
||||
|
||||
level.drawn_wps = [];
|
||||
}
|
||||
|
||||
clearWpLinks()
|
||||
{
|
||||
if ( !isDefined( level.drawn_links ) )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
level.waypoints[i].drawn_links = [];
|
||||
}
|
||||
|
||||
for ( i = 0; i < level.drawn_links.size; i++ )
|
||||
{
|
||||
level.drawn_links[i] delete ();
|
||||
}
|
||||
|
||||
level.drawn_links = [];
|
||||
}
|
||||
|
||||
showWpLink( i, h )
|
||||
{
|
||||
if ( !isDefined( level.drawn_links ) )
|
||||
level.drawn_links = [];
|
||||
|
||||
if ( !isDefined( level.waypoints[i].drawn_links ) )
|
||||
level.waypoints[i].drawn_links = [];
|
||||
|
||||
if ( !isDefined( level.waypoints[h].drawn_links ) )
|
||||
level.waypoints[h].drawn_links = [];
|
||||
|
||||
if ( isDefined( level.waypoints[h].drawn_links["" + i] ) || isDefined( level.waypoints[i].drawn_links["" + h] ) )
|
||||
return;
|
||||
|
||||
level.waypoints[h].drawn_links["" + i] = true;
|
||||
level.waypoints[i].drawn_links["" + h] = true;
|
||||
|
||||
start = level.waypoints[i].origin + ( 0, 0, 45 );
|
||||
end = level.waypoints[h].origin + ( 0, 0, 45 );
|
||||
diff = end - start;
|
||||
dir = VectorToAngles( diff );
|
||||
|
||||
dist = distance( start, end );
|
||||
dash_count = int( dist / getDvarFloat( "bots_main_debug_dashAmount" ) );
|
||||
|
||||
for ( j = 0; j < dash_count; j++ )
|
||||
{
|
||||
dash = spawn( "script_model", start + ( ( diff * j ) / dash_count ) );
|
||||
dash setModel( "weapon_parabolic_knife" );
|
||||
dash.angles = dir;
|
||||
|
||||
level.drawn_links[level.drawn_links.size] = dash;
|
||||
}
|
||||
|
||||
dash = spawn( "script_model", end );
|
||||
dash setModel( "weapon_parabolic_knife" );
|
||||
dash.angles = dir;
|
||||
|
||||
level.drawn_links[level.drawn_links.size] = dash;
|
||||
}
|
||||
|
||||
updateWaypointsStats()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self initHudElem( "TotalWps:", 102, 5 );
|
||||
totalWpsHud = self initHudElem( "", 180, 5 );
|
||||
self initHudElem( "NearestWP:", 102, 15 );
|
||||
nearestWP = self initHudElem( "", 180, 15 );
|
||||
self initHudElem( "Childs:", 102, 25 );
|
||||
children = self initHudElem( "", 160, 25 );
|
||||
self initHudElem( "Type:", 102, 35 );
|
||||
type = self initHudElem( "", 160, 35 );
|
||||
self initHudElem( "ToLink:", 102, 45 );
|
||||
wpToLink = self initHudElem( "", 160, 45 );
|
||||
|
||||
infotext = self initHudElem2();
|
||||
self initHudElem3();
|
||||
self initHudElem4();
|
||||
|
||||
intTimer = 0;
|
||||
|
||||
for ( time = 0;; time += 0.05 )
|
||||
{
|
||||
wait 0.05;
|
||||
intTimer += 50;
|
||||
|
||||
totalWpsHud setValue( level.waypointCount );
|
||||
|
||||
closest = -1;
|
||||
myEye = self getEye();
|
||||
myAngles = self GetPlayerAngles();
|
||||
timeToUpdate = ( ( intTimer % getDvarInt( "bots_main_debug_updateRate" ) ) == 0 );
|
||||
|
||||
if ( timeToUpdate )
|
||||
{
|
||||
clearWaypoints();
|
||||
clearWpLinks();
|
||||
}
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
if ( closest == -1 || closer( self.origin, level.waypoints[i].origin, level.waypoints[closest].origin ) )
|
||||
closest = i;
|
||||
|
||||
wpOrg = level.waypoints[i].origin + ( 0, 0, 25 );
|
||||
|
||||
if ( distance( level.waypoints[i].origin, self.origin ) < getDvarFloat( "bots_main_debug_distance" ) && ( bulletTracePassed( myEye, wpOrg, false, self ) || getDVarint( "bots_main_debug_drawThrough" ) ) )
|
||||
{
|
||||
if ( timeToUpdate )
|
||||
{
|
||||
if ( getConeDot( wpOrg, myEye, myAngles ) > getDvarFloat( "bots_main_debug_cone" ) )
|
||||
{
|
||||
drawWaypoint( i );
|
||||
|
||||
for ( h = level.waypoints[i].children.size - 1; h >= 0; h-- )
|
||||
showWpLink( i, level.waypoints[i].children[h] );
|
||||
}
|
||||
}
|
||||
|
||||
// mw3 doesnt have debug gsc calls :(
|
||||
/* 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));
|
||||
|
||||
if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone"))
|
||||
print3d(wpOrg, i, (1,0,0), 2);
|
||||
|
||||
if (isDefined(level.waypoints[i].angles) && level.waypoints[i].type != "stand")
|
||||
line(wpOrg, wpOrg + AnglesToForward(level.waypoints[i].angles) * 64, (1,1,1));
|
||||
|
||||
if (isDefined(level.waypoints[i].jav_point))
|
||||
line(wpOrg, level.waypoints[i].jav_point, (0,0,0));*/
|
||||
}
|
||||
}
|
||||
|
||||
self.nearest = closest;
|
||||
|
||||
nearestWP setValue( self.nearest );
|
||||
|
||||
children setValue( buildChildCountString( self.nearest ) );
|
||||
|
||||
type setText( buildTypeString( self.nearest ) );
|
||||
|
||||
wpToLink setValue( level.wpToLink );
|
||||
|
||||
infotext.x = infotext.x - 2;
|
||||
|
||||
if ( infotext.x <= -800 )
|
||||
infotext.x = 800;
|
||||
|
||||
if ( time > 2 && self UseButtonPressed() )
|
||||
{
|
||||
time = 0;
|
||||
self iPrintLnBold( self.nearest + " children: " + buildChildString( self.nearest ) );
|
||||
}
|
||||
|
||||
if ( isDefined( self.astar ) )
|
||||
{
|
||||
//print3d(self.astar.start + (0, 0, 35), "start", (0,0,1), 2);
|
||||
//print3d(self.astar.goal + (0, 0, 35), "goal", (0,0,1), 2);
|
||||
if ( timeToUpdate )
|
||||
{
|
||||
drawPath( self.astar.start );
|
||||
drawPath( self.astar.goal );
|
||||
}
|
||||
|
||||
prev = self.astar.start + ( 0, 0, 35 );
|
||||
|
||||
for ( i = self.astar.nodes.size - 1; i >= 0; i-- )
|
||||
{
|
||||
node = self.astar.nodes[i];
|
||||
|
||||
//line(prev, level.waypoints[node].origin + (0, 0, 35), (0,1,1));
|
||||
if ( timeToUpdate ) drawPath( level.waypoints[node].origin );
|
||||
|
||||
prev = level.waypoints[node].origin + ( 0, 0, 35 );
|
||||
}
|
||||
|
||||
//line(prev, self.astar.goal + (0, 0, 35), (0,1,1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
watchLoadWaypointsCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+actionslot 5}]", "+actionslot 5" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+actionslot 5}]" );
|
||||
self LoadWaypoints();
|
||||
}
|
||||
}
|
||||
|
||||
watchAddWaypointCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+smoke}]", "+smoke" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+smoke}]" );
|
||||
self AddWaypoint();
|
||||
}
|
||||
}
|
||||
|
||||
watchAutoLinkCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+frag}]", "+frag" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+frag}]" );
|
||||
|
||||
if ( level.autoLink )
|
||||
{
|
||||
self iPrintlnBold( "Auto link disabled" );
|
||||
level.autoLink = false;
|
||||
level.wpToLink = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
self iPrintlnBold( "Auto link enabled" );
|
||||
level.autoLink = true;
|
||||
level.wpToLink = self.nearest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
watchLinkWaypointCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+melee_zoom}]", "+melee_zoom" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+melee_zoom}]" );
|
||||
self LinkWaypoint( self.nearest );
|
||||
}
|
||||
}
|
||||
|
||||
watchUnlinkWaypointCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+reload}]", "+reload" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+reload}]" );
|
||||
self UnLinkWaypoint( self.nearest );
|
||||
}
|
||||
}
|
||||
|
||||
watchDeleteWaypointCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+actionslot 3}]", "+actionslot 3" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+actionslot 3}]" );
|
||||
self DeleteWaypoint( self.nearest );
|
||||
}
|
||||
}
|
||||
|
||||
watchDeleteAllWaypointsCommand()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+actionslot 4}]", "+actionslot 4" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+actionslot 4}]" );
|
||||
self DeleteAllWaypoints();
|
||||
}
|
||||
}
|
||||
|
||||
watchSaveWaypointsCommand()
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
|
||||
self notifyOnPlayerCommand( "[{+actionslot 1}]", "+actionslot 1" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "[{+actionslot 1}]" );
|
||||
|
||||
self checkForWarnings();
|
||||
wait 1;
|
||||
|
||||
logprint( "***********ABiliTy's WPDump**************\n\n" );
|
||||
logprint( "\n\n\n\n" );
|
||||
mpnm = getMapName( getdvar( "mapname" ) );
|
||||
logprint( "\n\n" + mpnm + "()\n{\n/*" );
|
||||
logprint( "*/waypoints = [];\n/*" );
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
logprint( "*/waypoints[" + i + "] = spawnstruct();\n/*" );
|
||||
logprint( "*/waypoints[" + i + "].origin = " + level.waypoints[i].origin + ";\n/*" );
|
||||
logprint( "*/waypoints[" + i + "].type = \"" + level.waypoints[i].type + "\";\n/*" );
|
||||
|
||||
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/*" );
|
||||
|
||||
if ( isDefined( level.waypoints[i].jav_point ) && level.waypoints[i].type == "javelin" )
|
||||
logprint( "*/waypoints[" + i + "].jav_point = " + level.waypoints[i].jav_point + ";\n/*" );
|
||||
}
|
||||
|
||||
logprint( "*/return waypoints;\n}\n\n\n\n" );
|
||||
|
||||
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
|
||||
|
||||
PrintLn( "********* Start Bot Warfare WPDump *********" );
|
||||
PrintLn( level.waypointCount );
|
||||
|
||||
//fileWrite(filename, level.waypointCount+"\n", "write");
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
str = "";
|
||||
wp = level.waypoints[i];
|
||||
|
||||
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
|
||||
|
||||
for ( h = 0; h < wp.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 += ",";
|
||||
|
||||
if ( isDefined( wp.jav_point ) )
|
||||
str += wp.jav_point[0] + " " + wp.jav_point[1] + " " + wp.jav_point[2] + ",";
|
||||
else
|
||||
str += ",";
|
||||
|
||||
PrintLn( str );
|
||||
//fileWrite(filename, str+"\n", "append");
|
||||
}
|
||||
|
||||
PrintLn( "\n\n\n\n\n\n" );
|
||||
|
||||
self iprintln( "Saved!!! to " + filename );
|
||||
}
|
||||
}
|
||||
|
||||
LoadWaypoints()
|
||||
{
|
||||
// self DeleteAllWaypoints();
|
||||
self iPrintlnBold( "Loading WPS..." );
|
||||
load_waypoints();
|
||||
|
||||
wait 1;
|
||||
|
||||
self checkForWarnings();
|
||||
}
|
||||
|
||||
checkForWarnings()
|
||||
{
|
||||
if ( level.waypointCount <= 0 )
|
||||
self iprintln( "WARNING: waypointCount is " + level.waypointCount );
|
||||
|
||||
if ( level.waypointCount != level.waypoints.size )
|
||||
self iprintln( "WARNING: waypointCount is not " + level.waypoints.size );
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
if ( !isDefined( level.waypoints[i] ) )
|
||||
{
|
||||
self iprintln( "WARNING: waypoint " + i + " is undefined" );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( level.waypoints[i].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 ( level.waypoints[i].type == "javelin" && !isDefined( level.waypoints[i].jav_point ) )
|
||||
self iprintln( "WARNING: waypoint " + i + " jav_point is undefined" );
|
||||
|
||||
if ( !isDefined( level.waypoints[i].angles ) && ( level.waypoints[i].type == "claymore" || level.waypoints[i].type == "tube" || ( level.waypoints[i].type == "crouch" && level.waypoints[i].children.size == 1 ) || level.waypoints[i].type == "climb" || level.waypoints[i].type == "grenade" ) )
|
||||
self iprintln( "WARNING: waypoint " + i + " angles is undefined" );
|
||||
}
|
||||
|
||||
// check reachability, assume bidirectional graph
|
||||
|
||||
wpIdx = randomInt( level.waypointCount );
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
{
|
||||
if ( i % 5 == 0 )
|
||||
wait 0.05;
|
||||
|
||||
astar = AStarSearch( level.waypoints[wpIdx].origin, level.waypoints[i].origin, undefined, true );
|
||||
|
||||
if ( astar.size <= 0 )
|
||||
self iprintln( "WARNING: waypoint " + wpIdx + " has no path to waypoint " + i );
|
||||
}
|
||||
|
||||
self iprintln( "Waypoint warnings check completed." );
|
||||
}
|
||||
|
||||
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-- )
|
||||
{
|
||||
child = level.waypoints[level.wpToLink].children[i];
|
||||
|
||||
if ( child == nwp )
|
||||
{
|
||||
weGood = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( weGood )
|
||||
{
|
||||
for ( i = level.waypoints[nwp].children.size - 1; i >= 0; i-- )
|
||||
{
|
||||
child = level.waypoints[nwp].children[i];
|
||||
|
||||
if ( child == 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;
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
level.waypoints[level.waypointCount] = spawnstruct();
|
||||
|
||||
pos = self getOrigin();
|
||||
level.waypoints[level.waypointCount].origin = pos;
|
||||
|
||||
if ( isDefined( self.javelinTargetPoint ) )
|
||||
level.waypoints[level.waypointCount].type = "javelin";
|
||||
else if ( self AdsButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "climb";
|
||||
else if ( self AttackButtonPressed() && self UseButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "tube";
|
||||
else if ( self AttackButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "grenade";
|
||||
else if ( self UseButtonPressed() )
|
||||
level.waypoints[level.waypointCount].type = "claymore";
|
||||
else
|
||||
level.waypoints[level.waypointCount].type = self getStance();
|
||||
|
||||
level.waypoints[level.waypointCount].angles = self getPlayerAngles();
|
||||
|
||||
level.waypoints[level.waypointCount].children = [];
|
||||
|
||||
if ( level.waypoints[level.waypointCount].type == "javelin" )
|
||||
{
|
||||
level.waypoints[level.waypointCount].jav_point = self.javelinTargetPoint;
|
||||
}
|
||||
|
||||
self iprintln( level.waypoints[level.waypointCount].type + " Waypoint " + level.waypointCount + " Added at " + pos );
|
||||
|
||||
if ( level.autoLink )
|
||||
{
|
||||
if ( level.wpToLink == -1 )
|
||||
level.wpToLink = level.waypointCount - 1;
|
||||
|
||||
level.waypointCount++;
|
||||
self LinkWaypoint( level.waypointCount - 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
level.waypointCount++;
|
||||
}
|
||||
}
|
||||
|
||||
DeleteAllWaypoints()
|
||||
{
|
||||
level.waypoints = [];
|
||||
level.waypointCount = 0;
|
||||
|
||||
self iprintln( "DelAllWps" );
|
||||
}
|
||||
|
||||
buildChildCountString ( wp )
|
||||
{
|
||||
if ( wp == -1 )
|
||||
return -1;
|
||||
|
||||
wpstr = level.waypoints[wp].children.size;
|
||||
|
||||
return wpstr;
|
||||
}
|
||||
|
||||
buildChildString( wp )
|
||||
{
|
||||
if ( wp == -1 )
|
||||
return "";
|
||||
|
||||
wpstr = "";
|
||||
|
||||
for ( i = 0; i < level.waypoints[wp].children.size; i++ )
|
||||
{
|
||||
if ( i != 0 )
|
||||
wpstr = wpstr + "," + level.waypoints[wp].children[i];
|
||||
else
|
||||
wpstr = wpstr + level.waypoints[wp].children[i];
|
||||
}
|
||||
|
||||
return wpstr;
|
||||
}
|
||||
|
||||
buildTypeString( wp )
|
||||
{
|
||||
if ( wp == -1 )
|
||||
return "";
|
||||
|
||||
return level.waypoints[wp].type;
|
||||
}
|
||||
|
||||
destroyOnDeath( hud )
|
||||
{
|
||||
hud endon( "death" );
|
||||
self waittill_either( "death", "disconnect" );
|
||||
hud destroy();
|
||||
}
|
||||
|
||||
initHudElem( txt, xl, yl )
|
||||
{
|
||||
hud = NewClientHudElem( self );
|
||||
hud setText( txt );
|
||||
hud.alignX = "left";
|
||||
hud.alignY = "top";
|
||||
hud.horzAlign = "left";
|
||||
hud.vertAlign = "top";
|
||||
hud.x = xl;
|
||||
hud.y = yl;
|
||||
hud.foreground = true;
|
||||
hud.fontScale = 1;
|
||||
hud.font = "objective";
|
||||
hud.alpha = 1;
|
||||
hud.glow = 0;
|
||||
hud.glowColor = ( 0, 0, 0 );
|
||||
hud.glowAlpha = 1;
|
||||
hud.color = ( 1.0, 1.0, 1.0 );
|
||||
|
||||
self thread destroyOnDeath( hud );
|
||||
|
||||
return hud;
|
||||
}
|
||||
|
||||
initHudElem2()
|
||||
{
|
||||
infotext = NewHudElem();
|
||||
infotext setText( "^1[{+smoke}]-AddWp ^2[{+melee_zoom}]-LinkWp ^3[{+reload}]-UnLinkWp ^4[{+actionslot 3}]-DeleteWp ^5[{+actionslot 4}]-DelAllWps ^6[{+actionslot 5}]-LoadWPS ^7[{+actionslot 1}]-SaveWp" );
|
||||
infotext.alignX = "center";
|
||||
infotext.alignY = "bottom";
|
||||
infotext.horzAlign = "center";
|
||||
infotext.vertAlign = "bottom";
|
||||
infotext.x = -800;
|
||||
infotext.y = 25;
|
||||
infotext.foreground = true;
|
||||
infotext.fontScale = 1.35;
|
||||
infotext.font = "objective";
|
||||
infotext.alpha = 1;
|
||||
infotext.glow = 0;
|
||||
infotext.glowColor = ( 0, 0, 0 );
|
||||
infotext.glowAlpha = 1;
|
||||
infotext.color = ( 1.0, 1.0, 1.0 );
|
||||
|
||||
self thread destroyOnDeath( infotext );
|
||||
|
||||
return infotext;
|
||||
}
|
||||
|
||||
initHudElem3()
|
||||
{
|
||||
bar = level createServerBar( ( 0.5, 0.5, 0.5 ), 1000, 25 );
|
||||
bar.alignX = "center";
|
||||
bar.alignY = "bottom";
|
||||
bar.horzAlign = "center";
|
||||
bar.vertAlign = "bottom";
|
||||
bar.y = 30;
|
||||
bar.foreground = true;
|
||||
|
||||
self thread destroyOnDeath( bar );
|
||||
|
||||
return bar;
|
||||
}
|
||||
|
||||
initHudElem4()
|
||||
{
|
||||
OptionsBG = NewClientHudElem( self );
|
||||
OptionsBG.x = 100;
|
||||
OptionsBG.y = 2;
|
||||
OptionsBG.alignX = "left";
|
||||
OptionsBG.alignY = "top";
|
||||
OptionsBG.horzAlign = "left";
|
||||
OptionsBG.vertAlign = "top";
|
||||
OptionsBG setshader( "black", 200, 60 );
|
||||
OptionsBG.alpha = 0.4;
|
||||
|
||||
self thread destroyOnDeath( OptionsBG );
|
||||
|
||||
return OptionsBG;
|
||||
}
|
@ -1,771 +0,0 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
init()
|
||||
{
|
||||
level thread watchNuke();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
|
||||
setDvarIfUninitialized( "scr_killstreak_print", 0 );
|
||||
setDvarIfUninitialized( "scr_printDamage", 0 );
|
||||
|
||||
level.killstreakPrint = getDvarInt( "scr_killstreak_print" );
|
||||
level.allowPrintDamage = getDvarInt( "scr_printDamage" );
|
||||
|
||||
level thread hook_callbacks();
|
||||
}
|
||||
|
||||
hook_callbacks()
|
||||
{
|
||||
level waittill( "prematch_over" ); // iw4madmin waits this long for some reason...
|
||||
wait 0.1; // so we need to be one frame after it sets up its callbacks.
|
||||
level.prevCallbackPlayerDamage2 = level.callbackPlayerDamage;
|
||||
level.callbackPlayerDamage = ::onPlayerDamage;
|
||||
}
|
||||
|
||||
onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset )
|
||||
{
|
||||
if ( isSubStr( sWeapon, "iw5_1887_mp" ) && sMeansOfDeath != "MOD_MELEE" )
|
||||
iDamage = 35;
|
||||
|
||||
self [[level.prevCallbackPlayerDamage2]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
setDvarIfUninitialized( "scr_xpscale_", 1 );
|
||||
setDvarIfUninitialized( "scr_weaponxpscale_", 1 );
|
||||
|
||||
// fix G-GetPlayereye bug
|
||||
replaceFunc( maps\mp\killstreaks\_helicopter::heli_leave, ::heli_leave );
|
||||
replaceFunc( maps\mp\killstreaks\_helicopter::heli_explode, ::heli_explode );
|
||||
|
||||
// allow scr_xpscale to be anything
|
||||
replaceFunc( maps\mp\gametypes\_rank::init, ::rank_init );
|
||||
replaceFunc( maps\mp\gametypes\_rank::syncXPStat, ::syncXPStat );
|
||||
|
||||
// add scr_spawnpointfavorweight dvar
|
||||
replaceFunc( maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam, ::getSpawnpoint_NearTeam );
|
||||
|
||||
// add damage numbers
|
||||
replaceFunc( maps\mp\gametypes\_damage::finishPlayerDamageWrapper, ::finishPlayerDamageWrapper );
|
||||
|
||||
// more perks for specialist bonus
|
||||
replaceFunc( maps\mp\killstreaks\_killstreaks::giveAllPerks, ::giveAllPerks );
|
||||
|
||||
// scavenge all types of ammo
|
||||
replaceFunc( maps\mp\gametypes\_weapons::handleScavengerBagPickup, ::handleScavengerBagPickup );
|
||||
|
||||
// only nuke slow mo once
|
||||
replaceFunc( maps\mp\killstreaks\_nuke::nukeSlowMo, ::nukeSlowMo );
|
||||
|
||||
// fix array index issue with remoteuav when gettime is high
|
||||
replaceFunc( maps\mp\killstreaks\_remoteuav::remoteUAV_trackEntities, ::remoteUAV_trackEntities );
|
||||
replaceFunc( maps\mp\killstreaks\_remoteuav::remoteUAV_unmarkRemovedPlayer, ::remoteUAV_unmarkRemovedPlayer );
|
||||
}
|
||||
|
||||
heli_explode( var_0 )
|
||||
{
|
||||
self notify( "death" );
|
||||
|
||||
if ( isdefined( var_0 ) && isdefined( level.chopper_fx["explode"]["air_death"][self.heli_type] ) )
|
||||
{
|
||||
var_1 = self gettagangles( "tag_deathfx" );
|
||||
playfx( level.chopper_fx["explode"]["air_death"][self.heli_type], self gettagorigin( "tag_deathfx" ), anglestoforward( var_1 ), anglestoup( var_1 ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
var_2 = self.origin;
|
||||
var_3 = self.origin + ( 0, 0, 1 ) - self.origin;
|
||||
playfx( level.chopper_fx["explode"]["death"][self.heli_type], var_2, var_3 );
|
||||
}
|
||||
|
||||
self playsound( level.heli_sound[self.team]["crash"] );
|
||||
wait 0.05;
|
||||
|
||||
if ( isdefined( self.killCamEnt ) )
|
||||
self.killCamEnt delete ();
|
||||
|
||||
if ( self.heliType == "osprey_gunner" )
|
||||
{
|
||||
if ( isDefined( self ) )
|
||||
self hide();
|
||||
|
||||
wait 30;
|
||||
|
||||
maps\mp\_utility::decrementFauxVehicleCount();
|
||||
|
||||
if ( isDefined( self ) )
|
||||
self delete ();
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_utility::decrementFauxVehicleCount();
|
||||
self delete ();
|
||||
}
|
||||
}
|
||||
|
||||
heli_leave( var_0 )
|
||||
{
|
||||
self notify( "leaving" );
|
||||
|
||||
if ( isdefined( self.heliType ) && self.heliType == "osprey" && isdefined( self.pathGoal ) )
|
||||
{
|
||||
self setvehgoalpos( self.pathGoal, 1 );
|
||||
common_scripts\utility::waittill_any_timeout( 5, "goal" );
|
||||
}
|
||||
|
||||
if ( !isdefined( var_0 ) )
|
||||
{
|
||||
var_1 = level.heli_leave_nodes[randomint( level.heli_leave_nodes.size )];
|
||||
var_0 = var_1.origin;
|
||||
}
|
||||
|
||||
var_2 = spawn( "script_origin", var_0 );
|
||||
|
||||
if ( isdefined( var_2 ) )
|
||||
{
|
||||
self setlookatent( var_2 );
|
||||
var_2 thread maps\mp\killstreaks\_helicopter::wait_and_delete( 3.0 );
|
||||
}
|
||||
|
||||
maps\mp\killstreaks\_helicopter::heli_reset();
|
||||
self vehicle_setspeed( 100, 45 );
|
||||
self setvehgoalpos( var_0, 1 );
|
||||
self waittillmatch( "goal" );
|
||||
self notify( "death" );
|
||||
wait 0.05;
|
||||
|
||||
if ( isdefined( self.killCamEnt ) )
|
||||
self.killCamEnt delete ();
|
||||
|
||||
if ( self.heliType == "osprey_gunner" )
|
||||
{
|
||||
if ( isDefined( self ) )
|
||||
self hide();
|
||||
|
||||
wait 30;
|
||||
|
||||
maps\mp\_utility::decrementFauxVehicleCount();
|
||||
|
||||
if ( isDefined( self ) )
|
||||
self delete ();
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_utility::decrementFauxVehicleCount();
|
||||
self delete ();
|
||||
}
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
var_0 = maps\mp\gametypes\_rank::getRankXP();
|
||||
maps\mp\gametypes\_persistence::statSet( "experience", var_0 );
|
||||
}
|
||||
|
||||
rank_init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getdvarint( "scr_xpscale_" );
|
||||
level.weaponxpscale = getdvarint( "scr_weaponxpscale_" );
|
||||
level.rankTable = [];
|
||||
level.weaponRankTable = [];
|
||||
precacheshader( "white" );
|
||||
precachestring( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precachestring( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precachestring( &"RANK_WEAPON_WAS_PROMOTED" );
|
||||
precachestring( &"RANK_PROMOTED" );
|
||||
precachestring( &"RANK_PROMOTED_WEAPON" );
|
||||
precachestring( &"MP_PLUS" );
|
||||
precachestring( &"RANK_ROMANI" );
|
||||
precachestring( &"RANK_ROMANII" );
|
||||
precachestring( &"RANK_ROMANIII" );
|
||||
precachestring( &"SPLASHES_LONGSHOT" );
|
||||
precachestring( &"SPLASHES_PROXIMITYASSIST" );
|
||||
precachestring( &"SPLASHES_PROXIMITYKILL" );
|
||||
precachestring( &"SPLASHES_EXECUTION" );
|
||||
precachestring( &"SPLASHES_AVENGER" );
|
||||
precachestring( &"SPLASHES_ASSISTEDSUICIDE" );
|
||||
precachestring( &"SPLASHES_DEFENDER" );
|
||||
precachestring( &"SPLASHES_POSTHUMOUS" );
|
||||
precachestring( &"SPLASHES_REVENGE" );
|
||||
precachestring( &"SPLASHES_DOUBLEKILL" );
|
||||
precachestring( &"SPLASHES_TRIPLEKILL" );
|
||||
precachestring( &"SPLASHES_MULTIKILL" );
|
||||
precachestring( &"SPLASHES_BUZZKILL" );
|
||||
precachestring( &"SPLASHES_COMEBACK" );
|
||||
precachestring( &"SPLASHES_KNIFETHROW" );
|
||||
precachestring( &"SPLASHES_ONE_SHOT_KILL" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "kill", 100 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "headshot", 100 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "assist", 20 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "proximityassist", 20 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "proximitykill", 20 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "suicide", 0 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "kill", 50 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "headshot", 50 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "assist", 0 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "suicide", 0 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "win", 1 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "loss", 0.5 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "tie", 0.75 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "capture", 300 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "defend", 300 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "challenge", 2500 );
|
||||
level.maxRank = int( tablelookup( "mp/rankTable.csv", 0, "maxrank", 1 ) );
|
||||
level.maxPrestige = int( tablelookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ) );
|
||||
var_0 = 0;
|
||||
var_1 = 0;
|
||||
|
||||
for ( var_0 = 0; var_0 <= min( 10, level.maxPrestige ); var_0++ )
|
||||
{
|
||||
for ( var_1 = 0; var_1 <= level.maxRank; var_1++ )
|
||||
precacheshader( tablelookup( "mp/rankIconTable.csv", 0, var_1, var_0 + 1 ) );
|
||||
}
|
||||
|
||||
var_2 = 0;
|
||||
|
||||
for ( var_3 = tablelookup( "mp/ranktable.csv", 0, var_2, 1 ); isdefined( var_3 ) && var_3 != ""; var_3 = tablelookup( "mp/ranktable.csv", 0, var_2, 1 ) )
|
||||
{
|
||||
level.rankTable[var_2][1] = tablelookup( "mp/ranktable.csv", 0, var_2, 1 );
|
||||
level.rankTable[var_2][2] = tablelookup( "mp/ranktable.csv", 0, var_2, 2 );
|
||||
level.rankTable[var_2][3] = tablelookup( "mp/ranktable.csv", 0, var_2, 3 );
|
||||
level.rankTable[var_2][7] = tablelookup( "mp/ranktable.csv", 0, var_2, 7 );
|
||||
precachestring( tablelookupistring( "mp/ranktable.csv", 0, var_2, 16 ) );
|
||||
var_2++;
|
||||
}
|
||||
|
||||
var_4 = int( tablelookup( "mp/weaponRankTable.csv", 0, "maxrank", 1 ) );
|
||||
|
||||
for ( var_5 = 0; var_5 < var_4 + 1; var_5++ )
|
||||
{
|
||||
level.weaponRankTable[var_5][1] = tablelookup( "mp/weaponRankTable.csv", 0, var_5, 1 );
|
||||
level.weaponRankTable[var_5][2] = tablelookup( "mp/weaponRankTable.csv", 0, var_5, 2 );
|
||||
level.weaponRankTable[var_5][3] = tablelookup( "mp/weaponRankTable.csv", 0, var_5, 3 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
level thread maps\mp\gametypes\_rank::patientZeroWaiter();
|
||||
level thread maps\mp\gametypes\_rank::onPlayerConnect();
|
||||
}
|
||||
|
||||
getSpawnpoint_NearTeam( var_0, var_1 )
|
||||
{
|
||||
if ( !isdefined( var_0 ) )
|
||||
return undefined;
|
||||
|
||||
maps\mp\gametypes\_spawnlogic::Spawnlogic_Begin();
|
||||
maps\mp\gametypes\_spawnlogic::initWeights( var_0 );
|
||||
|
||||
var_2 = 2;
|
||||
|
||||
if ( getDVar( "scr_alliedDistanceWeight" ) != "" )
|
||||
var_2 = getDVarFloat( "scr_alliedDistanceWeight" );
|
||||
|
||||
var_3 = self.team;
|
||||
var_4 = maps\mp\_utility::getOtherTeam( var_3 );
|
||||
var_5 = getentarray( "care_package", "targetname" );
|
||||
|
||||
foreach ( var_7 in var_0 )
|
||||
{
|
||||
if ( var_7.numPlayersAtLastUpdate > 0 )
|
||||
{
|
||||
var_8 = var_7.weightedDistSum[var_3];
|
||||
var_9 = var_7.distSum[var_4];
|
||||
var_7.weight = ( var_9 - var_2 * var_8 ) / var_7.numPlayersAtLastUpdate;
|
||||
|
||||
if ( isdefined( level.favorCloseSpawnEnt ) )
|
||||
{
|
||||
if ( !isdefined( level.favorCloseSpawnScalar ) )
|
||||
level.favorCloseSpawnScalar = 1;
|
||||
|
||||
var_10 = distance( var_7.origin, level.favorCloseSpawnEnt.origin );
|
||||
var_7.weight = var_7.weight - var_10 * level.favorCloseSpawnScalar;
|
||||
}
|
||||
|
||||
if ( isdefined( level.favorclosespawnentattacker ) )
|
||||
{
|
||||
if ( !isdefined( level.favorclosespawnscalarattacker ) )
|
||||
level.favorclosespawnscalarattacker = 1;
|
||||
|
||||
var_10 = distance( var_7.origin, level.favorclosespawnentattacker.origin );
|
||||
var_7.weight = var_7.weight - var_10 * level.favorclosespawnscalarattacker;
|
||||
}
|
||||
|
||||
if ( isdefined( level.favorclosespawnentdefender ) )
|
||||
{
|
||||
if ( !isdefined( level.favorclosespawnscalardefender ) )
|
||||
level.favorclosespawnscalardefender = 1;
|
||||
|
||||
var_10 = distance( var_7.origin, level.favorclosespawnentdefender.origin );
|
||||
var_7.weight = var_7.weight - var_10 * level.favorclosespawnscalardefender;
|
||||
}
|
||||
}
|
||||
else
|
||||
var_7.weight = 0;
|
||||
|
||||
if ( var_5.size && !canspawn( var_7.origin ) )
|
||||
var_7.weight = var_7.weight - 500000;
|
||||
}
|
||||
|
||||
favor_weight = 50000;
|
||||
|
||||
if ( getDVar( "scr_spawnpointfavorweight" ) != "" )
|
||||
favor_weight = getDVarInt( "scr_spawnpointfavorweight" );
|
||||
|
||||
if ( isdefined( var_1 ) )
|
||||
{
|
||||
for ( var_12 = 0; var_12 < var_1.size; var_12++ )
|
||||
var_1[var_12].weight = var_1[var_12].weight + favor_weight;
|
||||
}
|
||||
|
||||
if ( isdefined( self.predictedSpawnPoint ) && isdefined( self.predictedSpawnPoint.weight ) )
|
||||
self.predictedSpawnPoint.weight = self.predictedSpawnPoint.weight + 100;
|
||||
|
||||
maps\mp\gametypes\_spawnlogic::avoidSameSpawn();
|
||||
maps\mp\gametypes\_spawnlogic::avoidWeaponDamage( var_0 );
|
||||
maps\mp\gametypes\_spawnlogic::avoidVisibleEnemies( var_0, 1 );
|
||||
|
||||
if ( isdefined( self.lastDeathPos ) && level.gameType != "dom" )
|
||||
maps\mp\gametypes\_spawnlogic::avoidRevengeSpawn( var_0, self.lastDeathPos );
|
||||
|
||||
var_13 = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Final( var_0 );
|
||||
return var_13;
|
||||
}
|
||||
|
||||
doPrintDamage( dmg, hitloc, flags )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
huddamage = newclienthudelem( self );
|
||||
huddamage.alignx = "center";
|
||||
huddamage.horzalign = "center";
|
||||
huddamage.x = 10;
|
||||
huddamage.y = 235;
|
||||
huddamage.fontscale = 1.6;
|
||||
huddamage.font = "objective";
|
||||
huddamage setvalue( dmg );
|
||||
|
||||
if ( ( flags & level.iDFLAGS_RADIUS ) != 0 )
|
||||
huddamage.color = ( 0.25, 0.25, 0.25 );
|
||||
|
||||
if ( ( flags & level.iDFLAGS_PENETRATION ) != 0 )
|
||||
huddamage.color = ( 1, 1, 0.25 );
|
||||
|
||||
if ( hitloc == "head" )
|
||||
huddamage.color = ( 1, 0.25, 0.25 );
|
||||
|
||||
huddamage moveovertime( 1 );
|
||||
huddamage fadeovertime( 1 );
|
||||
huddamage.alpha = 0;
|
||||
huddamage.x = randomIntRange( 25, 70 );
|
||||
|
||||
val = 1;
|
||||
|
||||
if ( randomInt( 2 ) )
|
||||
val = -1;
|
||||
|
||||
huddamage.y = 235 + randomIntRange( 25, 70 ) * val;
|
||||
|
||||
wait 1;
|
||||
|
||||
if ( isDefined( huddamage ) )
|
||||
huddamage destroy();
|
||||
}
|
||||
|
||||
finishPlayerDamageWrapper( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10 )
|
||||
{
|
||||
if ( isDefined( level.allowPrintDamage ) && level.allowPrintDamage )
|
||||
{
|
||||
if ( !isDefined( var_1 ) )
|
||||
{
|
||||
if ( !isDefined( var_0 ) && isDefined( self.printDamage ) && self.printDamage )
|
||||
self thread doPrintDamage( var_2, var_8, var_3 );
|
||||
}
|
||||
else if ( isPlayer( var_1 ) && isDefined( var_1.printDamage ) && var_1.printDamage )
|
||||
var_1 thread doPrintDamage( var_2, var_8, var_3 );
|
||||
else if ( isDefined( var_1.owner ) && isPlayer( var_1.owner ) && isDefined( var_1.owner.printDamage ) && var_1.owner.printDamage )
|
||||
var_1.owner thread doPrintDamage( var_2, var_8, var_3 );
|
||||
}
|
||||
|
||||
if ( maps\mp\_utility::isUsingRemote() && var_2 >= self.health && !( var_3 & level.iDFLAGS_STUN ) )
|
||||
{
|
||||
if ( !isdefined( var_7 ) )
|
||||
var_7 = ( 0, 0, 0 );
|
||||
|
||||
if ( !isdefined( var_1 ) && !isdefined( var_0 ) )
|
||||
{
|
||||
var_1 = self;
|
||||
var_0 = var_1;
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_damage::PlayerKilled_internal( var_0, var_1, self, var_2, var_4, var_5, var_7, var_8, var_9, 0, 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !maps\mp\gametypes\_damage::Callback_KillingBlow( var_0, var_1, var_2 - var_2 * var_10, var_3, var_4, var_5, var_6, var_7, var_8, var_9 ) )
|
||||
return;
|
||||
|
||||
if ( !isalive( self ) )
|
||||
return;
|
||||
|
||||
self finishplayerdamage( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10 );
|
||||
}
|
||||
|
||||
if ( var_4 == "MOD_EXPLOSIVE_BULLET" )
|
||||
self shellshock( "damage_mp", getdvarfloat( "scr_csmode" ) );
|
||||
|
||||
maps\mp\gametypes\_damage::damageShellshockAndRumble( var_0, var_5, var_4, var_2, var_3, var_1 );
|
||||
}
|
||||
|
||||
giveAllPerks()
|
||||
{
|
||||
var_0 = [];
|
||||
var_0[var_0.size] = "specialty_longersprint";
|
||||
var_0[var_0.size] = "specialty_fastreload";
|
||||
var_0[var_0.size] = "specialty_scavenger";
|
||||
var_0[var_0.size] = "specialty_blindeye";
|
||||
var_0[var_0.size] = "specialty_paint";
|
||||
var_0[var_0.size] = "specialty_hardline";
|
||||
var_0[var_0.size] = "specialty_coldblooded";
|
||||
var_0[var_0.size] = "specialty_quickdraw";
|
||||
var_0[var_0.size] = "_specialty_blastshield";
|
||||
var_0[var_0.size] = "specialty_detectexplosive";
|
||||
var_0[var_0.size] = "specialty_autospot";
|
||||
var_0[var_0.size] = "specialty_bulletaccuracy";
|
||||
var_0[var_0.size] = "specialty_quieter";
|
||||
var_0[var_0.size] = "specialty_stalker";
|
||||
var_0[var_0.size] = "specialty_marksman";
|
||||
var_0[var_0.size] = "specialty_sharp_focus";
|
||||
var_0[var_0.size] = "specialty_longerrange";
|
||||
var_0[var_0.size] = "specialty_fastermelee";
|
||||
var_0[var_0.size] = "specialty_reducedsway";
|
||||
var_0[var_0.size] = "specialty_lightweight";
|
||||
|
||||
// patch_mp removed these? why
|
||||
var_0[ var_0.size ] = "specialty_bulletpenetration";
|
||||
var_0[ var_0.size ] = "specialty_holdbreathwhileads";
|
||||
|
||||
// too op?
|
||||
var_0[ var_0.size ] = "specialty_moredamage";
|
||||
|
||||
foreach ( var_2 in var_0 )
|
||||
{
|
||||
if ( !maps\mp\_utility::_hasPerk( var_2 ) )
|
||||
{
|
||||
maps\mp\_utility::givePerk( var_2, 0 );
|
||||
|
||||
if ( maps\mp\gametypes\_class::isPerkUpgraded( var_2 ) )
|
||||
{
|
||||
var_3 = tablelookup( "mp/perktable.csv", 1, var_2, 8 );
|
||||
maps\mp\_utility::givePerk( var_3, 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handleScavengerBagPickup( var_0 )
|
||||
{
|
||||
self endon( "death" );
|
||||
level endon( "game_ended" );
|
||||
self waittill( "scavenger", var_1 );
|
||||
var_1 notify( "scavenger_pickup" );
|
||||
var_1 playlocalsound( "scavenger_pack_pickup" );
|
||||
var_2 = var_1 getweaponslistoffhands();
|
||||
|
||||
foreach ( var_4 in var_2 )
|
||||
{
|
||||
var_5 = var_1 getweaponammoclip( var_4 );
|
||||
var_1 setweaponammoclip( var_4, var_5 + 1 );
|
||||
}
|
||||
|
||||
var_7 = var_1 getweaponslistprimaries();
|
||||
|
||||
foreach ( var_9 in var_7 )
|
||||
{
|
||||
var_10 = var_1 getweaponammostock( var_9 );
|
||||
var_11 = weaponclipsize( var_9 );
|
||||
var_1 setweaponammostock( var_9, var_10 + var_11 );
|
||||
}
|
||||
|
||||
var_1 maps\mp\gametypes\_damagefeedback::updateDamageFeedback( "scavenger" );
|
||||
}
|
||||
|
||||
nukeSlowMo()
|
||||
{
|
||||
level endon ( "nuke_cancelled" );
|
||||
|
||||
if ( isDefined( level.nuked ) && level.nuked >= 3 )
|
||||
return;
|
||||
|
||||
//SetSlowMotion( <startTimescale>, <endTimescale>, <deltaTime> )
|
||||
SetSlowMotion( 1.0, 0.25, 0.5 );
|
||||
level waittill( "nuke_death" );
|
||||
SetSlowMotion( 0.25, 1, 2.0 );
|
||||
}
|
||||
|
||||
remoteUAV_trackEntities( var_0, var_1, var_2 )
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
var_3 = undefined;
|
||||
|
||||
foreach ( var_5 in var_1 )
|
||||
{
|
||||
if ( level.teamBased && ( !isdefined( var_5.team ) || var_5.team == self.team ) )
|
||||
continue;
|
||||
|
||||
if ( isplayer( var_5 ) )
|
||||
{
|
||||
if ( !maps\mp\_utility::isReallyAlive( var_5 ) )
|
||||
continue;
|
||||
|
||||
if ( var_5 == self )
|
||||
continue;
|
||||
|
||||
var_6 = var_5.guid + "";
|
||||
}
|
||||
else
|
||||
var_6 = var_5.birthtime + "";
|
||||
|
||||
if ( isdefined( var_5.sentryType ) || isdefined( var_5.turretType ) )
|
||||
{
|
||||
var_7 = ( 0, 0, 32 );
|
||||
var_8 = "hud_fofbox_hostile_vehicle";
|
||||
}
|
||||
else if ( isdefined( var_5.uavType ) )
|
||||
{
|
||||
var_7 = ( 0, 0, -52 );
|
||||
var_8 = "hud_fofbox_hostile_vehicle";
|
||||
}
|
||||
else
|
||||
{
|
||||
var_7 = ( 0, 0, 26 );
|
||||
var_8 = "veh_hud_target_unmarked";
|
||||
}
|
||||
|
||||
if ( isdefined( var_5.UAVRemoteMarkedBy ) )
|
||||
{
|
||||
if ( !isdefined( var_0.markedPlayers[var_6] ) )
|
||||
{
|
||||
var_0.markedPlayers[var_6] = [];
|
||||
var_0.markedPlayers[var_6]["player"] = var_5;
|
||||
var_0.markedPlayers[var_6]["icon"] = var_5 maps\mp\_entityheadicons::setHeadIcon( self, "veh_hud_target_marked", var_7, 10, 10, 0, 0.05, 0, 0, 0, 0 );
|
||||
var_0.markedPlayers[var_6]["icon"].shader = "veh_hud_target_marked";
|
||||
|
||||
if ( !isdefined( var_5.sentryType ) || !isdefined( var_5.turretType ) )
|
||||
var_0.markedPlayers[var_6]["icon"] settargetent( var_5 );
|
||||
}
|
||||
else if ( isdefined( var_0.markedPlayers[var_6] ) && isdefined( var_0.markedPlayers[var_6]["icon"] ) && isdefined( var_0.markedPlayers[var_6]["icon"].shader ) && var_0.markedPlayers[var_6]["icon"].shader != "veh_hud_target_marked" )
|
||||
{
|
||||
var_0.markedPlayers[var_6]["icon"].shader = "veh_hud_target_marked";
|
||||
var_0.markedPlayers[var_6]["icon"] setshader( "veh_hud_target_marked", 10, 10 );
|
||||
var_0.markedPlayers[var_6]["icon"] setwaypoint( 0, 0, 0, 0 );
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( isplayer( var_5 ) )
|
||||
{
|
||||
var_9 = isdefined( var_5.spawnTime ) && ( gettime() - var_5.spawnTime ) / 1000 <= 5;
|
||||
var_10 = var_5 maps\mp\_utility::_hasPerk( "specialty_blindeye" );
|
||||
var_11 = 0;
|
||||
var_12 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_9 = 0;
|
||||
var_10 = 0;
|
||||
var_11 = isdefined( var_5.carriedBy );
|
||||
var_12 = isdefined( var_5.isLeaving ) && var_5.isLeaving == 1;
|
||||
}
|
||||
|
||||
if ( !isdefined( var_0.markedPlayers[var_6] ) && !var_9 && !var_10 && !var_11 && !var_12 )
|
||||
{
|
||||
var_0.markedPlayers[var_6] = [];
|
||||
var_0.markedPlayers[var_6]["player"] = var_5;
|
||||
var_0.markedPlayers[var_6]["icon"] = var_5 maps\mp\_entityheadicons::setHeadIcon( self, var_8, var_7, 10, 10, 0, 0.05, 0, 0, 0, 0 );
|
||||
var_0.markedPlayers[var_6]["icon"].shader = var_8;
|
||||
|
||||
if ( !isdefined( var_5.sentryType ) || !isdefined( var_5.turretType ) )
|
||||
var_0.markedPlayers[var_6]["icon"] settargetent( var_5 );
|
||||
}
|
||||
|
||||
if ( ( !isdefined( var_3 ) || var_3 != var_5 ) && ( isdefined( var_0.trace["entity"] ) && var_0.trace["entity"] == var_5 && !var_11 && !var_12 ) || distance( var_5.origin, var_2 ) < 200 * var_0.trace["fraction"] && !var_9 && !var_11 && !var_12 || !var_12 && maps\mp\killstreaks\_remoteuav::remoteUAV_canTargetUAV( var_0, var_5 ) )
|
||||
{
|
||||
var_13 = bullettrace( var_0.origin, var_5.origin + ( 0, 0, 32 ), 1, var_0 );
|
||||
|
||||
if ( isdefined( var_13["entity"] ) && var_13["entity"] == var_5 || var_13["fraction"] == 1 )
|
||||
{
|
||||
self playlocalsound( "recondrone_lockon" );
|
||||
var_3 = var_5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return var_3;
|
||||
}
|
||||
|
||||
remoteUAV_unmarkRemovedPlayer( var_0 )
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
var_1 = common_scripts\utility::waittill_any_return( "death", "disconnect", "carried", "leaving" );
|
||||
|
||||
if ( var_1 == "leaving" || !isdefined( self.uavType ) )
|
||||
self.UAVRemoteMarkedBy = undefined;
|
||||
|
||||
if ( isdefined( var_0 ) )
|
||||
{
|
||||
if ( isplayer( self ) )
|
||||
var_2 = self.guid + "";
|
||||
else if ( isdefined( self.birthtime ) )
|
||||
var_2 = self.birthtime + "";
|
||||
else
|
||||
var_2 = self.birth_time + "";
|
||||
|
||||
if ( var_1 == "carried" || var_1 == "leaving" )
|
||||
{
|
||||
var_0.markedPlayers[var_2]["icon"] destroy();
|
||||
var_0.markedPlayers[var_2]["icon"] = undefined;
|
||||
}
|
||||
|
||||
if ( isdefined( var_2 ) && isdefined( var_0.markedPlayers[var_2] ) )
|
||||
{
|
||||
var_0.markedPlayers[var_2] = undefined;
|
||||
var_0.markedPlayers = common_scripts\utility::array_removeUndefined( var_0.markedPlayers );
|
||||
}
|
||||
}
|
||||
|
||||
if ( isplayer( self ) )
|
||||
self unsetperk( "specialty_radarblip", 1 );
|
||||
else
|
||||
{
|
||||
if ( isdefined( self.remoteUAVMarkedObjID01 ) )
|
||||
maps\mp\_utility::_objective_delete( self.remoteUAVMarkedObjID01 );
|
||||
|
||||
if ( isdefined( self.remoteUAVMarkedObjID02 ) )
|
||||
maps\mp\_utility::_objective_delete( self.remoteUAVMarkedObjID02 );
|
||||
|
||||
if ( isdefined( self.remoteUAVMarkedObjID03 ) )
|
||||
maps\mp\_utility::_objective_delete( self.remoteUAVMarkedObjID03 );
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread onChangeKit();
|
||||
|
||||
print( "Player connected: " + player.name + " guid " + player getGuid() );
|
||||
player thread onPlayerDisconnect();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerDisconnect()
|
||||
{
|
||||
name = self.name;
|
||||
guid = self getGuid();
|
||||
|
||||
self waittill( "disconnect" );
|
||||
|
||||
print( "Player disconnected: " + name + " guid " + guid );
|
||||
}
|
||||
|
||||
watchNuke()
|
||||
{
|
||||
if ( !isDefined( level.nuked ) )
|
||||
level.nuked = 0;
|
||||
|
||||
setDvar( "scr_spawnpointfavorweight", "" );
|
||||
|
||||
while ( true )
|
||||
{
|
||||
level waittill( "nuke_death" );
|
||||
level.nuked++;
|
||||
|
||||
if ( !isDefined( level.nuked ) || level.nuked < 3 )
|
||||
continue;
|
||||
|
||||
setDvar( "scr_spawnpointfavorweight", "499999" );
|
||||
}
|
||||
}
|
||||
|
||||
onChangeKit()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self.printDamage = true;
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "changed_kit" );
|
||||
|
||||
if ( level.killstreakPrint )
|
||||
self thread watchNotifyKSMessage();
|
||||
}
|
||||
}
|
||||
|
||||
watchNotifyKSMessage()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "changed_kit" );
|
||||
|
||||
for ( lastKs = self.pers["cur_kill_streak_for_nuke"];; )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
for ( curStreak = lastKs + 1; curStreak <= self.pers["cur_kill_streak_for_nuke"]; curStreak++ )
|
||||
{
|
||||
//if (curStreak == 5)
|
||||
// continue;
|
||||
|
||||
if ( curStreak % 5 != 0 )
|
||||
continue;
|
||||
|
||||
self thread streakNotify( curStreak );
|
||||
}
|
||||
|
||||
lastKs = self.pers["cur_kill_streak_for_nuke"];
|
||||
}
|
||||
}
|
||||
|
||||
streakNotify( streakVal )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
notifyData = spawnStruct();
|
||||
|
||||
if ( level.killstreakPrint > 1 )
|
||||
{
|
||||
xpReward = streakVal * 100;
|
||||
|
||||
self thread maps\mp\gametypes\_rank::giveRankXP( "killstreak_bonus", xpReward );
|
||||
|
||||
notifyData.notifyText = "+" + xpReward;
|
||||
}
|
||||
|
||||
wait .05;
|
||||
|
||||
notifyData.titleLabel = &"MP_KILLSTREAK_N";
|
||||
notifyData.titleText = streakVal;
|
||||
|
||||
self maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
|
||||
|
||||
iprintln( &"RANK_KILL_STREAK_N", self, streakVal );
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
init()
|
||||
{
|
||||
setDvarIfUninitialized( "scr_showHP", false );
|
||||
level.showHP = getDvarInt( "scr_showHP" );
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
player thread onPlayerSpawned();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
|
||||
if ( level.showHP )
|
||||
self thread drawHP();
|
||||
}
|
||||
}
|
||||
|
||||
destoryHPdraw()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self waittill( "death" );
|
||||
|
||||
if ( isDefined( self.drawHP ) )
|
||||
self.drawHP destroy();
|
||||
|
||||
if ( isDefined( self.drawSpeed ) )
|
||||
self.drawSpeed destroy();
|
||||
}
|
||||
|
||||
initHPdraw()
|
||||
{
|
||||
self.drawHP = self createFontString( "default", 1.2 );
|
||||
self.drawHP setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", -150, -20 );
|
||||
|
||||
self.drawSpeed = self createFontString( "default", 1.2 );
|
||||
self.drawSpeed setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", -150, -10 );
|
||||
self thread destoryHPdraw();
|
||||
}
|
||||
|
||||
drawHP()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self initHPdraw();
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
//self.drawHP setText("HP: "+self.health+" KS: "+self.pers["cur_kill_streak"]);
|
||||
self.drawHP setValue( self.health );
|
||||
|
||||
vel = self getVelocity();
|
||||
self.drawSpeed setValue( int( length( ( vel[0], vel[1], 0 ) ) ) );
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
init()
|
||||
{
|
||||
if ( getDvarInt( "spawnpoints_test" ) )
|
||||
level thread doSpawnPointTest();
|
||||
}
|
||||
|
||||
drawNoSight(sp)
|
||||
{
|
||||
newdeathicon = newHudElem();
|
||||
newdeathicon.x = sp.origin[0];
|
||||
newdeathicon.y = sp.origin[1];
|
||||
newdeathicon.z = sp.origin[2] + 32;
|
||||
newdeathicon.alpha = .61;
|
||||
newdeathicon.archived = true;
|
||||
newdeathicon setShader( "headicon_dead", 5, 5 );
|
||||
newdeathicon setwaypoint( true, false );
|
||||
|
||||
if (isDefined(sp.wp))
|
||||
sp.wp destroy();
|
||||
|
||||
sp.wp = newdeathicon;
|
||||
}
|
||||
|
||||
drawSight(sp)
|
||||
{
|
||||
newdeathicon = newHudElem();
|
||||
newdeathicon.x = sp.origin[0];
|
||||
newdeathicon.y = sp.origin[1];
|
||||
newdeathicon.z = sp.origin[2] + 32;
|
||||
newdeathicon.alpha = .61;
|
||||
newdeathicon.archived = true;
|
||||
newdeathicon setShader( "rank_prestige1", 5, 5 );
|
||||
newdeathicon setwaypoint( true, false );
|
||||
|
||||
if (isDefined(sp.wp))
|
||||
sp.wp destroy();
|
||||
|
||||
sp.wp = newdeathicon;
|
||||
}
|
||||
|
||||
doSpawnPointTest()
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if ( !isdefined( level.spawnpoints ) )
|
||||
return;
|
||||
|
||||
closest = undefined;
|
||||
h = -1;
|
||||
for (i = 0; i < level.spawnpoints.size; i++)
|
||||
{
|
||||
spawnpoint = level.spawnpoints[i];
|
||||
|
||||
sight = false;
|
||||
|
||||
if (level.teamBased)
|
||||
{
|
||||
sight = (spawnpoint.sights["axis"] > 0);
|
||||
if (!sight)
|
||||
sight = (spawnpoint.sights["allies"] > 0);
|
||||
}
|
||||
else
|
||||
sight = (spawnpoint.sights > 0);
|
||||
|
||||
if (!sight)
|
||||
drawNoSight(spawnpoint);
|
||||
else
|
||||
drawSight(spawnpoint);
|
||||
|
||||
if (isDefined(level.players[0]))
|
||||
{
|
||||
if (!isDefined(closest) || distanceSquared(closest.origin, level.players[0].origin) > distanceSquared(spawnpoint.origin, level.players[0].origin))
|
||||
{
|
||||
closest = spawnpoint;
|
||||
h = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isDefined(closest))
|
||||
level.players[0] sayall(h + " " + distance(closest.origin, level.players[0].origin));
|
||||
}
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
init()
|
||||
{
|
||||
setDvarIfUninitialized( "g_inactivitySpectator", 0.0 );
|
||||
level.inactivitySpectator = getDvarFloat("g_inactivitySpectator") * 1000;
|
||||
|
||||
if (level.inactivitySpectator <= 0)
|
||||
return;
|
||||
|
||||
thread watchPlayers();
|
||||
}
|
||||
|
||||
watchPlayers()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
wait 1.5;
|
||||
|
||||
theTime = getTime();
|
||||
|
||||
for (i = 0; i < level.players.size; i++)
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if (player.hasSpawned)
|
||||
continue;
|
||||
|
||||
if (!isDefined(player.specTime))
|
||||
{
|
||||
player.specTime = theTime;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((theTime - player.specTime) < level.inactivitySpectator)
|
||||
continue;
|
||||
|
||||
kick( player getEntityNumber(), "EXE_PLAYERKICKED_INACTIVE" );
|
||||
}
|
||||
}
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
init()
|
||||
{
|
||||
setDvarIfUninitialized( "dom_lastFlagUseTimeMulti", 1.0 );
|
||||
|
||||
thread watchFlags();
|
||||
}
|
||||
|
||||
watchFlags()
|
||||
{
|
||||
if ( getDvar( "g_gametype" ) != "dom" )
|
||||
return;
|
||||
|
||||
while ( !isDefined( level.domFlags ) )
|
||||
wait 0.05;
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait 1;
|
||||
|
||||
for ( i = 0; i < level.domFlags.size; i++ )
|
||||
{
|
||||
flag = level.domFlags[i];
|
||||
|
||||
if ( isDefined( flag.originalUseTime ) )
|
||||
{
|
||||
flag.useTime = flag.originalUseTime;
|
||||
flag.originalUseTime = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
team = "none";
|
||||
|
||||
axisFlags = maps\mp\gametypes\dom::getTeamFlagCount( "axis" );
|
||||
alliesFlags = maps\mp\gametypes\dom::getTeamFlagCount( "allies" );
|
||||
|
||||
if ( alliesFlags == 2 || axisFlags == 2 )
|
||||
{
|
||||
if ( alliesFlags == 2 )
|
||||
team = "allies";
|
||||
else
|
||||
team = "axis";
|
||||
}
|
||||
|
||||
if ( game["teamScores"]["axis"] < game["teamScores"]["allies"] && team == "axis" )
|
||||
continue;
|
||||
|
||||
if ( game["teamScores"]["allies"] < game["teamScores"]["axis"] && team == "allies" )
|
||||
continue;
|
||||
|
||||
if ( team != "none" )
|
||||
{
|
||||
for ( i = 0; i < level.domFlags.size; i++ )
|
||||
{
|
||||
flag = level.domFlags[i];
|
||||
|
||||
flagTeam = flag maps\mp\gametypes\_gameobjects::getOwnerTeam();
|
||||
|
||||
if ( flagTeam != team && ( flagTeam == "axis" || flagTeam == "allies" ) )
|
||||
{
|
||||
flag.originalUseTime = flag.useTime;
|
||||
flag.useTime *= getDvarFloat( "dom_lastFlagUseTimeMulti" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
0
scriptdata/waypoints/.gitkeep
Normal file
65
scripts/mp/bots_adapter_piw5.gsc
Normal file
@ -0,0 +1,65 @@
|
||||
init()
|
||||
{
|
||||
level.bot_builtins["printconsole"] = ::do_printconsole;
|
||||
level.bot_builtins["filewrite"] = ::do_filewrite;
|
||||
level.bot_builtins["fileread"] = ::do_fileread;
|
||||
level.bot_builtins["fileexists"] = ::do_fileexists;
|
||||
level.bot_builtins["botaction"] = ::do_botaction;
|
||||
level.bot_builtins["botstop"] = ::do_botstop;
|
||||
level.bot_builtins["botmovement"] = ::do_botmovement;
|
||||
level.bot_builtins["botmeleeparams"] = ::do_botmeleeparams;
|
||||
level.bot_builtins[ "botremoteangles" ] = ::do_botremoteangles;
|
||||
level.bot_builtins[ "botangles" ] = ::do_botangles;
|
||||
}
|
||||
|
||||
do_printconsole( s )
|
||||
{
|
||||
println( s );
|
||||
}
|
||||
|
||||
do_filewrite( file, contents, mode )
|
||||
{
|
||||
file = "scriptdata/" + file;
|
||||
}
|
||||
|
||||
do_fileread( file )
|
||||
{
|
||||
file = "scriptdata/" + file;
|
||||
return undefined;
|
||||
}
|
||||
|
||||
do_fileexists( file )
|
||||
{
|
||||
file = "scriptdata/" + file;
|
||||
return false;
|
||||
}
|
||||
|
||||
do_botaction( action )
|
||||
{
|
||||
self botaction( action );
|
||||
}
|
||||
|
||||
do_botstop()
|
||||
{
|
||||
self botstop();
|
||||
}
|
||||
|
||||
do_botmovement( forward, right )
|
||||
{
|
||||
self botmovement( forward, right );
|
||||
}
|
||||
|
||||
do_botmeleeparams( entNum, dist )
|
||||
{
|
||||
self botmeleeparams( entNum, dist );
|
||||
}
|
||||
|
||||
do_botremoteangles( pitch, yaw )
|
||||
{
|
||||
self botremoteangles( pitch, yaw );
|
||||
}
|
||||
|
||||
do_botangles( angles )
|
||||
{
|
||||
self botangles( angles[ 0 ], angles[ 1 ], angles[ 2 ] );
|
||||
}
|