All pastes #544161 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-06 09:53 UTC
rendered paste body
	method Strafe()
	{
		IPOSTUCK:Inc
		if ${IPOSTUCK}>7 && !${ISXWoW.Facing}
		{
			IPOSTUCK:Set[1]
			switch ${This.IsStuck}
			{
				case 0
					break
				case 1
					if ${Math.Rand[100]}>50
					{
						move right 100
					}
					else
					{
						move left 100
					}
					break
				case 2
					move right 100
					break
				case 3
					move right 100
					break
				case 4
					move left 100
					break
				case 5
					move left 100
					break
				case 6
					break
				case 7
					break
			}
		}	
	}

	member IsStuck(int TEMP=1)
	{
		variable float Xstagea
		variable float Xstageb
		variable float Xstagec
		variable float Ystagea
		variable float Ystageb
		variable float Ystagec
		variable float X2stagea
		variable float X2stageb
		variable float X2stagec
		variable float Y2stagea
		variable float Y2stageb
		variable float Y2stagec
		variable float X3stagea
		variable float X3stageb
		variable float X3stagec
		variable float Y3stagea
		variable float Y3stageb
		variable float Y3stagec
		variable float HeadingTemp
		variable float HeadingTemp2
		variable int StuckCheck

		Xstagea:Set[${Math.Cos[${Me.Heading}]}]
		Xstageb:Set[${Math.Calc[3*${Xstagea}]}]
		Xstagec:Set[${Math.Calc[${Me.X}+${Xstageb}]}]
		Ystagea:Set[${Math.Sin[${Me.Heading}]}]
		Ystageb:Set[${Math.Calc[5*${Ystagea}]}]
		Ystagec:Set[${Math.Calc[${Me.Y}-${Ystageb}]}]

		HeadingTemp2:Set[${Math.Calc[${Me.Heading}-90]}]
		if ${HeadingTemp2} < 0
		{
			HeadingTemp:Set[${Math.Calc[${HeadingTemp2} + 360]}]
		}
		else
		{
			HeadingTemp:Set[${HeadingTemp2}]
		}

		X2stagea:Set[${Math.Cos[${HeadingTemp}]}]
		X2stageb:Set[${Math.Calc[2*${X2stagea}]}]
		X2stagec:Set[${Math.Calc[${Xstagec}+${X2stageb}]}]
		Y2stagea:Set[${Math.Sin[${HeadingTemp}]}]
		Y2stageb:Set[${Math.Calc[2*${Y2stagea}]}]
		Y2stagec:Set[${Math.Calc[${Ystagec}-${Y2stageb}]}]

		HeadingTemp2:Set[${Math.Calc[${Me.Heading}+90]}]
		if ${HeadingTemp2} > 360
		{
			HeadingTemp:Set[${Math.Calc[${HeadingTemp2} - 360]}]
		}
		else
		{
			HeadingTemp:Set[${HeadingTemp2}]
		}

		X3stagea:Set[${Math.Cos[${HeadingTemp}]}]
		X3stageb:Set[${Math.Calc[2*${X3stagea}]}]
		X3stagec:Set[${Math.Calc[${Xstagec}+${X3stageb}]}]
		Y3stagea:Set[${Math.Sin[${HeadingTemp}]}]
		Y3stageb:Set[${Math.Calc[2*${Y3stagea}]}]
		Y3stagec:Set[${Math.Calc[${Ystagec}-${Y3stageb}]}]

		StuckCheck:Set[0]
		if ${Me.IsPathObstructed[${Xstagec},${Ystagec},${Math.Calc[${Me.Z} + 1]},10]}
		{
			StuckCheck:Inc
		}

		if ${Me.IsPathObstructed[${X2stagec},${Y2stagec},${Math.Calc[${Me.Z} + 1]},10,${Me.X},${Me.Y},${Math.Calc[${Me.Z} + 1]}]}
		{
			StuckCheck:Inc[2]
		}

		if ${Me.IsPathObstructed[${X3stagec},${Y3stagec},${Math.Calc[${Me.Z} + 1]},10,${Me.X},${Me.Y},${Math.Calc[${Me.Z} + 1]}]}
		{
			StuckCheck:Inc[4]
		}

		return ${StuckCheck}
	}