All pastes #442135 Raw Edit

Stuff

public text v1 · immutable
·published 2007-04-16 01:11 UTC
rendered paste body
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]
	}
}