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());
                }
            }
        }
Example #2
0
        /// <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());
            }
        }