Example #1
0
        /// <summary>
        /// 请求脚本处理
        /// </summary>
        /// <param name="actionGetter">请求参数对象</param>
        /// <param name="response">字节输出处理</param>
        public static void RequestScript(ActionGetter actionGetter, BaseGameResponse response)
        {
            int    actionId  = actionGetter.GetActionId();
            string errorInfo = "";

            try
            {
                bool isRl = BaseStruct.CheckRunloader(actionGetter);
                if (isRl || actionGetter.CheckSign())
                {
                    BaseStruct baseStruct = FindScriptRoute(actionGetter, actionId);
                    if (baseStruct != null)
                    {
                        Process(baseStruct, actionGetter, response);
                        return;
                    }
                }
                else
                {
                    errorInfo = Language.Instance.SignError;
                    TraceLog.WriteError("Action request error:{2},rl:{0},param:{1}", isRl, actionGetter.ToParamString(), errorInfo);
                }
            }
            catch (Exception ex)
            {
                errorInfo = Language.Instance.ServerBusy;
                TraceLog.WriteError("Action request error:{0}\r\nparam:{1}", ex, actionGetter.ToParamString());
            }
            response.WriteError(actionGetter, Language.Instance.ErrorCode, errorInfo);
        }
Example #2
0
 public Action1033(ActionGetter actionGetter)
     : base((short)1033, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCSelectNearbyPlayers();
     m_UserId         = 0;
 }
Example #3
0
        /// <summary>
        /// 请求处理
        /// </summary>
        /// <param name="typeName"></param>
        /// <param name="response"></param>
        /// <param name="actionGetter"></param>
        public static void Request(string typeName, ActionGetter actionGetter, BaseGameResponse response)
        {
            var    actionId  = actionGetter.GetActionId().ToInt();
            string tempName  = string.Format(typeName, actionId);
            string errorInfo = "";

            try
            {
                bool isRL = BaseStruct.CheckRunloader(actionGetter);
                if (isRL || actionGetter.CheckSign())
                {
                    BaseStruct action = FindRoute(typeName, actionGetter, actionId);
                    Process(action, actionGetter, response);
                    if (action != null)
                    {
                        return;
                    }
                }
                else
                {
                    errorInfo = Language.Instance.SignError;
                    TraceLog.WriteError("Action request {3} error:{2},rl:{0},param:{1}", isRL, actionGetter.ToParamString(), errorInfo, tempName);
                }
            }
            catch (Exception ex)
            {
                errorInfo = Language.Instance.ServerBusy;
                TraceLog.WriteError("Action request {0} error:{1}\r\nparam:{2}", tempName, ex, actionGetter.ToParamString());
            }
            response.WriteError(actionGetter, Language.Instance.ErrorCode, errorInfo);
        }
Example #4
0
 public Action1032(ActionGetter actionGetter)
     : base((short)1032, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCComposeHero();
     m_UserId         = 0;
 }
Example #5
0
 public Action3200(ActionGetter actionGetter)
     : base((short)3200, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGetEmailList();
     m_UserId         = 0;
 }
Example #6
0
 public Action2202(ActionGetter actionGetter)
     : base((short)2202, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCOpenAllChances();
     m_UserId         = 0;
 }
Example #7
0
 public Action1008(ActionGetter actionGetter)
     : base((short)1008, actionGetter)
 {
     m_UserId         = 0;
     m_RequestPacket  = null;
     m_ResponsePacket = new LCInstanceProgress();
 }
Example #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="baseStruct"></param>
        /// <param name="actionGetter"></param>
        /// <param name="response"></param>
        public static void Process(BaseStruct baseStruct, ActionGetter actionGetter, BaseGameResponse response)
        {
            int actionId = actionGetter.GetActionId();

            baseStruct.DoInit();
            if (actionGetter.Session.EnterLock(actionId))
            {
                try
                {
                    if (!baseStruct.GetError() &&
                        baseStruct.ReadUrlElement() &&
                        baseStruct.DoAction() &&
                        !baseStruct.GetError())
                    {
                        baseStruct.WriteResponse(response);
                    }
                    else
                    {
                        baseStruct.WriteErrorAction(response);
                    }
                }
                finally
                {
                    actionGetter.Session.ExitLock(actionId);
                }
            }
            else
            {
                baseStruct.WriteLockTimeoutAction(response);
            }
        }
