Example #1
0
        public static void OnNpcDialogTeleport(IPlayerEntity player, NpcDialogEvent args)
        {
            if (args.Type < 0)
            {
                return;
            }

            if (player.Character.Gold <= 1000 * args.Type)
            {
                // No Money -> SendMsg(NOMONEY);
                Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
                return;
            }

            player.GoldLess(1000 * args.Type);

            switch (args.Type)
            {
            case 1:     // TeleportZapMtKrem
                player.TeleportTo(20, 10, 91);
                break;

            case 2:     // TeleportZapPortsAlveus
                player.TeleportTo(145, 8, 107);
                break;
            }
        }
Example #2
0
        public static void EnterLod(IPlayerEntity player, NpcDialogEvent args)
        {
            if (player.Level <= 55)
            {
                //await session.SendPacketAsync(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("LOD_REQUIERE_LVL"), 0));
                return;
            }

            if (player?.Family == null)
            {
                /* await session.SendPacketAsync(
                 *   UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("NEED_FAMILY"),
                 *       0));*/
                return;
            }

            /* if (player.Family?.LandOfDeath == null)
             * {
             *   Session.Character.Family.LandOfDeath =
             *       ServerManager.GenerateMapInstance(150, MapInstanceType.LodInstance,
             *           new InstanceBag());
             * }
             *
             * if (Session.Character?.Family?.LandOfDeath != null)
             * {
             *   ServerManager.Instance.ChangeMapInstance(Session.Character.CharacterId, Session.Character.Family.LandOfDeath.MapInstanceId, 153, 145);
             * }*/

            player.TeleportTo(150, 153, 145);
        }
        public async Task Execute(IPlayerEntity player, NpcDialogEvent e)
        {
            if (player.Family.MaxSize > 70 && player.Family.FamilyLevel <= 5)
            {
                return;
            }

            if (player.FamilyCharacter.Authority != ChickenAPI.Enums.Game.Families.FamilyAuthority.Head)
            {
                await player.SendChatMessageAsync(PlayerMessages.FAMILY_YOU_NEED_TO_BE_LEADER, SayColorType.Yellow);

                await player.SendModalAsync(PlayerMessages.FAMILY_YOU_NEED_TO_BE_LEADER, ModalPacketType.Default);

                return;
            }

            if (5000000 >= player.Character.Gold)
            {
                await player.SendChatMessageAsync(PlayerMessages.YOU_DONT_HAVE_ENOUGH_GOLD, SayColorType.Yellow);

                return;
            }

            await player.GoldLess(5000000);

            player.Family.MaxSize = 70;

            /*FamilyDTO fam = Session.Character.Family;
             * DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
             * ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);*/
        }
Example #4
0
        public static void UpgradeFamilySize2(IPlayerEntity player, NpcDialogEvent args)
        {
            if (player.Family.MaxSize > 100 && player.Family.FamilyLevel <= 9)
            {
                return;
            }
            if (player.FamilyCharacter.Authority != FamilyAuthority.Head)
            {
                /* await session.SendPacketAsync(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("ONLY_HEAD_CAN_BUY"), 10));
                 *  await session.SendPacketAsync(UserInterfaceHelper.GenerateModal(Language.Instance.GetMessageFromKey("ONLY_HEAD_CAN_BUY"), 1));
                 */
                return;
            }

            if (5000000 >= player.Character.Gold)
            {
                //await session.SendPacketAsync(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("NOT_ENOUGH_MONEY"), 10));
                return;
            }
            player.GoldLess(10000000);
            player.Family.MaxSize = 100;

            /*FamilyDTO fam = Session.Character.Family;
             * DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
             * ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);*/
        }
Example #5
0
 public static void UpgradeFromNpc(IPlayerEntity player, NpcDialogEvent args)
 {
     player.SendPacketAsync(new WopenPacket
     {
         Type   = 1,
         Unknow = 0
     });
 }
Example #6
0
 public static void Idk(IPlayerEntity player, NpcDialogEvent args)
 {
     player.SendPacketAsync(new WopenPacket
     {
         Type   = args.Type,
         Unknow = 0
     });
 }
Example #7
0
        public Task Execute(IPlayerEntity player, NpcDialogEvent e)
        {
            if (!_handlers.TryGetValue(e.DialogId, out INpcDialogAsyncHandler handler))
            {
                return(Task.CompletedTask);
            }

            return(handler.Execute(player, e));
        }
        public void Handle(IPlayerEntity player, NpcDialogEvent e)
        {
            if (e.DialogId != DialogId)
            {
                return;
            }

            _func.Invoke(player, e);
        }
