private bool OnMemorialDungeonSubscription2(ZoneClient client, ZI_MEMORIALDUNGEON_SUBSCRIPTION2 packet) { Logger.Debug($"ZSRV({client.Sid}) ZI_MEMORIALDUNGEON_SUBSCRIPTION2 AID={packet.AID}, GID={packet.GID}, NickName={packet.NickName}, DungeonName={packet.DungeonName}"); var zone = GetLowestResourceZone(); var memorialDungeon = _memorialDungeonManager.Subscribe(packet.AID, packet.GID, packet.GRID, packet.NickName, packet.DungeonName, zone.Sid); var createMap = memorialDungeon.Maps.FirstOrDefault(x => !x.Created); if (createMap == null) { Logger.Error($"Memorial Dungeon has no maps {packet.DungeonName}"); return true; } ZonePacket(zone.Sid, new IZ_INSTANTMAP_CREATE_REQ { MapId = createMap.MapId, MapName = createMap.MapName, MapType = createMap.MapType, RequestN2Obj = createMap.RequestN2Obj }); var group = _groupManager.GetGroup(packet.GRID); // send to zones with player foreach (var member in group.GroupMember) { var player = _playerManager.FindPlayerByGID(member.GID); if (player == null || player.Status == 0) { continue; } ZonePacket(player.ZSID, new IZ_MEMORIALDUNGEON_SUBSCRIPTION_INFO2 { AID = player.AID, GID = player.GID, DungeonName = packet.DungeonName, PriorityOrderNum = 1 }); } return true; }
public void ZI_MEMORIALDUNGEON_SUBSCRIPTION2Test() { var data = "79 2A 5F 00 75 6E 6B 6E 6F 77 6E 00 94 E3 92 77 01 29 A6 3B 00 00 00 00 AC 01 9C 00 38 F3 DE 04 A0 B0 4D 00 5C F3 DE 04 B0 F9 BF 0A ED F5 52 00 B0 F9 BF 0A 54 F3 DE 04 49 1E 53 00 F3 86 01 00 00 E7 03 00 00 F3 86 01 00 71 89 01 00 57 61 76 65 20 4D 6F 64 65 20 2D 20 46 6F 72 65 73 74".ToByteArray(); var packet = new ZI_MEMORIALDUNGEON_SUBSCRIPTION2(data); }