Example #9
0
 public Action2400(ActionGetter actionGetter)
     : base((short)2400, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGetCosmosCrackInfo();
     m_UserId         = 0;
 }
Example #10
0
 public Action1030(ActionGetter actionGetter)
     : base((short)1030, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGetHeroesInfo();
     m_UserId         = 0;
 }
Example #11
0
 public Action1302(ActionGetter actionGetter)
     : base((short)1302, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGetSinglePvpInfo();
     m_UserId         = 0;
 }
Example #12
0
 public Action2103(ActionGetter actionGetter)
     : base((short)2103, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCRespondToGearFoundryInvitation();
     m_UserId         = 0;
 }
Example #13
0
 public Action2108(ActionGetter actionGetter)
     : base((short)2108, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCPerformFoundry();
     m_UserId         = 0;
 }
Example #14
0
 public Action1000(ActionGetter actionGetter)
     : base(1000, actionGetter)
 {
     responsePack = new ResponsePack();
     _watch = new Stopwatch();
     _versionsNotSupport = new List<string>();
 }
Example #15
0
        internal static BaseStruct FindScriptRoute(ActionGetter actionGetter, int actionID)
        {
            string scriptTypeName = string.Format(GameEnvironment.Setting.ScriptTypeName, actionID);
            string scriptCode     = "";

            if (!ScriptEngines.SettupInfo.DisablePython) //By Seamoon 在Python禁用的情况下,就没有必要再加载了
            {
                scriptCode = string.Format("action.action{0}", actionID);
                dynamic scriptScope = ScriptEngines.ExecutePython(scriptCode);
                if (scriptScope != null)
                {
                    bool ignoreAuthorize = _ignoreAuthorizeSet.Contains(actionID);
                    return(new ScriptAction(ScriptType.Python, actionID, actionGetter, scriptScope, ignoreAuthorize));
                }
            }
            if (!ScriptEngines.SettupInfo.DisableLua)
            {
                scriptCode = string.Format("Action{0}", actionID);
                dynamic scriptScope = ScriptEngines.ExecuteLua("GetTable", scriptCode, actionID);
                if (scriptScope != null)
                {
                    bool ignoreAuthorize = _ignoreAuthorizeSet.Contains(actionID);
                    return(new LuaAction(actionID, actionGetter, scriptScope, ignoreAuthorize));
                }
            }

            scriptCode = string.Format("action.action{0}", actionID);
            BaseStruct baseStruct = ScriptEngines.Execute(scriptCode, scriptTypeName, actionGetter);

            if (baseStruct != null)
            {
                return(baseStruct);
            }
            return(null);
        }
Example #16
0
        internal static BaseStruct FindRoute(string typeExpression, ActionGetter actionGetter, int actionId)
        {
            BaseStruct baseStruct = FindScriptRoute(actionGetter, actionId);

            if (baseStruct != null)
            {
                return(baseStruct);
            }
            //在没有找到对应的处理脚本的情况,转而尝试从已编译好的库中找
            string typeName   = string.Format(typeExpression, actionId);
            Type   actionType = Type.GetType(typeName);

            if (actionType != null)
            {
                try
                {
                    return(actionType.CreateInstance <BaseStruct>(new object[] { actionGetter }));
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("The {0} action init error", actionId), ex);
                }
            }
            throw new NotSupportedException(string.Format("Not found script action{0}, please check script path setting.", actionId));
        }
Example #17
0
 public Action3108(ActionGetter actionGetter)
     : base((short)3108, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCRespondToFriendRequest();
     m_UserId         = 0;
 }
Example #18
0
 /// <summary>
 /// /
 /// </summary>
 /// <param name="scriptType"></param>
 /// <param name="aActionId"></param>
 /// <param name="actionGetter"></param>
 /// <param name="scriptScope"></param>
 /// <param name="ignoreAuthorize">忽略授权</param>
 public ScriptAction(ScriptType scriptType, int aActionId, ActionGetter actionGetter, object scriptScope, bool ignoreAuthorize)
     : base(aActionId, actionGetter)
 {
     _scriptType = scriptType;
     _scriptScope = scriptScope;
     _ignoreAuthorize = ignoreAuthorize;
 }
Example #19
0
 public Action2009(ActionGetter actionGetter)
     : base((short)2009, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCChangeHeroTeamChess();
     m_UserId         = 0;
 }
Example #20
0
 public Action5102(ActionGetter actionGetter)
     : base((short)5102, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = null;
     m_UserId         = 0;
 }
