Exemplo n.º 1
0
        private static async Task SendRightPackets(IPlayerEntity player)
        {
            await player.SendPacketAsync(player.GenerateAtPacket());

            await player.ActualizePlayerCondition();

            await player.SendPacketAsync(player.GenerateCMapPacket());

            await player.ActualizeUiStatChar();

            await player.SendPacketAsync(player.GeneratePairyPacket());
        }
Exemplo n.º 2
0
        public async Task <SaltyCommandResult> SpeedAsync(
            [Description("Player you want to reset the speed")]
            IPlayerEntity player = null)
        {
            if (player == null)
            {
                player = Context.Player;
            }

            player.Speed = (byte)ChickenContainer.Instance.Resolve <IAlgorithmService>().GetSpeed(player.Character.Class, player.Level);
            await player.ActualizePlayerCondition();

            return(new SaltyCommandResult(true, $"{player.Character.Name}'s speed is now {player.Speed}"));
        }
Exemplo n.º 3
0
        public async Task <SaltyCommandResult> SpeedAsync(
            [Description("Desired speed.")] byte speed,
            [Description("Player you want to change the speed")]
            IPlayerEntity player = null)
        {
            if (player == null)
            {
                player = Context.Player;
            }

            player.Speed = speed > 59 ? (byte)59 : speed;
            await player.ActualizePlayerCondition();

            return(new SaltyCommandResult(true, $"{player.Character.Name}'s speed is now {player.Speed}"));
        }
Exemplo n.º 4
0
        public static async Task ChangeGender(this IPlayerEntity player, GenderType type)
        {
            await player.SendChatMessageFormat(PlayerMessages.CHARACTER_X_GENDER_CHANGED_TO_Y, SayColorType.Blue, type);

            player.Character.Gender = type;
            await player.ActualizePlayerCondition();

            await player.SendPacketAsync(player.GenerateEqPacket());

            await player.BroadcastAsync(player.GenerateCModePacket());

            await player.BroadcastAsync(player.GenerateInPacket());

            await player.BroadcastAsync(player.GenerateGidxPacket());

            await player.BroadcastAsync(player.GenerateEffectPacket(196));
        }
Exemplo n.º 5
0
        protected override async Task Handle(MShopPacket packet, IPlayerEntity player)
        {
            switch (packet.Type)
            {
            case MShopPacketType.OpenShop:
                try
                {
                    ShopPlayerShopCreateEvent e = ParseMShopPacket(packet.PacketData, player);
                    if (e?.ShopItems.Any() == true)
                    {
                        await player.EmitEventAsync(e);
                    }
                    else
                    {
                        await player.SendPacketAsync(player.GenerateShopEndPacket(ShopEndPacketType.PersonalShop));

                        return;
                    }
                }
                catch (Exception e)
                {
                    Log.Error("[M_SHOP]", e);
                }

                break;

            case MShopPacketType.CloseShop:
                await player.ClosePersonalShopAsync();

                player.IsSitting = false;
                await player.ActualizePlayerCondition();

                return;

            case MShopPacketType.OpenDialog:
                await player.SendPacketAsync(new IShopPacket());

                return;

            default:
                return;
            }
        }
Exemplo n.º 6
0
        public static async Task ChangeClass(this IPlayerEntity player, CharacterClassType type)
        {
            player.JobLevel   = 1;
            player.JobLevelXp = 0;
            await player.SendPacketAsync(new NpInfoPacket { UnKnow = 0 });

            await player.SendPacketAsync(new PClearPacket());

            if (type == CharacterClassType.Adventurer)
            {
                player.Character.HairStyle = player.Character.HairStyle > HairStyleType.HairStyleB ? HairStyleType.HairStyleA : player.Character.HairStyle;
            }

            player.Character.Class = type;
            player.HpMax           = Algorithm.GetHpMax(type, player.Level);
            player.MpMax           = Algorithm.GetMpMax(type, player.Level);
            player.Hp = player.HpMax;
            player.Mp = player.MpMax;
            await player.SendPacketAsync(player.GenerateTitPacket());

            await player.ActualizeUiHpBar();

            await player.SendPacketAsync(player.GenerateEqPacket());

            await player.SendPacketAsync(player.GenerateEffectPacket(8));

            await player.SendPacketAsync(player.GenerateEffectPacket(196));

            await player.SendPacketAsync(player.GenerateScrPacket());

            await player.SendChatMessageFormat(PlayerMessages.CHARACTER_YOUR_CLASS_CHANGED_TO_X, SayColorType.Blue, type);

            player.Character.Faction = player.Family?.FamilyFaction ?? (FactionType)(1 + _randomGenerator.Next(0, 2));
            await player.SendChatMessageFormat(PlayerMessages.CHARACTER_YOUR_FACTION_CHANGED_TO_X, SayColorType.Blue, player.Character.Faction);

            await player.ActualizeUiFaction();

            await player.ActualizeUiStatChar();

            await player.SendPacketAsync(player.GenerateEffectPacket(4799 + (byte)player.Character.Faction));

            await player.ActualizePlayerCondition();

            await player.ActualizeUiExpBar();

            await player.BroadcastAsync(player.GenerateCModePacket());

            await player.BroadcastAsync(player.GenerateInPacket());

            await player.BroadcastAsync(player.GenerateGidxPacket());

            await player.BroadcastAsync(player.GenerateEffectPacket(6));

            await player.BroadcastAsync(player.GenerateEffectPacket(196));

            SkillComponent component = player.SkillComponent;

            foreach (SkillDto skill in component.Skills.Values)
            {
                if (skill.Id >= 200)
                {
                    component.Skills.Remove(skill.Id);
                }
            }

            // TODO : LATER ADD SKILL
            await player.ActualizeUiSkillList();

            // Later too

            /* foreach (QuicklistEntryDTO quicklists in DAOFactory.QuicklistEntryDAO.LoadByCharacterId(CharacterId).Where(quicklists => QuicklistEntries.Any(qle => qle.Id == quicklists.Id)))
             * {
             *   DAOFactory.QuicklistEntryDAO.Delete(quicklists.Id);
             * }
             *
             * QuicklistEntries = new List<QuicklistEntryDTO>
             * {
             *   new QuicklistEntryDTO
             *   {
             *       CharacterId = CharacterId,
             *       Q1 = 0,
             *       Q2 = 9,
             *       Type = 1,
             *       Slot = 3,
             *       Pos = 1
             *   }
             * };
             * if (ServerManager.Instance.Groups.Any(s => s.IsMemberOfGroup(Session) && s.GroupType == GroupType.Group))
             * {
             *   Session.CurrentMapInstance?.Broadcast(Session, $"pidx 1 1.{CharacterId}", ReceiverType.AllExceptMe);
             * }*/
        }