init
This commit is contained in:
commit
b69e014cbd
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*.ff filter=lfs diff=lfs merge=lfs -text
|
||||
*.aggr filter=lfs diff=lfs merge=lfs -text
|
29
LICENSE
Normal file
29
LICENSE
Normal file
@ -0,0 +1,29 @@
|
||||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2024, AlterWare
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
7
README.md
Normal file
7
README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# S1 Rawfiles
|
||||
This repo contains the S1 Rawfiles for s1-mod.
|
||||
|
||||
Contributions are welcome! Please follow the guidelines below:
|
||||
|
||||
- Sign [AlterWare CLA](https://alterware.dev/cla) and send a pull request or email your patch at patches@alterware.dev
|
||||
- Make sure that PRs have only one commit, and deal with one issue only
|
228
dw/entitlement_config.info
Normal file
228
dw/entitlement_config.info
Normal file
@ -0,0 +1,228 @@
|
||||
version 7
|
||||
|
||||
// Entitlement ID Ranges
|
||||
// 0 - 299 ???
|
||||
// 300 - 399 Clan Entitlements
|
||||
// 400 - 599 ???
|
||||
// 600 - 699 Clan War Entitlements
|
||||
// 700 - 799 Generic Elite Entitlements
|
||||
|
||||
// Number of keys to read from the key archive
|
||||
keys_to_read 16
|
||||
|
||||
// unlocks in game - type, key index, bit, name, payload...
|
||||
unlock 0 0 600 //clan wars demon_skull_p
|
||||
unlock 0 1 601 //clan wars dead_ninja_p
|
||||
unlock 0 2 602 //clan wars mummy_p
|
||||
unlock 0 3 603 //clan wars skull_bow_p
|
||||
unlock 0 4 604 //clan wars cyclops_skull_p
|
||||
unlock 0 5 605 //clan wars dead_gnome_p
|
||||
unlock 0 6 606 //clan wars gold_grill_p
|
||||
unlock 0 7 607 //clan wars pirate_skull_p
|
||||
unlock 0 8 608 //clan wars gargoyle_p
|
||||
unlock 0 9 609 //clan wars vulture_p
|
||||
unlock 0 10 610 //clan wars warrior_mask_p
|
||||
unlock 0 11 611 //clan wars yeti_p
|
||||
unlock 0 12 612 //clan wars dead_owl_p
|
||||
unlock 0 13 613 //clan wars money_bags_p
|
||||
unlock 0 14 614 //clan wars injured_octopus_p
|
||||
unlock 0 15 615 //clan wars hotdog_p
|
||||
unlock 0 16 616 //clan wars crab_p
|
||||
unlock 0 17 617 //clan wars angry_robot_p
|
||||
unlock 0 18 618 //clan wars triangle_dot_ret
|
||||
unlock 0 19 619 //clan wars gold_chain_emb
|
||||
unlock 0 20 620 //clan wars wing_emb
|
||||
unlock 0 21 621 //clan wars brass_knuck_emb
|
||||
unlock 0 22 622 //clan wars ninja_emb
|
||||
unlock 0 25 623 //clan wars reaper head
|
||||
unlock 0 26 624 //clan wars merc head
|
||||
unlock 0 27 625 //clan wars body
|
||||
unlock 0 28 460 //clan wars diamond division reticle
|
||||
unlock 0 29 401 //clan wars diamond division camo
|
||||
unlock 0 30 627 //clan wars diamond division assassin head
|
||||
unlock 0 31 626 //clan wars diamond division savage head
|
||||
unlock 0 32 628 //clan wars diamond division body
|
||||
|
||||
unlock 3 0 700 //Download the mobile app
|
||||
unlock 3 1 701 //Founder Skull
|
||||
|
||||
unlock 3 4 500 //NEVERSOFT
|
||||
unlock 3 3 501 //IW
|
||||
unlock 3 5 502 //RAVEN
|
||||
unlock 3 7 503 //HIGH_MOON
|
||||
unlock 3 6 504 //BEACHHEAD
|
||||
|
||||
unlock 13 0 209 //monster beast patch
|
||||
unlock 13 2 210 //monster beast playercard
|
||||
unlock 13 1 211 //monster viper patch
|
||||
unlock 13 3 212 //monster viper playercard
|
||||
|
||||
unlock 13 4 216 //riley / classic ghost head
|
||||
|
||||
unlock 13 30 217 //watcher patch
|
||||
unlock 13 31 213 //federation patch
|
||||
unlock 13 32 215 //into the deep patch
|
||||
unlock 13 33 214 //no man's land patch
|
||||
|
||||
//Platform Unlocks
|
||||
platform 200 255161 //team leader head
|
||||
platform 201 255161 //team leader playercard
|
||||
platform 202 255161 //team leader patch
|
||||
platform 403 255161 //team leader camo
|
||||
platform 451 255161 //team leader reticle
|
||||
|
||||
platform 200 255160 //team leader head
|
||||
platform 201 255160 //team leader playercard
|
||||
platform 202 255160 //team leader patch
|
||||
platform 403 255160 //team leader camo
|
||||
platform 451 255160 //team leader reticle
|
||||
|
||||
platform 206 255162 //insignia playercard
|
||||
platform 205 255162 //insignia patch
|
||||
|
||||
platform 216 255165 //classic ghost character
|
||||
|
||||
platform 213 255167 //federation patch
|
||||
platform 214 255168 //no mans land patch
|
||||
platform 215 255169 //into the deep patch
|
||||
|
||||
platform 207 255163 //digital hardened patch
|
||||
platform 208 255163 //digital hardened playercard
|
||||
|
||||
platform 217 255166 //Steam Patch - The Watcher
|
||||
|
||||
platform 222 268100 //festive playercard
|
||||
platform 221 268100 //festive patch
|
||||
platform 410 268100 //festive camo
|
||||
platform 453 268100 //festive reticle
|
||||
|
||||
platform 550 268101 //wolf
|
||||
|
||||
platform 551 277670 //extra slots
|
||||
|
||||
platform 552 277671 // hero character - elias
|
||||
platform 553 277672 // hero character - hesh
|
||||
platform 554 277673 // hero character - merrick
|
||||
platform 555 277674 // hero character - keegan
|
||||
platform 556 277675 // hero character - price
|
||||
|
||||
platform 557 281343 // Hazmat character
|
||||
platform 558 281340 // Makarov Legend Pack
|
||||
platform 559 281342 // Rorke Character
|
||||
platform 560 281341 // Zakhaev Character
|
||||
|
||||
platform 561 286632 // Soap Legend Pack
|
||||
platform 562 286633 // Extinction Squad
|
||||
platform 563 286634 // TF141
|
||||
|
||||
platform 490 277676 // Personalization pack 1 - Ducky
|
||||
platform 491 277677 // Personalization pack 2 - Blood
|
||||
platform 492 277678 // Personalization pack 3 - Inferno
|
||||
platform 493 277679 // Personalization pack 4 - Kittens
|
||||
|
||||
platform 494 281344 // Personalization pack 5
|
||||
platform 495 281345 // Personalization pack 6
|
||||
platform 496 281346 // Personalization pack 7
|
||||
platform 497 281347 // Personalization pack 8
|
||||
platform 498 286630 // Personalization pack 9
|
||||
platform 499 286631 // Personalization pack 10
|
||||
|
||||
platform 510 295430 // Personalization pack 11
|
||||
platform 511 295431 // Personalization pack 12
|
||||
platform 512 295432 // Personalization pack 13
|
||||
platform 513 295433 // Personalization pack 14
|
||||
platform 515 295434 // Personalization pack 15
|
||||
platform 516 295435 // Personalization pack 16
|
||||
|
||||
platform 517 295439 // Personalization pack 17
|
||||
platform 518 295440 // Personalization pack 18
|
||||
platform 519 301111 // Personalization pack 19
|
||||
platform 520 301112 // Personalization pack 20
|
||||
platform 521 301113 // Personalization pack 21
|
||||
platform 522 301114 // Personalization pack 22
|
||||
platform 523 301110 // Personalization pack Flags
|
||||
|
||||
platform 564 295436 // Spectrum Character
|
||||
platform 565 295437 // Astronaut Character
|
||||
platform 566 295438 // Resistance Squad
|
||||
|
||||
platform 567 309870 // Bluntforce Character
|
||||
platform 568 309871 // Inferno Character
|
||||
platform 569 309872 // Bling Character
|
||||
|
||||
platform 480 259250 //dlc gun 1
|
||||
platform 480 301116 //dlc gun 1
|
||||
platform 481 259250 //dlc gun 1
|
||||
platform 481 301116 //dlc gun 1
|
||||
|
||||
platform 482 259251 //Ripper from Devastation
|
||||
platform 482 255161 //Ripper from Season Pass
|
||||
platform 482 301115 //Ripper from mDLC
|
||||
|
||||
//Clan Entitlements - ID 300 - 399 - type, bit, entitlement id
|
||||
clan 0 300
|
||||
clan 0 301
|
||||
clan 1 302
|
||||
clan 2 303
|
||||
clan 3 304
|
||||
clan 3 305
|
||||
clan 3 306
|
||||
clan 4 307
|
||||
clan 4 308
|
||||
clan 4 309
|
||||
clan 5 310
|
||||
clan 5 311
|
||||
clan 6 312
|
||||
clan 7 313
|
||||
clan 8 314
|
||||
clan 8 315
|
||||
clan 8 316
|
||||
clan 9 317
|
||||
clan 10 318
|
||||
clan 10 319
|
||||
clan 10 320
|
||||
clan 10 321
|
||||
clan 10 322
|
||||
clan 11 323
|
||||
clan 12 324
|
||||
clan 13 325
|
||||
clan 13 326
|
||||
clan 13 327
|
||||
clan 13 328
|
||||
clan 13 329
|
||||
clan 14 330
|
||||
clan 15 331
|
||||
clan 15 332
|
||||
clan 15 333
|
||||
clan 16 334
|
||||
clan 16 335
|
||||
clan 16 336
|
||||
clan 16 337
|
||||
clan 16 338
|
||||
clan 17 339
|
||||
clan 18 340
|
||||
clan 19 341
|
||||
clan 19 342
|
||||
clan 19 343
|
||||
clan 19 344
|
||||
clan 20 345
|
||||
clan 20 346
|
||||
clan 21 347
|
||||
clan 21 348
|
||||
clan 21 349
|
||||
clan 22 350
|
||||
clan 23 351
|
||||
clan 24 352
|
||||
clan 25 353
|
||||
clan 26 354
|
||||
clan 26 355
|
||||
clan 26 356
|
||||
clan 26 357
|
||||
clan 27 358
|
||||
|
||||
//Clan Level Challenges - type, required level, challenge id
|
||||
clanlevelchallenge 23 ch_cam_clan_02 // Kiss of Death Camo
|
||||
|
||||
//Clan War Challenges - type, key index, bit offset, challenge id
|
||||
entitlementchallenge 0 18 ch_ret_clan // clan wars reticle - Triad
|
||||
entitlementchallenge 0 24 ch_cam_clan_01 // clan wars camo - Body Count
|
BIN
dw/ffotd-1.22.1.ff
(Stored with Git LFS)
Normal file
BIN
dw/ffotd-1.22.1.ff
(Stored with Git LFS)
Normal file
Binary file not shown.
1050
dw/lootConfig_tu22.csv
Normal file
1050
dw/lootConfig_tu22.csv
Normal file
File diff suppressed because it is too large
Load Diff
1
dw/mm.cfg
Normal file
1
dw/mm.cfg
Normal file
@ -0,0 +1 @@
|
||||
XX 0 D150 0 G5 4 F 6 H 60 S 30 B 20 M49152 40 M14336 0 P50 8 P75 16 P100 24 P120 32 P150
|
BIN
dw/playlists_tu22.aggr
(Stored with Git LFS)
Normal file
BIN
dw/playlists_tu22.aggr
(Stored with Git LFS)
Normal file
Binary file not shown.
171
dw/social_tu22.cfg
Normal file
171
dw/social_tu22.cfg
Normal file
@ -0,0 +1,171 @@
|
||||
// increment this version number when making changes to the social config
|
||||
set social_config_version 40
|
||||
|
||||
set netinfo_logging 0
|
||||
|
||||
set ui_show_store 1
|
||||
set igs_td 1
|
||||
set igs_sosp 1
|
||||
set matchdata_active 1
|
||||
set sp_matchdata_active 1
|
||||
set theater_active 1
|
||||
set facebook_active 0
|
||||
set entitlements_active 1
|
||||
set userGroup_active 1
|
||||
set prestige_shop_active 1
|
||||
set gamedvr_active 1
|
||||
set livestreaming_active 0
|
||||
set screenshots_active 1
|
||||
set comscore_active 1
|
||||
set zombies_show_menu_option 1
|
||||
|
||||
set userGroup_max_retry_time 10000
|
||||
|
||||
set elite_clan_active 0
|
||||
set elite_clan_remote_view_active 0
|
||||
set elite_clan_emblem_upload_active 0
|
||||
|
||||
set dw_presence_active 1
|
||||
set dw_presence_put_delay 5000
|
||||
set dw_presence_put_rate 60000
|
||||
set dw_presence_get_delay 5000
|
||||
set dw_presence_get_rate 120000
|
||||
set dw_presence_coop_join_active 1
|
||||
set dw_shared_presence_active 1
|
||||
set dw_shared_presence_put_rate 300000
|
||||
set dw_leaderboard_write_active 1
|
||||
|
||||
set elite_clan_delay -1
|
||||
set elite_clan_division_icon_active 1
|
||||
set splitscreen_online_enabled 1
|
||||
set motd_store_link 0
|
||||
set ca_intra_only 0
|
||||
|
||||
#ifdef MP
|
||||
set live_qosec_lastupdatems 5000
|
||||
set ca_do_mlc 1
|
||||
|
||||
set ds_pingclient_maxpings 10
|
||||
set ds_pingclient_minpings 4
|
||||
set ds_pingclient_maxpings_per_tick 1
|
||||
|
||||
set ds_serverConnectTimeout 3000
|
||||
set ds_listenServerConnectTimeout 10000
|
||||
set ds_serverAcquireTimeout 2000
|
||||
set ds_introRequestTimeout 2000
|
||||
set ds_serverListExpiryPeriod 60000
|
||||
set ds_serverAcquisitionPeriod 7000
|
||||
|
||||
set max_party_share_ds_pings 8
|
||||
set dc_lobbymerge 1
|
||||
set s_avg_max_weighting 0
|
||||
#endif
|
||||
|
||||
set mm_skill_lower_bucket 806
|
||||
set mm_skill_upper_bucket 1051
|
||||
set mm_feed_performance 1
|
||||
|
||||
#ifdef MP
|
||||
set past_title_data_active 0
|
||||
set past_title_data_read_failure_interval_hours 72
|
||||
set past_title_data_read_success_interval_hours 192
|
||||
#endif
|
||||
|
||||
set mm_skill_enforcement 0
|
||||
set mm_use_onboarding_skill 1
|
||||
set mm_bucket_option 1 // isolate onboarding pool
|
||||
|
||||
set comscore_active 1
|
||||
|
||||
#ifdef MP
|
||||
set enable_emblemAppDownload 0
|
||||
set marketing_active 0
|
||||
set emblems_active 1
|
||||
set selfie_active 0
|
||||
#endif
|
||||
|
||||
set enable_video_options_preload_shader_controls 1
|
||||
|
||||
// ChurnScore
|
||||
set churnscore_scaling_param1 818.1
|
||||
set churnscore_scaling_param2 6288.3
|
||||
set churnscore_scoring_param1 3.53478575181172
|
||||
set churnscore_scoring_multiplier_totalkillscap -0.527447816986428
|
||||
set churnscore_scoring_multiplier_gameperformance -0.32373506559784
|
||||
set churnscore_scoring_multiplier_daysbetweentitles 0.00058954962393
|
||||
set churnscore_scoring_multiplier_previoustitlematches -0.00003043977270
|
||||
set churnscore_scoring_multiplier_currenttitlematches -0.00112090114056
|
||||
set churnscore_scoring_multiplier_dayssincelaunch 0
|
||||
set churnscore_scoring_multiplier_disconnectflag 1.02002532365439
|
||||
set churnscore_scoring_multiplier_spflag -0.06442491477533
|
||||
set churnscore_scoring_multiplier_timesincelastmatch 5.94629549261903E-07
|
||||
|
||||
// RedeemCoupons
|
||||
set inventory_taskRedeemCouponTimeout 10.0 // in sec
|
||||
set inventory_fullRedeemCouponTimeout 15000 // in ms
|
||||
set inventory_handleRedeemCouponErrorAsSuccess 1
|
||||
set inventory_handleRedeemCouponErrorCode 8045
|
||||
set inventory_ignoreOldPushNotifications 1
|
||||
set inventory_maxRewardRollsClaimed 35
|
||||
|
||||
// DLC
|
||||
set inventory_exchangeRetryMax 1
|
||||
set useCPMarkerForCPOwnership 1
|
||||
set earlyAccessDLC 3
|
||||
set inventory_handleRedeemCouponErrorAsSuccess 1
|
||||
set inventory_handleRedeemCouponErrorCode 8045
|
||||
set inventory_ignoreOldPushNotifications 1
|
||||
|
||||
set igs_version 10
|
||||
set igs_config_dw_filename "winStoreConfig_tu22.csv"
|
||||
set armory_contentpacks_enabled 5
|
||||
|
||||
set msg_field_delta2 0 // matched in socialds
|
||||
|
||||
// DAILY Challenges
|
||||
set dailychallenge_killswitch 1727554559 // all enabled
|
||||
set dailychallenge_killswitch2 2041 // all enabled
|
||||
|
||||
// Ranked Play
|
||||
set rankedPlaylistLockoutDuration 900
|
||||
set rankedPlayEndMatchKeepLobby 1
|
||||
set scr_game_season 10 // matched in socialds
|
||||
|
||||
set zombiesAllowSoloPause 1
|
||||
|
||||
set csdRewardRanks32 537395200
|
||||
set csdRewardRanks64 128
|
||||
|
||||
// Skill-Based Matchmaking Control
|
||||
set mm_skill_param_xi 1.0341387
|
||||
set mm_skill_param_lambda 0.1631656
|
||||
set mm_skill_param_gamma -0.02225907
|
||||
set mm_skill_param_delta 0.8303422
|
||||
|
||||
set prestige30EasterEggEnabled 1
|
||||
|
||||
set enableS1TUSpawnSightTraces 1 // matched in socialds
|
||||
|
||||
// Special Base Weapon Killswitch
|
||||
set baseWeaponsKillswitch "" // matched in socialds
|
||||
|
||||
// Loot Config
|
||||
set lootConfig_dw_enabled 1
|
||||
set lootConfig_dw_filename "lootConfig_tu22.csv"
|
||||
set lootConfig_redeem_xp "500,1000,2000,4000,3000"
|
||||
set lootConfig_redeem_codpoint "500,1000,2000,4000,3000"
|
||||
|
||||
set codPointStore_enabled 0
|
||||
set codPointStore_dw_filename "codPointStoreConfig_tu22.csv"
|
||||
|
||||
// must match socialds
|
||||
set bg_customization_gearSetBonusEnabled 1
|
||||
set bg_customization_gearSetBonusXP .05
|
||||
set bg_customization_gearSetKillswitch_1 16777215
|
||||
set bg_customization_gearSetKillswitch_2 16777215
|
||||
set bg_customization_gearSetKillswitch_3 16646143
|
||||
set bg_customization_gearSetKillswitch_4 12582399
|
||||
set bg_customization_gearSetKillswitch_5 16777215
|
||||
|
||||
// Redeem 50 Duplicate
|
||||
set lui_loot_duplicateredemption 0
|
206
dw/winStoreConfig_tu22.csv
Normal file
206
dw/winStoreConfig_tu22.csv
Normal file
@ -0,0 +1,206 @@
|
||||
#Game Language to offerids mapping
|
||||
#english,EN
|
||||
#french,FR
|
||||
#frenchcan,FR
|
||||
#german,DE-LV
|
||||
#austrian,DE-FV
|
||||
#italian,IT
|
||||
#spanish,ES
|
||||
#british,EN
|
||||
#russian,RU
|
||||
#polish,PL
|
||||
#korean,EN
|
||||
#japanese,EN-JA
|
||||
#fulljap,JA
|
||||
|
||||
#visibility refer to igsProductVisibility_e
|
||||
# 0 - Visible Always
|
||||
# 1 - Hide Always ( Hide in store and in Front End )
|
||||
# 2 - Visible for season pass holders ( Hide in store if player does not own season pass )
|
||||
# 3 - Visible for non season pass holders ( Hide in store if player owns season pass )
|
||||
# 4 - Hide in CAC / CAO ( Show in Store,Hide in Front End )
|
||||
# 5 - Early Access ( Hide in the store,Show in Front End )
|
||||
|
||||
version,version_id,10
|
||||
|
||||
#type = product,UID,Product ID,Image Name,dlcName,category,#Language List separated by space delimiter,#visibility,#productgroup,#seenIndex,#name
|
||||
product,product_1,317660,img_store_season_pass,seasonpass,seasonpass,english french german italian spanish russian polish korean taiwanese chinese thai czech spanishna portuguese arabic,0,,,# Season Pass
|
||||
|
||||
product,product_2,318791,img_store_mappacks_havok,dlc2,mappacks,all,0,,,# Havoc
|
||||
product,product_3,318792,img_store_mappacks_ascendance,dlc3,mappacks,all,0,,32,# Ascendance
|
||||
product,product_4,318793,img_store_mappacks_supremacy,dlc4,mappacks,all,0,,,# Supremacy
|
||||
product,product_5,318794,img_store_mappacks_reckoning,dlc5,mappacks,all,0,,,# Reckoning
|
||||
|
||||
# MDLC 2.5 - Standard Packs
|
||||
product,product_137,343596,img_store_personpacks_ice,mdlc62,personpacks,all,0,,34,# Ice Pack
|
||||
product,product_138,343597,img_store_personpacks_disco,mdlc63,personpacks,all,0,,35,# Disco Pack
|
||||
product,product_139,343598,img_store_personpacks_cards,mdlc64,personpacks,all,0,,36,# Cards Pack
|
||||
product,product_140,343599,img_store_personpacks_jackpot,mdlc65,personpacks,all,0,,37,# Jackpot Pack
|
||||
product,product_141,343590,img_store_personpacks_blackout,mdlc66,personpacks,all,1,,38,# BLOPS3 Pack
|
||||
|
||||
# MDLC 2 - Standard Packs
|
||||
product,product_6,343591,img_store_personpacks_tiki,mdlc34,personpacks,all,0,,,# Tiki
|
||||
product,product_7,343592,img_store_personpacks_gasfire,mdlc35,personpacks,all,0,,,# Gas Fire
|
||||
product,product_8,343593,img_store_personpacks_leaf,mdlc36,personpacks,all,0,,,# Leaf
|
||||
product,product_9,343594,img_store_personpacks_psych,mdlc37,personpacks,all,0,,,# Psychadelic
|
||||
|
||||
product,product_10,331060,img_store_personpacks_magma,mdlc7,personpacks,all,0,,,# Magma
|
||||
product,product_11,331061,img_store_personpacks_lightning,mdlc8,personpacks,all,0,,,# Lightning
|
||||
product,product_12,331062,img_store_personpacks_hide,mdlc9,personpacks,all,0,,,# Hide
|
||||
product,product_13,331063,img_store_personpacks_nanotech,mdlc10,personpacks,all,0,,,# Nanotech
|
||||
|
||||
# MDLC 2.5 Premium Personalization Packs
|
||||
product,product_136,343590,img_store_personpacks_premium_blackout,mdlc61,PREMPERSONPACKS,all,1,,33,# BLOPS3 Prem Pack
|
||||
|
||||
# MDLC 2 - Premium Personalization Packs
|
||||
product,product_14,343596,img_store_personpacks_premium_tiki,mdlc38,prempersonpacks,all,1,,,# Premium Tiki
|
||||
product,product_15,343597,img_store_personpacks_premium_gasfire,mdlc39,prempersonpacks,all,1,,,# Premium Gas Fire
|
||||
product,product_16,343598,img_store_personpacks_premium_leaf,mdlc40,prempersonpacks,all,1,,,# Premium Leaf
|
||||
product,product_17,343599,img_store_personpacks_premium_psych,mdlc41,prempersonpacks,all,1,,,# Premium Psychadelic
|
||||
|
||||
product,product_18,343600,img_store_personpacks_premium_cod_champs,mdlc42,prempersonpacks,all,0,,,# Premium Cod Champs
|
||||
product,product_19,331064,img_store_personpacks_premium_magma,mdlc11,prempersonpacks,all,0,,,# Premium Magma
|
||||
product,product_20,331065,img_store_personpacks_premium_lightning,mdlc12,prempersonpacks,all,0,,,# Premium Lightning
|
||||
product,product_21,331066,img_store_personpacks_premium_hide,mdlc13,prempersonpacks,all,0,,,# Premium Hide
|
||||
product,product_22,331067,img_store_personpacks_premium_nanotech,mdlc14,prempersonpacks,all,0,,,# Premium Nanotech
|
||||
|
||||
# MDLC 2 - Exo Packs
|
||||
product,product_23,343601,img_store_operatorpacks_cowboy,mdlc101,operatorpacks,all,1,,,# Cowboy
|
||||
product,product_24,343602,img_store_operatorpacks_surfer,mdlc43,operatorpacks,all,1,,,# Surfer
|
||||
product,product_25,343604,img_store_operatorpacks_octopus,mdlc45,operatorpacks,all,1,,,# Octopus
|
||||
# MDLC 2 - Lady Gear Exo Packs
|
||||
product,product_26,345600,img_store_operatorpacks_rose_camo,mdlc59,OPERATORPACKS,all,1,,,# Rose Camo / Passionate
|
||||
product,product_27,345601,img_store_operatorpacks_white_blue,mdlc60,OPERATORPACKS,all,1,,,# White Blue / Tenacious
|
||||
|
||||
product,product_28,5f3f93ca-03ab-4fdd-aa00-63f17fb08d79,img_store_operatorpacks_steam_punk,mdlc15,operatorpacks,all,0,,,# Steam Punk
|
||||
product,product_29,beb1715c-5825-4ae3-844d-1f72231f9306,img_store_operatorpacks_panda,mdlc16,operatorpacks,all,0,,,# Panda
|
||||
product,product_30,05e1b887-e323-4aaf-b95b-12e9512f76aa,img_store_operatorpacks_bali_mask,mdlc17,operatorpacks,all,0,,,#Bali Mask
|
||||
product,product_31,33c64260-e212-4794-8abe-9810f04471e7,img_store_operatorpacks_classic_biker,mdlc18,operatorpacks,all,0,,,#Classic Biker
|
||||
|
||||
# MDLC 2 - Flags
|
||||
product,product_32,334460,img_store_flag_packs_argentinia,mdlc46,flagpacks,all,1,,,# Argentina Flag
|
||||
product,product_33,343605,img_store_flag_packs_austria,mdlc47,flagpacks,all,1,,,# Austria Flag
|
||||
product,product_34,333086,img_store_flag_packs_brazil,mdlc26,flagpacks,all,1,,,# Brazil Flag
|
||||
product,product_35,343606,img_store_flag_packs_columbia,mdlc48,flagpacks,all,1,,,# Columbia Flag
|
||||
product,product_36,343607,img_store_flag_packs_ireland,mdlc49,flagpacks,all,1,,,# Ireland Flag
|
||||
product,product_37,343608,img_store_flag_packs_new_zealand,mdlc50,flagpacks,all,1,,,# New Zealand Flag
|
||||
product,product_38,343609,img_store_flag_packs_portugal,mdlc51,flagpacks,all,1,,,# Portugal Flag
|
||||
|
||||
product,product_39,331072,img_store_flag_packs_usa,mdlc19,flagpacks,all,0,,,# USA Flag
|
||||
product,product_40,333080,img_store_flag_packs_uk,mdlc20,flagpacks,all,0,,,# UK Flag
|
||||
product,product_41,333081,img_store_flag_packs_canada,mdlc21,flagpacks,all,0,,,# Canada Flag
|
||||
product,product_42,333082,img_store_flag_packs_france,mdlc22,flagpacks,all,0,,,# France Flag
|
||||
product,product_43,333083,img_store_flag_packs_germany,mdlc23,flagpacks,all,0,,,# Germany Flag
|
||||
product,product_44,333084,img_store_flag_packs_australia,mdlc24,flagpacks,all,0,,,# Australia Flag
|
||||
product,product_45,333087,img_store_flag_packs_italy,mdlc27,flagpacks,all,0,,,# Italy Flag
|
||||
product,product_46,333088,img_store_flag_packs_spain,mdlc28,flagpacks,all,0,,,# Spain Flag
|
||||
product,product_47,334220,img_store_flag_packs_netherlands,mdlc29,flagpacks,all,0,,,# Netherlands Flag
|
||||
product,product_48,334221,img_store_flag_packs_japan,mdlc30,flagpacks,all,0,,,# Japan Flag
|
||||
|
||||
product,product_49,343610,img_store_cac_slots,mdlc52,otheritems,all,0,,,# Create A Class Slots
|
||||
product,product_50,343612,img_store_armory_slots1,mdlc54,otheritems,all,0,armoryslots,,# Armory Slots
|
||||
product,product_51,343613,img_store_armory_slots2,mdlc55,otheritems,all,0,armoryslots,,# Armory Slots
|
||||
product,product_52,343614,img_store_armory_slots3,mdlc56,otheritems,all,0,armoryslots,,# Armory Slots
|
||||
product,product_53,343615,img_store_armory_slots4,mdlc57,otheritems,all,0,armoryslots,,# Armory Slots
|
||||
product,product_54,343616,img_store_armory_slots5,mdlc58,otheritems,all,0,armoryslots,,# Armory Slots
|
||||
product,product_55,318790,img_store_mappacks_atlas_gorge,dlc1,otheritems,all,0,,,# Atlas Gorge
|
||||
|
||||
product,product_56,00000,img_store_supplydrops_1,supdrp61,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_57,76a554fb-c4b4-4a3e-b913-dcd0c61de638,img_store_supplydrops_1,supdrp62,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_58,ed37f45c-1d3c-451c-87c3-0bb46ca51fa6,img_store_supplydrops_1,supdrp63,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_59,518865ed-dfae-4d8a-836e-e0e5dc2c3d08,img_store_supplydrops_1,supdrp64,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_60,3b9f4478-900d-43f9-b4b1-eb1f901ce961,img_store_supplydrops_1,supdrp65,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_61,f20bfb05-cca9-4a61-971b-c6c620b928b0,img_store_supplydrops_1,supdrp66,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_62,a75ee2b8-42f6-46b1-a45f-db6e64a98872,img_store_supplydrops_1,supdrp67,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_63,20f97f87-52a7-461e-8b78-9a54080bd400,img_store_supplydrops_1,supdrp68,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_64,f03ad620-bc8a-4f4f-a3b0-3630347b8a30,img_store_supplydrops_1,supdrp69,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_65,ebe31b71-f8cc-4f0d-9915-6a13d53af74b,img_store_supplydrops_1,supdrp70,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
|
||||
product,product_111,b05003d8-bf77-4d04-a0cc-d8a36425b813,img_store_supplydrops_1,supdrp72,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
|
||||
product,product_112,2b7b516c-8e7e-45b7-92fd-dc2040c08d6e,img_store_supplydrops_1,supdrp73,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
|
||||
product,product_113,5de14218-1543-4fc5-ae89-eb4037109234,img_store_supplydrops_1,supdrp74,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
|
||||
product,product_114,3404d799-4341-46de-95ea-c6bdd47c8e39,img_store_supplydrops_1,supdrp75,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
|
||||
product,product_115,3f05faaf-a59b-4807-ad58-0bd28f520cc9,img_store_supplydrops_1,supdrp76,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
|
||||
|
||||
product,product_66,6031ecd6-a183-4c71-9022-9685dde26ebd,img_store_supplydrops_3,supdrp91,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_67,6aebd756-0b60-4ad4-8639-d27db2ae79e0,img_store_supplydrops_3,supdrp92,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_68,93a0c86c-c7af-464c-88d7-6e0519d482f4,img_store_supplydrops_3,supdrp93,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_69,6ca3fa67-8844-4128-89e0-8d4b7b8c5e3a,img_store_supplydrops_3,supdrp94,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_70,55c76436-50d8-401e-8761-b9ceeb18c7c4,img_store_supplydrops_3,supdrp95,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_71,844742d6-baa0-4079-892e-649a45564b56,img_store_supplydrops_3,supdrp96,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_72,605fb575-1482-4e0f-8934-165e290d26ca,img_store_supplydrops_3,supdrp97,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_73,64d0e219-b602-4906-b714-895d020bae2a,img_store_supplydrops_3,supdrp98,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_74,fc0e23af-fc91-4711-b3ca-a45c3ab03049,img_store_supplydrops_3,supdrp99,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_75,e9886801-697b-4b40-93bd-6f9b37b6102b,img_store_supplydrops_3,supdrp100,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
|
||||
product,product_116,3c32e23a-514d-487c-9733-c9c8ec6fd55b,img_store_supplydrops_3,supdrp77,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
|
||||
product,product_117,906884d7-2864-4cd2-b725-1129c111abab,img_store_supplydrops_3,supdrp78,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
|
||||
product,product_118,28e9c053-da80-4f8a-b1b3-26cf9e6cad59,img_store_supplydrops_3,supdrp79,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
|
||||
product,product_119,13668620-fb95-4e3b-b15b-05ca33cb90dc,img_store_supplydrops_3,supdrp80,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
|
||||
product,product_120,e9e772ce-aeb5-4831-9672-f2ab1c0459f5,img_store_supplydrops_3,supdrp81,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
|
||||
|
||||
product,product_76,156f40b5-3683-4c26-a6d0-f2358701df53,img_store_supplydrops_5,supdrp71,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_77,3ec7cec9-91ff-4931-8785-e7092495c5cb,img_store_supplydrops_5,supdrp72,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_78,29af6a13-c4ce-469c-aee1-82bdcef9307f,img_store_supplydrops_5,supdrp73,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_79,92334032-5350-4319-ad0b-a5dac31e491f,img_store_supplydrops_5,supdrp74,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_80,9974b492-3253-4873-97cc-68a47117f09f,img_store_supplydrops_5,supdrp75,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_81,d3a71cec-ceb3-452a-baa1-97ce8360cee8,img_store_supplydrops_5,supdrp76,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_82,93e9ba95-0738-4302-9880-33774f4e4b2a,img_store_supplydrops_5,supdrp77,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_83,5998caba-5f9f-475c-bc45-a4f2d9386105,img_store_supplydrops_5,supdrp78,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_84,5afa84ac-abe3-4db9-917e-29933134d4be,img_store_supplydrops_5,supdrp79,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_85,4f7350d9-90aa-4f91-a974-8fe399280d7c,img_store_supplydrops_5,supdrp80,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
|
||||
product,product_121,19938ec4-0047-4d17-8002-97c6584413fa,img_store_supplydrops_5,supdrp82,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
|
||||
product,product_122,e2bb0ca8-66cc-4658-a34c-0c80babdb0df,img_store_supplydrops_5,supdrp83,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
|
||||
product,product_123,411f8663-77fd-4821-8eef-8e213ba1f4ed,img_store_supplydrops_5,supdrp84,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
|
||||
product,product_124,2a9140a1-946b-4a07-a790-6f7d4ee541d7,img_store_supplydrops_5,supdrp85,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
|
||||
product,product_125,af7f50e7-dc1b-4b14-b78d-61ae560b2a00,img_store_supplydrops_5,supdrp86,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
|
||||
|
||||
product,product_86,5de0f259-b94b-40a9-a2ea-dba2f95f8b87,img_store_supplydrops_10,supdrp81,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_87,89f452a5-5c6f-4d8e-a203-35de25a73805,img_store_supplydrops_10,supdrp82,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_88,c503ee82-39c2-4a0e-93fe-e9acfc846a81,img_store_supplydrops_10,supdrp83,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_89,e2c670f6-567b-4bd1-ae36-c2f039e22add,img_store_supplydrops_10,supdrp84,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_90,b38a63b5-2c14-445f-a9d7-31ad59b4fe5c,img_store_supplydrops_10,supdrp85,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_91,8c448893-0809-4c4f-be73-fa574be15333,img_store_supplydrops_10,supdrp86,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_92,82a96d7b-859b-46a9-a7c7-ba082558066b,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_93,9bc7070b-4a5a-4d39-9957-734eafd3f8e0,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_94,dda9be88-d5cc-4827-aecf-40e9598f4adb,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_95,4067a17b-23c7-4999-a514-8ed9041e8a02,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
|
||||
product,product_126,10cd1171-2eb4-4dcb-a281-372b747319f6,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
|
||||
product,product_127,8706ff47-4cc7-4957-a4f3-d9589be39d78,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
|
||||
product,product_128,ff9063ee-79ef-4b4a-8e22-df83f700e292,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
|
||||
product,product_129,31cdd8b7-2c6a-414b-8e02-a2d7f6f64f12,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
|
||||
product,product_130,de53b351-a6ab-4089-a30b-0396f6fad455,img_store_supplydrops_10,supdrp91,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
|
||||
|
||||
# Consumable Supply Drops
|
||||
product,product_96,c5f202f9-3386-4d8b-9f5f-fc4f16f78ed3,img_store_supplydrops_1,supdrp46,supplydrops_v2,all,1,,26,# Consumable Supply Drops 1
|
||||
product,product_97,0463b195-81cb-43c8-87a4-814043492ac1,img_store_supplydrops_3,supdrp50,supplydrops_v2,all,1,,27,# Consumable Supply Drops 3
|
||||
product,product_98,ef8577d9-0cab-433d-8955-8dd96089218e,img_store_supplydrops_5,supdrp47,supplydrops_v2,all,1,,28,# Consumable Supply Drops 5
|
||||
product,product_99,4b49d2af-d9ed-4f4a-8aa1-0fc3c2e70f87,img_store_supplydrops_10,supdrp48,supplydrops_v2,all,1,,29,# Consumable Supply Drops 10
|
||||
product,product_100,ca0012ef-1206-4173-8979-d2d4f3d66a57,img_store_supplydrops_20,supdrp71,supplydrops_v2,all,1,,31,# Consumable Supply Drops 20
|
||||
|
||||
# More Durable Supply Drops
|
||||
product,product_101,48a1c3f1-c47f-4752-95c8-658630e29cd1,img_store_supplydrops_20,supdrp61,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_102,e0556d68-6bbf-4fce-affb-28c4eec8eb25,img_store_supplydrops_20,supdrp62,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_103,d627860d-bf3a-4972-9eb5-51a68bf4eb44,img_store_supplydrops_20,supdrp63,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_104,641bb491-7dda-42c9-850f-a9d6774236a0,img_store_supplydrops_20,supdrp64,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_105,c53a24c9-c07b-468d-bbc5-1d57ccdfd82c,img_store_supplydrops_20,supdrp65,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_106,fcc7f36b-3158-4129-a13d-8437924eb9ee,img_store_supplydrops_20,supdrp66,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_107,a21a0bda-abed-47a2-9d97-40bede8bfd7b,img_store_supplydrops_20,supdrp67,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_108,c7492ab3-7a7c-46d7-8efd-2a6ecd844dd7,img_store_supplydrops_20,supdrp68,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_109,e6a955fb-c723-42f7-b391-615dce049592,img_store_supplydrops_20,supdrp69,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_110,a4f8bf5c-4af4-4f4b-9996-e0816475ff6b,img_store_supplydrops_20,supdrp70,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_131,0b917713-e3a1-406b-9a61-dd1afa2212f5,img_store_supplydrops_20,supdrp92,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_132,69377444-37e1-4b99-8008-376a1da8d886,img_store_supplydrops_20,supdrp93,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_133,c3ae1aee-1445-4601-9577-033496317972,img_store_supplydrops_20,supdrp94,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_134,7d66fdd5-ebac-4893-be48-439867faccda,img_store_supplydrops_20,supdrp95,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
product,product_135,466f1cd8-ce9e-4ee8-ad7b-79d9e8c4e57b,img_store_supplydrops_20,supdrp96,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
|
||||
|
||||
#MDLC 4 OHM Standalone
|
||||
product,product_142,343595,img_store_ohm,mdlc70,OTHERITEMS,all,0,,,#OHM Standalone Pack
|
||||
#type = category,UID,category ID,title,Language List separated by space delimiter,visibility (0-show,1-hide)
|
||||
category,category_1,1,seasonpass,LUA_MENU_STORE_SEASON_PASS,english french german italian spanish russian polish korean taiwanese chinese thai czech spanishna portuguese arabic,0
|
||||
category,category_2,2,mappacks,LUA_MENU_STORE_MAP_PACKS,all,0
|
||||
category,category_3,3,prempersonpacks,LUA_MENU_STORE_PREMIUM_PERSONALIZATION_PACKS,all,0
|
||||
category,category_4,4,personpacks,LUA_MENU_STORE_PERSONALIZATION_PACKS,all,0
|
||||
category,category_5,5,operatorpacks,LUA_MENU_STORE_PREMIUM_EXO_PACKS,all,0
|
||||
category,category_6,6,flagpacks,LUA_MENU_STORE_EXO_PACKS,all,0
|
||||
category,category_7,7,supplydrops,LUA_MENU_STORE_SUPPLYDROPS,all,1
|
||||
category,category_8,8,otheritems,LUA_MENU_STORE_ADDITIONAL_ITEMS,all,0
|
|
3637
maps/mp/gametypes/_damage.gsc
Normal file
3637
maps/mp/gametypes/_damage.gsc
Normal file
File diff suppressed because it is too large
Load Diff
3548
maps/mp/gametypes/_gamelogic.gsc
Normal file
3548
maps/mp/gametypes/_gamelogic.gsc
Normal file
File diff suppressed because it is too large
Load Diff
2226
maps/mp/gametypes/_playerlogic.gsc
Normal file
2226
maps/mp/gametypes/_playerlogic.gsc
Normal file
File diff suppressed because it is too large
Load Diff
507
maps/mp/gametypes/gun.gsc
Normal file
507
maps/mp/gametypes/gun.gsc
Normal file
@ -0,0 +1,507 @@
|
||||
// S1 GSC SOURCE
|
||||
// Dumped by https://github.com/xensik/gsc-tool
|
||||
|
||||
main()
|
||||
{
|
||||
maps\mp\gametypes\_globallogic::init();
|
||||
maps\mp\gametypes\_callbacksetup::setupcallbacks();
|
||||
maps\mp\gametypes\_globallogic::setupcallbacks();
|
||||
setguns();
|
||||
maps\mp\_utility::registertimelimitdvar( level.gametype, 10 );
|
||||
setdvar( "scr_gun_scorelimit", level.gun_guns.size );
|
||||
maps\mp\_utility::registerscorelimitdvar( level.gametype, level.gun_guns.size );
|
||||
level thread reinitializescorelimitonmigration();
|
||||
maps\mp\_utility::registerroundlimitdvar( level.gametype, 1 );
|
||||
maps\mp\_utility::registerwinlimitdvar( level.gametype, 0 );
|
||||
maps\mp\_utility::registernumlivesdvar( level.gametype, 0 );
|
||||
maps\mp\_utility::registerhalftimedvar( level.gametype, 0 );
|
||||
level.matchrules_randomize = 0;
|
||||
level.matchrules_damagemultiplier = 0;
|
||||
level.matchrules_vampirism = 0;
|
||||
|
||||
setspecialloadout();
|
||||
level.teambased = 0;
|
||||
level.doprematch = 1;
|
||||
level.onstartgametype = ::onstartgametype;
|
||||
level.onspawnplayer = ::onspawnplayer;
|
||||
level.getspawnpoint = ::getspawnpoint;
|
||||
level.onplayerkilled = ::onplayerkilled;
|
||||
level.ontimelimit = ::ontimelimit;
|
||||
level.onplayerscore = ::onplayerscore;
|
||||
level.bypassclasschoicefunc = ::gungameclass;
|
||||
level.assists_disabled = 1;
|
||||
level.setbacklevel = maps\mp\_utility::getintproperty( "scr_setback_levels", 1 );
|
||||
level.lastguntimevo = 0;
|
||||
|
||||
if ( level.matchrules_damagemultiplier )
|
||||
level.modifyplayerdamage = maps\mp\gametypes\_damage::gamemodemodifyplayerdamage;
|
||||
|
||||
setteammode( "ffa" );
|
||||
game["dialog"]["gametype"] = "gg_intro";
|
||||
game["dialog"]["defense_obj"] = "gbl_start";
|
||||
game["dialog"]["offense_obj"] = "gbl_start";
|
||||
game["dialog"]["humiliation"] = "gg_humiliation";
|
||||
game["dialog"]["lastgun"] = "at_anr1_gg_lastgun";
|
||||
|
||||
if ( maps\mp\_utility::isgrapplinghookgamemode() )
|
||||
game["dialog"]["gametype"] = "grap_" + game["dialog"]["gametype"];
|
||||
}
|
||||
|
||||
initializematchrules()
|
||||
{
|
||||
maps\mp\_utility::setcommonrulesfrommatchrulesdata( 1 );
|
||||
level.matchrules_randomize = getmatchrulesdata( "gunData", "randomize" );
|
||||
setdvar( "scr_gun_scorelimit", level.gun_guns.size );
|
||||
maps\mp\_utility::registerscorelimitdvar( level.gametype, level.gun_guns.size );
|
||||
setdvar( "scr_gun_winlimit", 1 );
|
||||
maps\mp\_utility::registerwinlimitdvar( "gun", 1 );
|
||||
setdvar( "scr_gun_roundlimit", 1 );
|
||||
maps\mp\_utility::registerroundlimitdvar( "gun", 1 );
|
||||
setdvar( "scr_gun_halftime", 0 );
|
||||
maps\mp\_utility::registerhalftimedvar( "gun", 0 );
|
||||
setdvar( "scr_gun_playerrespawndelay", 0 );
|
||||
setdvar( "scr_gun_waverespawndelay", 0 );
|
||||
setdvar( "scr_player_forcerespawn", 1 );
|
||||
setdvar( "scr_setback_levels", getmatchrulesdata( "gunData", "setbackLevels" ) );
|
||||
}
|
||||
|
||||
reinitializescorelimitonmigration()
|
||||
{
|
||||
setdvar( "scr_gun_scorelimit", level.gun_guns.size );
|
||||
maps\mp\_utility::registerscorelimitdvar( level.gametype, level.gun_guns.size );
|
||||
}
|
||||
|
||||
onstartgametype()
|
||||
{
|
||||
setclientnamemode( "auto_change" );
|
||||
maps\mp\_utility::setobjectivetext( "allies", &"OBJECTIVES_DM" );
|
||||
maps\mp\_utility::setobjectivetext( "axis", &"OBJECTIVES_DM" );
|
||||
maps\mp\_utility::setobjectivescoretext( "allies", &"OBJECTIVES_DM_SCORE" );
|
||||
maps\mp\_utility::setobjectivescoretext( "axis", &"OBJECTIVES_DM_SCORE" );
|
||||
maps\mp\_utility::setobjectivehinttext( "allies", &"OBJECTIVES_DM_HINT" );
|
||||
maps\mp\_utility::setobjectivehinttext( "axis", &"OBJECTIVES_DM_HINT" );
|
||||
initspawns();
|
||||
var_0 = [];
|
||||
maps\mp\gametypes\_gameobjects::main( var_0 );
|
||||
level.quickmessagetoall = 1;
|
||||
level.blockweapondrops = 1;
|
||||
level thread onplayerconnect();
|
||||
}
|
||||
|
||||
initspawns()
|
||||
{
|
||||
level.spawnmins = ( 0, 0, 0 );
|
||||
level.spawnmaxs = ( 0, 0, 0 );
|
||||
level.spawn_name = "mp_dm_spawn";
|
||||
maps\mp\gametypes\_spawnlogic::addspawnpoints( "allies", level.spawn_name );
|
||||
maps\mp\gametypes\_spawnlogic::addspawnpoints( "axis", level.spawn_name );
|
||||
level.mapcenter = maps\mp\gametypes\_spawnlogic::findboxcenter( level.spawnmins, level.spawnmaxs );
|
||||
setmapcenter( level.mapcenter );
|
||||
}
|
||||
|
||||
onplayerconnect()
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
player.gungamegunindex = 0;
|
||||
player.gungameprevgunindex = 0;
|
||||
player.stabs = 0;
|
||||
player.mysetbacks = 0;
|
||||
player.lastleveluptime = 0;
|
||||
player.showsetbacksplash = 0;
|
||||
|
||||
if ( level.matchrules_randomize )
|
||||
player.gunlist = common_scripts\utility::array_randomize( level.gun_guns );
|
||||
|
||||
player thread refillammo();
|
||||
player thread refillsinglecountammo();
|
||||
player thread watchforhostmigration();
|
||||
}
|
||||
}
|
||||
|
||||
getspawnpoint()
|
||||
{
|
||||
var_0 = maps\mp\gametypes\_spawnlogic::getteamspawnpoints( self.pers["team"] );
|
||||
|
||||
if ( level.ingraceperiod )
|
||||
var_1 = maps\mp\gametypes\_spawnlogic::getspawnpoint_random( var_0 );
|
||||
else
|
||||
var_1 = maps\mp\gametypes\_spawnscoring::getspawnpoint_freeforall( var_0 );
|
||||
|
||||
maps\mp\gametypes\_spawnlogic::recon_set_spawnpoint( var_1 );
|
||||
return var_1;
|
||||
}
|
||||
|
||||
gungameclass()
|
||||
{
|
||||
self.pers["class"] = "gamemode";
|
||||
self.pers["lastClass"] = "";
|
||||
self.pers["gamemodeLoadout"] = level.gun_loadout;
|
||||
self.class = self.pers["class"];
|
||||
self.lastclass = self.pers["lastClass"];
|
||||
self loadweapons( level.gun_guns[0] );
|
||||
}
|
||||
|
||||
onspawnplayer()
|
||||
{
|
||||
thread waitloadoutdone();
|
||||
}
|
||||
|
||||
waitloadoutdone()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
self endon( "disconnect" );
|
||||
level waittill( "player_spawned" );
|
||||
givenextgun( 1 );
|
||||
|
||||
if ( self.showsetbacksplash )
|
||||
{
|
||||
self.showsetbacksplash = 0;
|
||||
thread maps\mp\_events::decreasegunlevelevent();
|
||||
}
|
||||
}
|
||||
|
||||
watchforhostmigration()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
self endon( "disconnect" );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "player_migrated" );
|
||||
|
||||
if ( self.sessionstate == "spectator" )
|
||||
maps\mp\gametypes\_menus::handleclasschoicedisallowed();
|
||||
}
|
||||
}
|
||||
|
||||
onplayerscore( var_0, var_1, var_2 )
|
||||
{
|
||||
if ( var_0 == "gained_gun_score" )
|
||||
{
|
||||
var_3 = maps\mp\gametypes\_rank::getscoreinfovalue( var_0 );
|
||||
var_1 maps\mp\_utility::setextrascore0( var_1.extrascore0 + var_3 );
|
||||
var_1 maps\mp\gametypes\_gamescore::updatescorestatsffa( var_1, var_3 );
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( var_0 == "dropped_gun_score" )
|
||||
{
|
||||
var_4 = min( level.setbacklevel, self.score );
|
||||
return int( var_4 * -1 );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
onplayerkilled( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 )
|
||||
{
|
||||
if ( !isdefined( var_1 ) )
|
||||
return;
|
||||
|
||||
if ( var_3 == "MOD_TRIGGER_HURT" && !isplayer( var_1 ) )
|
||||
var_1 = self;
|
||||
|
||||
if ( var_3 == "MOD_FALLING" || isplayer( var_1 ) )
|
||||
{
|
||||
if ( var_3 == "MOD_FALLING" || var_1 == self || maps\mp\_utility::ismeleemod( var_3 ) && var_4 != "riotshield_mp" || var_4 == "boost_slam_mp" || var_4 == "iw5_dlcgun12loot8_mp" )
|
||||
{
|
||||
self playlocalsound( "mp_war_objective_lost" );
|
||||
self.gungameprevgunindex = self.gungamegunindex;
|
||||
self.gungamegunindex = int( max( 0, self.gungamegunindex - level.setbacklevel ) );
|
||||
self.lastkillweapon = undefined;
|
||||
|
||||
if ( self.gungameprevgunindex > self.gungamegunindex )
|
||||
{
|
||||
self.mysetbacks++;
|
||||
maps\mp\_utility::setextrascore1( self.mysetbacks );
|
||||
self.showsetbacksplash = 1;
|
||||
|
||||
if ( maps\mp\_utility::ismeleemod( var_3 ) || var_4 == "boost_slam_mp" || var_4 == "iw5_dlcgun12loot8_mp" )
|
||||
{
|
||||
var_1.stabs++;
|
||||
var_1.assists = var_1.stabs;
|
||||
var_1 thread maps\mp\_events::setbackenemygunlevelevent();
|
||||
|
||||
if ( self.gungameprevgunindex == level.gun_guns.size - 1 )
|
||||
{
|
||||
var_1 thread maps\mp\_events::setbackfirstplayergunlevelevent();
|
||||
var_1 maps\mp\_utility::leaderdialogonplayer( "humiliation", "status" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( var_3 == "MOD_PISTOL_BULLET" || var_3 == "MOD_RIFLE_BULLET" || var_3 == "MOD_HEAD_SHOT" || var_3 == "MOD_PROJECTILE" || var_3 == "MOD_PROJECTILE_SPLASH" || var_3 == "MOD_EXPLOSIVE" || var_3 == "MOD_IMPACT" || var_3 == "MOD_GRENADE" || var_3 == "MOD_GRENADE_SPLASH" || maps\mp\_utility::ismeleemod( var_3 ) && var_4 == "riotshield_mp" )
|
||||
{
|
||||
if ( isdefined( var_1.lastkillweapon ) && var_1.lastkillweapon == var_4 )
|
||||
return;
|
||||
|
||||
var_10 = level.gun_guns;
|
||||
|
||||
if ( level.matchrules_randomize )
|
||||
var_10 = var_1.gunlist;
|
||||
|
||||
var_11 = var_10[var_1.gungamegunindex];
|
||||
|
||||
if ( !issubstr( var_4, maps\mp\_utility::getbaseweaponname( var_11 ) ) )
|
||||
return;
|
||||
|
||||
var_1.lastkillweapon = var_4;
|
||||
|
||||
if ( var_1.lastleveluptime + 3000 > gettime() )
|
||||
var_1 thread maps\mp\_events::quickgunlevelevent();
|
||||
|
||||
var_1.lastleveluptime = gettime();
|
||||
var_1.gungameprevgunindex = var_1.gungamegunindex;
|
||||
var_1.gungamegunindex++;
|
||||
var_1 thread maps\mp\_events::increasegunlevelevent();
|
||||
|
||||
if ( var_1.gungamegunindex == level.gun_guns.size - 1 )
|
||||
{
|
||||
maps\mp\_utility::playsoundonplayers( "mp_enemy_obj_captured" );
|
||||
level thread maps\mp\_utility::teamplayercardsplash( "callout_top_gun_rank", var_1 );
|
||||
var_12 = gettime();
|
||||
|
||||
if ( level.lastguntimevo + 4500 < var_12 )
|
||||
{
|
||||
level thread maps\mp\_utility::leaderdialogonplayers( "lastgun", level.players, "status" );
|
||||
level.lastguntimevo = var_12;
|
||||
}
|
||||
}
|
||||
|
||||
if ( var_1.gungamegunindex < level.gun_guns.size )
|
||||
var_1 givenextgun( 0, var_4 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
givenextgun( var_0, var_1 )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
var_2 = getnextgun();
|
||||
self.gun_curgun = var_2;
|
||||
var_2 = addattachments( var_2 );
|
||||
|
||||
while ( !self loadweapons( var_2 ) )
|
||||
waitframe();
|
||||
|
||||
if ( isdefined( var_1 ) )
|
||||
self takeweapon( var_1 );
|
||||
else
|
||||
self takeallweapons();
|
||||
|
||||
maps\mp\_utility::_giveweapon( var_2 );
|
||||
self switchtoweaponimmediate( var_2 );
|
||||
|
||||
if ( isdefined( var_0 ) && var_0 == 1 )
|
||||
self setspawnweapon( var_2 );
|
||||
|
||||
var_3 = maps\mp\_utility::getbaseweaponname( var_2 );
|
||||
self.pers["primaryWeapon"] = var_3;
|
||||
self.primaryweapon = var_2;
|
||||
self givestartammo( var_2 );
|
||||
self switchtoweapon( var_2 );
|
||||
self.gungameprevgunindex = self.gungamegunindex;
|
||||
}
|
||||
|
||||
getnextgun()
|
||||
{
|
||||
var_0 = level.gun_guns;
|
||||
var_1 = [];
|
||||
var_2 = undefined;
|
||||
|
||||
if ( level.matchrules_randomize )
|
||||
var_0 = self.gunlist;
|
||||
|
||||
var_2 = var_0[self.gungamegunindex];
|
||||
var_1[var_1.size] = var_2;
|
||||
|
||||
if ( self.gungamegunindex + 1 < var_0.size )
|
||||
var_1[var_1.size] = var_0[self.gungamegunindex + 1];
|
||||
|
||||
if ( self.gungamegunindex > 0 )
|
||||
var_1[var_1.size] = var_0[self.gungamegunindex - 1];
|
||||
|
||||
self loadweapons( var_1 );
|
||||
return var_2;
|
||||
}
|
||||
|
||||
addattachments( var_0 )
|
||||
{
|
||||
if ( getdvarint( "scr_gun_loot_variants", 0 ) == 1 )
|
||||
{
|
||||
var_1 = tablelookup( "mp/statstable.csv", 4, var_0, 40 );
|
||||
|
||||
if ( isdefined( var_1 ) && var_1 != "" )
|
||||
var_2 = maps\mp\gametypes\_class::buildweaponname( var_0, var_1, "none", "none", 0, 0 );
|
||||
else
|
||||
var_2 = maps\mp\gametypes\_class::buildweaponname( var_0, "none", "none", "none", 0, 0 );
|
||||
}
|
||||
else
|
||||
var_2 = maps\mp\gametypes\_class::buildweaponname( var_0, "none", "none", "none", 0, 0 );
|
||||
|
||||
return var_2;
|
||||
}
|
||||
|
||||
ontimelimit()
|
||||
{
|
||||
level.finalkillcam_winner = "none";
|
||||
var_0 = gethighestprogressedplayers();
|
||||
|
||||
if ( !isdefined( var_0 ) || !var_0.size )
|
||||
thread maps\mp\gametypes\_gamelogic::endgame( "tie", game["end_reason"]["time_limit_reached"] );
|
||||
else if ( var_0.size == 1 )
|
||||
thread maps\mp\gametypes\_gamelogic::endgame( var_0[0], game["end_reason"]["time_limit_reached"] );
|
||||
else if ( var_0[var_0.size - 1].gungamegunindex > var_0[var_0.size - 2].gungamegunindex )
|
||||
thread maps\mp\gametypes\_gamelogic::endgame( var_0[var_0.size - 1], game["end_reason"]["time_limit_reached"] );
|
||||
else
|
||||
thread maps\mp\gametypes\_gamelogic::endgame( "tie", game["end_reason"]["time_limit_reached"] );
|
||||
}
|
||||
|
||||
gethighestprogressedplayers()
|
||||
{
|
||||
var_0 = -1;
|
||||
var_1 = [];
|
||||
|
||||
foreach ( var_3 in level.players )
|
||||
{
|
||||
if ( isdefined( var_3.gungamegunindex ) && var_3.gungamegunindex >= var_0 )
|
||||
{
|
||||
var_0 = var_3.gungamegunindex;
|
||||
var_1[var_1.size] = var_3;
|
||||
}
|
||||
}
|
||||
|
||||
return var_1;
|
||||
}
|
||||
|
||||
refillammo()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
self endon( "disconnect" );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "reload" );
|
||||
self givestartammo( self.primaryweapon );
|
||||
}
|
||||
}
|
||||
|
||||
refillsinglecountammo()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
self endon( "disconnect" );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if ( maps\mp\_utility::isreallyalive( self ) && self.team != "spectator" && isdefined( self.primaryweapon ) && self getammocount( self.primaryweapon ) == 0 )
|
||||
{
|
||||
wait 2;
|
||||
self notify( "reload" );
|
||||
wait 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
setguns()
|
||||
{
|
||||
var_0 = getdvarint( "scr_gun_loot_variants", 0 );
|
||||
level.gun_guns = [];
|
||||
level.gun_guns[0] = "iw5_asm1";
|
||||
level.gun_guns[1] = "iw5_asaw";
|
||||
level.gun_guns[2] = "iw5_himar";
|
||||
level.gun_guns[3] = "iw5_kf5";
|
||||
level.gun_guns[4] = "iw5_hbra3";
|
||||
level.gun_guns[5] = "iw5_mp11";
|
||||
level.gun_guns[6] = "iw5_ak12";
|
||||
level.gun_guns[7] = "iw5_sn6";
|
||||
level.gun_guns[8] = "iw5_arx160";
|
||||
level.gun_guns[9] = "iw5_hmr9";
|
||||
level.gun_guns[10] = "iw5_maul";
|
||||
level.gun_guns[11] = "iw5_dlcgun3";
|
||||
level.gun_guns[12] = "iw5_em1";
|
||||
level.gun_guns[13] = "iw5_uts19";
|
||||
level.gun_guns[14] = "iw5_lsat";
|
||||
level.gun_guns[15] = "iw5_rhino";
|
||||
level.gun_guns[16] = "iw5_exoxmg";
|
||||
level.gun_guns[17] = "iw5_epm3";
|
||||
level.gun_guns[18] = "iw5_mors";
|
||||
level.gun_guns[19] = "iw5_rw1";
|
||||
level.gun_guns[20] = "iw5_vbr";
|
||||
level.gun_guns[21] = "iw5_pbw";
|
||||
level.gun_guns[22] = "iw5_thor";
|
||||
level.gun_guns[23] = "iw5_mahem";
|
||||
level.gun_guns[24] = "iw5_exocrossbow";
|
||||
|
||||
if ( isdefined( var_0 ) && var_0 )
|
||||
{
|
||||
for ( var_1 = 0; var_1 < level.gun_guns.size; var_1++ )
|
||||
{
|
||||
var_2 = level.gun_guns[var_1];
|
||||
|
||||
if ( maps\mp\_utility::getweaponclass( var_2 ) == "weapon_projectile" || maps\mp\_utility::getweaponclass( var_2 ) == "weapon_sec_special" )
|
||||
var_2 = assign_random_loot_variant( var_2, 4 );
|
||||
else
|
||||
var_2 = assign_random_loot_variant( var_2, 10 );
|
||||
|
||||
level.gun_guns[var_1] = var_2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assign_random_loot_variant( var_0, var_1 )
|
||||
{
|
||||
var_2 = randomint( var_1 );
|
||||
|
||||
switch ( var_2 )
|
||||
{
|
||||
case 0:
|
||||
var_0 += "loot0";
|
||||
break;
|
||||
case 1:
|
||||
var_0 += "loot1";
|
||||
break;
|
||||
case 2:
|
||||
var_0 += "loot2";
|
||||
break;
|
||||
case 3:
|
||||
var_0 += "loot3";
|
||||
break;
|
||||
case 4:
|
||||
var_0 += "loot4";
|
||||
break;
|
||||
case 5:
|
||||
var_0 += "loot5";
|
||||
break;
|
||||
case 6:
|
||||
var_0 += "loot6";
|
||||
break;
|
||||
case 7:
|
||||
var_0 += "loot7";
|
||||
break;
|
||||
case 8:
|
||||
var_0 += "loot8";
|
||||
break;
|
||||
case 9:
|
||||
var_0 += "loot9";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return var_0;
|
||||
}
|
||||
|
||||
setspecialloadout()
|
||||
{
|
||||
level.gun_loadout = maps\mp\gametypes\_class::getemptyloadout();
|
||||
|
||||
if ( maps\mp\gametypes\_class::isvalidprimary( level.gun_guns[0] ) )
|
||||
level.gun_loadout["loadoutPrimary"] = level.gun_guns[0];
|
||||
else if ( maps\mp\gametypes\_class::isvalidsecondary( level.gun_guns[0], 0 ) )
|
||||
level.gun_loadout["loadoutSecondary"] = level.gun_guns[0];
|
||||
}
|
23
scripts/_team_balance.gsc
Normal file
23
scripts/_team_balance.gsc
Normal file
@ -0,0 +1,23 @@
|
||||
init()
|
||||
{
|
||||
// define onteamselection callback function used in balanceteams()
|
||||
level.onteamselection = ::set_team;
|
||||
}
|
||||
|
||||
set_team(team)
|
||||
{
|
||||
if (team != self.pers["team"])
|
||||
{
|
||||
self.switching_teams = true;
|
||||
self.joining_team = team;
|
||||
self.leaving_team = self.pers["team"];
|
||||
}
|
||||
|
||||
if (self.sessionstate == "playing")
|
||||
{
|
||||
self suicide();
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_menus::addtoteam(team);
|
||||
maps\mp\gametypes\_menus::endrespawnnotify();
|
||||
}
|
238
ui_scripts/endgame/__init__.lua
Normal file
238
ui_scripts/endgame/__init__.lua
Normal file
@ -0,0 +1,238 @@
|
||||
if (game:issingleplayer() or Engine.InFrontend()) then
|
||||
return
|
||||
end
|
||||
|
||||
f0_local0 = function(f1_arg0, f1_arg1)
|
||||
LUI.FlowManager.RequestLeaveMenu(f1_arg0)
|
||||
end
|
||||
|
||||
f0_local1 = function(f2_arg0, f2_arg1)
|
||||
f2_arg0:setText(f2_arg1.message_text)
|
||||
f2_arg0:dispatchEventToRoot({
|
||||
name = "resize_popup"
|
||||
})
|
||||
end
|
||||
|
||||
f0_local2 = function(f3_arg0)
|
||||
Engine.ExecFirstClient("xpartybackout")
|
||||
Engine.ExecFirstClient("disconnect")
|
||||
end
|
||||
|
||||
local f0_local3 = function(f4_arg0)
|
||||
if Engine.GetDvarBool("squad_match") then
|
||||
Engine.ExecFirstClient("disconnect")
|
||||
else
|
||||
Engine.ExecFirstClient("xpartydisbandafterround")
|
||||
Engine.ExecFirstClient("disconnect")
|
||||
end
|
||||
end
|
||||
|
||||
local f0_local4 = function(f5_arg0)
|
||||
return Engine.GetOnlineGame()
|
||||
end
|
||||
|
||||
local f0_local5 = function(f6_arg0)
|
||||
if f0_local4(f6_arg0) then
|
||||
Engine.ExecFirstClient("xstopprivateparty")
|
||||
Engine.ExecFirstClient("disconnect")
|
||||
Engine.ExecFirstClient("xblive_privatematch 0")
|
||||
Engine.ExecFirstClient("onlinegame 1")
|
||||
Engine.ExecFirstClient("xstartprivateparty")
|
||||
else
|
||||
Engine.ExecFirstClient("disconnect")
|
||||
end
|
||||
end
|
||||
|
||||
local f0_local6 = function(f7_arg0)
|
||||
local f7_local0 = Engine.GetDvarBool("squad_match")
|
||||
Engine.ExecFirstClient("xstopprivateparty")
|
||||
Engine.ExecFirstClient("xpartydisbandafterround")
|
||||
if f7_local0 then
|
||||
Engine.ExecFirstClient("disconnect")
|
||||
Engine.ExecFirstClient("xblive_privatematch 0")
|
||||
Engine.ExecFirstClient("onlinegame 1")
|
||||
Engine.ExecFirstClient("xstartprivateparty")
|
||||
else
|
||||
Engine.NotifyServer("end_game", 1)
|
||||
Engine.ExecFirstClient("xstartprivateparty")
|
||||
end
|
||||
end
|
||||
|
||||
local f0_local7 = function(f8_arg0, f8_arg1)
|
||||
local f8_local0 = Engine.GetDvarBool("sv_running")
|
||||
Game.HandleLeavePauseMenu()
|
||||
if f8_local0 then
|
||||
Engine.NotifyServer("end_game", 1)
|
||||
else
|
||||
f0_local5(f8_arg0)
|
||||
end
|
||||
LUI.FlowManager.RequestCloseAllMenus(f8_arg0)
|
||||
end
|
||||
|
||||
local f0_local8 = function(f9_arg0, f9_arg1)
|
||||
LUI.FlowManager.RequestLeaveMenu(f9_arg0)
|
||||
Game.HandleLeavePauseMenu()
|
||||
Engine.Exec("onPlayerQuit")
|
||||
local f9_local0 = Engine.GetDvarBool("sv_running")
|
||||
if Engine.GetDvarBool("squad_match") then
|
||||
Squad.PostMatch(0, 0, 0, 0, true)
|
||||
end
|
||||
if f9_local0 then
|
||||
f0_local3(f9_arg0)
|
||||
else
|
||||
f0_local2(f9_arg0)
|
||||
end
|
||||
LUI.FlowManager.RequestCloseAllMenus(f9_arg0)
|
||||
end
|
||||
|
||||
local f0_local9 = function(f10_arg0, f10_arg1)
|
||||
LUI.FlowManager.RequestLeaveMenu(f10_arg0)
|
||||
Game.HandleLeavePauseMenu()
|
||||
Engine.Exec("onPlayerQuit")
|
||||
local f10_local0 = Engine.GetDvarBool("sv_running")
|
||||
if Engine.GetDvarBool("squad_match") then
|
||||
Squad.PostMatch(0, 0, 0, 0, true)
|
||||
end
|
||||
if f10_local0 then
|
||||
f0_local6(f10_arg0)
|
||||
else
|
||||
f0_local5(f10_arg0)
|
||||
end
|
||||
LUI.FlowManager.RequestCloseAllMenus(f10_arg0)
|
||||
end
|
||||
|
||||
local f0_local10 = function(f11_arg0)
|
||||
local f11_local0 = Lobby.IsInPrivateParty()
|
||||
if f11_local0 then
|
||||
f11_local0 = Lobby.IsPrivatePartyHost()
|
||||
if f11_local0 then
|
||||
f11_local0 = not Lobby.IsAloneInPrivateParty()
|
||||
end
|
||||
end
|
||||
return f11_local0
|
||||
end
|
||||
|
||||
local f0_local11 = function(f12_arg0, f12_arg1)
|
||||
if f0_local10(f12_arg0) then
|
||||
LUI.FlowManager.RequestLeaveMenu(f12_arg0, true)
|
||||
LUI.FlowManager.RequestAddMenu(f12_arg0, "popup_pull_party", false)
|
||||
else
|
||||
Game.HandleLeavePauseMenu()
|
||||
Engine.Exec("onPlayerQuit")
|
||||
local f12_local0 = Engine.GetDvarBool("sv_running")
|
||||
if Engine.GetDvarBool("squad_match") then
|
||||
Squad.PostMatch(0, 0, 0, 0, true)
|
||||
end
|
||||
if f12_local0 then
|
||||
f0_local6(f12_arg0)
|
||||
else
|
||||
f0_local5(f12_arg0)
|
||||
end
|
||||
LUI.FlowManager.RequestCloseAllMenus(f12_arg0)
|
||||
end
|
||||
end
|
||||
|
||||
local f0_local12 = function()
|
||||
local self = LUI.UIElement.new()
|
||||
self.id = "end_game_id"
|
||||
self:registerAnimationState("default", {
|
||||
topAnchor = true,
|
||||
leftAnchor = true,
|
||||
bottomAnchor = true,
|
||||
rightAnchor = true,
|
||||
top = 0,
|
||||
left = 0,
|
||||
bottom = 0,
|
||||
right = 0,
|
||||
alpha = 1
|
||||
})
|
||||
self:animateToState("default", 0)
|
||||
LUI.MenuBuilder.BuildAddChild(self, {
|
||||
type = "generic_yesno_popup",
|
||||
id = "privateGame_options_list_id",
|
||||
properties = {
|
||||
message_text_alignment = LUI.Alignment.Left,
|
||||
message_text = Engine.Localize("@LUA_MENU_END_GAME_DESC"),
|
||||
popup_title = Engine.Localize("@LUA_MENU_LEAVE_GAME_TITLE"),
|
||||
padding_top = 12,
|
||||
yes_action = f0_local7
|
||||
}
|
||||
})
|
||||
local f13_local1 = LUI.UIBindButton.new()
|
||||
f13_local1.id = "endBackToGameStartButton"
|
||||
f13_local1:registerEventHandler("button_start", f0_local0)
|
||||
self:addElement(f13_local1)
|
||||
return self
|
||||
end
|
||||
|
||||
local f0_local13 = function()
|
||||
local self = LUI.UIElement.new()
|
||||
self.id = "leave_game_id"
|
||||
self:registerAnimationState("default", {
|
||||
topAnchor = true,
|
||||
leftAnchor = true,
|
||||
bottomAnchor = true,
|
||||
rightAnchor = true,
|
||||
top = 0,
|
||||
left = 0,
|
||||
bottom = 0,
|
||||
right = 0,
|
||||
alpha = 1
|
||||
})
|
||||
self:animateToState("default", 0)
|
||||
LUI.MenuBuilder.BuildAddChild(self, {
|
||||
type = "generic_yesno_popup",
|
||||
id = "publicGame_options_list_id",
|
||||
properties = {
|
||||
message_text_alignment = LUI.Alignment.Left,
|
||||
message_text = Engine.Localize("@LUA_MENU_LEAVE_GAME_DESC"),
|
||||
popup_title = Engine.Localize("@LUA_MENU_LEAVE_GAME_TITLE"),
|
||||
padding_top = 12,
|
||||
yes_action = f0_local11
|
||||
}
|
||||
})
|
||||
local f14_local1 = LUI.UIBindButton.new()
|
||||
f14_local1.id = "leaveBackToGameStartButton"
|
||||
f14_local1:registerEventHandler("button_start", f0_local0)
|
||||
self:addElement(f14_local1)
|
||||
return self
|
||||
end
|
||||
|
||||
local f0_local14 = function()
|
||||
local self = LUI.UIElement.new()
|
||||
self.id = "pull_party_out_id"
|
||||
self:registerAnimationState("default", {
|
||||
topAnchor = true,
|
||||
leftAnchor = true,
|
||||
bottomAnchor = true,
|
||||
rightAnchor = true,
|
||||
top = 0,
|
||||
left = 0,
|
||||
bottom = 0,
|
||||
right = 0,
|
||||
alpha = 1
|
||||
})
|
||||
self:animateToState("default", 0)
|
||||
LUI.MenuBuilder.BuildAddChild(self, {
|
||||
type = "generic_yesno_popup",
|
||||
id = "party_pullout_list_id",
|
||||
properties = {
|
||||
message_text_alignment = LUI.Alignment.Left,
|
||||
message_text = Engine.Localize("@LUA_MENU_PULL_PARTY_DESC"),
|
||||
popup_title = Engine.Localize("@LUA_MENU_LEAVE_GAME_TITLE"),
|
||||
padding_top = 12,
|
||||
yes_action = f0_local8,
|
||||
no_action = f0_local9,
|
||||
cancel_means_no = false
|
||||
}
|
||||
})
|
||||
local f15_local1 = LUI.UIBindButton.new()
|
||||
f15_local1.id = "leavePullPartyButton"
|
||||
f15_local1:registerEventHandler("button_start", f0_local0)
|
||||
self:addElement(f15_local1)
|
||||
return self
|
||||
end
|
||||
|
||||
LUI.MenuBuilder.m_types_build["popup_end_game"] = f0_local12
|
||||
LUI.MenuBuilder.m_types_build["popup_leave_game"] = f0_local13
|
||||
LUI.MenuBuilder.m_types_build["popup_pull_party"] = f0_local14
|
6
ui_scripts/hud_info/__init__.lua
Normal file
6
ui_scripts/hud_info/__init__.lua
Normal file
@ -0,0 +1,6 @@
|
||||
if (game:issingleplayer()) then
|
||||
return
|
||||
end
|
||||
|
||||
require("settings")
|
||||
require("hud")
|
163
ui_scripts/hud_info/hud.lua
Normal file
163
ui_scripts/hud_info/hud.lua
Normal file
@ -0,0 +1,163 @@
|
||||
local mphud = require("LUI.mp_hud.MPHud")
|
||||
local barheight = 18
|
||||
local textheight = 13
|
||||
local textoffsety = barheight / 2 - textheight / 2
|
||||
|
||||
function createinfobar()
|
||||
local infobar = LUI.UIElement.new({
|
||||
left = 180,
|
||||
top = 5,
|
||||
height = barheight,
|
||||
width = 70,
|
||||
leftAnchor = true,
|
||||
topAnchor = true
|
||||
})
|
||||
|
||||
infobar:registerAnimationState("hud_on", {
|
||||
alpha = 1
|
||||
})
|
||||
|
||||
infobar:registerAnimationState("hud_off", {
|
||||
alpha = 0
|
||||
})
|
||||
|
||||
return infobar
|
||||
end
|
||||
|
||||
function populateinfobar(infobar)
|
||||
elementoffset = 0
|
||||
|
||||
if (Engine.GetDvarBool("cg_infobar_fps")) then
|
||||
infobar:addElement(infoelement({
|
||||
label = "FPS: ",
|
||||
getvalue = function()
|
||||
return game:getfps()
|
||||
end,
|
||||
width = 70,
|
||||
interval = 100
|
||||
}))
|
||||
end
|
||||
|
||||
if (Engine.GetDvarBool("cg_infobar_ping")) then
|
||||
infobar:addElement(infoelement({
|
||||
label = "Latency: ",
|
||||
getvalue = function()
|
||||
return game:getping() .. " ms"
|
||||
end,
|
||||
width = 115,
|
||||
interval = 100
|
||||
}))
|
||||
end
|
||||
end
|
||||
|
||||
function infoelement(data)
|
||||
local container = LUI.UIElement.new({
|
||||
bottomAnchor = true,
|
||||
leftAnchor = true,
|
||||
topAnchor = true,
|
||||
width = data.width,
|
||||
left = elementoffset
|
||||
})
|
||||
|
||||
elementoffset = elementoffset + data.width + 10
|
||||
|
||||
local background = LUI.UIImage.new({
|
||||
bottomAnchor = true,
|
||||
leftAnchor = true,
|
||||
topAnchor = true,
|
||||
rightAnchor = true,
|
||||
color = {
|
||||
r = 0.3,
|
||||
g = 0.3,
|
||||
b = 0.3,
|
||||
},
|
||||
material = RegisterMaterial("distort_hud_bkgnd_ui_blur")
|
||||
})
|
||||
|
||||
local labelfont = RegisterFont("fonts/bodyFontBold", textheight)
|
||||
|
||||
local label = LUI.UIText.new({
|
||||
left = 5,
|
||||
top = textoffsety + 1,
|
||||
font = labelfont,
|
||||
height = textheight,
|
||||
leftAnchor = true,
|
||||
topAnchor = true,
|
||||
color = {
|
||||
r = 0.8,
|
||||
g = 0.8,
|
||||
b = 0.8,
|
||||
}
|
||||
})
|
||||
|
||||
label:setText(data.label)
|
||||
|
||||
local _, _, left = GetTextDimensions(data.label, labelfont, textheight)
|
||||
local value = LUI.UIText.new({
|
||||
left = left + 5,
|
||||
top = textoffsety,
|
||||
font = RegisterFont("fonts/bodyFont", textheight),
|
||||
height = textheight + 1,
|
||||
leftAnchor = true,
|
||||
topAnchor = true,
|
||||
color = {
|
||||
r = 0.6,
|
||||
g = 0.6,
|
||||
b = 0.6,
|
||||
}
|
||||
})
|
||||
|
||||
value:addElement(LUI.UITimer.new(data.interval, "update"))
|
||||
value:setText(data.getvalue())
|
||||
value:addEventHandler("update", function()
|
||||
value:setText(data.getvalue())
|
||||
end)
|
||||
|
||||
container:addElement(background)
|
||||
container:addElement(label)
|
||||
container:addElement(value)
|
||||
|
||||
return container
|
||||
end
|
||||
|
||||
local updatehudvisibility = mphud.updateHudVisibility
|
||||
mphud.updateHudVisibility = function(a1, a2)
|
||||
updatehudvisibility(a1, a2)
|
||||
|
||||
local root = Engine.GetLuiRoot()
|
||||
local menus = root:AnyActiveMenusInStack()
|
||||
local infobar = root.infobar
|
||||
|
||||
if (not infobar) then
|
||||
return
|
||||
end
|
||||
|
||||
if (menus) then
|
||||
infobar:animateToState("hud_off")
|
||||
else
|
||||
infobar:animateToState("hud_on")
|
||||
end
|
||||
end
|
||||
|
||||
local mphud = LUI.MenuBuilder.m_types_build["mp_hud"]
|
||||
LUI.MenuBuilder.m_types_build["mp_hud"] = function()
|
||||
local hud = mphud()
|
||||
|
||||
if (Engine.InFrontend()) then
|
||||
return hud
|
||||
end
|
||||
|
||||
local infobar = createinfobar()
|
||||
local root = Engine.GetLuiRoot()
|
||||