Example #21
0
 public Action1102(ActionGetter actionGetter)
     : base((short)1102, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCPurchaseInCommonShop();
     m_UserId         = 0;
 }
Example #22
0
 public Action2300(ActionGetter actionGetter)
     : base((short)2300, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGetArenaInfo();
     m_UserId         = 0;
 }
Example #23
0
 public Action1024(ActionGetter actionGetter)
     : base((short)1024, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCUpgradeEpigraph();
     m_UserId         = 0;
 }
Example #24
0
 /// <summary>
 /// /
 /// </summary>
 /// <param name="scriptType"></param>
 /// <param name="aActionId"></param>
 /// <param name="actionGetter"></param>
 /// <param name="scriptScope"></param>
 /// <param name="ignoreAuthorize">忽略授权</param>
 public ScriptAction(ScriptType scriptType, int aActionId, ActionGetter actionGetter, object scriptScope, bool ignoreAuthorize)
     : base(aActionId, actionGetter)
 {
     _scriptType      = scriptType;
     _scriptScope     = scriptScope;
     _ignoreAuthorize = ignoreAuthorize;
 }
Example #25
0
 public Action1013(ActionGetter actionGetter)
     : base((short)1013, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGearLevelUp();
     m_UserId         = 0;
 }
Example #26
0
 public Action1044(ActionGetter actionGetter)
     : base((short)1044, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCRefreshDailyQuest();
     m_UserId         = 0;
 }
Example #27
0
 public Action1026(ActionGetter actionGetter)
     : base((short)1026, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCCompleteStoryInstance();
     m_UserId         = 0;
 }
Example #28
0
 public Action2401(ActionGetter actionGetter)
     : base((short)2401, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCEnterCosmosCrackInstance();
     m_UserId         = 0;
 }
Example #29
0
 public Action2304(ActionGetter actionGetter)
     : base((short)2304, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCEndArenaBattle();
     m_UserId         = 0;
 }
Example #30
0
 public Action1031(ActionGetter actionGetter)
     : base((short)1031, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGetNewHeroByPieces();
     m_UserId         = 0;
 }
Example #31
0
 public Action1001(ActionGetter actionGetter)
     : base((short)1001, actionGetter)
 {
     m_UserId         = 0;
     m_RequestPacket  = null;
     m_ResponsePacket = new LCHeartBeat();
 }
Example #32
0
 public virtual void ResponseError(BaseGameResponse response, ActionGetter actionGetter, int errorCode, string errorInfo)
 {
     MessageHead head = new MessageHead(actionGetter.GetMsgId(), actionGetter.GetActionId(), errorCode, errorInfo);
     MessageStructure sb = new MessageStructure();
     sb.WriteBuffer(head);
     response.BinaryWrite(sb.PopBuffer());
 }
Example #33
0
 public Action3103(ActionGetter actionGetter)
     : base((short)3103, actionGetter)
 {
     m_RequestPacket  = null;
     m_ResponsePacket = new LCGetFriendList();
     m_UserId         = 0;
 }
Example #34
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Sns.LoginProxy"/> class.
		/// </summary>
		/// <param name="httpGet">Http get.</param>
        public LoginProxy(ActionGetter httpGet)
        {
            this._httpGet = httpGet;
            if (_httpGet != null)
            {
                _httpGet.GetString("RetailID", ref retailID);
            }
        }
Example #35
0
 public Action2500(ActionGetter actionGetter)
     : base(2500, actionGetter)
 {
     urlParams = "";
     _appKey = GameConfigMgr.Instance().getString("360AppKey", "");
     appSecret = GameConfigMgr.Instance().getString("360AppSecret", "");
     urlVerfily = GameConfigMgr.Instance().getString("360UrlVerfily", "");
 }
Example #36
0
 protected BaseAction(int aActionId, ActionGetter actionGetter)
     : base(aActionId, actionGetter)
 {
     _resultData = new ResultData()
     {
         MsgId = actionGetter.GetMsgId(),
         ActionId = actionGetter.GetActionId(),
         ErrorInfo = ""
     };
 }
