public virtual bool HandlePacket(ReceptionPacket data) { if (!Handlers.ContainsKey(data.Type)) return false; return Handlers[data.Type].Invoke(data); }
public void Run() { while (IsConnected) { try { if (!Ns.DataAvailable) { Thread.Sleep(5); continue; } ReceptionPacket data = new ReceptionPacket(Br); Log.Cl("Packet received : " + data.Type, ConsoleColor.DarkRed); Packets.Enqueue(data); } catch (Exception ex) { Log.Cl(ex.Message); Deco(); } } Close(); }
bool HandleMapLoading(ReceptionPacket rcvData) { AddMap(rcvData.ReadString()); int maxCount = rcvData.ReadCount(); for (int count = 0; count < maxCount; ++count) { DynamicWorldObject dObj = rcvData.ReadDynamicObjectMapAdd(); if (dObj.Guid == GameSession.Instance.GetGuid()) { PlayerHdl.Instance.Init((Player)dObj); PlayerHdl.Warp(CurrentMap); continue; } CurrentMap.AddDynamicObject(dObj, dObj.Position.X, dObj.Position.Y); } return true; }
bool HandleObjectMove(ReceptionPacket rcvData) { DynamicWorldObject dObj = CurrentMap.GetObject(rcvData.ReadGuid()); dObj.MoveTo(rcvData.ReadVector2()); dObj.Direction = rcvData.ReadDirection(); // dObj.ResetDirectionStates(rcvData.ReadDirectionStates()); TODO : fix it Log.Cldebug(dObj.Guid, "Moved oject", System.ConsoleColor.Cyan); return true; }
bool HandleMapObjectDeletion(ReceptionPacket rcvData) { int guid = rcvData.ReadGuid(); CurrentMap.RemoveObject(guid); Log.Cldebug(guid, "Removed oject", System.ConsoleColor.Cyan); return true; }
bool HandleMapObjectAdd(ReceptionPacket rcvData) { DynamicWorldObject dObj = rcvData.ReadDynamicObjectMapAdd(); dObj.SetMap(CurrentMap, dObj.Position.X, dObj.Position.Y); CurrentMap.AddDynamicObject(dObj, dObj.Position.X, dObj.Position.Y); Log.Cldebug(dObj.Guid, "Added oject", System.ConsoleColor.Cyan); return true; }
bool HandlePing(ReceptionPacket rcvData) { return true; }
bool HandleLoginValidation(ReceptionPacket data) { Guid = data.ReadGuid(); Log.Cldebug("Logged as " + GetLogin() + " with Guid " + Guid.ToString(), ConsoleColor.Green); SendingPacket sndData = new SendingPacket(PacketType.CLIENT_REQUEST_MAP_LOADING); SendPacket(sndData); return true; }
public void AddReceivedData(ReceptionPacket rcvData) { ReceivedData.Enqueue(rcvData); }