objectdef 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] } }