public void Run(byte faction) { MapInstance map = ServerManager.Instance.GenerateMapInstance(149, faction == 1 ? MapInstanceType.Act4ShipAngel : MapInstanceType.Act4ShipDemon, null); MapNpc mapNpc1 = new MapNpc() { NpcVNum = 613, MapNpcId = map.GetNextNpcId(), Dialog = 434, MapId = 149, MapX = 8, MapY = 28, IsMoving = false, Position = 1, IsSitting = false }; mapNpc1.Initialize(map); map.AddNPC(mapNpc1); MapNpc mapNpc2 = new MapNpc() { NpcVNum = 540, MapNpcId = map.GetNextNpcId(), Dialog = 433, MapId = 149, MapX = 31, MapY = 28, IsMoving = false, Position = 3, IsSitting = false }; mapNpc2.Initialize(map); map.AddNPC(mapNpc2); while (true) { openShip(); Thread.Sleep(60 * 1000); map.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("SHIP_MINUTE"), 0)); lockShip(); Thread.Sleep(30 * 1000); map.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("SHIP_SECONDS"), 30), 0)); Thread.Sleep(20 * 1000); map.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("SHIP_SECONDS"), 10), 0)); Thread.Sleep(10 * 1000); map.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("SHIP_SETOFF"), 0)); List <ClientSession> sessions = map.Sessions.Where(s => s?.Character != null).ToList(); Observable.Timer(TimeSpan.FromSeconds(0)).Subscribe(X => teleportPlayers(sessions)); } }
public static void Run() { MapInstance map = ServerManager.GenerateMapInstance(148, MapInstanceType.Act5Ship, new InstanceBag()); MapNpc mapNpc1 = new MapNpc { NpcVNum = 1350, MapNpcId = map.GetNextNpcId(), Dialog = 447, MapId = 148, MapX = 31, MapY = 28, IsMoving = false, Position = 3, IsSitting = false }; mapNpc1.Initialize(map); map.AddNPC(mapNpc1); while (true) { OpenShip(); Thread.Sleep(60 * 1000); map.Broadcast(UserInterfaceHelper.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("SHIP_MINUTES"), 4), 0)); Thread.Sleep(60 * 1000); map.Broadcast(UserInterfaceHelper.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("SHIP_MINUTES"), 3), 0)); Thread.Sleep(60 * 1000); map.Broadcast(UserInterfaceHelper.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("SHIP_MINUTES"), 2), 0)); Thread.Sleep(60 * 1000); map.Broadcast(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("SHIP_MINUTE"), 0)); LockShip(); Thread.Sleep(30 * 1000); map.Broadcast(UserInterfaceHelper.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("SHIP_SECONDS"), 30), 0)); Thread.Sleep(20 * 1000); map.Broadcast(UserInterfaceHelper.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("SHIP_SECONDS"), 10), 0)); Thread.Sleep(10 * 1000); map.Broadcast(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("SHIP_SETOFF"), 0)); List <ClientSession> sessions = map.Sessions.Where(s => s?.Character != null).ToList(); Observable.Timer(TimeSpan.FromSeconds(0)).Subscribe(X => TeleportPlayers(sessions)); } }
public void SummonNpc(MapInstance map) { List <MapNpc> npc = new List <MapNpc> { new MapNpc { NpcVNum = 922, MapNpcId = map.GetNextNpcId(), Dialog = 0, MapId = map.Map.MapId, MapX = 59, MapY = 40, IsMoving = false, Position = 0, IsSitting = false, Effect = 3009, Score = 5 }, new MapNpc { NpcVNum = 923, MapNpcId = map.GetNextNpcId(), Dialog = 0, MapId = map.Map.MapId, MapX = 74, MapY = 53, IsMoving = false, Position = 0, IsSitting = false, Effect = 3009, Score = 2 }, new MapNpc { NpcVNum = 923, MapNpcId = map.GetNextNpcId(), Dialog = 0, MapId = map.Map.MapId, MapX = 32, MapY = 75, IsMoving = false, Position = 0, IsSitting = false, Effect = 3009, Score = 2 }, new MapNpc { NpcVNum = 923, MapNpcId = map.GetNextNpcId(), Dialog = 0, MapId = map.Map.MapId, MapX = 85, MapY = 4, IsMoving = false, Position = 0, IsSitting = false, Effect = 3009, Score = 2 }, new MapNpc { NpcVNum = 923, MapNpcId = map.GetNextNpcId(), Dialog = 0, MapId = map.Map.MapId, MapX = 43, MapY = 26, IsMoving = false, Position = 0, IsSitting = false, Effect = 3009, Score = 2 }, new MapNpc { NpcVNum = 924, MapNpcId = map.GetNextNpcId(), Dialog = 0, MapId = map.Map.MapId, MapX = 15, MapY = 40, IsMoving = false, Position = 0, IsSitting = false, Effect = 3009, Score = 1 }, new MapNpc { NpcVNum = 924, MapNpcId = map.GetNextNpcId(), Dialog = 999, MapId = map.Map.MapId, MapX = 102, MapY = 39, IsMoving = false, Position = 0, IsSitting = false, Effect = 3009, Score = 1 }, }; foreach (var Stone in npc) { Stone.Dialog = 999; Stone.Initialize(map); map.AddNPC(Stone); map.Broadcast(Stone.GenerateIn()); IEnumerable <ClientSession> sess = ServerManager.Instance.Sessions.Where(s => s.Character?.CharacterId == null); foreach (ClientSession ses in sess) { if (Stone.Dialog == 999) { ses.SendPacket(UserInterfaceHelper.GenerateDelay(5000, 1, $"#guri^711^{Stone.MapNpcId}")); Stone.Score++; RainbowBattleManager.SendFbs(); } } } }