Example #9
0
 public static void TimeCircle(IPlayerEntity player, NpcDialogEvent args)
 {
     player.SendPacketAsync(new SentNpcReqPacket
     {
         VisualType = ChickenAPI.Enums.Game.Entity.VisualType.Character,
         VisualId   = player.Id,
         Dialog     = 17
     });
 }
Example #10
0
        public static void ChangeJobMiMi(IPlayerEntity player, NpcDialogEvent args)
        {
            if (player.Character.Class != CharacterClassType.Adventurer)
            {
                //await session.SendPacketAsync(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("NOT_ADVENTURER"), 0));
                return;
            }

            if (player.Character.Level < 15 || player.Character.JobLevel < 20)
            {
                //await session.SendPacketAsync(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("LOW_LVL"), 0));
                return;
            }

            if (args.Type == (byte)player.Character.Class)
            {
                return;
            }

            if (args.Type > 4)
            {
                return;
            }

            player.ChangeClass((CharacterClassType)args.Type);
            // TODO : LATER

            /* if (Session.Character.Inventory.All(i => i.Type == InventoryType.Wear))
             * {
             *   await session.SendPacketAsync(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("EQ_NOT_EMPTY"), 0));
             *   return;
             * }
             *
             *   Session.Character.Inventory.AddNewToInventory((short)(4 + (packet.Type * 14)), type: InventoryType.Wear);
             *   Session.Character.Inventory.AddNewToInventory((short)(81 + (packet.Type * 13)), type: InventoryType.Wear);
             *   switch (packet.Type)
             *   {
             *       case 1:
             *           Session.Character.Inventory.AddNewToInventory(68, type: InventoryType.Wear);
             *           Session.Character.Inventory.AddNewToInventory(2082, 10);
             *           break;
             *
             *       case 2:
             *           Session.Character.Inventory.AddNewToInventory(78, type: InventoryType.Wear);
             *           Session.Character.Inventory.AddNewToInventory(2083, 10);
             *           break;
             *
             *       case 3:
             *           Session.Character.Inventory.AddNewToInventory(86, type: InventoryType.Wear);
             *           break;
             *
             *       default:
             *           return;
             *   }
             *   Session.CurrentMapInstance?.Broadcast(Session.Character.GenerateEq());
             *   await session.SendPacketAsync(Session.Character.GenerateEquipment());*/
        }
Example #11
0
        public static void TeleportUnknow4(IPlayerEntity player, NpcDialogEvent args)
        {
            // Same Here
            if (args.Type < 0)
            {
                return;
            }

            //TeleportationHelper.TeleportTo(player, 20, 10, 91);
        }
Example #12
0
        public static void TeleportUnknow2(IPlayerEntity player, NpcDialogEvent args)
        {
            // Same Here
            if (args.Type < 0)
            {
                return;
            }

            if (player.Character.Gold <= 500)
            {
                // No Money -> SendMsg(NOMONEY);
                Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
                return;
            }

            player.GoldLess(500);

            player.TeleportTo(20, 10, 91);
        }
Example #13
0
        public static void Recipe(IPlayerEntity player, NpcDialogEvent args)
        {
            player.SendPacketAsync(new WopenPacket
            {
                Type   = 27,
                Unknow = 0
            });
            // Recipe

            /*string recipelist = "m_list 2";
             *      if (npc != null)
             *      {
             *          List<Recipe> tps = npc.Recipes;
             *          recipelist = tps.Where(s => s.Amount > 0).Aggregate(recipelist, (current, s) => current + $" {s.ItemVNum}");
             *          recipelist += " -100";
             *          await session.SendPacketAsync(recipelist);
             *      }
             */
        }
Example #14
0
        public static void TeleportUnknow(IPlayerEntity player, NpcDialogEvent args)
        {
            // Idk Whats is Nrun 26 -> I thinks is For Ships ( Act4 or Act5 )
            if (args.Type < 0)
            {
                return;
            }

            if (player.Character.Gold <= 5000 * args.Type)
            {
                // No Money -> SendMsg(NOMONEY);
                Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
                return;
            }

            player.GoldLess(5000 * args.Type);

            //TeleportationHelper.TeleportTo(player, 20, 10, 91);
        }
