This commit is contained in:
6arelyFuture 2023-12-25 20:34:53 +01:00
commit b69e014cbd
26 changed files with 12739 additions and 0 deletions

2
.gitattributes vendored Normal file
View 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
View 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
View 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
View 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

Binary file not shown.

1050
dw/lootConfig_tu22.csv Normal file

File diff suppressed because it is too large Load Diff

1
dw/mm.cfg Normal file
View 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

Binary file not shown.

171
dw/social_tu22.cfg Normal file
View 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
View 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
1 #Game Language to offerids mapping
2 #english,EN
3 #french,FR
4 #frenchcan,FR
5 #german,DE-LV
6 #austrian,DE-FV
7 #italian,IT
8 #spanish,ES
9 #british,EN
10 #russian,RU
11 #polish,PL
12 #korean,EN
13 #japanese,EN-JA
14 #fulljap,JA
15 #visibility refer to igsProductVisibility_e
16 # 0 - Visible Always
17 # 1 - Hide Always ( Hide in store and in Front End )
18 # 2 - Visible for season pass holders ( Hide in store if player does not own season pass )
19 # 3 - Visible for non season pass holders ( Hide in store if player owns season pass )
20 # 4 - Hide in CAC / CAO ( Show in Store,Hide in Front End )
21 # 5 - Early Access ( Hide in the store,Show in Front End )
22 version,version_id,10
23 #type = product,UID,Product ID,Image Name,dlcName,category,#Language List separated by space delimiter,#visibility,#productgroup,#seenIndex,#name
24 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
25 product,product_2,318791,img_store_mappacks_havok,dlc2,mappacks,all,0,,,# Havoc
26 product,product_3,318792,img_store_mappacks_ascendance,dlc3,mappacks,all,0,,32,# Ascendance
27 product,product_4,318793,img_store_mappacks_supremacy,dlc4,mappacks,all,0,,,# Supremacy
28 product,product_5,318794,img_store_mappacks_reckoning,dlc5,mappacks,all,0,,,# Reckoning
29 # MDLC 2.5 - Standard Packs
30 product,product_137,343596,img_store_personpacks_ice,mdlc62,personpacks,all,0,,34,# Ice Pack
31 product,product_138,343597,img_store_personpacks_disco,mdlc63,personpacks,all,0,,35,# Disco Pack
32 product,product_139,343598,img_store_personpacks_cards,mdlc64,personpacks,all,0,,36,# Cards Pack
33 product,product_140,343599,img_store_personpacks_jackpot,mdlc65,personpacks,all,0,,37,# Jackpot Pack
34 product,product_141,343590,img_store_personpacks_blackout,mdlc66,personpacks,all,1,,38,# BLOPS3 Pack
35 # MDLC 2 - Standard Packs
36 product,product_6,343591,img_store_personpacks_tiki,mdlc34,personpacks,all,0,,,# Tiki
37 product,product_7,343592,img_store_personpacks_gasfire,mdlc35,personpacks,all,0,,,# Gas Fire
38 product,product_8,343593,img_store_personpacks_leaf,mdlc36,personpacks,all,0,,,# Leaf
39 product,product_9,343594,img_store_personpacks_psych,mdlc37,personpacks,all,0,,,# Psychadelic
40 product,product_10,331060,img_store_personpacks_magma,mdlc7,personpacks,all,0,,,# Magma
41 product,product_11,331061,img_store_personpacks_lightning,mdlc8,personpacks,all,0,,,# Lightning
42 product,product_12,331062,img_store_personpacks_hide,mdlc9,personpacks,all,0,,,# Hide
43 product,product_13,331063,img_store_personpacks_nanotech,mdlc10,personpacks,all,0,,,# Nanotech
44 # MDLC 2.5 Premium Personalization Packs
45 product,product_136,343590,img_store_personpacks_premium_blackout,mdlc61,PREMPERSONPACKS,all,1,,33,# BLOPS3 Prem Pack
46 # MDLC 2 - Premium Personalization Packs
47 product,product_14,343596,img_store_personpacks_premium_tiki,mdlc38,prempersonpacks,all,1,,,# Premium Tiki
48 product,product_15,343597,img_store_personpacks_premium_gasfire,mdlc39,prempersonpacks,all,1,,,# Premium Gas Fire
49 product,product_16,343598,img_store_personpacks_premium_leaf,mdlc40,prempersonpacks,all,1,,,# Premium Leaf
50 product,product_17,343599,img_store_personpacks_premium_psych,mdlc41,prempersonpacks,all,1,,,# Premium Psychadelic
51 product,product_18,343600,img_store_personpacks_premium_cod_champs,mdlc42,prempersonpacks,all,0,,,# Premium Cod Champs
52 product,product_19,331064,img_store_personpacks_premium_magma,mdlc11,prempersonpacks,all,0,,,# Premium Magma
53 product,product_20,331065,img_store_personpacks_premium_lightning,mdlc12,prempersonpacks,all,0,,,# Premium Lightning
54 product,product_21,331066,img_store_personpacks_premium_hide,mdlc13,prempersonpacks,all,0,,,# Premium Hide
55 product,product_22,331067,img_store_personpacks_premium_nanotech,mdlc14,prempersonpacks,all,0,,,# Premium Nanotech
56 # MDLC 2 - Exo Packs
57 product,product_23,343601,img_store_operatorpacks_cowboy,mdlc101,operatorpacks,all,1,,,# Cowboy
58 product,product_24,343602,img_store_operatorpacks_surfer,mdlc43,operatorpacks,all,1,,,# Surfer
59 product,product_25,343604,img_store_operatorpacks_octopus,mdlc45,operatorpacks,all,1,,,# Octopus
60 # MDLC 2 - Lady Gear Exo Packs
61 product,product_26,345600,img_store_operatorpacks_rose_camo,mdlc59,OPERATORPACKS,all,1,,,# Rose Camo / Passionate
62 product,product_27,345601,img_store_operatorpacks_white_blue,mdlc60,OPERATORPACKS,all,1,,,# White Blue / Tenacious
63 product,product_28,5f3f93ca-03ab-4fdd-aa00-63f17fb08d79,img_store_operatorpacks_steam_punk,mdlc15,operatorpacks,all,0,,,# Steam Punk
64 product,product_29,beb1715c-5825-4ae3-844d-1f72231f9306,img_store_operatorpacks_panda,mdlc16,operatorpacks,all,0,,,# Panda
65 product,product_30,05e1b887-e323-4aaf-b95b-12e9512f76aa,img_store_operatorpacks_bali_mask,mdlc17,operatorpacks,all,0,,,#Bali Mask
66 product,product_31,33c64260-e212-4794-8abe-9810f04471e7,img_store_operatorpacks_classic_biker,mdlc18,operatorpacks,all,0,,,#Classic Biker
67 # MDLC 2 - Flags
68 product,product_32,334460,img_store_flag_packs_argentinia,mdlc46,flagpacks,all,1,,,# Argentina Flag
69 product,product_33,343605,img_store_flag_packs_austria,mdlc47,flagpacks,all,1,,,# Austria Flag
70 product,product_34,333086,img_store_flag_packs_brazil,mdlc26,flagpacks,all,1,,,# Brazil Flag
71 product,product_35,343606,img_store_flag_packs_columbia,mdlc48,flagpacks,all,1,,,# Columbia Flag
72 product,product_36,343607,img_store_flag_packs_ireland,mdlc49,flagpacks,all,1,,,# Ireland Flag
73 product,product_37,343608,img_store_flag_packs_new_zealand,mdlc50,flagpacks,all,1,,,# New Zealand Flag
74 product,product_38,343609,img_store_flag_packs_portugal,mdlc51,flagpacks,all,1,,,# Portugal Flag
75 product,product_39,331072,img_store_flag_packs_usa,mdlc19,flagpacks,all,0,,,# USA Flag
76 product,product_40,333080,img_store_flag_packs_uk,mdlc20,flagpacks,all,0,,,# UK Flag
77 product,product_41,333081,img_store_flag_packs_canada,mdlc21,flagpacks,all,0,,,# Canada Flag
78 product,product_42,333082,img_store_flag_packs_france,mdlc22,flagpacks,all,0,,,# France Flag
79 product,product_43,333083,img_store_flag_packs_germany,mdlc23,flagpacks,all,0,,,# Germany Flag
80 product,product_44,333084,img_store_flag_packs_australia,mdlc24,flagpacks,all,0,,,# Australia Flag
81 product,product_45,333087,img_store_flag_packs_italy,mdlc27,flagpacks,all,0,,,# Italy Flag
82 product,product_46,333088,img_store_flag_packs_spain,mdlc28,flagpacks,all,0,,,# Spain Flag
83 product,product_47,334220,img_store_flag_packs_netherlands,mdlc29,flagpacks,all,0,,,# Netherlands Flag
84 product,product_48,334221,img_store_flag_packs_japan,mdlc30,flagpacks,all,0,,,# Japan Flag
85 product,product_49,343610,img_store_cac_slots,mdlc52,otheritems,all,0,,,# Create A Class Slots
86 product,product_50,343612,img_store_armory_slots1,mdlc54,otheritems,all,0,armoryslots,,# Armory Slots
87 product,product_51,343613,img_store_armory_slots2,mdlc55,otheritems,all,0,armoryslots,,# Armory Slots
88 product,product_52,343614,img_store_armory_slots3,mdlc56,otheritems,all,0,armoryslots,,# Armory Slots
89 product,product_53,343615,img_store_armory_slots4,mdlc57,otheritems,all,0,armoryslots,,# Armory Slots
90 product,product_54,343616,img_store_armory_slots5,mdlc58,otheritems,all,0,armoryslots,,# Armory Slots
91 product,product_55,318790,img_store_mappacks_atlas_gorge,dlc1,otheritems,all,0,,,# Atlas Gorge
92 product,product_56,00000,img_store_supplydrops_1,supdrp61,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
93 product,product_57,76a554fb-c4b4-4a3e-b913-dcd0c61de638,img_store_supplydrops_1,supdrp62,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
94 product,product_58,ed37f45c-1d3c-451c-87c3-0bb46ca51fa6,img_store_supplydrops_1,supdrp63,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
95 product,product_59,518865ed-dfae-4d8a-836e-e0e5dc2c3d08,img_store_supplydrops_1,supdrp64,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
96 product,product_60,3b9f4478-900d-43f9-b4b1-eb1f901ce961,img_store_supplydrops_1,supdrp65,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
97 product,product_61,f20bfb05-cca9-4a61-971b-c6c620b928b0,img_store_supplydrops_1,supdrp66,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
98 product,product_62,a75ee2b8-42f6-46b1-a45f-db6e64a98872,img_store_supplydrops_1,supdrp67,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
99 product,product_63,20f97f87-52a7-461e-8b78-9a54080bd400,img_store_supplydrops_1,supdrp68,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
100 product,product_64,f03ad620-bc8a-4f4f-a3b0-3630347b8a30,img_store_supplydrops_1,supdrp69,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
101 product,product_65,ebe31b71-f8cc-4f0d-9915-6a13d53af74b,img_store_supplydrops_1,supdrp70,supplydrops,all,1,supplydrops_1,,# Supply Drops 1
102 product,product_111,b05003d8-bf77-4d04-a0cc-d8a36425b813,img_store_supplydrops_1,supdrp72,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
103 product,product_112,2b7b516c-8e7e-45b7-92fd-dc2040c08d6e,img_store_supplydrops_1,supdrp73,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
104 product,product_113,5de14218-1543-4fc5-ae89-eb4037109234,img_store_supplydrops_1,supdrp74,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
105 product,product_114,3404d799-4341-46de-95ea-c6bdd47c8e39,img_store_supplydrops_1,supdrp75,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
106 product,product_115,3f05faaf-a59b-4807-ad58-0bd28f520cc9,img_store_supplydrops_1,supdrp76,supplydrops,all,1,supplydrops_1,22,# Supply Drops 1
107 product,product_66,6031ecd6-a183-4c71-9022-9685dde26ebd,img_store_supplydrops_3,supdrp91,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
108 product,product_67,6aebd756-0b60-4ad4-8639-d27db2ae79e0,img_store_supplydrops_3,supdrp92,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
109 product,product_68,93a0c86c-c7af-464c-88d7-6e0519d482f4,img_store_supplydrops_3,supdrp93,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
110 product,product_69,6ca3fa67-8844-4128-89e0-8d4b7b8c5e3a,img_store_supplydrops_3,supdrp94,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
111 product,product_70,55c76436-50d8-401e-8761-b9ceeb18c7c4,img_store_supplydrops_3,supdrp95,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
112 product,product_71,844742d6-baa0-4079-892e-649a45564b56,img_store_supplydrops_3,supdrp96,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
113 product,product_72,605fb575-1482-4e0f-8934-165e290d26ca,img_store_supplydrops_3,supdrp97,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
114 product,product_73,64d0e219-b602-4906-b714-895d020bae2a,img_store_supplydrops_3,supdrp98,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
115 product,product_74,fc0e23af-fc91-4711-b3ca-a45c3ab03049,img_store_supplydrops_3,supdrp99,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
116 product,product_75,e9886801-697b-4b40-93bd-6f9b37b6102b,img_store_supplydrops_3,supdrp100,supplydrops,all,1,supplydrops_3,,# Supply Drops 3
117 product,product_116,3c32e23a-514d-487c-9733-c9c8ec6fd55b,img_store_supplydrops_3,supdrp77,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
118 product,product_117,906884d7-2864-4cd2-b725-1129c111abab,img_store_supplydrops_3,supdrp78,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
119 product,product_118,28e9c053-da80-4f8a-b1b3-26cf9e6cad59,img_store_supplydrops_3,supdrp79,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
120 product,product_119,13668620-fb95-4e3b-b15b-05ca33cb90dc,img_store_supplydrops_3,supdrp80,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
121 product,product_120,e9e772ce-aeb5-4831-9672-f2ab1c0459f5,img_store_supplydrops_3,supdrp81,supplydrops,all,1,supplydrops_3,23,# Supply Drops 3
122 product,product_76,156f40b5-3683-4c26-a6d0-f2358701df53,img_store_supplydrops_5,supdrp71,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
123 product,product_77,3ec7cec9-91ff-4931-8785-e7092495c5cb,img_store_supplydrops_5,supdrp72,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
124 product,product_78,29af6a13-c4ce-469c-aee1-82bdcef9307f,img_store_supplydrops_5,supdrp73,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
125 product,product_79,92334032-5350-4319-ad0b-a5dac31e491f,img_store_supplydrops_5,supdrp74,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
126 product,product_80,9974b492-3253-4873-97cc-68a47117f09f,img_store_supplydrops_5,supdrp75,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
127 product,product_81,d3a71cec-ceb3-452a-baa1-97ce8360cee8,img_store_supplydrops_5,supdrp76,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
128 product,product_82,93e9ba95-0738-4302-9880-33774f4e4b2a,img_store_supplydrops_5,supdrp77,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
129 product,product_83,5998caba-5f9f-475c-bc45-a4f2d9386105,img_store_supplydrops_5,supdrp78,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
130 product,product_84,5afa84ac-abe3-4db9-917e-29933134d4be,img_store_supplydrops_5,supdrp79,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
131 product,product_85,4f7350d9-90aa-4f91-a974-8fe399280d7c,img_store_supplydrops_5,supdrp80,supplydrops,all,1,supplydrops_5,,# Supply Drops 5
132 product,product_121,19938ec4-0047-4d17-8002-97c6584413fa,img_store_supplydrops_5,supdrp82,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
133 product,product_122,e2bb0ca8-66cc-4658-a34c-0c80babdb0df,img_store_supplydrops_5,supdrp83,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
134 product,product_123,411f8663-77fd-4821-8eef-8e213ba1f4ed,img_store_supplydrops_5,supdrp84,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
135 product,product_124,2a9140a1-946b-4a07-a790-6f7d4ee541d7,img_store_supplydrops_5,supdrp85,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
136 product,product_125,af7f50e7-dc1b-4b14-b78d-61ae560b2a00,img_store_supplydrops_5,supdrp86,supplydrops,all,1,supplydrops_5,24,# Supply Drops 5
137 product,product_86,5de0f259-b94b-40a9-a2ea-dba2f95f8b87,img_store_supplydrops_10,supdrp81,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
138 product,product_87,89f452a5-5c6f-4d8e-a203-35de25a73805,img_store_supplydrops_10,supdrp82,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
139 product,product_88,c503ee82-39c2-4a0e-93fe-e9acfc846a81,img_store_supplydrops_10,supdrp83,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
140 product,product_89,e2c670f6-567b-4bd1-ae36-c2f039e22add,img_store_supplydrops_10,supdrp84,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
141 product,product_90,b38a63b5-2c14-445f-a9d7-31ad59b4fe5c,img_store_supplydrops_10,supdrp85,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
142 product,product_91,8c448893-0809-4c4f-be73-fa574be15333,img_store_supplydrops_10,supdrp86,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
143 product,product_92,82a96d7b-859b-46a9-a7c7-ba082558066b,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
144 product,product_93,9bc7070b-4a5a-4d39-9957-734eafd3f8e0,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
145 product,product_94,dda9be88-d5cc-4827-aecf-40e9598f4adb,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
146 product,product_95,4067a17b-23c7-4999-a514-8ed9041e8a02,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,,# Supply Drops 10
147 product,product_126,10cd1171-2eb4-4dcb-a281-372b747319f6,img_store_supplydrops_10,supdrp87,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
148 product,product_127,8706ff47-4cc7-4957-a4f3-d9589be39d78,img_store_supplydrops_10,supdrp88,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
149 product,product_128,ff9063ee-79ef-4b4a-8e22-df83f700e292,img_store_supplydrops_10,supdrp89,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
150 product,product_129,31cdd8b7-2c6a-414b-8e02-a2d7f6f64f12,img_store_supplydrops_10,supdrp90,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
151 product,product_130,de53b351-a6ab-4089-a30b-0396f6fad455,img_store_supplydrops_10,supdrp91,supplydrops,all,1,supplydrops_10,25,# Supply Drops 10
152 # Consumable Supply Drops
153 product,product_96,c5f202f9-3386-4d8b-9f5f-fc4f16f78ed3,img_store_supplydrops_1,supdrp46,supplydrops_v2,all,1,,26,# Consumable Supply Drops 1
154 product,product_97,0463b195-81cb-43c8-87a4-814043492ac1,img_store_supplydrops_3,supdrp50,supplydrops_v2,all,1,,27,# Consumable Supply Drops 3
155 product,product_98,ef8577d9-0cab-433d-8955-8dd96089218e,img_store_supplydrops_5,supdrp47,supplydrops_v2,all,1,,28,# Consumable Supply Drops 5
156 product,product_99,4b49d2af-d9ed-4f4a-8aa1-0fc3c2e70f87,img_store_supplydrops_10,supdrp48,supplydrops_v2,all,1,,29,# Consumable Supply Drops 10
157 product,product_100,ca0012ef-1206-4173-8979-d2d4f3d66a57,img_store_supplydrops_20,supdrp71,supplydrops_v2,all,1,,31,# Consumable Supply Drops 20
158 # More Durable Supply Drops
159 product,product_101,48a1c3f1-c47f-4752-95c8-658630e29cd1,img_store_supplydrops_20,supdrp61,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
160 product,product_102,e0556d68-6bbf-4fce-affb-28c4eec8eb25,img_store_supplydrops_20,supdrp62,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
161 product,product_103,d627860d-bf3a-4972-9eb5-51a68bf4eb44,img_store_supplydrops_20,supdrp63,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
162 product,product_104,641bb491-7dda-42c9-850f-a9d6774236a0,img_store_supplydrops_20,supdrp64,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
163 product,product_105,c53a24c9-c07b-468d-bbc5-1d57ccdfd82c,img_store_supplydrops_20,supdrp65,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
164 product,product_106,fcc7f36b-3158-4129-a13d-8437924eb9ee,img_store_supplydrops_20,supdrp66,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
165 product,product_107,a21a0bda-abed-47a2-9d97-40bede8bfd7b,img_store_supplydrops_20,supdrp67,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
166 product,product_108,c7492ab3-7a7c-46d7-8efd-2a6ecd844dd7,img_store_supplydrops_20,supdrp68,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
167 product,product_109,e6a955fb-c723-42f7-b391-615dce049592,img_store_supplydrops_20,supdrp69,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
168 product,product_110,a4f8bf5c-4af4-4f4b-9996-e0816475ff6b,img_store_supplydrops_20,supdrp70,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
169 product,product_131,0b917713-e3a1-406b-9a61-dd1afa2212f5,img_store_supplydrops_20,supdrp92,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
170 product,product_132,69377444-37e1-4b99-8008-376a1da8d886,img_store_supplydrops_20,supdrp93,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
171 product,product_133,c3ae1aee-1445-4601-9577-033496317972,img_store_supplydrops_20,supdrp94,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
172 product,product_134,7d66fdd5-ebac-4893-be48-439867faccda,img_store_supplydrops_20,supdrp95,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
173 product,product_135,466f1cd8-ce9e-4ee8-ad7b-79d9e8c4e57b,img_store_supplydrops_20,supdrp96,supplydrops,all,1,supplydrops_20,30,# Supply Drops 20
174 #MDLC 4 OHM Standalone
175 product,product_142,343595,img_store_ohm,mdlc70,OTHERITEMS,all,0,,,#OHM Standalone Pack
176 #type = category,UID,category ID,title,Language List separated by space delimiter,visibility (0-show,1-hide)
177 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
178 category,category_2,2,mappacks,LUA_MENU_STORE_MAP_PACKS,all,0
179 category,category_3,3,prempersonpacks,LUA_MENU_STORE_PREMIUM_PERSONALIZATION_PACKS,all,0
180 category,category_4,4,personpacks,LUA_MENU_STORE_PERSONALIZATION_PACKS,all,0
181 category,category_5,5,operatorpacks,LUA_MENU_STORE_PREMIUM_EXO_PACKS,all,0
182 category,category_6,6,flagpacks,LUA_MENU_STORE_EXO_PACKS,all,0
183 category,category_7,7,supplydrops,LUA_MENU_STORE_SUPPLYDROPS,all,1
184 category,category_8,8,otheritems,LUA_MENU_STORE_ADDITIONAL_ITEMS,all,0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

507
maps/mp/gametypes/gun.gsc Normal file
View 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
View 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();
}

View 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

View File

@ -0,0 +1,6 @@
if (game:issingleplayer()) then
return
end
require("settings")
require("hud")

163
ui_scripts/hud_info/hud.lua Normal file
View 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()