Fixed corpse detection

This commit is contained in:
Héctor Giménez
2023-05-18 21:43:35 +09:00
parent de57c70f25
commit 080f09c9f5

View File

@@ -31,39 +31,38 @@ func (gd *GameReader) GetPlayerUnitPtr(roster data.Roster) (playerUnitPtr uintpt
baseCheck = gd.Process.ReadUInt(inventoryAddr+0x70, Uint16) baseCheck = gd.Process.ReadUInt(inventoryAddr+0x70, Uint16)
} }
if baseCheck > 0 { isCorpse := gd.Process.ReadUInt(playerUnit+0x1A6, Uint8)
isCorpse := gd.Process.ReadUInt(playerUnit+0x1A6, Uint8) if isCorpse == 1 {
unitID := gd.Process.ReadUInt(playerUnit+0x08, Uint32)
if isCorpse == 1 { hoveredUnitID, hoveredType, isHovered := gd.hoveredData()
unitID := gd.Process.ReadUInt(playerUnit+0x08, Uint32) corpse = data.Corpse{
hoveredUnitID, hoveredType, isHovered := gd.hoveredData() Found: true,
corpse = data.Corpse{ IsHovered: isHovered && hoveredUnitID == unitID && hoveredType == 0,
Found: true, Position: data.Position{
IsHovered: isHovered && hoveredUnitID == unitID && hoveredType == 0, X: int(xPos),
Position: data.Position{ Y: int(yPos),
X: int(xPos), },
Y: int(yPos),
},
}
} else {
playerUnitPtr = playerUnit
} }
} else { } else {
pUnitData := playerUnit + 0x10 if baseCheck > 0 {
playerNameAddr := uintptr(gd.Process.ReadUInt(pUnitData, Uint64)) playerUnitPtr = playerUnit
name := gd.Process.ReadStringFromMemory(playerNameAddr, 0) } else {
for k, rm := range roster { pUnitData := playerUnit + 0x10
if name != rm.Name { playerNameAddr := uintptr(gd.Process.ReadUInt(pUnitData, Uint64))
continue name := gd.Process.ReadStringFromMemory(playerNameAddr, 0)
} for k, rm := range roster {
if name != rm.Name {
continue
}
roster[k] = data.RosterMember{ roster[k] = data.RosterMember{
Name: name, Name: name,
Area: rm.Area, Area: rm.Area,
Position: data.Position{ Position: data.Position{
X: int(xPos), X: int(xPos),
Y: int(yPos), Y: int(yPos),
}, },
}
} }
} }
} }