Hello again! This is the about 95% of the CWeapon structure. Took me a few days to do it.
Since this isn't intended for C+P, I left out the sub-structures, but if you can code, you can figure out.
If you guys spot any mistakes, please let me know. Enjoy!
Code:
struct CWeapon
{
char pad_0x0000[2];
BYTE WeaponClass;
char pad_0x0003[1];
DWORD DieAnimType;
DWORD PairWeapon;
BYTE PairType;
BYTE ModeLimitedWeapon;
char WeaponName[51];
char StandardName[51];
char CustomColorStandardName[51];
char PVDecalSkinFileName[5][73];
char QVDecalSkinFileName[5][73];
char PreViewModelFileName[65];
char ModelFileName[65];
char MotionFileName[49];
char MotionFileNameDMZ[65];
char ChangeModelFileName[3][65];
char ChgBulletGviewAnimName[37];
char WModelFileName[65];
char WModelFileNameDMZ[65];
char WChangeModelFileName[65];
char SkinFileName[5][73];
char ChangeSkinFileName[5][73];
char RenderStyleFileName[5][33];
char GViewAnimName[37];
char SelectGviewAnimName[37];
char SprinterGviewAnimName[37];
char DMZGviewAnimName[37];
char ZoomShotGViewAnimName[37];
float GVModelScale;
char ReloadSoundName[33];
char GroupSoundName[33];
char SubExplosionSoundName[33];
char SubBounceSoundName[33];
char StiffAreaFXName[65];
char StiffAreaSoundName[33];
char StiffEffectFXName[65];
char StiffEffectSoundName[33];
float StiffEffectDuration;
float StiffEffectMoveSpeedPenalty;
float PosOffset[3];
float PerturbMin[5];
char pad_0x0BCC[40];
float PerturbMax[5];
char pad_0x0C08[40];
float Range;
float AIModeRange;
WORD MaxAmmo;
WORD AmmoPerMagazine;
WORD NanoMaxAmmo;
WORD NanoAmmoPerMagazine;
float AmmoDamage;
float AIModeAmmoDamage;
DWORD TargetSlot;
BYTE SubType[2];
BYTE UseAISheelMode;
char pad_0x0C4F[1];
float DamageFactorByDistance;
float AIModeDamageFactorByDistance;
float DamageVariantionFactor;
float ShotsPerMinute[2];
BYTE ShotsPerAmmo;
char pad_0x0C65[1];
WORD WeaponPrice;
WORD AmmoPrice;
char pad_0x0C6A[2];
DWORD ReloadSingleAmmo;
float AIBurstPvChangeLimit;
_ArmorDamageRatioPerNode ArmorDamageRatioPerNode[5];
char KnifeHitSoundName[33];
char GViewKnifeAttackAnimName[37];
char pad_0x0F12[2];
float KnifeNormalRange[4];
float KnifeNormalAngle[4];
float KnifeNormalAniRate[4];
float KnifeBigshotRange[4];
float KnifeBigshotAngle[4];
float KnifeBigshotAniRate[4];
float KnifeNormalRange2[4];
float KnifeNormalAngle2[4];
float KnifeNormalAniRate2[4];
float KnifeBigshotRange2[4];
float KnifeBigshotAngle2[4];
float KnifeBigshotAniRate2[4];
DWORD LeftClickAttributes;
DWORD RightClickAttributes;
DWORD ZoomAttributes;
DWORD ReloadAttributes;
DWORD KnifeLeftClickAttributes;
DWORD KnifeRightClickAttributes;
DWORD IsDroppedWhenDie;
DWORD DependentRoundType;
DWORD SubWeaponIndex;
DWORD MainWeaponIndex;
_LinkWeaponIndex LinkWeaponIndex[2];
DWORD LinkWeaponModeCheck[2][5];
DWORD WhenStartChargingFull;
DWORD ExpansionAmmoCheck[2][4];
DWORD WhenFullChargingLinkWeapon;
DWORD ChangeHandWeaponIndex;
float ChangeModeAnimRatio;
char ChangeModeGviewAnimName[37];
char GViewHoldPrefireAnimName[37];
char GViewHoldFireAnimName[37];
char GViewHoldPrefireAnimNameSD[37];
char GViewHoldFireAnimNameSD[37];
char pad_0x1135[3];
DWORD ShotMinusAmmo;
float MoveSpeedPenalty;
float ChargingTime;
float RespawnChargingTime;
float DamageRatioPerNode[30];
float GunKnifeDamageRatioPerNode[30];
float KnifeNormalAmmoDamage[4];
float KnifeBigshotAmmoDamage[4];
float KnifeNormalAmmoDamage2[4];
float KnifeBigshotAmmoDamage2[4];
float KnifeBigshotAmmoDamage3[4];
float KnifeBigshotAmmoDamage4[4];
float SmokeAlpha;
float ReloadAnimRatio;
float ChangeWeaponAnimRatio;
float FullReactPitch[5];
char pad_0x12B8[40];
float FullReactYaw[5];
char pad_0x12F4[36];
float DetailPerturbShot[3][5];
float DetailReactPitchShot[3][5];
float DetailReactYawShot[3][5];
char pad_0x13CC[4];
float FireAnimMultiplier;
float PrefireAnimRatio;
DWORD PassiveBuff[2];
float PassiveBuffAmmoDamage;
float PassiveBuffDamageRatioPerNode[30];
float PassiveBuffShotsPerMinute;
float PassiveBuffMoveSpeedPenalty;
float PassiveBuffMovePenaltyForDelayFire;
char PassiveBuffSoundName[33];
char PVBuffEffectName[65];
char pad_0x14CA[2];
_LinkWeaponNCharModeCheck LinkWeaponNCharModeCheck[5];
char pad_0x1508[2804];
DWORD ZoomStatusLockFire;
char PViewSkinFileName[5][73];
char pad_0x216D[3];
float MovePenaltyForDelayFire;
float MovePenaltyForSpecialBigshot;
char GViewSpecialBigshotAnimName[37];
char pad_0x219D[3];
DWORD ContinuousShotInterval;
char pad_0x21A4[8];
char PViewModelFileName[65];
char pad_0x21ED[3];
float RandomSelectWeaponIndex[20];
DWORD RandomSelectWeaponIndex2[20];
_ChainExplosion ChainExplosion[5];
DWORD ChainExplosionCount;
_FirstWallShotDamage FirstWallShotDamage;
float WallShotDamageRatio[13];
char LeftHandModelFileName[65];
char WLeftHandModelFileName[65];
char LeftHandChangeModelFileName[65];
char WLeftHandChangeModelFileName[65];
char PViewRenderStyleFileName[5][33];
char ShotSoundName[33];
char MagazineClipOutSoundName[33];
char MagazineClipInSoundName[33];
char BlowBackSoundName[33];
char DelBlowBackSoundName[33];
char Extra01SoundName[33];
char Extra02SoundName[33];
char Extra03SoundName[33];
char Extra04SoundName[33];
char Extra05SoundName[33];
char Extra06SoundName[33];
char Extra07SoundName[33];
char Extra08SoundName[33];
char ShotSoundStartName[33];
char BigIconName[49];
char SmallIconName[49];
char EffectSubName[65];
BYTE EffectGunFireCount;
BYTE EffectPVGunFireCount;
char EffectGunFire[5][65];
char EffectPVGunFire[5][65];
BYTE HitEffectNameCount;
char HitEffectName[5][65];
char WeaponInfoString[513];
char SpecularMapName[3][73];
float SpecularPower;
char ReflectionName[73];
char pad_0x2E11[3];
float ReflectionValue;
DWORD LightCorrectionLegacyShader;
float BulletPosOffset[3];
_ShotReact ShotReactYaw[3][13];
_ShotReact ShotReactPitch[3][13];
_SideReactDirect SizeReactDirect[13];
float DamageCameraPenalty;
float ZoomAction[3];
char pad_0x3214[28];
WORD ZoomActionCount;
char pad_0x3232[2];
float ZoomAction2;
float ZoomAction3;
float ZoomInMoveSpeedPenalty;
BYTE ZoomTargetType[4];
BYTE ZoomTargetTypeCount;
char pad_0x3245[3];
float PrefireAnimMultiplier;
char pad_0x324C[4];
float ZoomInFireAnimMultiplier;
float ChangeMovingRealSize[5];
DWORD DelayOneShootTime[3];
float LowerAnimRate[7];
DWORD ShootThroughCharacter;
DWORD ShootThroughWall;
DWORD ShootThroughCharacterInNanoMode;
DWORD FlipEffect;
WORD AllowedWeaponSoldierRank;
char pad_0x32A2[2];
_PVPosAndRotAndFovDefault PVPosAndRotAndFovDefault;
_PVPosAndRotAndFovDefault PVPosAndRotAndFovDefaultWoman;
BYTE Is_WomanPV;
char pad_0x32DD[3];
_CameraYawAndPitch CameraYawAndPitch[13];
DWORD MaxStopPosTime;
WORD MaxOneShotAndSize;
char pad_0x3382[2];
float MaxOneShotAndSize2;
char pad_0x3388[12];
_DamagePenaltyTimeAndMoveRate DamagePenaltyTimeAndMoveRate;
_DamagePenaltyTimeAndMoveRate NanoGhostDamagePenaltyTimeAndMoveRate;
float CrossHairRatioPerRealSize[5];
DWORD ContinuousShotKeyInterval;
char KnifeMetalSoundName[33];
char KnifeStoneSoundName[33];
char KnifeWoodSoundName[33];
char KnifeBrokenGlassSoundName[33];
char KnifeCarpetSoundName[33];
char KnifeSnowSoundName[33];
BYTE KnifeNormalRangeCount;
BYTE KnifeBigshotRangeCount;
_RifleZoomInfo RifleZoomInfo;
char RemovePinRemoveSoundName[33];
char pad_0x34C1[3];
DWORD HaveKnife;
char KnifeAnimName[37];
char KnifeAttackSoundName[33];
char pad_0x350E[2];
float Knockback[2];
char pad_0x3518[4];
float BulletMarkRatio1;
char pad_0x3520[20];
float RunAnimRatio;
_PVEffectName PVEffectName[14];
char pad_0x3792[688];
_EffectIndicatorName EffectIndicatorName[14];
char pad_0x3C9C[104];
BYTE KillComboEffect[15];
_KillComboEffectSND KillComboEffectSND[15];
char pad_0x3F02[62];
BYTE EffectIndicatorNameCount;
char pad_0x3F41[743];
char PVIdleEffectName[65];
char GrenadeDecalName[65];
BYTE BulletFXAttribute;
BYTE WhenLastShotPrefire;
char ShotGviewAnimName[37];
char ReloadGviewAnimName[37];
char NormalShot1GviewAnimName[37];
char NormalShot2GviewAnimName[37];
char BigShotGviewAnimName[37];
char ShotGviewAnimNameSD[37];
char ReloadGviewAnimNameSD[37];
char pad_0x43AF[4];
BYTE VVIPBuffFlag[10];
char pad_0x43BD[3];
DWORD IsGunKnifeJitter;
BYTE QVModelInvisible;
char pad_0x43C5[3];
float HPRecoveryStartTimeReduce;
float GM2WeaponGaugeDownRate;
DWORD SpecialWeaponType;
float SpecialWeaponRadius;
float SpecialWeaponDist;
DWORD ThroughNum;
float ThroughPow;
BYTE SpecialWeaponInput;
BYTE SpecialWeaponShotGuage;
BYTE SpecialWeaponLaser[4];
BYTE RoundKickAbilityTableID;
BYTE SlidingAbilityTableID;
char pad_0x43EC[76];
float ZoomCrosshairRadius;
DWORD LeverAction;
float SpecialWeaponEffectTimePerAmmo;
float SpecialWeaponSpeedRatePerAmmo;
DWORD SpecialWeaponShellIndex;
float BoomShellScale[3];
float RightActionDimBox[3];
char QVAttachEffect[65];
char QVAttachSocketName[13];
_ZoomCrosshairRender ZoomCrosshairRender[4];
WORD IsWarheadWeapon;
DWORD WarheadIndex;
DWORD SelectKnifeAttack;
char SelectAnimName[37];
char pad_0x44ED[3];
float SelectKnifeAttackRange[4];
float SelectKnifeAttackAngle[4];
float SelectKnifeAttackAmmoDamage[4];
char SelectKnifeAttackSoundName[33];
char pad_0x4541[3];
float PVLowerAnimAcitveTime;
char ProjectileModelFileName[65];
char ProjectileSkinFileName[73];
char LinkAttackGViewAnimName[37];
char pad_0x45F7[1];
float KnifeLinkAttackRange;
float KnifeLinkAttackAngle;
float KnifeLinkAttackAniRate;
float KnifeLinkAttackAmmoDamage;
float ProjectilePos[3];
BYTE GviewReloadAnimCorrect;
BYTE GviewKnifeAttackAnimCorrect;
BYTE GviewShotAnimCorrect;
char pad_0x4617[1];
float ChgBulletAnimRatio;
DWORD DMZType;
DWORD BulletType;
char AccessoryHideSocket[5][13];
char pad_0x4667[3];
float GviewModelRotation[3];
float GviewModelPosOffset[3];
float LeftHandGviewModelRotation[3];
float LeftHandGviewModelPosOffset[3];
char pad_0x4698[4];
float AttackPenalty[5];
BYTE AttackPenaltyPerNode[7];
char pad_0x46B7[1];
float AttackPenaltyKnife1[4];
char pad_0x46C8[4];
float AttackPenaltyKnife2[4];
char pad_0x46DC[4];
BYTE AttackPenaltyAI;
BYTE AttackPenaltyNano;
char pad_0x46E2[2];
float AttackCameraCorrectPitch[2];
float AttackCameraCorrectYaw[2];
float AttackPenaltyEndDistance;
BYTE AttackPenaltyDistanceActive;
BYTE NewAttackPenalty;
BYTE AttackPenaltyPlayer;
BYTE BackUpZoomTargetType;
_BackUpZoomInfo BackUpZoomInfo;
char pad_0x471A[2];
float BackUpZoomInMoveSpeedPenalty;
char ProjectileSoundName[33];
char pad_0x4741[3];
DWORD SpecialShotCycle;
DWORD SpecialAmmoDamage;
char SpecialShotSoundName[33];
BYTE SpecialEffectGunFireCount;
BYTE SpecialEffectPVGunFireCount;
_SpecialEffectGunFire SpecialEffectGunFire[5];
_SpecialEffectPVGunFire SpecialEffectPVGunFire[5];
BYTE EffectGunFireAICount;
BYTE EffectPVGunFireAICount;
_EffectGunFireAI EffectGunFireAI[5];
_EffectPVGunFireAI EffectPVGunFireAI[1];
char pad_0x4B81[260];
char PViewSkinFileNameAI[73];
char SkinFileNameAI[73];
char SpecialShotReadySoundName[33];
char StandardNameAI[51];
char pad_0x4D6B[1];
DWORD GameModeByDifferentAmmoIndex[2];
DWORD GameModeMaxAmmo[2];
DWORD GameModeAmmoPerMagazine[2];
DWORD KnifeDecalEffectCount;
_KnifeDecalEffect KnifeDecalEffect[6];
float VariableScopeModeInterval;
BYTE ZoomSpeedCorrect;
char pad_0x5105[3];
DWORD WheelSpeedInterval;
float WheelSpeedInterval2;
float ZoomSection1_1;
float ZoomSection2_1;
float ZoomSection1_2;
float ZoomSection2_2;
char ThrowModelFileName[65];
char ThrowSkinFileName[73];
char ThrowSkinFileName2[73];
char CrossHairFileName[73];
char pad_0x523C[12];
float DamageOverTime[4];
DWORD IsRenderCrossHair;
DWORD SpecialAttackTotalDamage;
DWORD MountedWeaponType;
float PViewAngleLimit[4];
char MountedStandModelFileName[65];
char SpecialKeyIconName[49];
char pad_0x52E6[2];
DWORD ThrowAmmoPerMagazine;
float FastFireAnimRatio;
float SupplyReloadTime;
BYTE MuzzleChangeItemCheck[2];
_FlashBangWithImg FlashBangWithImg;
char pad_0x534F[1];
BYTE IsDrapedTransform;
char pad_0x5351[3];
float DroppedGVModelDimension[3];
float DroppedGVModelRotation[3];
float EffectPVGunFireControl[3];
float EffectPVGunFireZoomControl[3];
BYTE GrenadeControl[4];
DWORD WhenKnifeModeWeaponUse;
DWORD LeftClickKnifeSpecialIndex;
DWORD RightClickKnifeSpecialIndex;
DWORD CharacterWeapon;
DWORD PossibleRadomAni;
BYTE PVRadomAniNum[23];
BYTE GVRadomAniNum[13];
char pad_0x53C0[4];
_ReCoverProgress ReCoverProgressAC;
_ReCoverProgress ReCoverProgressHP;
_LuckyBoomSWORD LuckyBoomSWORD;
char PVWeaponArmKeyWORD[33];
char pad_0x5425[1];
WORD SprayWithGrenade;
BYTE HPCapsule;
char pad_0x5429[3];
_HPCapsuleFireRatio HPCapsuleFireRatio;
_SelectRunAnimRatio SelectRunAnimRatio;
DWORD AlwaysCharging;
float ActiveGauge;
_ActiveRange ActiveRange[5];
WORD FlashBangTimeControl[4];
WORD BackMirrorUsing[3];
char ScriptFileLoad[51];
char GViewAnimNameSD[37];
char pad_0x5B4E[2];
float GVModelScaleSD;
char GViewKnifeAttackAnimNameSD[37];
char LinkAttackGViewAnimNameSD[37];
char SelectAnimNameSD[37];
char ChangeModeGviewAnimNameSD[37];
char KnifeAnimNameSD[37];
char ChgBulletGviewAnimNameSD[37];
char GViewSpecialBigshotAnimNameSD[37];
char DMZGviewAnimNameSD[37];
char ZoomShotGViewAnimNameSD[37];
char pad_0x5CA1[3];
float JumpGravity;
float MoveSpeedIncrease[3];
};
TODO:
Code:
ThrowVelAngleGravityAirResTime
IsLoopEffect
XuanYuanBuff
ContinuousFireMotionData