Example #37
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="actionGetter"></param>
 /// <param name="response"></param>
 protected void DoAction(ActionGetter actionGetter, BaseGameResponse response)
 {
     if (GameEnvironment.IsRunning)
     {
         OnRequested(actionGetter, response);
         ActionFactory.Request(actionGetter, response);
     }
     else
     {
         response.WriteError(actionGetter, Language.Instance.ErrorCode, Language.Instance.ServerMaintain);
     }
 }
 public override void ResponseError(BaseGameResponse response, ActionGetter actionGetter, int errorCode, string errorInfo)
 {
     var result = new ResultData()
     {
         MsgId = actionGetter.GetMsgId(),
         ActionId = actionGetter.GetActionId(),
         ErrorCode = errorCode,
         ErrorInfo = errorInfo,
         Data = null
     };
     //实现出错处理下发
     response.BinaryWrite(Encoding.UTF8.GetBytes(MathUtils.ToJson(result)));
 }
 public void ResponseError(BaseGameResponse response, ActionGetter actionGetter, int errorCode, string errorInfo)
 {
     //实现出错处理下发
     ResponsePack head = new ResponsePack()
     {
         MsgId = actionGetter.GetMsgId(),
         ActionId = actionGetter.GetActionId(),
         ErrorCode = errorCode,
         ErrorInfo = errorInfo,
         St = actionGetter.GetSt()
     };
     byte[] headBytes = ProtoBufUtils.Serialize(head);
     byte[] buffer = BufferUtils.AppendHeadBytes(headBytes);
     response.BinaryWrite(buffer);
 }
Example #40
0
        protected override void OnRequested(ActionGetter actionGetter, BaseGameResponse response)
        {
            try
            {
                var actionId = actionGetter.GetActionId();
                var uid = actionGetter.GetUserId();
                Console.WriteLine("Action{0} from {1}", actionId, uid);
                ActionFactory.Request(actionGetter, response, GetUser);

            }
            catch (Exception ex)
            {
                TraceLog.WriteError("{0}", ex);
            }
        }
Example #41
0
 /// <summary>
 /// Checks the remote.
 /// </summary>
 /// <returns><c>true</c>, if remote was checked, <c>false</c> otherwise.</returns>
 /// <param name="route">Route.</param>
 /// <param name="actionGetter">Http get.</param>
 protected virtual bool CheckRemote(string route, ActionGetter actionGetter)
 {
     return actionGetter.CheckSign();
 }
Example #42
0
 /// <summary>
 /// Call remote method
 /// </summary>
 /// <param name="routePath"></param>
 /// <param name="actionGetter"></param>
 /// <param name="response"></param>
 protected virtual void OnCallRemote(string routePath, ActionGetter actionGetter, MessageStructure response)
 {
     try
     {
         string[] mapList = routePath.Split('.');
         string funcName = "";
         string routeName = routePath;
         if (mapList.Length > 1)
         {
             funcName = mapList[mapList.Length - 1];
             routeName = string.Join("/", mapList, 0, mapList.Length - 1);
         }
         string routeFile = "";
         int actionId = actionGetter.GetActionId();
         MessageHead head = new MessageHead(actionId);
         if (!ScriptEngines.SettupInfo.DisablePython)
         {
             routeFile = string.Format("Remote.{0}", routeName);
             dynamic scope = ScriptEngines.ExecutePython(routeFile);
             if (scope != null)
             {
                 var funcHandle = scope.GetVariable<RemoteHandle>(funcName);
                 if (funcHandle != null)
                 {
                     funcHandle(actionGetter, head, response);
                     response.WriteBuffer(head);
                     return;
                 }
             }
         }
         string typeName = string.Format(GameEnvironment.Setting.RemoteTypeName, routeName);
         routeFile = string.Format("Remote.{0}", routeName);
         var args = new object[] { actionGetter, response };
         var instance = (object)ScriptEngines.Execute(routeFile, typeName, args);
         if (instance is RemoteStruct)
         {
             var target = instance as RemoteStruct;
             target.DoRemote();
         }
     }
     catch (Exception ex)
     {
         TraceLog.WriteError("OnCallRemote error:{0}", ex);
     }
 }
Example #43
0
 /// <summary>
 /// Raises the requested event.
 /// </summary>
 /// <param name="actionGetter">Http get.</param>
 /// <param name="response">Response.</param>
 protected virtual void OnRequested(ActionGetter actionGetter, BaseGameResponse response)
 {
 }
Example #44
0
 public Action1006(ActionGetter actionGetter)
     : base(1006, actionGetter)
 {
     responsePack = new Response1006Pack();
 }
