Code: Select all
#turbo
Sub Main
/call MobLookNormalized ${Target.ID}
/return
|--------------------------------------------------------------------------------
|SUB: Angle from 2 points
|--------------------------------------------------------------------------------
Sub SlopeToAngle(float P1X, float P1Y, float P2X, float P2Y)
/declare Denominator float
/varcalc Denominator ${P2X} - ${P1X}
/if ( ${Math.Abs[${Denominator}]} < 0.01 ) {
/return 0
}
/return ${Math.Atan[${Math.Calc[(${P2Y}-${P1Y})/(${P2X}-${P1X})]}]}
/return
|--------------------------------------------------------------------------------
|SUB: Angle a mob is looking relative to Me
|--------------------------------------------------------------------------------
Sub MobLook(float SpawnID)
/call SlopeToAngle ${Me.Y} ${Me.X} ${Spawn[${SpawnID}].Y} ${Spawn[${SpawnID}].X}
/declare MobAngle float ${Macro.Return}
/if ( ${Math.Calc[${Me.Y} - ${Spawn[${SpawnID}].Y}]} < 0 ) /varcalc MobAngle ${MobAngle} + 180
/if ( ${MobAngle} < 0 ) /varcalc MobAngle ${MobAngle} + 360
/declare Result float ${Math.Abs[${Math.Calc[${MobAngle} - ${Spawn[${SpawnID}].Heading.DegreesCCW}]}]}
/echo Mob is looking: ${Result} relative to Me (${MobAngle} vs ${Spawn[${SpawnID}].Heading.DegreesCCW})
/return ${Result}
/return
|--------------------------------------------------------------------------------
|SUB: Angle a mob is looking relative to Me (normalized from 0-180)
|--------------------------------------------------------------------------------
Sub MobLookNormalized(float SpawnID)
/call MobLook ${SpawnID}
/declare Result float ${Macro.Return}
/if ( ${Result} > 180 ) {
/varcalc Result 360 - ${Result}
}
/echo Mob is looking: ${Result} relative to Me (normalized)
/return ${Result}
/return