left/right selected skills
This commit is contained in:
@@ -135,14 +135,16 @@ type Position struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type PlayerUnit struct {
|
type PlayerUnit struct {
|
||||||
Name string
|
Name string
|
||||||
ID UnitID
|
ID UnitID
|
||||||
Area area.Area
|
Area area.Area
|
||||||
Position Position
|
Position Position
|
||||||
Stats map[stat.ID]int
|
Stats map[stat.ID]int
|
||||||
Skills map[skill.Skill]int
|
Skills map[skill.Skill]int
|
||||||
States state.States
|
States state.States
|
||||||
Class Class
|
Class Class
|
||||||
|
LeftSkill skill.Skill
|
||||||
|
RightSkill skill.Skill
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pu PlayerUnit) MaxGold() int {
|
func (pu PlayerUnit) MaxGold() int {
|
||||||
|
|||||||
@@ -115,7 +115,16 @@ func (gd *GameReader) GetPlayerUnit(playerUnit uintptr) data.PlayerUnit {
|
|||||||
states := gd.getStates(statsListExPtr)
|
states := gd.getStates(statsListExPtr)
|
||||||
|
|
||||||
// Skills
|
// Skills
|
||||||
skills := gd.getSkills(playerUnit + 0x100)
|
skillListPtr := uintptr(gd.Process.ReadUInt(playerUnit+0x100, Uint64))
|
||||||
|
skills := gd.getSkills(skillListPtr)
|
||||||
|
|
||||||
|
leftSkillPtr := gd.Process.ReadUInt(skillListPtr+0x08, Uint64)
|
||||||
|
leftSkillTxtPtr := uintptr(gd.Process.ReadUInt(uintptr(leftSkillPtr), Uint64))
|
||||||
|
leftSkillId := uintptr(gd.Process.ReadUInt(leftSkillTxtPtr, Uint16))
|
||||||
|
|
||||||
|
rightSkillPtr := gd.Process.ReadUInt(skillListPtr+0x10, Uint64)
|
||||||
|
rightSkillTxtPtr := uintptr(gd.Process.ReadUInt(uintptr(rightSkillPtr), Uint64))
|
||||||
|
rightSkillId := uintptr(gd.Process.ReadUInt(rightSkillTxtPtr, Uint16))
|
||||||
|
|
||||||
// Class
|
// Class
|
||||||
class := data.Class(gd.Process.ReadUInt(playerUnit+0x174, Uint32))
|
class := data.Class(gd.Process.ReadUInt(playerUnit+0x174, Uint32))
|
||||||
@@ -135,16 +144,17 @@ func (gd *GameReader) GetPlayerUnit(playerUnit uintptr) data.PlayerUnit {
|
|||||||
X: int(xPos),
|
X: int(xPos),
|
||||||
Y: int(yPos),
|
Y: int(yPos),
|
||||||
},
|
},
|
||||||
Stats: stats,
|
Stats: stats,
|
||||||
Skills: skills,
|
Skills: skills,
|
||||||
States: states,
|
States: states,
|
||||||
Class: class,
|
Class: class,
|
||||||
|
LeftSkill: skill.Skill(leftSkillId),
|
||||||
|
RightSkill: skill.Skill(rightSkillId),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gd *GameReader) getSkills(skillsPtr uintptr) map[skill.Skill]int {
|
func (gd *GameReader) getSkills(skillListPtr uintptr) map[skill.Skill]int {
|
||||||
skills := make(map[skill.Skill]int)
|
skills := make(map[skill.Skill]int)
|
||||||
skillListPtr := uintptr(gd.Process.ReadUInt(skillsPtr, Uint64))
|
|
||||||
|
|
||||||
skillPtr := uintptr(gd.Process.ReadUInt(skillListPtr, Uint64))
|
skillPtr := uintptr(gd.Process.ReadUInt(skillListPtr, Uint64))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user