Esempio n. 1
0
 //写小解析
 public static void sWriteFileSmallType_Lua(StringBuilder sb, Dictionary <string, CmdBigTypeData> cmdbigTypeList)
 {
     foreach (KeyValuePair <string, CmdBigTypeData> iterType in cmdbigTypeList)
     {
         CmdBigTypeData bigType = iterType.Value;
         sb.AppendLine();
         string targetFun = "function " + LuaHandler + ".Parse{0}(gsCmd,gsParam,msgBytes)";
         sb.AppendLine(string.Format(targetFun, bigType.mCmdClassName));
         sb.AppendLine("\t\t\tif gsCmd == nil then");
         for (int j = 0; j < bigType.mAllSubData.Count; ++j)
         {
             CmdSmallTypeData subType = bigType.mAllSubData[j];
             if (!subType.isNeedLua)
             {
                 continue;
             }
             string targetDefine = "\t\t\telseif gsParam == {0}_S.{1} then ";
             sb.AppendLine(string.Format(targetDefine, subType.mGsClassName, subType.mGsParamName));
             string targetHandler = "\t\t\t\t{0}_Handler.{1}(msgBytes);";
             sb.AppendLine(string.Format(targetHandler, subType.mGsClassName, CmdXmlParser.cmdHandlerFuncName));
         }
         sb.AppendLine("\t\t\tend");
         sb.AppendLine("end");
     }
 }
Esempio n. 2
0
 //写小解析
 public static void sWriteFileSmallType(StringBuilder sb, Dictionary <string, CmdBigTypeData> cmdbigTypeList)
 {
     foreach (KeyValuePair <string, CmdBigTypeData> iterType in cmdbigTypeList)
     {
         CmdBigTypeData bigType = iterType.Value;
         //判断是否生成C#的handle文件中
         if (!bigType.mIsCS)
         {
             continue;
         }
         sb.AppendLine();
         string targetFun = "\tstatic void Parse{0}(byte gsCmd, byte gsParamType, byte[] msg)";
         sb.AppendLine(string.Format(targetFun, bigType.mCmdClassName));
         sb.AppendLine("\t{");
         sb.AppendLine("\t\tswitch (gsParamType)");
         sb.AppendLine("\t\t{");
         for (int j = 0; j < bigType.mAllSubData.Count; ++j)
         {
             CmdSmallTypeData subType = bigType.mAllSubData[j];
             //判断是否生成C#的handle文件中
             if (!subType.mIsCS)
             {
                 continue;
             }
             string targetDefine = "\t\t\tcase {0}_S.{1}:";
             sb.AppendLine(string.Format(targetDefine, subType.mGsClassName, subType.mGsParamName));
             string targetHandler = "\t\t\t\t{0}_Handler.{1}(msg);";
             sb.AppendLine(string.Format(targetHandler, subType.mGsClassName, CmdXmlParser.cmdHandlerFuncName));
             sb.AppendLine("\t\t\t\tbreak;");
         }
         sb.AppendLine("\t\t\tdefault : ");
         sb.AppendLine("\t\t\t\t//C#没有此消息的处理方法,尝试让Lua处理");
         sb.AppendLine("\t\t\t\tLuaTool.Instance.CallFunction(\"NetCmdLuaHandler.HandleCommond\", gsCmd, gsParamType, msg);");
         sb.AppendLine("\t\t\t\tbreak;");
         sb.AppendLine("\t\t}");
         sb.AppendLine("\t}");
     }
 }
Esempio n. 3
0
 public List <CmdSmallTypeData> mAllSubData = new List <CmdSmallTypeData>();       //此父消息下存在的所有子消息,方便生成总的handle文件
 public void AddSubSmallType(CmdSmallTypeData smallType)
 {
     mAllSubData.Add(smallType);
 }