THREAD: [SPRX/1.40] Forgotten V1 UPDATED!
  1. 11-13-2017, 09:42 PM
    TheGreenPlanet's Avatar
    TheGreenPlanet
    Do a barrel roll!
    TheGreenPlanet's Avatar
    TheGreenPlanet
    Do a barrel roll!
    109
    Posts
    878
    Reputation
    Jun 2013
    NextGenUpdate
    You must login or register to view this content.
    Hello NGU! Today I'm releasing my COD4 non-host .sprx menu. I've been working on this project for about a year now because of lack of enthusiasm for it. Though i finally pulled myself together and completed it. I'd also like to share all of my structs and addresses that I've reversed in hope that the community can learn something new. ps. I couldn't get No Spread to work.
    Hope you enjoy!
    Smile


    Structs:

    struct sWeapon
    {
    char WeaponShader[64];//Weapon Shader
    };
    struct Material
    {
    sWeapon * sWeapon;
    };
    typedef struct
    {
    int state; //0x0000
    char _0x04[0x1C]; //0x0004
    int type; //0x0020
    char _0x24[0x14]; //0x0024
    int *IP[4]; //0x0038
    char _0x3C[0x2124C]; //0x003C
    char *name; //0x21288
    char _0x2128C[0x81A00]; //0x2128C
    //size: 0xA2C8C
    }client_t;

    struct CWeaponInfo
    {
    char* ViewMode; //0000
    char unknown1[216];
    char* WeaponFx; //00DC
    };

    typedef struct
    {
    char _0x0000[0x4]; //0x0000
    CWeaponInfo* WeaponInfo; //0x0004
    char _0x0008[0x30]; //0x0008
    char *Name; //0x0038
    char _0x003C[0x8]; //0x003C
    //size: 0x0044
    }weaponinfo_t, *pWeaponinfo_t;

    struct weapDef
    {
    char _0x0000[0x12C]; //0x0000
    weapType_t weapType; //0x012C
    int weapClass; //0x0130
    int penetrateType; //0x0134
    char _0x0138[0x3E0]; //0x0138
    Material *sWeapon_t; //0x0518
    int killIconRatio; //0x051C
    int flipKillIcon; //0x0520
    char _0x0524[0x64]; //0x0524
    weapProjExposion_t projExplosion; //0x0588
    char _0x058C[0x20]; //0x058C
    int timedDetonation; //0x05AC
    char _0x05B0[0x16C]; //0x05B0
    float fAdsSpread; //0x071C
    char _0x0720[0xEC]; //0x0720
    float fMinDamageRange; //0x080C
    };

    typedef struct
    {
    int ServerTime; //0x0000
    int buttons; //0x0004
    int ViewAngles[3]; //0x0008
    char weaponindex; //0x0014
    char offhand; //0x0015
    char forwardmove; //0x0016
    char sidemove; //0x0017
    char pad[0x8]; //0x0018
    //size: 0x0020
    } usercmd_s;

    typedef struct
    {
    char _0x0000[0x8]; //0x0000
    int Width; //0x0008
    int Height; //0x000C
    char _0x0010[0x10]; //0x0010
    char GameType[0x04]; //0x0020
    char _0x0024[0x1C]; //0x0024
    char HostName[0x10]; //0x0040
    char _0x0050[0xF0]; //0x0050
    int MaxClients; //0x0140
    char _0x0144[0x04]; //0x0144
    char MapName[0x40]; //0x0148
    char _0x014C[0x3D18]; //0x014C
    //size: 0x3E64
    }cgs_s, *pcgs_s;

    typedef struct
    {
    char _0x0000[0x88]; //0x0000
    Vector3 BaseAngles; //0x0088
    char _0x0094[0x2549C]; //0x0094
    Vector3 ViewAngles; //0x25530
    int serverId; //0x2553C
    char _0x25540[0x40010]; //0x25540
    usercmd_s UserCommands[128]; //0x65550
    int CommandNumber; //0x66550
    } ClientActive_s, *pclientActive_s;

    typedef struct
    {
    short CurrentVaild; //0x0000
    short ItemValid; //0x0002
    char _0x0004[0x16]; //0x0004
    Vector3 Origin; //0x001C
    Vector3 Angles; //0x0028
    char _0x0034[0x40]; //0x0034
    int otherEntityNum; //0x0074
    int otherEntityNum2; //0x0078
    char _0x007C[0xC]; //0x007C
    int Item; //0x0088
    char _0x008C[0x34]; //0x008C
    int clientNum; //0x00C0
    int eType; //0x00C4
    int eFlags; //0x00C8
    char _0x00CC[0x70]; //0x00CC
    int groundEntityNum; //0x013C
    char _0x0140[0x8]; //0x0140
    int pickupId; //0x0148
    char _0x014C[0x38]; //0x014C
    int Weapon; //0x0184
    char _0x0188[0x2C]; //0x0188
    char Alive; //0x01B4
    char _0x01B8[0x18]; //0x01B8
    //size: 0x01D0
    }Centity_s, *pCentity_s;

    typedef struct
    {
    char _0x0000[0xC]; //0x0000
    char Name[0x20]; //0x000C
    int team; //0x002C
    char _0x0030[0xC]; //0x0030
    short perks[2]; //0x003C
    char Clan; //0x0040
    char _0x0044[0x1E7]; //0x0044
    int isAiming; //0x022C
    char _0x0230[0x1CC]; //0x0230
    Vector3 playerAngles; //0x03FC
    char _0x0408[0xE0]; //0x0408
    //size: 0x04E4
    } ClientInfo_t;

    typedef struct
    {
    int x; //0x0000
    int y; //0x0004
    int Width; //0x0008
    int Height; //0x000C
    Vector2 Fov; //0x0010
    Vector3 Origin; //0x0018
    Vector3 ViewAxis[3]; //0x0024
    //size: 0x0048
    } refdef_s;

    typedef struct
    {
    int time; //0x0000
    char _0x0004[0xF4]; //0x0004
    float fWeaponPosFrac; //0x00F8
    char _0x00FC[0x10]; //0x00FC
    Vector3 ViewAngles; //0x010C
    //size: 0x0118
    } playerState_s;

    typedef struct
    {
    int snapFlags; //0x0000
    int ping; //0x0004
    int serverTime; //0x0008
    char _0x000C[0x2F68]; //0x000C
    int entities; //0x2F78
    int numEntities; //0x2F7C
    } Snapshot_t;


    typedef struct
    {
    int clientNum; //0x0000
    char _0x0004[0x1C]; //0x0004
    Snapshot_t *Snap; //0x0020
    Snapshot_t *NextSnap; //0x0024
    char _0x0028[0xC]; //0x0028
    int time; //0x0034
    char _0x0038[0x148]; //0x0038
    float Health; //0x0180
    char _0x0184[0x4]; //0x0184
    float MaxHealth; //0x0188
    char _0x018C[0x43FB4]; //0x018C
    int renderingThirdPerson; //0x44140
    playerState_s pps; //0x44144
    char _0x4425C[0x514]; //0x4425C
    float spreadMultiplier; //0x44770
    char _0x44774[0x2B54]; //0x44774
    refdef_s refdef; //0x472C8
    char _0x47310[0x4050]; //0x47310
    Vector3 refdefViewAngles; //0x4B360
    char _0x4B36C[0x29B4]; //0x4B36C
    Vector2 gunAngles; //0x4DD20
    char _0x4DD2C[0x9AB40]; //0x4DD28
    ClientInfo_t clientInfo[18]; //0xE8868
    char _0xEE070[0x55C]; //0xEE070
    float aimSpreadScale; //0xEE5CC
    char pad10[0x88]; //0xEE5D0
    //size: 0xEE658
    }cg_s, *pcg_s;

    //WeaponInfo_t = 0x1022C7E4;
    //cgArray_s = 0x1022C7DC;
    //clientActive_s = 0x10267CE0;
    //centity_s = 0x1022C7F4;
    //cgState_s = 0x1022C7E0;



    Functions:
    namespace adresses
    {
    int UI_ClanKeyboard_a = 0x026F5BC;
    int Trace_GetEntityHitID_a = 0x157F30;
    int cBuff_AddText_a = 0x15EC18;
    int Dvar_GetBool_a = 0x1D4F10;
    int AimTarget_GetTagPos_a = 0x015100;
    int SL_GetStringOfSize_a = 0x17FD28;
    int Atan_a = 0x3596D0;
    int CG_LocationalTrace_a = 0x79098;
    int Dvar_GetString_a = 0x1D4E48;
    int BG_GetSpreadForWeapon_a = 0x29DD8;
    int BG_GetWeaponDef_a = 0x29978;
    int CG_GoodRandomFloat_a = 0x6FF28;
    int BG_GetSurfacePenetrationDepth_a = 0x298E8;
    int BG_AdvanceTrace_a = 0x2CC28;
    int BulletTraceO_a = 0x71370;
    int Sys_Milliseconds_a = 0x257938;
    int R_AddCmdDrawStretchPicRotateXY_a = 0x30F780;
    int R_RegisterFont_a = 0x2F6C60;
    int Material_RegisterHandle_a = 0x3076F8;
    int R_AddCmdDrawText_a = 0x30DF20;
    int R_AddCmdDrawStretchPic_a = 0x30F158;
    int R_AddCmdDrawTextWithEffects_a = 0x30DCF0;
    int R_TextWidth_a = 0x2F6E68;
    int R_TextHeight_a = 0x2F6C50;
    int R_NormalizedTextScale_a = 0x2F6C00;
    }


    Controls:
    OPEN MENU - DPAD UP + R3
    SCROLL UP / DOWN - DPAD UP / DPAD DOWN
    CLOSE - R3
    SELECT - SQUARE

    Changelog:

    Update 1.
    Added CEX support! (haven't been tested yet)
    Removed No Spread since it wasn't working.
    Fixed some UI.


    Video showcase:


    Download:
    You must login or register to view this content.

    Credits: TheGreenPlanet for everything Smile, kokole for his original "Perfect Autowall" code and Mr.Hankey for his "Movement Correction" source code.
    Last edited by TheGreenPlanet ; 12-19-2017 at 04:54 PM.

  2. The Following 10 Users Say Thank You to TheGreenPlanet For This Useful Post:

    , , , , , , , , ,

  3. 07-22-2018, 06:12 AM
    Toqe's Avatar
    Toqe
    Do a barrel roll!
    Toqe's Avatar
    Toqe
    Do a barrel roll!
    105
    Posts
    333
    Reputation
    Nov 2014
    NextGenUpdate
    Getting the multiplayer message but the menu wont open ? just turns on night vison