private void ExecuteHandler(ClientSession session) { ScriptedInstance orgTimespace = session.CurrentMapInstance.ScriptedInstances .Find(s => X == s.PositionX && Y == s.PositionY); if (orgTimespace != null) { ScriptedInstance timespace = new ScriptedInstance(orgTimespace); timespace.LoadGlobals(); if (StartPress == 1 || RecordPress == 1) { session.EnterInstance(timespace); } else { session.SendPacket(timespace.GenerateRbr()); } } }
/// <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()); } }