public void UpdateDoor(DoorInformation newDoor, int charId) { Program.MainForm.LogDebug("UPDATING DOOR: " + charId); var member = GetById(charId); if (member != null) { member.door = newDoor; int idx = GetCharacterSlot(member); ForAllMembers(m => { if (m.GetChannel() == member.GetChannel()) { m.SendPacket(PartyPacket.UpdateDoor(newDoor, (byte)idx)); } }); } }
private void UpdateAllDoors() { var mems = members.Where(m => m != null); var doors = mems.Select(m => m.door); foreach (var door in doors.ToList()) { var doorOwner = GetById(door.OwnerId); foreach (var m in mems.ToList()) { var idx = (byte)GetCharacterSlot(door.OwnerId); if (m.GetMap() == door.DstMap && m.GetChannel() == doorOwner.GetChannel()) { m.SendPacket(PartyPacket.UpdateDoor(door, idx)); } } } }