Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
            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();
                        }
                    }
                }
            }