Example #15
0
 public static void OpenBazzar(IPlayerEntity player, NpcDialogEvent args)
 {
     /*
      * StaticBonusDTO medal = Session.Character.StaticBonusList.Find(s => s.StaticBonusType == StaticBonusType.BazaarMedalGold || s.StaticBonusType == StaticBonusType.BazaarMedalSilver);
      *      byte Medal = 0;
      *      int Time = 0;
      *      if (medal != null)
      *      {
      *          Medal = medal.StaticBonusType == StaticBonusType.BazaarMedalGold ? (byte)MedalType.Gold : (byte)MedalType.Silver;
      *          Time = (int)(medal.DateEnd - DateTime.Now).TotalHours;
      *      }
      *      await session.SendPacketAsync($"wopen 32 {Medal} {Time}");
      */
     player.SendPacketAsync(new WopenPacket
     {
         Type   = 32,
         Unknow = 1
     });
 }
Example #16
0
        public static void EnterArenaInstance(IPlayerEntity player, NpcDialogEvent args)
        {
            TimeSpan timeSpanSinceLastPortal = DateTime.Now - player.DateLastPortal;

            if (timeSpanSinceLastPortal <= TimeSpan.FromSeconds(4))
            {
                return;
            }

            /* if (!(timeSpanSinceLastPortal >= 4) || !Session.HasCurrentMapInstance || ServerManager.Instance.ChannelId == 51 ||
             *   Session.CurrentMapInstance.MapInstanceId == ServerManager.Instance.ArenaInstance.MapInstanceId ||
             *   Session.CurrentMapInstance.MapInstanceId == ServerManager.Instance.FamilyArenaInstance.MapInstanceId)
             * {
             *   await session.SendPacketAsync(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("CANT_MOVE"), 10));
             *   return;
             * }*/

            if (args.Type < 0)
            {
                return;
            }

            if (player.Character.Gold <= 500 * 1 * args.Type)
            {
                // No Money -> SendMsg(NOMONEY);
                Log.Info($"[TELEPORT][NO-MONEY] {player.Character.Name}");
                return;
            }

            player.GoldLess(500 * 1 * args.Type);

            // MapCell pos = packet.Type == 0 ? ServerManager.Instance.ArenaInstance.Map.GetRandomPosition() : ServerManager.Instance.FamilyArenaInstance.Map.GetRandomPosition();
            // ServerManager.Instance.ChangeMapInstance(Session.Character.CharacterId, packet.Type == 0 ? ServerManager.Instance.ArenaInstance.MapInstanceId : ServerManager.Instance.FamilyArenaInstance.MapInstanceId, pos.X, pos.Y);

            player.TeleportTo((short)(args.Type == 0 ? 2006 : 2106), (short)(args.Type == 0 ? 38 : 2007), (short)(args.Type == 0 ? 38 : 2007));
            player.DateLastPortal = DateTime.Now;
        }
Example #17
0
 public static void TpUnknow(IPlayerEntity player, NpcDialogEvent args)
 {
     //TeleportationHelper.TeleportTo(player, 170, 127, 46);
 }
Example #18
0
 public static void UpgradeFamilySize(IPlayerEntity player, NpcDialogEvent args)
 {
 }
Example #19
0
 public static void UpgradeFamilyWarehouse2(IPlayerEntity player, NpcDialogEvent args)
 {
     // = 21 -> 49
 }
Example #20
0
 public static void OpenFamilyWarehouseHist(IPlayerEntity player, NpcDialogEvent args)
 {
     //Session.SendPackets(Session.Character.OpenFamilyWarehouseHist());
 }
Example #21
0
 public static void OnpenFamilyWarehouse(IPlayerEntity player, NpcDialogEvent args)
 {
     // await session.SendPacketAsync(Session.Character.OpenFamilyWarehouse());
 }
Example #22
0
 public static void CreateFamily(IPlayerEntity player, NpcDialogEvent args)
 {
 }
Example #23
0
 public static void OnGrahamDialogTeleport(IPlayerEntity player, NpcDialogEvent args)
 {
     Log.Info($"[TELEPORT][GRAHAM] {player.Character.Name}");
     // need to provide implementation
 }
Example #24
0
 public static void GoToAct5(IPlayerEntity player, NpcDialogEvent args)
 {
     player.TeleportTo(170, 127, 46);
 }
Example #25
0
 public static void AlveusFromAct4(IPlayerEntity player, NpcDialogEvent args)
 {
     player.TeleportTo(145, 50, 41);
 }