All pastes #584929 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-23 00:00 UTC
rendered paste body
objectdef oClass inherits oBase
{
	;Shaman Spell settings - set these
	variable string WeapEnchant = "Flametongue Weapon"	;What weapon enchant to use, ex Windfury Weapon
	variable string OffhandEnchant = "Frostbrand Weapon"	;What offhand enchant to use if dualwielding
	variable bool RandomizeWeapEnchant = TRUE		;Whether or not to randomize the enchants
	variable string ShockToUse = "Earth Shock"		;What shock to use, ex Frost Shock
	variable bool RandomizeShock = TRUE			;Whether or not to randomize the shock
	variable bool CastInsteadOfMelee = FALSE		;Cast (lightning bolt/shocks) instead of melee
	variable bool LightningPull = FALSE			;Pull with lightning instead of shocks
	variable bool DualWielding = FALSE			;Whether or not you're using two weapons

	;More shaman settings - don't touch these
	variable int NumberWeapEnchants
	variable int NumberShocks
	variable int RandomInt
	variable string MainHandEnchant
	variable string OffHandEnchant
	variable string RandomShock
	variable string RandomEnchant
	variable int AntiDoublecast
	;----------------------
	;--- Rest Variables ---
	;----------------------
	
	variable int RestHP = 80
	variable int RestMP = 80
	variable int StandHP = 95
	variable int StandMP = 95
	
	;----------------------
	;--- Range Settings ---
	;----------------------
   variable int PullRange = 19					;This needs to be set at or under 20 for shock
								;pulling, and at or under 30 for lightning.
   variable int MaxRanged = 19
   variable int MinRanged = 10
   variable int MaxMelee = 4.9
   variable int MinMelee = 1.9
	
	method Initialize()
	{

	}
	;Stealthy's shaman members
	method SetNumberEnchants()
	{
		echo "set num enchants"
		if ${Spell["Windfury Weapon"](exists)}
		{
			NumberWeapEnchants:Set[4]
		}
		if ${Spell["Frostbrand Weapon"](exists)} && !${Spell["Windfury Weapon"](exists)}
		{
			echo "weap enchants 3"
			NumberWeapEnchants:Set[3]
		}
		if ${Spell["Flametongue Weapon"](exists)} && !${Spell["Frostbrand Weapon"](exists)}
		{
			NumberWeapEnchants:Set[2]
		}
		if ${Spell["Rockbiter Weapon"](exists)} && !${Spell["Flametongue Weapon"](exists)}
		{
			NumberWeapEnchants:Set[1]
		}
		if !${Spell["Rockbiter Weapon"](exists)}
		{
			NumberWeapEnchants:Set[0]
		}
	}
	method SetNumberShocks()
	{
		if ${Spell["Frost Shock"](exists)}
		{
			NumberShocks:Set[3]
		}
		if ${Spell["Flame Shock"](exists)} && !${Spell["Frost Shock"](exists)}
		{
			NumberShocks:Set[2]
		}
		if ${Spell["Earth Shock"](exists)} && !${Spell["Flame Shock"](exists)}
		{
			NumberShocks:Set[1]
		}
		if !${Spell["Earth Shock"](exists)}
		{
			NumberShocks:Set[0]
		}
	}
	method GetRandomShock()
	{

		This:SetNumberShocks
		if ${NumberShocks} == 3
		{
			RandomInt:Set[${Math.Calc[${Math.Rand[3]}+1]}]
			if ${RandomInt} == 3
			{
				return "Frost Shock"
			}
			if ${RandomInt} == 2
			{
				return "Flame Shock"
			}
			if ${RandomInt} == 1
			{
				return "Earth Shock"
			}
		}
		if ${NumberShocks} == 2
		{
			RandomInt:Set[${Math.Calc[${Math.Rand[2]}+1]}]
			if ${RandomInt} == 2
			{
				return "Flame Shock"
			}
			if ${RandomInt} == 1
			{
				return "Earth Shock"
			}
		}
		if ${NumberShocks} == 1
		{
			return "Earth Shock"
		}
		if ${NumberShocks} == 0
		{
			return "Lightning Bolt"
		}
	}
	method GetRandomEnchant()
	{
		echo "get random"
		This:SetNumberEnchants		
		if ${NumberWeapEnchants} == 4
		{
			RandomInt:Set[${Math.Calc[${Math.Rand[4]}+1]}]
			if ${RandomInt} == 4
			{
				This.RandomEnchant:Set[Windfury]
				return
			}
			if ${RandomInt} == 3
			{
				This.RandomEnchant:Set[Frostbrand]
				return
			}
			if ${RandomInt} == 2
			{
				This.RandomEnchant:Set[Flametongue]
				return
			}
			if ${RandomInt} == 1
			{
				This.RandomEnchant:Set[Rockbiter]
				return
			}
		}
		if ${NumberWeapEnchants} == 3
		{
			RandomInt:Set[${Math.Calc[${Math.Rand[3]}+1]}]
			if ${RandomInt} == 3
			{
				This.RandomEnchant:Set[Frostbrand]
				return
			}
			if ${RandomInt} == 2
			{
				This.RandomEnchant:Set[Flametongue]
				return
			}
			if ${RandomInt} == 1
			{
				This.RandomEnchant:Set[Rockbiter]
				return
			}
		}
		if ${NumberWeapEnchants} == 2
		{
			RandomInt:Set[${Math.Calc[${Math.Rand[2]}+1]}]
			if ${RandomInt} == 2
			{
				This.RandomEnchant:Set[Flametongue]
				return
			}
			if ${RandomInt} == 1
			{
				This.RandomEnchant:Set[Rockbiter]
				return
			}
		}
		if ${NumberWeapEnchants} == 1
		{
			This.RandomEnchant:Set[Rockbiter]
			return
		}
	}

				
	;------------------
	;--- Rest SetUp ---
	;------------------

	member NeedRest()
	{
		if ${Me.PctHPs} < ${RestHP}
		{
			return TRUE
		}
		if ${Me.PctHPs} < ${StandHP} && ${Me.Sitting}
		{
			return TRUE
		}
		return FALSE
	}
	
	method RestPulse()
	{
		if !${Me.Buff[Food](exists)} && !${Me.Buff[Drink](exists)}
		{
			Toon:Standup
		}
		if ${Me.CurrentMana} >= ${Spell["Healing Wave"].Mana} && ${Me.PctHPs} < ${This.StandHP} && ${Spell["Healing Wave"](exists)}
		{
			Toon:CastSpell[Healing Wave]
		}
		elseif ${Me.CurrentMana} >= ${Spell["Lesser Healing Wave"].Mana} && ${Me.PctHPs} < ${This.StandHP} && ${Spell["Lesser Healing Wave"](exists)}
		{
			Toon:CastSpell[Lesser Healing Wave]
		}
		Toon:Sitdown
		if ${Movement.Speed}
		{
			Move -stop
		}
		
		if ${Me.PctHPs} >= ${StandHP} && ${Me.Sitting}
		{
			Toon:Standup
		}
		return
		
		if ${Consumable.HasFood} && ${Me.PctHPs} < ${This.StandHP} && !${Me.Buff[Food](exists)}
		{
			Consumable:useFood
		}
		if ${Consumbale.HasFood} && ${Me.PctMana} < ${This.StandMP} && !${Me.Buff[Drink](exists)}
		{
			Consumable:useDrink
		}
	}
	
	;------------------
	;--- Buff SetUp ---
	;------------------

	member NeedBuff()
	{
		if !${DualWielding} && !${Me.Equip[mainhand].Enchantment[${This.MainHandEnchant}](exists)} && !${Me.Equip[mainhand].Enchantment[${This.WeapEnchant}](exists)}
		{
			return TRUE
		}
		if ${DualWielding} && !${Me.Equip[mainhand].Enchantment[${MainHandEnchant}](exists)} || !${Me.Equip[offhand].Enchantment[${OffHandEnchant}](exists)}	
		{
			return TRUE
		}
		return FALSE
	}
	
	method BuffPulse()
	{
		if ${Me.Sitting}
		{
			Toon:Standup
		}
		if !${DualWielding}
		{
			if ${RandomizeWeapEnchant}
			{
				This:GetRandomEnchant
				Toon:CastSpell[${RandomEnchant} Weapon]
				This:Output["Random weapon enchant: ${RandomEnchant}"]
				This.MainHandEnchant:Set[${RandomEnchant} Weapon ${Spell[${RandomEnchant} Weapon].Rank}]
				return
			}
			elseif !${RandomizeWeapEnchant}
			{
				This:CastSpell[${WeapEnchant}]
				This:Output["Weapon Enchant: ${WeapEnchant}"]
				This.MainHandEnchant:Set[${WeapEnchant}]
				return
			}
		}
		elseif ${DualWielding}
		{
			if ${RandomizeWeapEnchant}
			{
				This:SetNumberEnchants
				This:GetRandomEnchant
				This:CastSpell[${Return}]
				This.MainHandEnchant:Set[${Return}]
				This:Output["Random mainhand weapon enchant is: ${Return}"]
				This:GetRandomEnchant
				This:CastSpell[${Return}]
				This.OffHandEnchant:Set[${Return}]
				This:Output["Random offhand weapon enchant is: ${Return}"]
				return
			}
			if !${RandomizeWeapEnchant}
			{
				This:CastSpell[${WeapEnchant}]
				This:Output["Mainhand Enchant: ${WeapEnchant}"]
				This.MainHandEnchant:Set[${WeapEnchant}]
				This:CastSpell[${OffhandEnchant}]
				This:Output["Offhand Enchant: ${OffhandEnchant}"]
				This.OffHandEnchant:Set[${OffhandEnchant}]
				return
			}
		}
	}
	
	;------------------
	;--- Pull SetUp ---
	;------------------
	
	member NeedPullBuff()
	{
		return FALSE
	}

	method PullBuffPulse()
	{
	}
	
	;------------------------
	;--- CombatBuff SetUp	---
	;------------------------

	member NeedCombatBuff()
	{
		if !${Me.Buff["Lightning Shield"](exists)}
		{
			return TRUE
		}
		return FALSE
	}

	method CombatBuffPulse()
	{
		if !${Me.Buff["Lightning Shield"](exists)} && ${Spell["Lightning Shield"](exists)}
		{
			Toon:CastSpell[Lightning Shield]
			return		
		}
	}
	
	;------------------
	;--- Pull SetUp ---
	;------------------
		
	method PullPulse()
	{
		if ${Math.Distance[${Me.Location},${Target.Location}]} > ${PullRange}
		{
			move forward
			do
			{
			}
			while ${Math.Distance[${Me.Location},${Target.Location}]} > ${PullRange}
			move -stop
		}
		if ${LightningPull}
		{
			Toon:CastSpell[Lightning Bolt]
			This:Output["Pulling: Lightning Bolt"]
			return
		}
		if !${LightningPull} && ${RandomizeShock}
		{
			This:GetRandomShock
			Toon:CastSpell[${Return}]
			This:Output["Pulling: ${Return}"]
			return
		}
		if !${LightningPull} && !${RandomizeShock}
		{
			Toon:CastSpell[${ShockToUse}]
			This:Output["Pulling: ${ShockToUse}"]
			return
		}
	}
	
	;--------------------
	;--- Combat SetUp ---
	;--------------------
	
	method AttackPulse()
	{
		
	}
}