* Added States for monsters and corpses
Now can properly identify if a corpse is interactable with a skill ( barbarian, necromancer)
Also getting states about monsters : Exemple Soul Killer with Conviction aura: State 28 // conviction
Also can tell if monster has a state after you used a skill on it Exemple: State 56 Terror ( After using Barbarian skill Howl to fear )
Another Exemple using Grief on Mephistos he now have states : 2 poison
52 Preventheal
will be very useful for further development.
* Added modes to player
Now accessible in koolo using : s.data.PlayerUnit.Mode
Those are Modes for player:
const Death: 0;
const StandingOutsideTown: 1;
const Walking: 2;
const Running: 3;
const GettingHit: 4;
const StandingInTown: 5;
const WalkingInTown: 6;
const Attacking1: 7;
const Attacking2: 8;
const Blocking: 9;
const CastingSkill: 10;
const ThrowingItem: 11;
const Kicking: 12;
const UsingSkill1: 13;
const UsingSkill2: 14;
const UsingSkill3: 15;
const UsingSkill4: 16;
const Dead: 17;
const SkillActionSequence: 18;
const KnockedBack: 19;
* update Added alias(const) for player modes
can be used like this s.data.PlayerUnit.Mode == mode.StandingInTown
45 lines
886 B
Go
45 lines
886 B
Go
package memory
|
|
|
|
import (
|
|
"github.com/hectorgimenez/d2go/pkg/data"
|
|
"github.com/hectorgimenez/d2go/pkg/data/area"
|
|
"github.com/hectorgimenez/d2go/pkg/data/mode"
|
|
"github.com/hectorgimenez/d2go/pkg/data/stat"
|
|
"github.com/hectorgimenez/d2go/pkg/data/state"
|
|
)
|
|
|
|
type RawPlayerUnit struct {
|
|
data.UnitID
|
|
Address uintptr
|
|
Name string
|
|
IsMainPlayer bool
|
|
IsCorpse bool
|
|
Area area.ID
|
|
Position data.Position
|
|
IsHovered bool
|
|
States state.States
|
|
Stats stat.Stats
|
|
BaseStats stat.Stats
|
|
Mode mode.PlayerMode
|
|
}
|
|
|
|
type RawPlayerUnits []RawPlayerUnit
|
|
|
|
func (pu RawPlayerUnits) GetMainPlayer() RawPlayerUnit {
|
|
for _, p := range pu {
|
|
if p.IsMainPlayer {
|
|
return p
|
|
}
|
|
}
|
|
return RawPlayerUnit{}
|
|
}
|
|
|
|
func (pu RawPlayerUnits) GetCorpse() RawPlayerUnit {
|
|
for _, p := range pu {
|
|
if p.IsCorpse {
|
|
return p
|
|
}
|
|
}
|
|
return RawPlayerUnit{}
|
|
}
|