void c_ClientWalkToPortalInfo(object sender, ClientWalkToPortalEventArgs e) { Client c = (Client)sender; int MapID = e.MapID; Portal p = GetNearbyPortal(c); Client[] nearbyClients = GetNearByClients(c); if (p != null) { c.MyCharacter.X = p.ToX; c.MyCharacter.Y = p.ToY; c.MyCharacter.MapId = p.ToMapID; byte[] bufferRemoveMe = PacketManager.SendRemoveCharacter(c.MyCharacter); SendSpecific(nearbyClients, bufferRemoveMe); byte[] bufferSendPortal = PacketManager.SendPortal(p); c.Send(bufferSendPortal); } //c.Send(PacketManager.SendPortal()); // need portal codes here }
void c_ClientWalkToPortalInfo(object sender, ClientWalkToPortalEventArgs e) { Client c = (Client)sender; int MapID = e.MapID; Portal p = GetNearbyPortal(c); Client[] nearbyClients = GetNearByClients(c); if (p != null) { c.MyCharacter.X = p.ToX; c.MyCharacter.Y = p.ToY; c.MyCharacter.MapId = p.ToMapID; byte[] bufferRemoveMe = PacketManager.SendRemoveCharacter(c.MyCharacter); SendSpecific(nearbyClients, bufferRemoveMe); byte[] bufferSendPortal = PacketManager.SendPortal(p); c.Send(bufferSendPortal); } //c.Send(PacketManager.SendPortal()); // need portal codes here }
void c_ClientWalkToPortalInfo(object sender, ClientWalkToPortalEventArgs e) { Client c = (Client)sender; int MapID = e.MapID; Map m = GetMapEngine(MapID).Map; MapEngine mapEngine = GetMapEngine(c.MyCharacter.MapId); Client[] clients = GetClientsForChars(mapEngine.GetCharactersInRange(c.MyCharacter.Position, 150).ToArray()); Portal p = GetNearbyPortal(c); if (p != null) { c.MyCharacter.Position.X = p.ToX; c.MyCharacter.Position.Y = p.ToY; c.MyCharacter.OldMapId = c.MyCharacter.MapId; c.MyCharacter.MapId = p.ToMapID; c.MyCharacter.Map = m; characterManager.UpdateCharacter(c.MyCharacter); byte[] bufferRemoveMe = PacketManager.SendRemoveCharacter(c.MyCharacter, RemoveCharacterEffect.None); SendToClients(bufferRemoveMe, clients); if (c.MyCharacter.Pet != null && !c.MyCharacter.Pet.IsSealed) { byte[] bufferRemovePet = PacketManager.SendRemovePet(c.MyCharacter.Pet); SendToClients(bufferRemovePet, clients); c.MyCharacter.Pet.Position.X = c.MyCharacter.Position.X; c.MyCharacter.Pet.Position.Y = c.MyCharacter.Position.Y; c.MyCharacter.Pet.MapID = c.MyCharacter.MapId; } byte[] bufferSendPortal = PacketManager.SendPortal(p); c.Send(bufferSendPortal); } else if (p == null && !c.MyCharacter.Alive) { Portal dead = new Portal() { ToMapID = c.MyCharacter.MapId, ToX = (short)c.MyCharacter.Map.SpawnX, ToY = (short)c.MyCharacter.Map.SpawnY }; c.MyCharacter.Position.X = (short)c.MyCharacter.Map.SpawnX; c.MyCharacter.Position.Y = (short)c.MyCharacter.Map.SpawnY; c.MyCharacter.Map = m; characterManager.UpdateCharacter(c.MyCharacter); byte[] bufferRemoveMe = PacketManager.SendRemoveCharacter(c.MyCharacter, RemoveCharacterEffect.None); SendToClients(bufferRemoveMe, clients); if (c.MyCharacter.Pet != null && !c.MyCharacter.Pet.IsSealed) { byte[] bufferRemovePet = PacketManager.SendRemovePet(c.MyCharacter.Pet); SendToClients(bufferRemovePet, clients); c.MyCharacter.Pet.Position.X = c.MyCharacter.Position.X; c.MyCharacter.Pet.Position.Y = c.MyCharacter.Position.Y; c.MyCharacter.Pet.MapID = c.MyCharacter.MapId; } byte[] bufferSendPortal = PacketManager.SendPortal(dead); c.Send(bufferSendPortal); } }