All pastes #476965 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-05-08 12:13 UTC
rendered paste body

BOOL CTown::TakeWP(DWORD AreaID) {
	UnitAny* WPUnit;
	POINT Position;
Position.x=0;
Position.y=0;
	switch(fpGetPlayerArea()) {
		case A1:
			if(!GetPositionByClassID(WPId[ACT_ONE],&Position))
				return FALSE;

			WPUnit = GetUnitByPosition(Position.x,Position.y);
		break;
		case A2:
		//	if(!GetPositionByClassID(WPId[ACT_TWO],&Position))
		//		return FALSE;
		//	Log(1,"%d,%d",Position.x,Position.y);
			Position.x=5069;
			Position.y=5084;
			WPUnit = GetUnitByPosition(Position.x,Position.y);
		break;
		case A3:
			if(!GetPositionByClassID(WPId[ACT_THREE],&Position))
				return FALSE;

			WPUnit = GetUnitByPosition(Position.x,Position.y);
		break;
		case A4:
			if(!GetPositionByClassID(WPId[ACT_FOUR],&Position))
				return FALSE;

			WPUnit = GetUnitByPosition(Position.x,Position.y);
		break;
		case A5:
			if(!GetPositionByClassID(WPId[ACT_FIVE],&Position))
				return FALSE;

			WPUnit = GetUnitByPosition(Position.x,Position.y);
		break;
		default:
			return FALSE;
		break;
	}

	if(!WPUnit)
		return FALSE;

	while(!PlayerActAble())
		Sleep(100);

	DWORD OldArea = fpGetPlayerArea();
	if(OldArea == AreaID)
		return TRUE;
	while(fpGetPlayerArea() != AreaID) {
			byte WPPacket[9]= {0x49,00,00,00,00, 00,0x00,0x00,0x00};
			*(DWORD*)&WPPacket[1]=WPUnit->dwId;
			*(BYTE*)&WPPacket[5]=AreaID;
			fpSendPacket(WPPacket,9);
			Sleep(500);
	}
	Sleep(500);
	return TRUE;
}