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); } }
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); }
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)); }
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)); }