[ON] Packet ptctl [Crash Fix]

03/17/2018 20:00 Shıgeo#1
Change:
Code:
public void PetMove(PtCtlPacket ptCtlPacket) {
	string[] packetsplit = ptCtlPacket.PacketEnd.Split(' ');
	for (int i = 0; i < ptCtlPacket.Amount * 3; i += 3) {
		if (packetsplit.Length >= ptCtlPacket.Amount * 3 && int.TryParse(packetsplit[i], out int petId) && short.TryParse(packetsplit[i + 1], out short positionX) && short.TryParse(packetsplit[i + 2], out short positionY))
		{
			Mate mate = Session.Character?.Mates.Find(s => s.MateTransportId == petId);
			if (mate != null) {
				mate.PositionX = positionX;
				mate.PositionY = positionY;
				Session.CurrentMapInstance?.Broadcast(StaticPacketHelper.Move(UserType.Npc, petId, positionX, positionY, mate.Monster.Speed));
			}
		}
	}
}
to
Code:
public void PetMove(PtCtlPacket ptCtlPacket) {
	if(ptCtlPacket.PacketEnd != null) {
		string[] packetsplit = ptCtlPacket.PacketEnd.Split(' ');
		for (int i = 0; i < ptCtlPacket.Amount * 3; i += 3) {
			if (packetsplit.Length >= ptCtlPacket.Amount * 3 && int.TryParse(packetsplit[i], out int petId) && short.TryParse(packetsplit[i + 1], out short positionX) && short.TryParse(packetsplit[i + 2], out short positionY))
			{
				Mate mate = Session.Character?.Mates.Find(s => s.MateTransportId == petId);
				if (mate != null) {
					mate.PositionX = positionX;
					mate.PositionY = positionY;
					Session.CurrentMapInstance?.Broadcast(StaticPacketHelper.Move(UserType.Npc, petId, positionX, positionY, mate.Monster.Speed));
				}
			}
		}
	}
}
also add 'if' in 'PetMove' function

Hf ^^


Maybe it works if u put an '?' to 'string[] packetsplit = ptCtlPacket.PacketEnd.Split(' ');'
Also 'string[] packetsplit = ptCtlPacket.PacketEnd?.Split(' ');'
But I'm not sure.

Edit: Löschen bitte hab nen neuen offen wo ich die dinger mit der Zeit sammel ^^
03/17/2018 20:01 LikeAGinger#2
Thanx a lot mate.
I hope we can work more often together!

Edit: @[Only registered and activated users can see links. Click Here To Register...] Thanx to you too for the help!