/// <summary> /// treq packet /// </summary> /// <param name="treqPacket"></param> public void GetTreq(TreqPacket treqPacket) { ScriptedInstance timespace = Session.CurrentMapInstance.ScriptedInstances.FirstOrDefault(s => treqPacket.X == s.PositionX && treqPacket.Y == s.PositionY).GetClone(); if (timespace == null) { return; } if (treqPacket.StartPress == 1 || treqPacket.RecordPress == 1) { timespace.LoadScript(MapInstanceType.TimeSpaceInstance); if (timespace.FirstMap == null) { return; } foreach (Gift i in timespace.RequieredItems) { if (Session.Character.Inventory.CountItem(i.VNum) < i.Amount) { Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_REQUIERED_ITEM"), ServerManager.Instance.GetItem(i.VNum).Name), 0)); return; } Session.Character.Inventory.RemoveItemAmount(i.VNum, i.Amount); } if (timespace.LevelMinimum > Session.Character.Level) { Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("NOT_REQUIERED_LEVEL"), 0)); return; } Session.Character.MapX = timespace.PositionX; Session.Character.MapY = timespace.PositionY; ServerManager.Instance.TeleportOnRandomPlaceInMap(Session, timespace.FirstMap.MapInstanceId); timespace.FirstMap.InstanceBag.Creator = Session.Character.CharacterId; Session.SendPackets(timespace.GenerateMinimap()); Session.SendPacket(timespace.GenerateMainInfo()); Session.SendPacket(timespace.FirstMap.InstanceBag.GenerateScore()); } else { Session.SendPacket(timespace.GenerateRbr()); } }
internal static void EnterInstance(this ClientSession session, ScriptedInstance input) { if (input != null) { ScriptedInstance instance = new ScriptedInstance(input); instance.LoadGlobals(); instance.LoadScript(MapInstanceType.TimeSpaceInstance); if (instance.FirstMap == null) { return; } if (session.Character.Level < instance.LevelMinimum) { session.SendPacket( UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("NOT_REQUIERED_LEVEL"), 0)); return; } foreach (Gift gift in instance.RequiredItems) { if (session.Character.Inventory.CountItem(gift.VNum) < gift.Amount) { session.SendPacket(UserInterfaceHelper.GenerateMsg( string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_REQUIERED_ITEM"), ServerManager.GetItem(gift.VNum).Name), 0)); return; } session.Character.Inventory.RemoveItemAmount(gift.VNum, gift.Amount); } session.Character.MapX = instance.PositionX; session.Character.MapY = instance.PositionY; ServerManager.Instance.TeleportOnRandomPlaceInMap(session, instance.FirstMap.MapInstanceId); instance.InstanceBag.CreatorId = session.Character.CharacterId; session.SendPackets(instance.GenerateMinimap()); session.SendPacket(instance.GenerateMainInfo()); session.SendPacket(instance.FirstMap.InstanceBag.GenerateScore()); session.Character.Timespace = instance; } }