Skip to content

Commit 314919c

Browse files
committed
Update README.md
1 parent 11fa982 commit 314919c

File tree

1 file changed

+94
-22
lines changed

1 file changed

+94
-22
lines changed

README.md

+94-22
Original file line numberDiff line numberDiff line change
@@ -71,32 +71,104 @@ As **xiderowg**'s says on https://www.unknowncheats.me/forum/pubg-mobile/379241-
7171
---
7272
## Player Details
7373
![](https://raw.githubusercontent.com/atiksoftware/pubg_mobile_memory_hacking_examples/master/screens/example_player_reclass.jpg)
74+
---
75+
## Player Details
7476
```c++
75-
Entities[i].setHealthEnergy(
76-
get<float>(Entities[i].entityAddv + 0x77C), // maxHealth
77-
get<float>(Entities[i].entityAddv + 0x778), // curHealth
78-
get<float>(Entities[i].entityAddv + 0x1408), // maxEnergy
79-
get<float>(Entities[i].entityAddv + 0x140C) // curEnergy
80-
);
81-
// Player Weapon
82-
bool foundedActiveWeapon = false;
83-
DWORD weaponsCapsule = get<DWORD>(Entities[i].entityAddv + 0x12C);
84-
for(int w = 0; w < 16; w += 4){
85-
DWORD weaponBase = get<DWORD>(weaponsCapsule + w);
86-
DWORD weaponAmmoBase = get<DWORD>(weaponBase + 0x54);
87-
// handleA == 54234 && handleB == 2
88-
if(get<int>(weaponBase + 0xD8) == 54234 && get<int>(weaponBase + 0xDC) == 2){
89-
Entities[i].setActiveWeapon(
90-
get<int>(get<DWORD>(weaponBase + 0x4BC) + 0xC0), // weaponId
91-
get<int>(weaponAmmoBase + 0x7D4), // maxAmmo
92-
get<int>(weaponAmmoBase + 0x7D0) // curAmmo
93-
);
94-
foundedActiveWeapon = true;
95-
break;
96-
}
77+
DWORD NavMesh = dGet(Entities[i]->entityAddv + 312);
78+
Entities[i]->position = v3fGet(NavMesh + 0x150);
79+
Entities[i]->onEntiyPositionChanged();
80+
Entities[i]->velocity = v3fGet(NavMesh + 0x1A0);
81+
Entities[i]->onEntiyVelocityChanged();
82+
83+
Entities[i]->playerWorld = dGet(entityAddv + 0x138);
84+
85+
// Thats UFT16 wchar
86+
strcpy(Entities[i]->playerName, strGet(dGet(entityAddv + 0x5E8), iGet(entityAddv + 0x5EC) * 2));
87+
strcpy(Entities[i]->playerFlag, strGet(dGet(entityAddv + 0x5F4), 4));
88+
strcpy(Entities[i]->playerID, strGet(dGet(entityAddv + 0x604), 22));
89+
90+
Entities[i]->playerStatus = iGet(Entities[i]->playerWorld + 0x364);
91+
Entities[i]->playerTeamId = iGet(entityAddv + 0x610);
92+
Entities[i]->itsMe = 0;
93+
if(entityAddv == uMyObject){
94+
myTeamID = Entities[i]->playerTeamId;
95+
MeEntity = Entities[i];
96+
Entities[i]->itsMe = 1;
97+
}
98+
Entities[i]->itsFriend = 0;
99+
if(myTeamID == Entities[i]->playerTeamId){
100+
Entities[i]->itsFriend = 1;
101+
}
102+
Entities[i]->playerIsBot = iGet(entityAddv + 0x2B4) == 0 ? true : false;
103+
DWORD tmpAddv = dGet(entityAddv + 0x308);
104+
Entities[i]->bodyAddv = tmpAddv + 0x140;
105+
Entities[i]->boneAddv = dGet(tmpAddv + 0x580) + 0x30;
106+
107+
108+
Entities[i]->rotation = fGet(Entities[i]->playerWorld + 0x128); // ROTATE
109+
110+
/* PSOE Ites not ineger, bytes, but we will read as integer.
111+
1144306736 standing
112+
1143847984 crouched
113+
1143684144 creep */
114+
Entities[i]->playerPose = iGet(Entities[i]->playerWorld + 0x130);
115+
116+
Entities[i]->playerHealth.max = fGet(Entities[i]->entityAddv + 0x77C);
117+
Entities[i]->playerHealth.cur = fGet(Entities[i]->entityAddv + 0x778);
118+
Entities[i]->playerEnergy.max = fGet(Entities[i]->entityAddv + 0x1408);
119+
Entities[i]->playerEnergy.cur = fGet(Entities[i]->entityAddv + 0x140C);
120+
121+
DWORD weaponsCapsule = dGet(Entities[i]->entityAddv + 0x12C);
122+
Entities[i]->playerIsAttacking = false;
123+
for(int w = 0; w < 4; w++){
124+
DWORD weaponBase = dGet(weaponsCapsule + w * 4);
125+
DWORD weaponAmmoBase = dGet(weaponBase + 0x54);
126+
Entities[i]->playerWeapons[w].activity = iGet(weaponBase + 0xDC);
127+
Entities[i]->playerWeapons[w].state = iGet(weaponBase + 0x4C0);
128+
Entities[i]->playerWeapons[w].entityId = iGet(dGet(weaponBase + 0x4BC) + 0xC0);
129+
Entities[i]->playerWeapons[w].maxAmmo = iGet(weaponAmmoBase + 0x7D4);
130+
Entities[i]->playerWeapons[w].curAmmo = iGet(weaponAmmoBase + 0x7D0);
131+
}
132+
// Bones
133+
Entities[i]->boneActor = vectorBoneRead(Entities[i]->bodyAddv);
134+
for(int b = 0; b < 15; b++){
135+
Entities[i]->playerBones[b] = getPlayerBone(Entities[i]->boneAddv, Entities[i]->boneActor, i, b);
97136
}
98137
```
138+
---
139+
## Vehicle Details
140+
```c++
141+
DWORD NavMesh = dGet(Entities[i]->entityAddv + 312);
142+
Entities[i]->position = v3fGet(NavMesh + 0x150);
143+
Entities[i]->onEntiyPositionChanged();
99144
145+
Entities[i]->velocity = v3fGet(dGet(Entities[i]->entityAddv + 0x54) + 0x78);
146+
Entities[i]->onEntiyVelocityChanged();
147+
DWORD vehicleCommon = dGet(dGet(Entities[i]->entityAddv + 0x54) + 0x4D8);
148+
Entities[i]->vehicleHealth.max = fGet(vehicleCommon + 0x108);
149+
Entities[i]->vehicleHealth.cur = fGet(vehicleCommon + 0x10C);
150+
Entities[i]->vehicleFuel.max = fGet(vehicleCommon + 0x120);
151+
Entities[i]->vehicleFuel.cur = fGet(vehicleCommon + 0x124);
152+
```
153+
---
154+
## Inventory Details
155+
```c++
156+
int boxItemCount = iGet(entityAddv + 0x440);
157+
Entities[i]->inventoryItemCount = 0;
158+
if(boxItemCount < 60){
159+
DWORD itemEntry = iGet(entityAddv + 0x43C);
160+
if(itemEntry > 50000){
161+
for(int h = 0; h < boxItemCount; h++){
162+
DWORD itemAddv = itemEntry + h * 48;
163+
Entities[i]->inventoryItems[Entities[i]->inventoryItemCount].entityId = iGet(itemAddv + 0x4);
164+
if(Entities[i]->inventoryItems[Entities[i]->inventoryItemCount].entityId > 0){
165+
Entities[i]->inventoryItems[Entities[i]->inventoryItemCount].count = iGet(itemAddv + 0x18);
166+
Entities[i]->inventoryItemCount++;
167+
}
168+
}
169+
}
170+
}
171+
```
100172
---
101173

102174
## Item Details

0 commit comments

Comments
 (0)