/// <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); }
public Action1033(ActionGetter actionGetter) : base((short)1033, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCSelectNearbyPlayers(); m_UserId = 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); }
public Action1032(ActionGetter actionGetter) : base((short)1032, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCComposeHero(); m_UserId = 0; }
public Action3200(ActionGetter actionGetter) : base((short)3200, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGetEmailList(); m_UserId = 0; }
public Action2202(ActionGetter actionGetter) : base((short)2202, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCOpenAllChances(); m_UserId = 0; }
public Action1008(ActionGetter actionGetter) : base((short)1008, actionGetter) { m_UserId = 0; m_RequestPacket = null; m_ResponsePacket = new LCInstanceProgress(); }
/// <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); } }
public Action2400(ActionGetter actionGetter) : base((short)2400, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGetCosmosCrackInfo(); m_UserId = 0; }
public Action1030(ActionGetter actionGetter) : base((short)1030, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGetHeroesInfo(); m_UserId = 0; }
public Action1302(ActionGetter actionGetter) : base((short)1302, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGetSinglePvpInfo(); m_UserId = 0; }
public Action2103(ActionGetter actionGetter) : base((short)2103, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCRespondToGearFoundryInvitation(); m_UserId = 0; }
public Action2108(ActionGetter actionGetter) : base((short)2108, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCPerformFoundry(); m_UserId = 0; }
public Action1000(ActionGetter actionGetter) : base(1000, actionGetter) { responsePack = new ResponsePack(); _watch = new Stopwatch(); _versionsNotSupport = new List<string>(); }
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); }
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)); }
public Action3108(ActionGetter actionGetter) : base((short)3108, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCRespondToFriendRequest(); m_UserId = 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; }
public Action2009(ActionGetter actionGetter) : base((short)2009, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCChangeHeroTeamChess(); m_UserId = 0; }
public Action5102(ActionGetter actionGetter) : base((short)5102, actionGetter) { m_RequestPacket = null; m_ResponsePacket = null; m_UserId = 0; }
public Action1102(ActionGetter actionGetter) : base((short)1102, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCPurchaseInCommonShop(); m_UserId = 0; }
public Action2300(ActionGetter actionGetter) : base((short)2300, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGetArenaInfo(); m_UserId = 0; }
public Action1024(ActionGetter actionGetter) : base((short)1024, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCUpgradeEpigraph(); m_UserId = 0; }
public Action1013(ActionGetter actionGetter) : base((short)1013, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGearLevelUp(); m_UserId = 0; }
public Action1044(ActionGetter actionGetter) : base((short)1044, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCRefreshDailyQuest(); m_UserId = 0; }
public Action1026(ActionGetter actionGetter) : base((short)1026, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCCompleteStoryInstance(); m_UserId = 0; }
public Action2401(ActionGetter actionGetter) : base((short)2401, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCEnterCosmosCrackInstance(); m_UserId = 0; }
public Action2304(ActionGetter actionGetter) : base((short)2304, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCEndArenaBattle(); m_UserId = 0; }
public Action1031(ActionGetter actionGetter) : base((short)1031, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGetNewHeroByPieces(); m_UserId = 0; }
public Action1001(ActionGetter actionGetter) : base((short)1001, actionGetter) { m_UserId = 0; m_RequestPacket = null; m_ResponsePacket = new LCHeartBeat(); }
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()); }
public Action3103(ActionGetter actionGetter) : base((short)3103, actionGetter) { m_RequestPacket = null; m_ResponsePacket = new LCGetFriendList(); m_UserId = 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); } }
public Action2500(ActionGetter actionGetter) : base(2500, actionGetter) { urlParams = ""; _appKey = GameConfigMgr.Instance().getString("360AppKey", ""); appSecret = GameConfigMgr.Instance().getString("360AppSecret", ""); urlVerfily = GameConfigMgr.Instance().getString("360UrlVerfily", ""); }
protected BaseAction(int aActionId, ActionGetter actionGetter) : base(aActionId, actionGetter) { _resultData = new ResultData() { MsgId = actionGetter.GetMsgId(), ActionId = actionGetter.GetActionId(), ErrorInfo = "" }; }
/// <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); }
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); } }
/// <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(); }
/// <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); } }
/// <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) { }
public Action1006(ActionGetter actionGetter) : base(1006, actionGetter) { responsePack = new Response1006Pack(); }
/// <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) { }
/// <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); }
/// <summary> /// /// </summary> /// <param name="actionId"></param> /// <param name="actionGetter"></param> protected JsonAuthorizeAction(int actionId, ActionGetter actionGetter) : base(actionId, actionGetter) { EnableWebSocket = true; }
public Action80000(ActionGetter actionGetter) : base(80000, actionGetter) { }
/// <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; }
protected override void OnRequested(ActionGetter actionGetter, BaseGameResponse response) { Console.WriteLine("Receice actionId:{0}", actionGetter.GetActionId()); base.OnRequested(actionGetter, response); }
public Action2501(ActionGetter actionGetter) : base(2501, actionGetter) { _watch = new Stopwatch(); responsePack = new Response2501Pack(); }
public Action1004(ActionGetter actionGetter) : base((short)ActionType.Login, actionGetter) { }
/// <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); }
/// <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) { }
/// <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) { }
/// <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; }
public Action1002(ActionGetter actionGetter) : base((short) ActionType.Regist, actionGetter) { }
/// <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; }
/// <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) { }