示例#1
0
        public static void CreateTrainingWand(Session session, params string[] parameters)
        {
            if (!(parameters?.Length > 0))
            {
                ChatPacket.SendServerMessage(session, "Usage: @ctw me or @ctw ground",
                                             ChatMessageType.Broadcast);
                return;
            }
            string location = parameters[0];

            if (location == "me" | location == "ground")
            {
                var loot = LootGenerationFactory.CreateTrainingWand(session.Player);
                switch (location)
                {
                case "me":
                {
                    LootGenerationFactory.AddToContainer(loot, session.Player);
                    break;
                }

                case "ground":
                {
                    LootGenerationFactory.Spawn(loot, session.Player.Location.InFrontOf(1.0f));
                    break;
                }
                }
                session.Player.TrackObject(loot);
            }
            else
            {
                ChatPacket.SendServerMessage(session, "Usage: @ctw me or @ctw ground",
                                             ChatMessageType.Broadcast);
            }
        }
示例#2
0
        public static void MoveTo(Session session, params string[] parameters)
        {
            var    distance           = 10.0f;
            ushort trainingWandTarget = 12748;

            if ((parameters?.Length > 0))
            {
                distance = Convert.ToInt16(parameters[0]);
            }
            WorldObject loot = WorldObjectFactory.CreateNewWorldObject(trainingWandTarget);

            LootGenerationFactory.Spawn(loot, session.Player.Location.InFrontOf(distance));

            session.Player.PutItemInContainer(loot.Guid, session.Player.Guid);
        }
示例#3
0
        public static void MoveTo(Session session, params string[] parameters)
        {
            var distance = 10.0f;

            if ((parameters?.Length > 0))
            {
                distance = Convert.ToInt16(parameters[0]);
            }
            var loot = LootGenerationFactory.CreateTrainingWand(session.Player);

            LootGenerationFactory.Spawn(loot, session.Player.Location.InFrontOf(distance));
            session.Player.TrackObject(loot);
            var newMotion = new UniversalMotion(MotionStance.Standing, loot);

            session.Network.EnqueueSend(new GameMessageUpdatePosition(session.Player));
            session.Network.EnqueueSend(new GameMessageUpdateMotion(session.Player, loot, newMotion, MovementTypes.MoveToObject));
        }
示例#4
0
        public static void MoveTo(Session session, params string[] parameters)
        {
            var    distance           = 10.0f;
            ushort trainingWandTarget = 12748;

            if ((parameters?.Length > 0))
            {
                distance = Convert.ToInt16(parameters[0]);
            }
            var loot = LootGenerationFactory.CreateTestWorldObject(trainingWandTarget);

            LootGenerationFactory.Spawn(loot, session.Player.Location.InFrontOf(distance));
            session.Player.TrackObject(loot);
            var newMotion = new UniversalMotion(MotionStance.Standing, loot.PhysicsData.Position, loot.Guid);

            newMotion.MovementTypes = MovementTypes.MoveToObject;
            session.Network.EnqueueSend(new GameMessageUpdatePosition(session.Player));
            session.Network.EnqueueSend(new GameMessageUpdateMotion(session.Player.Guid,
                                                                    session.Player.Sequences.GetCurrentSequence(Network.Sequence.SequenceType.ObjectInstance),
                                                                    session.Player.Sequences, newMotion));
        }