rendered paste bodyobjectdef oMount inherits oBase
{
variable int LastMount = ${LavishScript.RunningTime}
variable int LastDismount = ${LavishScript.RunningTime}
method Mount()
{
;Dont try to mount if already mounted
if ${This.IsMounted}
{
return
}
; Dont try to mount if we cant
if !${This.CanMount}
{
return
}
; If we dont have a mount dont try to mount
if !${This.GetMount(exists)}
{
return
}
This.LastMount:Set[${LavishScript.RunningTime}]
This:Echo["Mounting."]
Event[MOUNT_MOUNT]:Execute
;If it is a spell cast it otherwise use it
if ${Spell[${This.GetMount}](exists)}
{
CastSpell ${This.GetMount}
}
else
{
Item[${This.GetMount}]:Use
}
}
member CanMount()
{
if ${Display.FPS} < 10 || ${WoWScript[IsIndoors()](exists)} || ${Me.InCombat} || ${Me.Swimming} || ${This.IsMounted} || ${Me.Flying} || ${Me.Ghost} || ${Math.Calc[${LavishScript.RunningTime}-${LastMount}]} < 10000
{
return FALSE
}
return TRUE
}
member GetMount()
{
variable string themount = "NONE"
variable guidlist ItemList
;Epic
if ${Spell[Summon Dreadsteed](exists)}
{
return ${Spell[Summon Dreadsteed].ID}
}
if ${Spell[Summon Charger](exists)}
{
return ${Spell[Summon Charger].ID}
}
ItemList:Search[-items,-inventory,-usable,-epic,-skill, Riding]
if ${ItemList.Count} > 0
{
return ${Item[${ItemList.GUID[1]}]}
}
;None Epic
if ${Spell[Summon Felsteed](exists)}
{
return ${Spell[Summon Felsteed].ID}
}
if ${Spell[Summon Warhorse](exists)}
{
return ${Spell[Summon Warhorse].ID}
}
ItemList:Search[-items,-inventory,-usable,-skill, Riding]
if ${ItemList.Count} > 0
{
return ${Item[${ItemList.GUID[1]}]}
}
return
}
method Dismount()
{
if ${Math.Calc[${LavishScript.RunningTime} - ${This.LastDismount}]} < 5000
{
return
}
Event[MOUNT_DISMOUNT]:Execute
This:Echo["Dismounting."]
WoWScript Dismount()
This.LastDismount:Set[${LavishScript.RunningTime}]
}
member IsMounted()
{
if ${WoWScript[IsMounted()]}
{
return TRUE
}
return FALSE
}
method Plugin()
{
LavishScript:RegisterEvent[MOUNT_MOUNT]
LavishScript:RegisterEvent[MOUNT_DISMOUNT]
}
}