Example #45
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Contract.Action.Sdk91PayAction"/> class.
		/// </summary>
		/// <param name="aActionId">A action identifier.</param>
		/// <param name="httpGet">Http get.</param>
        public Sdk91PayAction(int aActionId, ActionGetter httpGet)
            : base(aActionId, httpGet)
        {
        }
Example #46
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Contract.Action.AppStorePayAction"/> class.
		/// </summary>
		/// <param name="aActionId">A action identifier.</param>
		/// <param name="httpGet">Http get.</param>
        public AppStorePayAction(int aActionId, ActionGetter httpGet)
            : base(aActionId, httpGet)
        {
        }
 /// <summary>
 /// Gets the login.
 /// </summary>
 /// <returns>The login.</returns>
 public static ILogin GetLogin(ActionGetter httpGet, string retaiId)
 {
     return GetLogin(retaiId, httpGet);
 }
Example #48
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="actionId"></param>
 /// <param name="actionGetter"></param>
 protected JsonAuthorizeAction(int actionId, ActionGetter actionGetter)
     : base(actionId, actionGetter)
 {
     EnableWebSocket = true;
 }
Example #49
0
 public Action80000(ActionGetter actionGetter)
     : base(80000, actionGetter)
 {
 }
Example #50
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="scriptType"></param>
 /// <param name="aActionId"></param>
 /// <param name="actionGetter"></param>
 /// <param name="scriptScope"></param>
 /// <param name="ignoreAuthorize"></param>
 public JsonScriptAction(ScriptType scriptType, int aActionId, ActionGetter actionGetter, object scriptScope, bool ignoreAuthorize)
     : base(scriptType, aActionId, actionGetter, scriptScope, ignoreAuthorize)
 {
     EnableWebSocket = true;
 }
Example #51
0
 protected override void OnRequested(ActionGetter actionGetter, BaseGameResponse response)
 {
     Console.WriteLine("Receice actionId:{0}", actionGetter.GetActionId());
     base.OnRequested(actionGetter, response);
 }
Example #52
0
 public Action2501(ActionGetter actionGetter)
     : base(2501, actionGetter)
 {
     _watch = new Stopwatch();
     responsePack = new Response2501Pack();
 }
Example #53
0
 public Action1004(ActionGetter actionGetter)
     : base((short)ActionType.Login, actionGetter)
 {
 }
Example #54
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Contract.Action.LoginAction"/> class.
 /// </summary>
 /// <param name="actionId">Action identifier.</param>
 /// <param name="httpGet">Http get.</param>
 protected LoginAction(short actionId, ActionGetter httpGet)
     : base(actionId, httpGet)
 {
     LoginProxy = new LoginProxy(httpGet);
 }
Example #55
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Contract.Action.AndroidPayAction"/> class.
		/// </summary>
		/// <param name="actionID">Action I.</param>
		/// <param name="httpGet">Http get.</param>
        public AndroidPayAction(short actionID, ActionGetter httpGet)
            : base(actionID, httpGet)
        {
        }
Example #56
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Contract.Action.ReAccessTokenAction"/> class.
 /// </summary>
 /// <param name="actionId">Action identifier.</param>
 /// <param name="httpGet">Http get.</param>
 protected ReAccessTokenAction(short actionId, ActionGetter httpGet)
     : base(actionId, httpGet)
 {
 }
Example #57
0
 /// <summary>
 /// Checks the remote.
 /// </summary>
 /// <returns><c>true</c>, if remote was checked, <c>false</c> otherwise.</returns>
 /// <param name="route">Route.</param>
 /// <param name="actionGetter">Http get.</param>
 protected virtual bool CheckRemote(string route, ActionGetter actionGetter)
 {
     return true;
 }
Example #58
0
 public Action1002(ActionGetter actionGetter)
     : base((short) ActionType.Regist, actionGetter)
 {
 }
Example #59
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="aActionId"></param>
 /// <param name="actionGetter"></param>
 protected JsonAction(int aActionId, ActionGetter actionGetter)
     : base(aActionId, actionGetter)
 {
     isWebSocket = true;
     actionGetter.OpCode = OpCode.Text;
 }
Example #60
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ZyGames.Framework.Game.Contract.Action.AuthorizeAction"/> class.
 /// </summary>
 /// <param name="actionId">Action I.</param>
 /// <param name="actionGetter">Http get.</param>
 protected AuthorizeAction(int actionId, ActionGetter actionGetter)
     : base(actionId, actionGetter)
 {
 }