I was wondering if anyone had any thoughts on making my script more efficient?
I have ten persistent markers in a remote cell; when the Spell is cast, they are positioned relative to the player/each other, so that they form two "plus" symbols, with the first-set firing a spell at the second-set.
The firing works perfectly, but the movement part of the script can take several seconds, which makes it inefficient to actually use in combat...
;Caster's Z AnglePCZAngle = Target.GetAngleZ() ;position the first three markersMarker01.MoveTo(Caster, 120.0 * Math.Sin(Caster.GetAngleZ()), 120.0 * Math.Cos(Caster.GetAngleZ()), Caster.GetHeight() - 25.0) Marker02.MoveTo(Caster, 120.0 * Math.Sin(Caster.GetAngleZ()), 120.0 * Math.Cos(Caster.GetAngleZ()), Caster.GetHeight() - 60.0) Marker03.MoveTo(Caster, 120.0 * Math.Sin(Caster.GetAngleZ()), 120.0 * Math.Cos(Caster.GetAngleZ()), Caster.GetHeight() - 95.0) Marker01.SetAngle(0, 0, PCZAngle)Marker02.SetAngle(0, 0, PCZAngle)Marker03.SetAngle(0, 0, PCZAngle) ;turn 90 degrees for marker 04 positioningPCZAngle = ( PCZAngle + 90 )Marker03.SetAngle(0, 0, PCZAngle)Marker04.MoveTo(Marker03, 35.0 * Math.Sin(Marker03.GetAngleZ()), 35.0 * Math.Cos(Marker03.GetAngleZ()), Marker03.GetHeight() + 35.0) ;turn 180 degress (Around) for marker 05 positioningPCZAngle = ( PCZAngle - 180 )Marker03.SetAngle(0, 0, PCZAngle)Marker05.MoveTo(Marker03, 35.0 * Math.Sin(Marker03.GetAngleZ()), 35.0 * Math.Cos(Marker03.GetAngleZ()), Marker03.GetHeight() + 35.0) ;return to normal positioning for all five markersPCZAngle = ( PCZAngle + 90 )Marker03.SetAngle(0, 0, PCZAngle)Marker04.SetAngle(0, 0, PCZAngle)Marker05.SetAngle(0, 0, PCZAngle) ;place new markers ahead of old markersMarker06.MoveTo(Marker01, 120.0 * Math.Sin(Marker01.GetAngleZ()), 120.0 * Math.Cos(Marker01.GetAngleZ()), Marker01.GetHeight() - 15.0) Marker07.MoveTo(Marker02, 120.0 * Math.Sin(Marker02.GetAngleZ()), 120.0 * Math.Cos(Marker02.GetAngleZ()), Marker02.GetHeight() - 15.0) Marker08.MoveTo(Marker03, 120.0 * Math.Sin(Marker03.GetAngleZ()), 120.0 * Math.Cos(Marker03.GetAngleZ()), Marker03.GetHeight() - 15.0) Marker09.MoveTo(Marker04, 120.0 * Math.Sin(Marker04.GetAngleZ()), 120.0 * Math.Cos(Marker04.GetAngleZ()), Marker04.GetHeight() - 15.0) Marker10.MoveTo(Marker05, 120.0 * Math.Sin(Marker05.GetAngleZ()), 120.0 * Math.Cos(Marker05.GetAngleZ()), Marker05.GetHeight() - 15.0) ;cast spellsZCDMVHFSpell.Cast(Marker01, Marker06)ZCDMVHFSpell.Cast(Marker02, Marker07)ZCDMVHFSpell.Cast(Marker03, Marker08)ZCDMVHFSpell.Cast(Marker04, Marker09)ZCDMVHFSpell.Cast(Marker05, Marker10)