Weapon Structure Definition - zeroKilo/GROBackendWV GitHub Wiki
Weapon Structure Definition
- For the 3 classes up to 3 weapons are defined over the packet
GetAllDefaultLoadoutKits
inInventoryService
- Weapons in game are defined over the packet
GetTemplateWeaponMaps
inWeaponService
Template Weapon Maps
- in the packet for the weapon definitions are 4 std::maps with mapkeys
TemplateWeaponList
containing information about the weapon itself (TWL)WeaponCompatibilityBridge
containing list of DWORD ids (WCB)TemplateComponentLists
containing list of map keys (TCL)Components
containing information about components of a weapon
BoneStructure Parameter
Is a bitfield. For now, all bone structure parameters are set to 255 except the ForeGripAndBarrel where it's set to 8. By default all the components' parent is weapon's Body Component, except for:
- Barrel - parent: ForeGrip
- BarrelAttach - parent: ForeGrip
- Flashlight - parent: ForeGrip
- Laser Pointer - parent: ForeGrip
- Stock Attach - parent: Stock
- FG Bottom Attach - parent: ForeGrip
Weapon Body
- TCL should contain 1 item with key of weapon and as value the key of 1 component
- this component should have type = 0
- from this components the key member is used to load the GAO
Stock
- TCL should contain 1 item with key of weapon and as value the key of 1 component
- this component should have type = 4
- from this components the key member is used to load the GAO
ForeGrip and Barrel
- TCL should contain 1 item with key of weapon and as value the key of 1 component
- this component should have type = 20 to refer to the GripAndBarrel Component
- from the components the modefierlistid is used to select a modefierlist
- 2 skill modefiers should exist there with modtype 2 and proptype 105 (WCPT_Package_RDVForeGripID_I) & 106 (WCPT_Package_RDVBarrelID_I)
- their methodvalue selects components again by mapkey
- these components should have type 5 (WCMT_ForeGrip) & 6 (WCMT_Barrel)
- from these components the key member is used to load the GAOs
- parent component for barrel: ForeGrip Component
Scope
- TCL should contain 1 item with key of weapon and as value the key of 1 component
- this component should have type = 8
- from this components the key member is used to load the GAO
Clip / Magazine
- TCL should contain 1 item with key of weapon and as value the key of 1 component
- this component should have type = 9
- from this components the key member is used to load the GAO
Grenade Launcher
- TCL should contain 1 item with key of weapon and as value the key of 1 component
- this component should have type = 10
- from this components the key member is used to load the GAO
Laser Pointer
- TCL should contain 1 item with key of weapon and as value the key of 1 component
- this component should have type = 12
- from this components the key member is used to load the GAO
- parent component: Fore Grip Component
Possible Asset Keys
Body Component (type = 0)
0xAD102A65 (2903517797)
- GRO-W-Ar-AsVal-Body.gao
Stock Component (type = 4)
0xAD102B48 (2903518024)
- GRO-W-Ar-AsVal-Stock-Folding-01.gao
Fore Grip Component (type = 5)
0xAD102B0A (2903517962)
- GRO-W-Ar-AsVal-ForeGrip-02.gao
Barrel Component (type = 6)
0xAD102A54 (2903517780)
- GRO-W-Ar-AsVal-Barrel-Medium.gao
Scope (type = 8)
0xF7700653 (4151314003)
- GRO-W-Scope-Acog-02.gao
Clip / Magazine (type = 9)
0xAD102AA2 (2903517858)
- GRO-W-Ar-AsVal-Clip-Basic.gao
Grenade Launcher (type = 10)
0x01800368 (25166696)
- GRO-W-GrenadeLauncher.gao
Laser pointer (type = 12)
0x0180031A (25166618)
- GRO-W-LaserPointer.gao
GripAndBarrel Component (type = 20)
0xAD102B0A (2903517962)
- GRO-W-Ar-AsVal-ForeGrip-02.gao