示例#1
0
        public async Task Handle(IPlayerEntity player, InventoryUseItemEvent e)
        {
            if (!player.IsTransformedSp)
            {
                return;
            }

            if (e.Option != 0)
            {
                return;
            }

            await player.SendQuestionAsync(new UiPacket
            {
                VisualType    = VisualType.Character,
                CharacterId   = player.Id,
                InventoryType = e.Item.Type,
                InventorySlot = (byte)e.Item.Slot,
                Unknown2      = 3,
                Unknown3      = 0
            }, "ASK_WINGS_CHANGE");

            return;

            // EmitEvent(new ChangeSpWings)
        }
示例#2
0
        public async Task Handle(IPlayerEntity player, InventoryUseItemEvent e)
        {
            if (e.Option == 0)
            {
                // todo clean
                await player.SendQuestionAsync(new ClientGuriPacket { Type = 300, Argument = 8023, VisualId = e.Item.Slot }, "ASK_RELEASE_PET");

                return;
            }

            await player.EmitEventAsync(new AddPetEvent { MonsterVnum = e.Item.Item.EffectValue, MateType = e.Item.Item.ItemSubType == 1 ? MateType.Partner : MateType.Pet });
        }
示例#3
0
        public async Task Handle(IPlayerEntity player, InventoryUseItemEvent e)
        {
            if (!player.IsTransformedLocomotion)
            {
                if (e.Option == 0)
                {
                    await player.GenerateDelay(3000, DelayPacketType.Locomotion, $"#u_i^1^{player.Character.Id}^{(byte)e.Item.Type}^{e.Item.Slot}^2");

                    return;
                }

                player.EmitEvent(new LocomotionTransformEvent {
                    Item = e.Item
                });
                return;
            }

            player.EmitEvent(new LocomotionUntransformEvent {
            });
        }