All pastes #2051297 Raw Edit

Mine

public text v1 · immutable
#2051297 ·published 2011-04-27 19:13 UTC
rendered paste body
function NTM_ChangeAreaInt(how, dest, ownername, myportal)
{
	debugPrint("ntm changeAreaint how:"+how+" Dest:"+dest );
	var _portal, _wpHex;
	var _playerportal = false;
	var _prearea;
	var _warpstart;
	me.cancel(0);
	if(how == "BluePortal")
	{
		if(!ownername)
			ownername = me.name;

		how = "Portal";
		_playerportal = true;
	}

	if(arguments.length > 3 && myportal)
		_portal = copyUnit(myportal);
	else if(how == "Portal")
	{
		_portal = NTM_FindCorrectPortalInt(_playerportal, ownername);

		if(_portal.objtype != dest)
			return -1;
			
		if(_portal < 0)
			_portal = NTM_FindPortalAreaInt(dest);
	
		if(_portal == -1)
			return -1;
	}
	else
	{
		_wpHex = NTM_AreaWPArray[dest];

		if(!_wpHex)
			return -4;

		_portal = NTC_GetUnit(NTC_UNIT_OBJECT, how);
	}

	if(!_portal)
		return -1;

	_prearea = me.area;
	_warpstart = getTickCount();

	if(how == "Waypoint")
	{
		var i;

		for(i = 0 ; i < 50 ; i++)
		{
			if((i % 25) == 0)
				_portal.interact();

			NTC_Delay(NTC_DELAY_FRAME);

			if(getUIFlag(0x14))
			{
				NTC_PingDelay(500);				
				break;
			}else{
				NTM_GetCloserInt(_portal);
			}
		}

		if(i >= 50 || !NTM_CheckWPInt(_wpHex))
		{
		print("checkwaypoint failed "+_wpHex+" getUIFlag(0x14)="+getUIFlag(0x14) +" ping "+ me.ping);
			me.cancel(0);
			return -5;
		}
		_portal.interact(_wpHex);
/*
		for(i = 0 ; i < 200 ; i++)
		{
			if((i % 25) == 0)
			{
				if(NTM_GetCloserInt(_portal))
					_portal.interact(_wpHex);
			}

			NTC_Delay(NTC_DELAY_FRAME);

			if(me.area != _prearea)
				break;
			if(i >= 150 && !NTM_CheckWPInt(_wpHex))
			{
			me.cancel(0);
			print("Waypoint not Found! area:"+dest );
			return -5;
			}
		}
		*/
		preWalkDelay();
	}

	else
	{
		for(var i = 0 ; i < 100 ; i++)
		{
			if((i % 25) == 0)
			{
				if(NTM_GetCloserInt(_portal))
					_portal.interact();
			}

			NTC_Delay(NTC_DELAY_FRAME);

			if(me.area != _prearea)
				break;
		}
		preWalkDelay();
	}

	while(me.area == 0){
		debugPrint("ntm getstairsint area is 0 delay" );
		NTC_Delay(NTC_DELAY_FRAME);
	}

	if(how == "Waypoint")
	{
		while(getUIFlag(0x14))
		{
			me.cancel(0);
			NTC_Delay(100);
		}
	}

	postWalkDelay();
	if(how == "Waypoint"){
	var timeout = 0
		while(me.area != dest)
			{					
				NTC_Delay(100);
				timeout ++;
				if (timeout >200){
					print("extra delay failed me.area :"+me.area+" dest "+dest );
					return -7;
				}
			}
	}
	if(me.area != dest)
		return -7;

	delay(50);
	return 1;
}