public void AddWeaponComponent(WeaponData weapon, WeaponComponentHash hash) { if (!this.componentData.ContainsKey(hash)) { return; } AddWeaponComponent(weapon, this.componentData[hash]); }
public void SetComponent(WeaponComponentHash component, bool active) { if (active) { Function.Call(Native.Hash.GIVE_WEAPON_COMPONENT_TO_PED, _owner.Handle, Hash, component); } else { Function.Call(Native.Hash.REMOVE_WEAPON_COMPONENT_FROM_PED, _owner.Handle, Hash, component); } }
public WeaponComponent this[WeaponComponentHash componentHash] { get { if (!this._components.Contains <WeaponComponentHash>(componentHash)) { return(_invalidComponent); } WeaponComponent component = null; if (!this._weaponComponents.TryGetValue(componentHash, out component)) { component = new WeaponComponent(this._owner, this._weapon, componentHash); this._weaponComponents.Add(componentHash, component); } return(component); } }
public WeaponComponent this[WeaponComponentHash componentHash] { get { if (!((IEnumerable <WeaponComponentHash>) this._components).Contains <WeaponComponentHash>(componentHash)) { return((WeaponComponent)WeaponComponentCollection._invalidComponent); } WeaponComponent weaponComponent = (WeaponComponent)null; if (!this._weaponComponents.TryGetValue(componentHash, out weaponComponent)) { weaponComponent = new WeaponComponent(this._owner, this._weapon, componentHash); this._weaponComponents.Add(componentHash, weaponComponent); } return(weaponComponent); } }
public WeaponComponent this[int index] { get { WeaponComponent component = null; if ((index < 0) || (index >= this.Count)) { return(_invalidComponent); } WeaponComponentHash key = this._components[index]; if (!this._weaponComponents.TryGetValue(key, out component)) { component = new WeaponComponent(this._owner, this._weapon, key); this._weaponComponents.Add(key, component); } return(component); } }
public WeaponComponent this[int index] { get { WeaponComponent weaponComponent = (WeaponComponent)null; if (index < 0 || index >= this.Count) { return((WeaponComponent)WeaponComponentCollection._invalidComponent); } WeaponComponentHash component = this._components[index]; if (!this._weaponComponents.TryGetValue(component, out weaponComponent)) { weaponComponent = new WeaponComponent(this._owner, this._weapon, component); this._weaponComponents.Add(component, weaponComponent); } return(weaponComponent); } }
public WeaponComponent this[WeaponComponentHash componentHash] { get { if (_components.Contains(componentHash)) { WeaponComponent component = null; if (!_weaponComponents.TryGetValue(componentHash, out component)) { component = new WeaponComponent(_owner, _weapon, componentHash); _weaponComponents.Add(componentHash, component); } return(component); } else { return(_invalidComponent); } } }
public WeaponComponent this[int index] { get { WeaponComponent component = null; if (index >= 0 && index < Count) { WeaponComponentHash componentHash = _components[index]; if (!_weaponComponents.TryGetValue(componentHash, out component)) { component = new WeaponComponent(_owner, _weapon, componentHash); _weaponComponents.Add(componentHash, component); } return(component); } else { return(_invalidComponent); } } }
private static ComponentAttachmentPoint _GetAttachmentPoint(WeaponHash hash, WeaponComponentHash componentHash) { switch (hash) { case WeaponHash.Pistol: switch (componentHash) { case WeaponComponentHash.PistolClip01: case WeaponComponentHash.PistolClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtPiFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtPiSupp02: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.PistolVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.CombatPistol: switch (componentHash) { case WeaponComponentHash.CombatPistolClip01: case WeaponComponentHash.CombatPistolClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtPiFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtPiSupp: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.CombatPistolVarmodLowrider: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.APPistol: switch (componentHash) { case WeaponComponentHash.APPistolClip01: case WeaponComponentHash.APPistolClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtPiFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtPiSupp: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.APPistolVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.MicroSMG: switch (componentHash) { case WeaponComponentHash.MicroSMGClip01: case WeaponComponentHash.MicroSMGClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtPiFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtScopeMacro: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.AtArSupp02: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.MicroSMGVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.SMG: switch (componentHash) { case WeaponComponentHash.SMGClip01: case WeaponComponentHash.SMGClip02: case WeaponComponentHash.SMGClip03: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtScopeMacro02: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.AtPiSupp: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.SMGVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.AssaultRifle: switch (componentHash) { case WeaponComponentHash.AssaultRifleClip01: case WeaponComponentHash.AssaultRifleClip02: case WeaponComponentHash.AssaultRifleClip03: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArAfGrip: return(ComponentAttachmentPoint.Grip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtScopeMacro: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.AtArSupp02: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.AssaultRifleVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.CarbineRifle: switch (componentHash) { case WeaponComponentHash.CarbineRifleClip01: case WeaponComponentHash.CarbineRifleClip02: case WeaponComponentHash.CarbineRifleClip03: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtRailCover01: return(ComponentAttachmentPoint.Rail); case WeaponComponentHash.AtArAfGrip: return(ComponentAttachmentPoint.Grip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtScopeMedium: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.AtArSupp: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.CarbineRifleVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.AdvancedRifle: switch (componentHash) { case WeaponComponentHash.AdvancedRifleClip01: case WeaponComponentHash.AdvancedRifleClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtScopeSmall: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.AtArSupp: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.AdvancedRifleVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.MG: switch (componentHash) { case WeaponComponentHash.MGClip01: case WeaponComponentHash.MGClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtScopeSmall02: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.MGVarmodLowrider: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.CombatMG: switch (componentHash) { case WeaponComponentHash.CombatMGClip01: case WeaponComponentHash.CombatMGClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArAfGrip: return(ComponentAttachmentPoint.Grip); case WeaponComponentHash.AtScopeMedium: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.CombatMGVarmodLowrider: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.PumpShotgun: switch (componentHash) { case WeaponComponentHash.PumpShotgunClip01: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtArSupp: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.PumpShotgunVarmodLowrider: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.AssaultShotgun: switch (componentHash) { case WeaponComponentHash.AssaultShotgunClip01: case WeaponComponentHash.AssaultShotgunClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArAfGrip: return(ComponentAttachmentPoint.Grip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtArSupp: return(ComponentAttachmentPoint.Supp); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.SniperRifle: switch (componentHash) { case WeaponComponentHash.SniperRifleClip01: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArSupp02: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.AtScopeLarge: case WeaponComponentHash.AtScopeMax: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.SniperRifleVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.HeavySniper: switch (componentHash) { case WeaponComponentHash.HeavySniperClip01: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtScopeLarge: case WeaponComponentHash.AtScopeMax: return(ComponentAttachmentPoint.Scope); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.GrenadeLauncher: switch (componentHash) { case WeaponComponentHash.GrenadeLauncherClip01: return(ComponentAttachmentPoint.Grip); case WeaponComponentHash.AtArAfGrip: return(ComponentAttachmentPoint.Grip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtScopeSmall: return(ComponentAttachmentPoint.Scope); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.Minigun: switch (componentHash) { case WeaponComponentHash.MinigunClip01: return(ComponentAttachmentPoint.Clip); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.AssaultSMG: switch (componentHash) { case WeaponComponentHash.AssaultSMGClip01: case WeaponComponentHash.AssaultSMGClip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtScopeMacro: return(ComponentAttachmentPoint.Scope); case WeaponComponentHash.AtArSupp02: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.AssaultSMGVarmodLowrider: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.BullpupShotgun: switch (componentHash) { case WeaponComponentHash.BullpupShotgunClip01: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtArAfGrip: return(ComponentAttachmentPoint.Grip); case WeaponComponentHash.AtArFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtArSupp02: return(ComponentAttachmentPoint.Supp); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.Pistol50: switch (componentHash) { case WeaponComponentHash.Pistol50Clip01: case WeaponComponentHash.Pistol50Clip02: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.AtPiFlsh: return(ComponentAttachmentPoint.FlashLaser); case WeaponComponentHash.AtArSupp02: return(ComponentAttachmentPoint.Supp); case WeaponComponentHash.Pistol50VarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } case WeaponHash.SawnOffShotgun: switch (componentHash) { case WeaponComponentHash.SawnoffShotgunClip01: return(ComponentAttachmentPoint.Clip); case WeaponComponentHash.SawnoffShotgunVarmodLuxe: return(ComponentAttachmentPoint.GunRoot); default: return(ComponentAttachmentPoint.Invalid); } } for (int i = 0, count = Function.Call <int>(Native.Hash.GET_NUM_DLC_WEAPONS); i < count; i++) { unsafe { DlcWeaponData weaponData; if (Function.Call <bool>(Native.Hash.GET_DLC_WEAPON_DATA, i, &weaponData)) { if (weaponData.Hash == hash) { int maxComp = Function.Call <int>(Native.Hash.GET_NUM_DLC_WEAPON_COMPONENTS, i); for (int j = 0; j < maxComp; j++) { DlcWeaponComponentData componentData; if (Function.Call <bool>(Native.Hash.GET_DLC_WEAPON_COMPONENT_DATA, i, j, &componentData)) { if (componentData.Hash == componentHash) { return(componentData.AttachPoint); } } } break; } } } } return(ComponentAttachmentPoint.Invalid); }
public static ComponentAttachmentPoint GetAttachmentPoint(WeaponHash hash, WeaponComponentHash componentHash) { return(_GetAttachmentPoint(hash, componentHash)); }
internal WeaponComponent(Ped owner, Weapon weapon, WeaponComponentHash component) { _owner = owner; _weapon = weapon; _component = component; }
private static string _GetComponentDisplayNameFromHash(WeaponHash hash, WeaponComponentHash component) { if (hash == WeaponHash.KnuckleDuster) { switch (component) { case WeaponComponentHash.KnuckleVarmodBase: return("WT_KNUCKLE"); case WeaponComponentHash.KnuckleVarmodPimp: return("WCT_KNUCK_02"); case WeaponComponentHash.KnuckleVarmodBallas: return("WCT_KNUCK_BG"); case WeaponComponentHash.KnuckleVarmodDollar: return("WCT_KNUCK_DLR"); case WeaponComponentHash.KnuckleVarmodDiamond: return("WCT_KNUCK_DMD"); case WeaponComponentHash.KnuckleVarmodHate: return("WCT_KNUCK_HT"); case WeaponComponentHash.KnuckleVarmodLove: return("WCT_KNUCK_LV"); case WeaponComponentHash.KnuckleVarmodPlayer: return("WCT_KNUCK_PC"); case WeaponComponentHash.KnuckleVarmodKing: return("WCT_KNUCK_SLG"); case WeaponComponentHash.KnuckleVarmodVagos: return("WCT_KNUCK_VG"); } } else { switch (component) { case WeaponComponentHash.Invalid: return("WCT_INVALID"); case WeaponComponentHash.AtRailCover01: return("WCT_RAIL"); case WeaponComponentHash.AtArAfGrip: return("WCT_GRIP"); case WeaponComponentHash.AtPiFlsh: case WeaponComponentHash.AtArFlsh: return("WCT_FLASH"); case WeaponComponentHash.AtScopeMacro: return("WCT_SCOPE_MAC"); case WeaponComponentHash.AtScopeMacro02: return("WCT_SCOPE_MAC"); case WeaponComponentHash.AtScopeSmall: return("WCT_SCOPE_SML"); case WeaponComponentHash.AtScopeSmall02: return("WCT_SCOPE_SML"); case WeaponComponentHash.AtScopeMedium: return("WCT_SCOPE_MED"); case WeaponComponentHash.AtScopeLarge: return("WCT_SCOPE_LRG"); case WeaponComponentHash.AtScopeMax: return("WCT_SCOPE_MAX"); case WeaponComponentHash.AtPiSupp: case WeaponComponentHash.AtArSupp: case WeaponComponentHash.AtArSupp02: case WeaponComponentHash.AtSrSupp: return("WCT_SUPP"); case WeaponComponentHash.PistolClip01: case WeaponComponentHash.CombatPistolClip01: case WeaponComponentHash.APPistolClip01: case WeaponComponentHash.MicroSMGClip01: case WeaponComponentHash.AssaultRifleClip01: case WeaponComponentHash.CarbineRifleClip01: case WeaponComponentHash.AdvancedRifleClip01: case WeaponComponentHash.MGClip01: case WeaponComponentHash.CombatMGClip01: case WeaponComponentHash.AssaultShotgunClip01: case WeaponComponentHash.SniperRifleClip01: case WeaponComponentHash.HeavySniperClip01: case WeaponComponentHash.AssaultSMGClip01: case WeaponComponentHash.Pistol50Clip01: case (WeaponComponentHash)0x0BAAB157: case (WeaponComponentHash)0x5AF49386: case (WeaponComponentHash)0xCAEBD246: case (WeaponComponentHash)0xF8955D89: case WeaponComponentHash.SNSPistolClip01: case WeaponComponentHash.VintagePistolClip01: case WeaponComponentHash.HeavyShotgunClip01: case WeaponComponentHash.MarksmanRifleClip01: case WeaponComponentHash.CombatPDWClip01: case WeaponComponentHash.MarksmanPistolClip01: case WeaponComponentHash.MachinePistolClip01: return("WCT_CLIP1"); case WeaponComponentHash.PistolClip02: case WeaponComponentHash.CombatPistolClip02: case WeaponComponentHash.APPistolClip02: case WeaponComponentHash.MicroSMGClip02: case WeaponComponentHash.SMGClip02: case WeaponComponentHash.AssaultRifleClip02: case WeaponComponentHash.CarbineRifleClip02: case WeaponComponentHash.AdvancedRifleClip02: case WeaponComponentHash.MGClip02: case WeaponComponentHash.CombatMGClip02: case WeaponComponentHash.AssaultShotgunClip02: case WeaponComponentHash.MinigunClip01: case WeaponComponentHash.AssaultSMGClip02: case WeaponComponentHash.Pistol50Clip02: case (WeaponComponentHash)0x6CBF371B: case (WeaponComponentHash)0xE1C5FFFA: case (WeaponComponentHash)0x3E7E6956: case WeaponComponentHash.SNSPistolClip02: case WeaponComponentHash.VintagePistolClip02: case WeaponComponentHash.HeavyShotgunClip02: case WeaponComponentHash.MarksmanRifleClip02: case WeaponComponentHash.CombatPDWClip02: case WeaponComponentHash.MachinePistolClip02: return("WCT_CLIP2"); case WeaponComponentHash.AtScopeLargeFixedZoom: return("WCT_SCOPE_LRG"); case WeaponComponentHash.AtPiSupp02: return("WCT_SUPP"); case WeaponComponentHash.AssaultRifleVarmodLuxe: case WeaponComponentHash.CarbineRifleVarmodLuxe: case WeaponComponentHash.PistolVarmodLuxe: case WeaponComponentHash.SMGVarmodLuxe: case WeaponComponentHash.MicroSMGVarmodLuxe: case (WeaponComponentHash)0x161E9241: case WeaponComponentHash.AssaultSMGVarmodLowrider: case WeaponComponentHash.CombatPistolVarmodLowrider: case WeaponComponentHash.MGVarmodLowrider: case WeaponComponentHash.PumpShotgunVarmodLowrider: return("WCT_VAR_GOLD"); case WeaponComponentHash.AdvancedRifleVarmodLuxe: case WeaponComponentHash.APPistolVarmodLuxe: case WeaponComponentHash.SawnoffShotgunVarmodLuxe: case WeaponComponentHash.BullpupRifleVarmodLow: return("WCT_VAR_METAL"); case WeaponComponentHash.Pistol50VarmodLuxe: return("WCT_VAR_SIL"); case WeaponComponentHash.HeavyPistolVarmodLuxe: case WeaponComponentHash.SniperRifleVarmodLuxe: case WeaponComponentHash.SNSPistolVarmodLowrider: return("WCT_VAR_WOOD"); case WeaponComponentHash.CombatMGVarmodLowrider: case WeaponComponentHash.SpecialCarbineVarmodLowrider: return("WCT_VAR_ETCHM"); case WeaponComponentHash.SwitchbladeVarmodBase: return("WCT_SB_BASE"); case WeaponComponentHash.SwitchbladeVarmodVar1: return("WCT_SB_VAR1"); case WeaponComponentHash.SwitchbladeVarmodVar2: return("WCT_SB_VAR2"); case WeaponComponentHash.RevolverClip01: return("WCT_CLIP1"); case WeaponComponentHash.RevolverVarmodBoss: return("WCT_REV_VARB"); case WeaponComponentHash.RevolverVarmodGoon: return("WCT_REV_VARG"); case WeaponComponentHash.SMGClip03: case WeaponComponentHash.AssaultRifleClip03: case WeaponComponentHash.HeavyShotgunClip03: return("WCT_CLIP_DRM"); case WeaponComponentHash.CarbineRifleClip03: return("WCT_CLIP_BOX"); } } string result = "WCT_INVALID"; for (int i = 0, count = Function.Call <int>(Native.Hash.GET_NUM_DLC_WEAPONS); i < count; i++) { unsafe { DlcWeaponData weaponData; if (Function.Call <bool>(Native.Hash.GET_DLC_WEAPON_DATA, i, &weaponData)) { if (weaponData.Hash == hash) { int maxComp = Function.Call <int>(Native.Hash.GET_NUM_DLC_WEAPON_COMPONENTS, i); for (int j = 0; j < maxComp; j++) { DlcWeaponComponentData componentData; if (Function.Call <bool>(Native.Hash.GET_DLC_WEAPON_COMPONENT_DATA, i, j, &componentData)) { if (componentData.Hash == component) { return(componentData.DisplayName); } } } break; } } } } return(result); }
public static unsafe WeaponComponentHash[] GetComponentsFromHash( WeaponHash hash) { switch (hash) { case WeaponHash.SniperRifle: return(new WeaponComponentHash[5] { WeaponComponentHash.SniperRifleClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax, WeaponComponentHash.AtArSupp02, WeaponComponentHash.SniperRifleVarmodLuxe }); case WeaponHash.CombatPDW: return(new WeaponComponentHash[6] { WeaponComponentHash.CombatPDWClip01, WeaponComponentHash.CombatPDWClip02, WeaponComponentHash.CombatPDWClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArAfGrip }); case WeaponHash.HeavySniper: return(new WeaponComponentHash[3] { WeaponComponentHash.HeavySniperClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax }); case WeaponHash.MicroSMG: return(new WeaponComponentHash[6] { WeaponComponentHash.MicroSMGClip01, WeaponComponentHash.MicroSMGClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.MicroSMGVarmodLuxe }); case WeaponHash.Pistol: return(new WeaponComponentHash[5] { WeaponComponentHash.PistolClip01, WeaponComponentHash.PistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp02, WeaponComponentHash.PistolVarmodLuxe }); case WeaponHash.PumpShotgun: return(new WeaponComponentHash[3] { WeaponComponentHash.AtSrSupp, WeaponComponentHash.AtArFlsh, WeaponComponentHash.PumpShotgunVarmodLowrider }); case WeaponHash.APPistol: return(new WeaponComponentHash[5] { WeaponComponentHash.APPistolClip01, WeaponComponentHash.APPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.APPistolVarmodLuxe }); case WeaponHash.SMG: return(new WeaponComponentHash[8] { WeaponComponentHash.SMGClip01, WeaponComponentHash.SMGClip02, WeaponComponentHash.SMGClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.AtScopeMacro02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SMGVarmodLuxe }); case WeaponHash.Minigun: return(new WeaponComponentHash[1] { WeaponComponentHash.MinigunClip01 }); case WeaponHash.CombatPistol: return(new WeaponComponentHash[5] { WeaponComponentHash.CombatPistolClip01, WeaponComponentHash.CombatPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.CombatPistolVarmodLowrider }); case WeaponHash.SawnOffShotgun: return(new WeaponComponentHash[1] { WeaponComponentHash.SawnoffShotgunVarmodLuxe }); case WeaponHash.BullpupRifle: return(new WeaponComponentHash[7] { WeaponComponentHash.BullpupRifleClip01, WeaponComponentHash.BullpupRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.BullpupRifleVarmodLow }); case WeaponHash.CombatMG: return(new WeaponComponentHash[5] { WeaponComponentHash.CombatMGClip01, WeaponComponentHash.CombatMGClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.CombatMGVarmodLowrider }); case WeaponHash.CarbineRifle: return(new WeaponComponentHash[9] { WeaponComponentHash.CarbineRifleClip01, WeaponComponentHash.CarbineRifleClip02, WeaponComponentHash.CarbineRifleClip03, WeaponComponentHash.AtRailCover01, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp, WeaponComponentHash.CarbineRifleVarmodLuxe }); case WeaponHash.Pistol50: return(new WeaponComponentHash[5] { WeaponComponentHash.Pistol50Clip01, WeaponComponentHash.Pistol50Clip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtArSupp02, WeaponComponentHash.Pistol50VarmodLuxe }); case WeaponHash.MG: return(new WeaponComponentHash[5] { WeaponComponentHash.MGClip01, WeaponComponentHash.MGClip02, WeaponComponentHash.AtScopeSmall02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.MGVarmodLowrider }); case WeaponHash.BullpupShotgun: return(new WeaponComponentHash[3] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp02 }); case WeaponHash.GrenadeLauncher: return(new WeaponComponentHash[3] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall }); case WeaponHash.AdvancedRifle: return(new WeaponComponentHash[6] { WeaponComponentHash.AdvancedRifleClip01, WeaponComponentHash.AdvancedRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AdvancedRifleVarmodLuxe }); case WeaponHash.SNSPistol: return(new WeaponComponentHash[3] { WeaponComponentHash.SNSPistolClip01, WeaponComponentHash.SNSPistolClip02, WeaponComponentHash.SNSPistolVarmodLowrider }); case WeaponHash.AssaultRifle: return(new WeaponComponentHash[8] { WeaponComponentHash.AssaultRifleClip01, WeaponComponentHash.AssaultRifleClip02, WeaponComponentHash.AssaultRifleClip03, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultRifleVarmodLuxe }); case WeaponHash.SpecialCarbine: return(new WeaponComponentHash[8] { WeaponComponentHash.SpecialCarbineClip01, WeaponComponentHash.SpecialCarbineClip02, WeaponComponentHash.SpecialCarbineClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SpecialCarbineVarmodLowrider }); case WeaponHash.Revolver: return(new WeaponComponentHash[3] { WeaponComponentHash.RevolverClip01, WeaponComponentHash.RevolverVarmodBoss, WeaponComponentHash.RevolverVarmodGoon }); case WeaponHash.KnuckleDuster: return(new WeaponComponentHash[9] { WeaponComponentHash.KnuckleVarmodPimp, WeaponComponentHash.KnuckleVarmodBallas, WeaponComponentHash.KnuckleVarmodDollar, WeaponComponentHash.KnuckleVarmodDiamond, WeaponComponentHash.KnuckleVarmodHate, WeaponComponentHash.KnuckleVarmodLove, WeaponComponentHash.KnuckleVarmodPlayer, WeaponComponentHash.KnuckleVarmodKing, WeaponComponentHash.KnuckleVarmodVagos }); case WeaponHash.MachinePistol: return(new WeaponComponentHash[4] { WeaponComponentHash.MachinePistolClip01, WeaponComponentHash.MachinePistolClip02, WeaponComponentHash.MachinePistolClip03, WeaponComponentHash.AtPiSupp }); case WeaponHash.SwitchBlade: return(new WeaponComponentHash[2] { WeaponComponentHash.SwitchbladeVarmodVar1, WeaponComponentHash.SwitchbladeVarmodVar2 }); case WeaponHash.AssaultShotgun: return(new WeaponComponentHash[5] { WeaponComponentHash.AssaultShotgunClip01, WeaponComponentHash.AssaultShotgunClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp }); case WeaponHash.AssaultSMG: return(new WeaponComponentHash[6] { WeaponComponentHash.AssaultSMGClip01, WeaponComponentHash.AssaultSMGClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultSMGVarmodLowrider }); default: WeaponComponentHash[] weaponComponentHashArray1 = (WeaponComponentHash[])null; int num = 0; for (int index1 = Function.Call <int>(Hash.GET_NUM_DLC_WEAPONS, (InputArgument[])Array.Empty <InputArgument>()); num < index1; ++num) { DlcWeaponData dlcWeaponData; if (Function.Call <bool>(Hash.GET_DLC_WEAPON_DATA, (InputArgument)num, (InputArgument)(void *)&dlcWeaponData) && dlcWeaponData.Hash == hash) { WeaponComponentHash[] weaponComponentHashArray2 = new WeaponComponentHash[Function.Call <int>(Hash.GET_NUM_DLC_WEAPON_COMPONENTS, (InputArgument)num)]; for (int index2 = 0; index2 < weaponComponentHashArray2.Length; ++index2) { DlcWeaponComponentData weaponComponentData; InputArgument[] inputArgumentArray = new InputArgument[3] { (InputArgument)num, (InputArgument)index2, (InputArgument)(void *)&weaponComponentData }; weaponComponentHashArray2[index2] = !Function.Call <bool>(Hash.GET_DLC_WEAPON_COMPONENT_DATA, inputArgumentArray) ? WeaponComponentHash.Invalid : weaponComponentData.Hash; } return(weaponComponentHashArray2); } } if (weaponComponentHashArray1 == null) { weaponComponentHashArray1 = new WeaponComponentHash[0]; } return(weaponComponentHashArray1); } }
public void Hash() { this.hash = (WeaponComponentHash)Game.GenerateHash(this.name); }
public static unsafe WeaponComponentHash[] GetComponentsFromHash(WeaponHash hash) { if (hash <= ((WeaponHash)(-2084633992))) { if (hash <= WeaponHash.APPistol) { if (hash <= WeaponHash.HeavySniper) { if (hash == WeaponHash.SniperRifle) { return(new WeaponComponentHash[] { WeaponComponentHash.SniperRifleClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax, WeaponComponentHash.AtArSupp02, WeaponComponentHash.SniperRifleVarmodLuxe }); } if (hash == WeaponHash.CombatPDW) { return(new WeaponComponentHash[] { WeaponComponentHash.CombatPDWClip01, WeaponComponentHash.CombatPDWClip02, WeaponComponentHash.CombatPDWClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArAfGrip }); } if (hash == WeaponHash.HeavySniper) { return(new WeaponComponentHash[] { WeaponComponentHash.HeavySniperClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax }); } } else if (hash <= WeaponHash.Pistol) { if (hash == WeaponHash.MicroSMG) { return(new WeaponComponentHash[] { WeaponComponentHash.MicroSMGClip01, WeaponComponentHash.MicroSMGClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.MicroSMGVarmodLuxe }); } if (hash == WeaponHash.Pistol) { return(new WeaponComponentHash[] { WeaponComponentHash.PistolClip01, WeaponComponentHash.PistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp02, WeaponComponentHash.PistolVarmodLuxe }); } } else { if (hash == WeaponHash.PumpShotgun) { return(new WeaponComponentHash[] { WeaponComponentHash.AtSrSupp, WeaponComponentHash.AtArFlsh, WeaponComponentHash.PumpShotgunVarmodLowrider }); } if (hash == WeaponHash.APPistol) { return(new WeaponComponentHash[] { WeaponComponentHash.APPistolClip01, WeaponComponentHash.APPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.APPistolVarmodLuxe }); } } } else if (hash <= WeaponHash.CombatPistol) { if (hash == WeaponHash.SMG) { return(new WeaponComponentHash[] { WeaponComponentHash.SMGClip01, WeaponComponentHash.SMGClip02, WeaponComponentHash.SMGClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.AtScopeMacro02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SMGVarmodLuxe }); } if (hash == WeaponHash.Minigun) { return(new WeaponComponentHash[] { ((WeaponComponentHash)(-924946682)) }); } if (hash == WeaponHash.CombatPistol) { return(new WeaponComponentHash[] { WeaponComponentHash.CombatPistolClip01, WeaponComponentHash.CombatPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.CombatPistolVarmodLowrider }); } } else if (hash > WeaponHash.BullpupRifle) { if (hash == WeaponHash.CombatMG) { return(new WeaponComponentHash[] { WeaponComponentHash.CombatMGClip01, WeaponComponentHash.CombatMGClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.CombatMGVarmodLowrider }); } if (hash == ((WeaponHash)(-2084633992))) { return(new WeaponComponentHash[] { WeaponComponentHash.CarbineRifleClip01, WeaponComponentHash.CarbineRifleClip02, WeaponComponentHash.CarbineRifleClip03, WeaponComponentHash.AtRailCover01, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp, WeaponComponentHash.CarbineRifleVarmodLuxe }); } } else { if (hash == WeaponHash.SawnOffShotgun) { return(new WeaponComponentHash[] { ((WeaponComponentHash)(-2052698631)) }); } if (hash == WeaponHash.BullpupRifle) { return(new WeaponComponentHash[] { WeaponComponentHash.BullpupRifleClip01, WeaponComponentHash.BullpupRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.BullpupRifleVarmodLow }); } } } else if (hash <= ((WeaponHash)(-1074790547))) { if (hash <= ((WeaponHash)(-1654528753))) { if (hash == ((WeaponHash)(-1716589765))) { return(new WeaponComponentHash[] { WeaponComponentHash.Pistol50Clip01, WeaponComponentHash.Pistol50Clip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtArSupp02, WeaponComponentHash.Pistol50VarmodLuxe }); } if (hash == ((WeaponHash)(-1660422300))) { return(new WeaponComponentHash[] { WeaponComponentHash.MGClip01, WeaponComponentHash.MGClip02, WeaponComponentHash.AtScopeSmall02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.MGVarmodLowrider }); } if (hash == ((WeaponHash)(-1654528753))) { return(new WeaponComponentHash[] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp02 }); } } else if (hash <= ((WeaponHash)(-1357824103))) { if (hash == ((WeaponHash)(-1568386805))) { return(new WeaponComponentHash[] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall }); } if (hash == ((WeaponHash)(-1357824103))) { return(new WeaponComponentHash[] { WeaponComponentHash.AdvancedRifleClip01, WeaponComponentHash.AdvancedRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AdvancedRifleVarmodLuxe }); } } else { if (hash == ((WeaponHash)(-1076751822))) { return(new WeaponComponentHash[] { WeaponComponentHash.SNSPistolClip01, WeaponComponentHash.SNSPistolClip02, WeaponComponentHash.SNSPistolVarmodLowrider }); } if (hash == ((WeaponHash)(-1074790547))) { return(new WeaponComponentHash[] { WeaponComponentHash.AssaultRifleClip01, WeaponComponentHash.AssaultRifleClip02, WeaponComponentHash.AssaultRifleClip03, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultRifleVarmodLuxe }); } } } else if (hash <= ((WeaponHash)(-656458692))) { if (hash == ((WeaponHash)(-1063057011))) { return(new WeaponComponentHash[] { WeaponComponentHash.SpecialCarbineClip01, WeaponComponentHash.SpecialCarbineClip02, WeaponComponentHash.SpecialCarbineClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SpecialCarbineVarmodLowrider }); } if (hash == ((WeaponHash)(-1045183535))) { return(new WeaponComponentHash[] { WeaponComponentHash.RevolverClip01, WeaponComponentHash.RevolverVarmodBoss, WeaponComponentHash.RevolverVarmodGoon }); } if (hash == ((WeaponHash)(-656458692))) { return(new WeaponComponentHash[] { WeaponComponentHash.KnuckleVarmodPimp, WeaponComponentHash.KnuckleVarmodBallas, WeaponComponentHash.KnuckleVarmodDollar, WeaponComponentHash.KnuckleVarmodDiamond, WeaponComponentHash.KnuckleVarmodHate, WeaponComponentHash.KnuckleVarmodLove, WeaponComponentHash.KnuckleVarmodPlayer, WeaponComponentHash.KnuckleVarmodKing, WeaponComponentHash.KnuckleVarmodVagos }); } } else if (hash > ((WeaponHash)(-538741184))) { if (hash == ((WeaponHash)(-494615257))) { return(new WeaponComponentHash[] { WeaponComponentHash.AssaultShotgunClip01, WeaponComponentHash.AssaultShotgunClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp }); } if (hash == ((WeaponHash)(-270015777))) { return(new WeaponComponentHash[] { WeaponComponentHash.AssaultSMGClip01, WeaponComponentHash.AssaultSMGClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultSMGVarmodLowrider }); } } else { if (hash == ((WeaponHash)(-619010992))) { return(new WeaponComponentHash[] { WeaponComponentHash.MachinePistolClip01, WeaponComponentHash.MachinePistolClip02, WeaponComponentHash.MachinePistolClip03, WeaponComponentHash.AtPiSupp }); } if (hash == ((WeaponHash)(-538741184))) { return(new WeaponComponentHash[] { WeaponComponentHash.SwitchbladeVarmodVar1, ((WeaponComponentHash)(-409758110)) }); } } WeaponComponentHash[] hashArray = null; int num2 = 0; int num3 = Function.Call <int>(Hash.GET_NUM_DLC_WEAPONS, Array.Empty <InputArgument>()); while (num2 < num3) { DlcWeaponData data2; InputArgument[] arguments = new InputArgument[] { num2, (IntPtr) & data2 }; if (Function.Call <bool>(Hash.GET_DLC_WEAPON_DATA, arguments) && (data2.Hash == hash)) { InputArgument[] argumentArray2 = new InputArgument[] { num2 }; hashArray = new WeaponComponentHash[Function.Call <int>(Hash.GET_NUM_DLC_WEAPON_COMPONENTS, argumentArray2)]; for (int i = 0; i < hashArray.Length; i++) { DlcWeaponComponentData data; InputArgument[] argumentArray3 = new InputArgument[] { num2, i, (IntPtr) & data }; hashArray[i] = !Function.Call <bool>(Hash.GET_DLC_WEAPON_COMPONENT_DATA, argumentArray3) ? ((WeaponComponentHash)(-1)) : data.Hash; } return(hashArray); } num2++; } return(new WeaponComponentHash[0]); }
public static string GetComponentDisplayNameFromHash(WeaponHash hash, WeaponComponentHash component) { return(_GetComponentDisplayNameFromHash(hash, component)); }
static WeaponComponentHash[] GetComponentsFromHash(WeaponHash hash) { switch (hash) { case WeaponHash.Pistol: return(new WeaponComponentHash[] { WeaponComponentHash.PistolClip01, WeaponComponentHash.PistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp02, WeaponComponentHash.PistolVarmodLuxe, }); case WeaponHash.CombatPistol: return(new WeaponComponentHash[] { WeaponComponentHash.CombatPistolClip01, WeaponComponentHash.CombatPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.CombatPistolVarmodLowrider, }); case WeaponHash.APPistol: return(new WeaponComponentHash[] { WeaponComponentHash.APPistolClip01, WeaponComponentHash.APPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.APPistolVarmodLuxe, }); case WeaponHash.MicroSMG: return(new WeaponComponentHash[] { WeaponComponentHash.MicroSMGClip01, WeaponComponentHash.MicroSMGClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.MicroSMGVarmodLuxe, }); case WeaponHash.SMG: return(new WeaponComponentHash[] { WeaponComponentHash.SMGClip01, WeaponComponentHash.SMGClip02, WeaponComponentHash.SMGClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.AtScopeMacro02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SMGVarmodLuxe, }); case WeaponHash.AssaultRifle: return(new WeaponComponentHash[] { WeaponComponentHash.AssaultRifleClip01, WeaponComponentHash.AssaultRifleClip02, WeaponComponentHash.AssaultRifleClip03, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultRifleVarmodLuxe, }); case WeaponHash.CarbineRifle: return(new WeaponComponentHash[] { WeaponComponentHash.CarbineRifleClip01, WeaponComponentHash.CarbineRifleClip02, WeaponComponentHash.CarbineRifleClip03, WeaponComponentHash.AtRailCover01, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp, WeaponComponentHash.CarbineRifleVarmodLuxe, }); case WeaponHash.AdvancedRifle: return(new WeaponComponentHash[] { WeaponComponentHash.AdvancedRifleClip01, WeaponComponentHash.AdvancedRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AdvancedRifleVarmodLuxe, }); case WeaponHash.MG: return(new WeaponComponentHash[] { WeaponComponentHash.MGClip01, WeaponComponentHash.MGClip02, WeaponComponentHash.AtScopeSmall02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.MGVarmodLowrider, }); case WeaponHash.CombatMG: return(new WeaponComponentHash[] { WeaponComponentHash.CombatMGClip01, WeaponComponentHash.CombatMGClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.CombatMGVarmodLowrider, }); case WeaponHash.PumpShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.AtSrSupp, WeaponComponentHash.AtArFlsh, WeaponComponentHash.PumpShotgunVarmodLowrider, }); case WeaponHash.AssaultShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.AssaultShotgunClip01, WeaponComponentHash.AssaultShotgunClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp, }); case WeaponHash.SniperRifle: return(new WeaponComponentHash[] { WeaponComponentHash.SniperRifleClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax, WeaponComponentHash.AtArSupp02, WeaponComponentHash.SniperRifleVarmodLuxe, }); case WeaponHash.HeavySniper: return(new WeaponComponentHash[] { WeaponComponentHash.HeavySniperClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax, }); case WeaponHash.GrenadeLauncher: return(new WeaponComponentHash[] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, }); case WeaponHash.Minigun: return(new WeaponComponentHash[] { WeaponComponentHash.MinigunClip01, }); case WeaponHash.AssaultSMG: return(new WeaponComponentHash[] { WeaponComponentHash.AssaultSMGClip01, WeaponComponentHash.AssaultSMGClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultSMGVarmodLowrider, }); case WeaponHash.BullpupShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp02, }); case WeaponHash.Pistol50: return(new WeaponComponentHash[] { WeaponComponentHash.Pistol50Clip01, WeaponComponentHash.Pistol50Clip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtArSupp02, WeaponComponentHash.Pistol50VarmodLuxe, }); case WeaponHash.CombatPDW: return(new WeaponComponentHash[] { WeaponComponentHash.CombatPDWClip01, WeaponComponentHash.CombatPDWClip02, WeaponComponentHash.CombatPDWClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArAfGrip, }); case WeaponHash.SawnOffShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.SawnoffShotgunVarmodLuxe, }); case WeaponHash.BullpupRifle: return(new WeaponComponentHash[] { WeaponComponentHash.BullpupRifleClip01, WeaponComponentHash.BullpupRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.BullpupRifleVarmodLow, }); case WeaponHash.SNSPistol: return(new WeaponComponentHash[] { WeaponComponentHash.SNSPistolClip01, WeaponComponentHash.SNSPistolClip02, WeaponComponentHash.SNSPistolVarmodLowrider, }); case WeaponHash.SpecialCarbine: return(new WeaponComponentHash[] { WeaponComponentHash.SpecialCarbineClip01, WeaponComponentHash.SpecialCarbineClip02, WeaponComponentHash.SpecialCarbineClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SpecialCarbineVarmodLowrider, }); case WeaponHash.KnuckleDuster: return(new WeaponComponentHash[] { WeaponComponentHash.KnuckleVarmodPimp, WeaponComponentHash.KnuckleVarmodBallas, WeaponComponentHash.KnuckleVarmodDollar, WeaponComponentHash.KnuckleVarmodDiamond, WeaponComponentHash.KnuckleVarmodHate, WeaponComponentHash.KnuckleVarmodLove, WeaponComponentHash.KnuckleVarmodPlayer, WeaponComponentHash.KnuckleVarmodKing, WeaponComponentHash.KnuckleVarmodVagos, }); case WeaponHash.MachinePistol: return(new WeaponComponentHash[] { WeaponComponentHash.MachinePistolClip01, WeaponComponentHash.MachinePistolClip02, WeaponComponentHash.MachinePistolClip03, WeaponComponentHash.AtPiSupp, }); case WeaponHash.SwitchBlade: return(new WeaponComponentHash[] { WeaponComponentHash.SwitchbladeVarmodVar1, WeaponComponentHash.SwitchbladeVarmodVar2, }); case WeaponHash.Revolver: return(new WeaponComponentHash[] { WeaponComponentHash.RevolverClip01, WeaponComponentHash.RevolverVarmodBoss, WeaponComponentHash.RevolverVarmodGoon, }); } WeaponComponentHash[] result = null; for (int i = 0, count = Function.Call <int>(Native.Hash.GET_NUM_DLC_WEAPONS); i < count; i++) { unsafe { DlcWeaponData weaponData; if (Function.Call <bool>(Native.Hash.GET_DLC_WEAPON_DATA, i, &weaponData)) { if (weaponData.Hash == hash) { result = new WeaponComponentHash[Function.Call <int>(Native.Hash.GET_NUM_DLC_WEAPON_COMPONENTS, i)]; for (int j = 0; j < result.Length; j++) { DlcWeaponComponentData componentData; if (Function.Call <bool>(Native.Hash.GET_DLC_WEAPON_COMPONENT_DATA, i, j, &componentData)) { result[j] = componentData.Hash; } else { result[j] = WeaponComponentHash.Invalid; } } return(result); } } } } if (result == null) { result = new WeaponComponentHash[0]; } return(result); }
public bool IsComponentActive(WeaponComponentHash component) { return(Function.Call <bool>(Native.Hash.HAS_PED_GOT_WEAPON_COMPONENT, _owner.Handle, Hash, component)); }
private static WeaponComponentHash[] _GetComponentsFromHash(WeaponHash hash) { switch (hash) { case WeaponHash.Pistol: return(new WeaponComponentHash[] { WeaponComponentHash.PistolClip01, WeaponComponentHash.PistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp02, WeaponComponentHash.PistolVarmodLuxe, }); case WeaponHash.CombatPistol: return(new WeaponComponentHash[] { WeaponComponentHash.CombatPistolClip01, WeaponComponentHash.CombatPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.CombatPistolVarmodLowrider, }); case WeaponHash.APPistol: return(new WeaponComponentHash[] { WeaponComponentHash.APPistolClip01, WeaponComponentHash.APPistolClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.APPistolVarmodLuxe, }); case WeaponHash.MicroSMG: return(new WeaponComponentHash[] { WeaponComponentHash.MicroSMGClip01, WeaponComponentHash.MicroSMGClip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.MicroSMGVarmodLuxe, }); case WeaponHash.SMG: return(new WeaponComponentHash[] { WeaponComponentHash.SMGClip01, WeaponComponentHash.SMGClip02, WeaponComponentHash.SMGClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtPiSupp, WeaponComponentHash.AtScopeMacro02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SMGVarmodLuxe, }); case WeaponHash.AssaultRifle: return(new WeaponComponentHash[] { WeaponComponentHash.AssaultRifleClip01, WeaponComponentHash.AssaultRifleClip02, WeaponComponentHash.AssaultRifleClip03, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultRifleVarmodLuxe, }); case WeaponHash.CarbineRifle: return(new WeaponComponentHash[] { WeaponComponentHash.CarbineRifleClip01, WeaponComponentHash.CarbineRifleClip02, WeaponComponentHash.CarbineRifleClip03, WeaponComponentHash.AtRailCover01, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp, WeaponComponentHash.CarbineRifleVarmodLuxe, }); case WeaponHash.AdvancedRifle: return(new WeaponComponentHash[] { WeaponComponentHash.AdvancedRifleClip01, WeaponComponentHash.AdvancedRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AdvancedRifleVarmodLuxe, }); case WeaponHash.MG: return(new WeaponComponentHash[] { WeaponComponentHash.MGClip01, WeaponComponentHash.MGClip02, WeaponComponentHash.AtScopeSmall02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.MGVarmodLowrider, }); case WeaponHash.CombatMG: return(new WeaponComponentHash[] { WeaponComponentHash.CombatMGClip01, WeaponComponentHash.CombatMGClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.CombatMGVarmodLowrider, }); case WeaponHash.PumpShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.AtSrSupp, WeaponComponentHash.AtArFlsh, WeaponComponentHash.PumpShotgunVarmodLowrider, }); case WeaponHash.AssaultShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.AssaultShotgunClip01, WeaponComponentHash.AssaultShotgunClip02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp, }); case WeaponHash.SniperRifle: return(new WeaponComponentHash[] { WeaponComponentHash.SniperRifleClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax, WeaponComponentHash.AtArSupp02, WeaponComponentHash.SniperRifleVarmodLuxe, }); case WeaponHash.HeavySniper: return(new WeaponComponentHash[] { WeaponComponentHash.HeavySniperClip01, WeaponComponentHash.AtScopeLarge, WeaponComponentHash.AtScopeMax, }); case WeaponHash.GrenadeLauncher: return(new WeaponComponentHash[] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, }); case WeaponHash.Minigun: return(new WeaponComponentHash[] { WeaponComponentHash.MinigunClip01, }); case WeaponHash.AssaultSMG: return(new WeaponComponentHash[] { WeaponComponentHash.AssaultSMGClip01, WeaponComponentHash.AssaultSMGClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMacro, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AssaultSMGVarmodLowrider, }); case WeaponHash.BullpupShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.AtArAfGrip, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtArSupp02, }); case WeaponHash.Pistol50: return(new WeaponComponentHash[] { WeaponComponentHash.Pistol50Clip01, WeaponComponentHash.Pistol50Clip02, WeaponComponentHash.AtPiFlsh, WeaponComponentHash.AtArSupp02, WeaponComponentHash.Pistol50VarmodLuxe, }); case WeaponHash.CombatPDW: return(new WeaponComponentHash[] { WeaponComponentHash.CombatPDWClip01, WeaponComponentHash.CombatPDWClip02, WeaponComponentHash.CombatPDWClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArAfGrip, }); case WeaponHash.SawnOffShotgun: return(new WeaponComponentHash[] { WeaponComponentHash.SawnoffShotgunVarmodLuxe, }); case WeaponHash.BullpupRifle: return(new WeaponComponentHash[] { WeaponComponentHash.BullpupRifleClip01, WeaponComponentHash.BullpupRifleClip02, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeSmall, WeaponComponentHash.AtArSupp, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.BullpupRifleVarmodLow, }); case WeaponHash.SNSPistol: return(new WeaponComponentHash[] { WeaponComponentHash.SNSPistolClip01, WeaponComponentHash.SNSPistolClip02, WeaponComponentHash.SNSPistolVarmodLowrider, }); case WeaponHash.SpecialCarbine: return(new WeaponComponentHash[] { WeaponComponentHash.SpecialCarbineClip01, WeaponComponentHash.SpecialCarbineClip02, WeaponComponentHash.SpecialCarbineClip03, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtScopeMedium, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AtArAfGrip, WeaponComponentHash.SpecialCarbineVarmodLowrider, }); case WeaponHash.KnuckleDuster: return(new WeaponComponentHash[] { WeaponComponentHash.KnuckleVarmodPimp, WeaponComponentHash.KnuckleVarmodBallas, WeaponComponentHash.KnuckleVarmodDollar, WeaponComponentHash.KnuckleVarmodDiamond, WeaponComponentHash.KnuckleVarmodHate, WeaponComponentHash.KnuckleVarmodLove, WeaponComponentHash.KnuckleVarmodPlayer, WeaponComponentHash.KnuckleVarmodKing, WeaponComponentHash.KnuckleVarmodVagos, }); case WeaponHash.MachinePistol: return(new WeaponComponentHash[] { WeaponComponentHash.MachinePistolClip01, WeaponComponentHash.MachinePistolClip02, WeaponComponentHash.MachinePistolClip03, WeaponComponentHash.AtPiSupp, }); case WeaponHash.SwitchBlade: return(new WeaponComponentHash[] { WeaponComponentHash.SwitchbladeVarmodVar1, WeaponComponentHash.SwitchbladeVarmodVar2, }); case WeaponHash.Revolver: return(new WeaponComponentHash[] { WeaponComponentHash.RevolverClip01, WeaponComponentHash.RevolverVarmodBoss, WeaponComponentHash.RevolverVarmodGoon, }); // GUNRUNNING case WeaponHash.PistolMk2: return(new WeaponComponentHash[] { WeaponComponentHash.PistolMk2ClipNormal, WeaponComponentHash.PistolMk2ClipExtended, WeaponComponentHash.PistolMk2ClipFMJ, WeaponComponentHash.PistolMk2ClipHollowpoint, WeaponComponentHash.PistolMk2ClipIncendiary, WeaponComponentHash.PistolMk2ClipTracer, WeaponComponentHash.PistolMk2Scope, WeaponComponentHash.PistolMk2Flash, WeaponComponentHash.AtPiSupp02, WeaponComponentHash.PistolMk2Compensator, WeaponComponentHash.PistolMk2CamoDigital, WeaponComponentHash.PistolMk2CamoBrushstroke, WeaponComponentHash.PistolMk2CamoWoodland, WeaponComponentHash.PistolMk2CamoSkull, WeaponComponentHash.PistolMk2CamoSessanta, WeaponComponentHash.PistolMk2CamoPerseus, WeaponComponentHash.PistolMk2CamoLeopard, WeaponComponentHash.PistolMk2CamoZebra, WeaponComponentHash.PistolMk2CamoGeometric, WeaponComponentHash.PistolMk2CamoBoom, WeaponComponentHash.PistolMk2CamoPatriotic, WeaponComponentHash.PistolMk2CamoSlideDigital, WeaponComponentHash.PistolMk2CamoSlideBrushstroke, WeaponComponentHash.PistolMk2CamoSlideWoodland, WeaponComponentHash.PistolMk2CamoSlideSkull, WeaponComponentHash.PistolMk2CamoSlideSessanta, WeaponComponentHash.PistolMk2CamoSlidePerseus, WeaponComponentHash.PistolMk2CamoSlideLeopard, WeaponComponentHash.PistolMk2CamoSlideZebra, WeaponComponentHash.PistolMk2CamoSlideGeometric, WeaponComponentHash.PistolMk2CamoSlideBoom, WeaponComponentHash.PistolMk2CamoSlidePatriotic, }); case WeaponHash.AssaultRifleMk2: return(new WeaponComponentHash[] { WeaponComponentHash.AssaultRifleMk2ClipNormal, WeaponComponentHash.AssaultRifleMk2ClipExtended, WeaponComponentHash.AssaultRifleMk2ClipArmorPiercing, WeaponComponentHash.AssaultRifleMk2ClipFMJ, WeaponComponentHash.AssaultRifleMk2ClipIncendiary, WeaponComponentHash.AssaultRifleMk2ClipTracer, WeaponComponentHash.AtArFlsh, WeaponComponentHash.AtSights, WeaponComponentHash.AtScopeMacroMk2, WeaponComponentHash.AtScopeMediumMk2, WeaponComponentHash.AtArSupp02, WeaponComponentHash.AtMuzzle1, WeaponComponentHash.AtMuzzle2, WeaponComponentHash.AtMuzzle3, WeaponComponentHash.AtMuzzle4, WeaponComponentHash.AtMuzzle5, WeaponComponentHash.AtMuzzle6, WeaponComponentHash.AtMuzzle7, WeaponComponentHash.AtArAfGrip2, WeaponComponentHash.AssaultRifleMk2BarrelNormal, WeaponComponentHash.AssaultRifleMk2BarrelHeavy, WeaponComponentHash.AssaultRifleMk2CamoDigital, WeaponComponentHash.AssaultRifleMk2CamoBrushstroke, WeaponComponentHash.AssaultRifleMk2CamoWoodland, WeaponComponentHash.AssaultRifleMk2CamoSkull, WeaponComponentHash.AssaultRifleMk2CamoSessanta, WeaponComponentHash.AssaultRifleMk2CamoPerseus, WeaponComponentHash.AssaultRifleMk2CamoLeopard, WeaponComponentHash.AssaultRifleMk2CamoZebra, WeaponComponentHash.AssaultRifleMk2CamoGeometric, WeaponComponentHash.AssaultRifleMk2CamoBoom, WeaponComponentHash.AssaultRifleMk2CamoPatriotic, }); case WeaponHash.CarbineRifleMk2: return(new WeaponComponentHash[] { WeaponComponentHash.CarbineRifleMk2ClipNormal, WeaponComponentHash.CarbineRifleMk2ClipExtended, WeaponComponentHash.CarbineRifleMk2ClipArmorPiercing, WeaponComponentHash.CarbineRifleMk2ClipFMJ, WeaponComponentHash.CarbineRifleMk2ClipIncendiary, WeaponComponentHash.CarbineRifleMk2ClipTracer, WeaponComponentHash.AtSights, WeaponComponentHash.AtScopeMacroMk2, WeaponComponentHash.AtScopeMediumMk2, WeaponComponentHash.AtArAfGrip2, WeaponComponentHash.CarbineRifleMk2BarrelNormal, WeaponComponentHash.CarbineRifleMk2BarrelHeavy, WeaponComponentHash.AtArSupp, WeaponComponentHash.AtMuzzle1, WeaponComponentHash.AtMuzzle2, WeaponComponentHash.AtMuzzle3, WeaponComponentHash.AtMuzzle4, WeaponComponentHash.AtMuzzle5, WeaponComponentHash.AtMuzzle6, WeaponComponentHash.AtMuzzle7, WeaponComponentHash.CarbineRifleMk2CamoDigital, WeaponComponentHash.CarbineRifleMk2CamoBrushstroke, WeaponComponentHash.CarbineRifleMk2CamoWoodland, WeaponComponentHash.CarbineRifleMk2CamoSkull, WeaponComponentHash.CarbineRifleMk2CamoSessanta, WeaponComponentHash.CarbineRifleMk2CamoPerseus, WeaponComponentHash.CarbineRifleMk2CamoLeopard, WeaponComponentHash.CarbineRifleMk2CamoZebra, WeaponComponentHash.CarbineRifleMk2CamoGeometric, WeaponComponentHash.CarbineRifleMk2CamoBoom, WeaponComponentHash.CarbineRifleMk2CamoPatriotic, }); case WeaponHash.CombatMGMk2: return(new WeaponComponentHash[] { WeaponComponentHash.CombatMGMk2ClipNormal, WeaponComponentHash.CombatMGMk2ClipExtended, WeaponComponentHash.CombatMGMk2ClipArmorPiercing, WeaponComponentHash.CombatMGMk2ClipFMJ, WeaponComponentHash.CombatMGMk2ClipIncendiary, WeaponComponentHash.CombatMGMk2ClipTracer, WeaponComponentHash.AtSights, WeaponComponentHash.AtScopeSmallMk2, WeaponComponentHash.AtScopeMediumMk2, WeaponComponentHash.AtMuzzle1, WeaponComponentHash.AtMuzzle2, WeaponComponentHash.AtMuzzle3, WeaponComponentHash.AtMuzzle4, WeaponComponentHash.AtMuzzle5, WeaponComponentHash.AtMuzzle6, WeaponComponentHash.AtMuzzle7, WeaponComponentHash.AtArAfGrip2, WeaponComponentHash.CombatMGMk2BarrelNormal, WeaponComponentHash.CombatMGMk2BarrelHeavy, WeaponComponentHash.CombatMGMk2CamoDigital, WeaponComponentHash.CombatMGMk2CamoBrushstroke, WeaponComponentHash.CombatMGMk2CamoWoodland, WeaponComponentHash.CombatMGMk2CamoSkull, WeaponComponentHash.CombatMGMk2CamoSessanta, WeaponComponentHash.CombatMGMk2CamoPerseus, WeaponComponentHash.CombatMGMk2CamoLeopard, WeaponComponentHash.CombatMGMk2CamoZebra, WeaponComponentHash.CombatMGMk2CamoGeometric, WeaponComponentHash.CombatMGMk2CamoBoom, WeaponComponentHash.CombatMGMk2CamoPatriotic, }); case WeaponHash.HeavySniperMk2: return(new WeaponComponentHash[] { WeaponComponentHash.HeavySniperMk2ClipNormal, WeaponComponentHash.HeavySniperMk2ClipExtended, WeaponComponentHash.HeavySniperMk2ClipArmorPiercing, WeaponComponentHash.HeavySniperMk2ClipExplosive, WeaponComponentHash.HeavySniperMk2ClipFMJ, WeaponComponentHash.HeavySniperMk2ClipIncendiary, WeaponComponentHash.HeavySniperMk2ScopeLarge, WeaponComponentHash.AtScopeMax, WeaponComponentHash.HeavySniperMk2ScopeNightvision, WeaponComponentHash.HeavySniperMk2ScopeThermal, WeaponComponentHash.HeavySniperMk2Suppressor, WeaponComponentHash.HeavySniperMk2Muzzle8, WeaponComponentHash.HeavySniperMk2Muzzle9, WeaponComponentHash.HeavySniperMk2BarrelNormal, WeaponComponentHash.HeavySniperMk2BarrelHeavy, WeaponComponentHash.HeavySniperMk2CamoDigital, WeaponComponentHash.HeavySniperMk2CamoBrushstroke, WeaponComponentHash.HeavySniperMk2CamoWoodland, WeaponComponentHash.HeavySniperMk2CamoSkull, WeaponComponentHash.HeavySniperMk2CamoSessanta, WeaponComponentHash.HeavySniperMk2CamoPerseus, WeaponComponentHash.HeavySniperMk2CamoLeopard, WeaponComponentHash.HeavySniperMk2CamoZebra, WeaponComponentHash.HeavySniperMk2CamoGeometric, WeaponComponentHash.HeavySniperMk2CamoBoom, WeaponComponentHash.HeavySniperMk2CamoPatriotic, }); case WeaponHash.SMGMk2: return(new WeaponComponentHash[] { WeaponComponentHash.SMGMk2ClipNormal, WeaponComponentHash.SMGMk2ClipExtended, WeaponComponentHash.SMGMk2ClipFMJ, WeaponComponentHash.SMGMk2ClipHollowpoint, WeaponComponentHash.SMGMk2ClipIncendiary, WeaponComponentHash.SMGMk2ClipTracer, WeaponComponentHash.AtArFlsh, WeaponComponentHash.SMGMk2Sights, WeaponComponentHash.SMGMk2ScopeMacro, WeaponComponentHash.SMGMk2ScopeSmall, WeaponComponentHash.AtPiSupp, WeaponComponentHash.SMGMk2BarrelNormal, WeaponComponentHash.SMGMk2BarrelHeavy, WeaponComponentHash.AtMuzzle1, WeaponComponentHash.AtMuzzle2, WeaponComponentHash.AtMuzzle3, WeaponComponentHash.AtMuzzle4, WeaponComponentHash.AtMuzzle5, WeaponComponentHash.AtMuzzle6, WeaponComponentHash.AtMuzzle7, WeaponComponentHash.SMGMk2CamoDigital, WeaponComponentHash.SMGMk2CamoBrushstroke, WeaponComponentHash.SMGMk2CamoWoodland, WeaponComponentHash.SMGMk2CamoSkull, WeaponComponentHash.SMGMk2CamoSessanta, WeaponComponentHash.SMGMk2CamoPerseus, WeaponComponentHash.SMGMk2CamoLeopard, WeaponComponentHash.SMGMk2CamoZebra, WeaponComponentHash.SMGMk2CamoGeometric, WeaponComponentHash.SMGMk2CamoBoom, WeaponComponentHash.SMGMk2CamoPatriotic, }); } WeaponComponentHash[] result = null; for (int i = 0, count = API.GetNumDlcWeapons(); i < count; i++) { unsafe { DlcWeaponData weaponData; if (Function.Call <bool>(Hash.GET_DLC_WEAPON_DATA, i, &weaponData)) { if (weaponData.Hash == hash) { result = new WeaponComponentHash[API.GetNumDlcWeaponComponents(i)]; for (int j = 0; j < result.Length; j++) { DlcWeaponComponentData componentData; if (Function.Call <bool>(Hash.GET_DLC_WEAPON_COMPONENT_DATA, i, j, &componentData)) { result[j] = componentData.Hash; } else { result[j] = WeaponComponentHash.Invalid; } } return(result); } } } } if (result == null) { result = new WeaponComponentHash[0]; } return(result); }
internal WeaponComponent(Ped owner, Weapon weapon, WeaponComponentHash component) { this._owner = owner; this._weapon = weapon; this._component = component; }