Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 31 44 43 45 49 50 51 52 54 58 60 61 63 64
- Entity-table benchmarks
- 0x884, _ ; // ~170 / Vehicles/Players/Zombies/Animals
- 0x92c, _ ; // ~400 / Vehicles/Players/Zombies/Animals
- 0x9d4, _ ; // ~70 / Vehicles/Players/Zombies/Animals
- 0xa7c, _ ; // ~140 / Vehicles/Players/Zombies/Animals
- 0xdcc, _ ; // ~400 / WeaponHolder etc
- 0xe74, _ ; // ~1500 / WeaponHolder etc
- 0xf1c, _ ; // ~180 / WeaponHolder etc
- 0xfc4 _ ; // ~856 / WeaponHolder etc
- // 0x106c, _ ; // ~0 / Land_A_MunicipalOffice
- // 0x7d8, _ ; // ~0 / Bullet/Explo ents
- // 0xb28, _ ; // ~50 / #Crap + B!rdz
- // 0xbd0, _ ; // ~50 / #Crap + B!rdz
- // 0xc78, _ ; // ~10 / #Crap
- // 0xd20 _ ; // ~30 / #Crap
- fog :
- CurrentFog -> 0xdfcdd8] +0x13F8
- MaxFog -> 0xdfcdd8] +0x13F4
- Both are floats, MaxFog is refreshed by server, so you need to loop the writememory on the values
- TP to crosshair :
- Allows you to get the coordinates from where you are watching ->
- Vec3 (x,z,y)-> 0xdfcdd8] +0x8] +0x24]
- WEATHER
- 0xE12C68] + 0x2FC] + 0x30] (float) = rain (its sets the amount of rain falling also if you set it completly to 1.0f you will get a big rainbow)
- 0xE12C68] + 0x2FC] + 0x34] (float) = something like a limit set it to 0.5f and the rain amount to 1.0f and the rain amount will drop to 0.5f
- ARMA_MAIN] + 0x13E8] (float) = overcast
- ARMA_MAIN] + 0x13EC] (float) = 1.0f is rain and 0.0f is no rain // Im not sure about this one but it should be the rain
- ARMA_MAIN] + 0x13F4] (float) = fog
- ARMA_MAIN] + 0x141C] (float) = count for weather change
- ARMA_MAIN] + 0x1420] (float) = time in seconds to next weather change (0x1420 - 0x141C = time to next weather change
- WorldName: 0xE258C4 - (char*) len = 80 // Note: for "Desert" its "Desert_E" you have to take a look which is the internal name for the map
- We can "steal" any item from the map(inside tens, weapon holders..) using a simple WPM.
- How to do it:
- Read from "weaponHolder"+0x21C write it in "otherWeaponHolder"+0x21C
- Open the inventory of the second "weaponHolder"
- I only got it working if i'm inside a vehicle, so i write the value of some "weaponHolder"+0x21C to localPlayer+0x21C and then open the gear of the vehicle.
- when i refer to weaponHolder, i only tested for Tents and WeaponHolders, but i assume you can steal from cars as well.
- It dupes the item, so if you reconnect, you can get the same items again.
- Players coord X : 0x28
- Players coord Y : 0x30
- Players coord Z : 0x2C
- Players HEAD coord X : 0x10C
- Players HEAD coord Y : 0x114
- Players HEAD coord Z : 0x110
- Players BODY coord X : 0x118
- Players BODY coord Y : 0x120
- Players BODY coord Z : 0x11C
- These are the two arrays that contain all of the gear in a vehicle.
- PtrToGear = entity + 0x21c] (credit to andreb at the top of page 49) Note that this is just zero on players/NPCs
- PtrToGear + 0xc] array of eqiupment (guns and tools, anything you don't consume)
- PtrToGear + 0x10] size of equipment array
- PtrToGear + 0x18] array of consumables (ammo, food, parts)
- PtrToGear + 0x1c] size of consumable array
- These are the two arrays that contain all of the gear on a player, including you.
- Entity + 0x688] array of equipment
- Entity + 0x68c] size of equip array
- Entity + 0x6a0] consumable array
- Entity + 0x6a4] size of consumable array
- Each array holds a ptr to an item class and from what I can see the game is looping over the array based on the size variable so you must increment/decrement the size if you add/remove items.
- equipment class
- + 0x10] + 0x4] + 0x4] model name len
- + 0x10] + 0x4] + 0x8] model name
- + 0x18] + 0x4] display name len
- + 0x18] + 0x8] display name
- + 0x1c] + 0x4] type len
- + 0x1c] + 0x8] type
- consumable class
- info = +0x8]
- info + 0xc] + 0x4] +0x4] model name len
- info + 0xc] + 0x4] +0x8] model name
- info + 0x14] + 0x4] display name len
- info + 0x14] + 0x8] display name
- info + 0x20] + 0x4] type len
- info + 0x20] + 0x8] type
- Backpack offset: Entity + 6ac.
- delItemFrInv:
- WriteInt(Entity+ 0x6a4, equArS - 1, (int)ph);
- WriteInt(equAr - equArS * 4, equArCur, (int)ph);
- Big info 1 (less big info)
- Entity + 0b5c] + i*4] + 0x54] + weaponID * 0x24 + 4] + 8] + 0x200]
- + 0x140 for Bullet Damge
- + 0x198 for Bullet Range (bullet's time to live, second)
- + 0x144 for indirect Damage
- + 0x148 for indirect Damage Range
- + 0x188 for Explosive Bullet (Just performance, not damage. Maybe it shows only in local)
- 0x18C -> bullet recoil...
- set it to 0(float) , and your gun will not move while shooting.
- Useful to refill @ reload
- if (GetAsyncKeyState(0x52)) // 0x52 -> "R" -> Reload button
- RefillAmmo(); // your infinite ammo function
- If you set localplayer + 0xc4] = 0 you wont take fall damage (but you may start bleeding).
- SPEED OFFSETS
- Player + 0x18
- (Player speed , depends of camera position)
- 0x54 -X( right+\left-)
- 0x58 -Y (up\down)
- 0x5C -Z (forward+)
- (global acceleration)
- 0x48 -X
- 0x4C -Y
- 0x50 -Z
- PrtToGear + 0x38] backpack array
- PrtToGear + 0x3c] backpack size
- backpack class
- + 0x3C] + 0x30] + 0x4] type len
- + 0x3C] + 0x30] + 0x8] type
- create your own gui (use EX_TOPMOST to keep it over the game)
- add WS_EX_MDICHILD with SetWindowLong to chromes hwnd
- set chromes parentwindow with SetParent (parent is your gui)
- adjust chromes position/size in your own gui to only show chromes viewport
- class EntityInfo
- {
- public:
- char _0x0000[48];
- ArmaString* pModelName; //0x0030
- char _0x0034[20];
- DWORD classType; //0x0048
- char _0x004C[32];
- ArmaString* pClassName; //0x006C
- char _0x0070[1424];
- float maxFuelLevel; //0x0600
- char _0x0604[212];
- DWORD maxEquipmentCount; //0x06D8
- DWORD maxConsumablesCount; //0x06DC
- DWORD maxBackpacksCount; //0x06E0
- };//Size=0x06E4
- In your Entity class:
- EntityInfo* pEntityInfo; //0x003C
- speed code
- ome speed offsets
- Code:
- speed.X = GetFloat(coordsPtr+0x48);
- speed.Y = GetFloat(coordsPtr+0x50);
- speed.Z = GetFloat(coordsPtr+0x4C);
- its work for vehicles good, but for players its allways is 0.5 (normal run speed in arma is 5.6 m/s)
- but, we can obtain speed scalar
- Code:
- speedLength = GetFloat(playerPtr + 0X13E4);
- and we also have direction (u and w from first post).
- speedhacK: (he is using 0xDF5634 as base since hes strating from arma2oa base)
- DWORD addy = (DWORD)GetModuleHandle ("arma2oa.exe");
- DWORD pointer1 = 0;
- DWORD pointer2 = 0;
- readshit(addy,0x9F5634,&pointer1);
- readshit(pointer1,0x18,&pointer2);
- writeshit(pointer2,0x228,300.0f);
- 0x165 to an entity makes it invisible clientside
- Calculating map size:
- 0xDFCDD8] + 0x05C8] + 0x0024] (uint) @ Height map
- 0xDFCDD8] + 0x05C8] + 0x0034] (float) @ Cell size
- Example:
- Height map for Chernarus is 2048, and cell size is 7.5m.
- Total height: 2048 * 7.5 = 15360
- WEAPON BIG INFO 2
- +
- 140 hit
- 144 indirect hit
- 148 indirect hit range
- 150 maneuvrability
- 154 track oversteer
- 158 track lead
- 15C init time
- 160 thrust time
- 164 thrust
- 168 side air friction
- 170 fuse distance
- 174 cost
- 178 max speed
- 17C simulation step
- 188 explosive
- 18C caliber
- 198 time to live
- 19C air friction
- 1A0 side air friction
- 1AC Cm immunity
- 1C8 audible fire
- 1CC visible fire
- 1D0 visible fire time
- 2F8 tracer scale
- 2FC tracer start time
- 300 tracer end time
- 308 whistle dist
- 30C whistle on fire
- D2 forceOptics //byte
- D4 showAimCursorIternal //byte
- E4 useAsBinocular //byte
- C8 fireSpreadAngle
- 140 hit
- 144 indirect hit
- 148 indirect hit range
- 150 maneuvrability
- 154 track oversteer
- 158 track lead
- 15C init time
- 160 thrust time
- 164 thrust
- 168 side air friction
- 170 fuse distance
- 174 cost
- 178 max speed
- 17C simulation step
- 188 explosive
- 18C caliber
- 198 time to live
- 19C air friction
- 1A0 side air friction
- 1AC Cm immunity
- 1C8 audible fire
- 1CC visible fire
- 1D0 visible fire time
- 2F8 tracer scale
- 2FC tracer start time
- 300 tracer end time
- 308 whistle dist
- 30C whistle on fire// irDistance //int32
- 1C0 opticsZoomMax
- 1C4 opticsZoomMin
- 1B4 distanceZoomMax
- 1B8 distanceZoomMin
- 1BC opticsZoomInit
- 0xE1492C]+ 0xE8]+ 0x0]+ 0x450]+ 0x5c]+0xc
- objectTableAddr = 0xDFCDD8
- Blood Offset Chain:
- Code:
- ( [[[[[[objectTableAddr] + 0x600] + 0xDC] + 0x28] + 0x450] + 0x84] ) + ( 0xC )
- The value you write to the address will be a float. 12000.0 for full blood and 0.0 for...well none...aka dead. And anything in between.
- Consciousnesses (Epi-pen) Offset Chain:
- Code:
- ( [[[[[objectTableAddr] + 0x600] + 0xE0] + 0x258] + 0xC] ) + ( 0xC )
- Write 0.0 (float) to become conscious and 1.0 to knock yourself out
- Bleeding Offset Chain (Bandage):
- Code:
- ( [[[[[[objectTableAddr] + 0x600] + 0x7F4] + 0x28] + 0x510] + 0x84] ) + ( 0xC )
- Write 0.0 (float) to stop the bleeding and 1.0 to start bleeding. This is especially useful for the teleport workaround
- DFCDD8>13a8>4>c48 - Holding breath when in scope 1- no exaustion 0.5 - maximal exaustion
- pos = read(pilePtr + 0x18)
- write(pos + 0x28, float x)
- write(pos + 0x30, float y)
- write(pos + 0x2C, 0f)
- Doesn't do anything at all. However, doing :
- playcoord = read(localplayer + 0x18)
- write(pilePtr + 0x18, playcoord)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement