public void CreateASHeroAIInfo(HeroAIInfo HeroAIInfo, out Value ASHeroAIValue) { ASObjectEx ASMachineEx; ASMachineEx.names = new string[] { "szAIDesc", "nHeroID", "nAIID" }; ASMachineEx.values = new object[] { HeroAIInfo.szAIDesc, HeroAIInfo.nHeroID, HeroAIInfo.nAIID }; ASMachineEx.types = new Type[] { typeof(string), typeof(int), typeof(int) }; ASHeroAIValue = Value.ConvertToASObjectEx(ASMachineEx, this, "Com.Scaleform.Common.HeroAIInfo"); }
public void SetHeroAIDropInfo(int nHeroID, Value RoleSlot) { // 将配置文件中获取的用户名集合以数组的形式传递给AS Value vAllHeroAIArray = this.CreateArray(); // 查找英雄AI配置 SSchemeHeroAIConfig SchmeInfo = null; HeroAIConfig.Instance.GetHeroAIInfo(nConfigWarID, nHeroID, ref SchmeInfo); //用户名数组下表,用于传递给AS if (SchmeInfo == null) { return; } string szAIDescList = SchmeInfo.szAIDESArray; string[] AIDescArrayStr = szAIDescList.Split(';'); int nAIDescArrayLength = AIDescArrayStr.Length; string szAIIDList = SchmeInfo.szAIIDArray; string[] AIIDArrayStr = szAIIDList.Split(';'); int nAIIDArrayLength = AIIDArrayStr.Length; if (nAIDescArrayLength != nAIIDArrayLength) { Trace.LogError("配置出错 请检查 HeroAIConfig.csv heroID = " + nHeroID); } uint nHeroAINum = (uint)nAIDescArrayLength; vAllHeroAIArray.SetArraySize(nHeroAINum); for (uint i = 0; i < nHeroAINum; i++) { // 保证传递给AS后,下拉菜单中选项以最近登陆使用的顺序排列用户名 Value ASHeroAIValue; HeroAIInfo tHeroAIInfo = new HeroAIInfo(); tHeroAIInfo.nHeroID = SchmeInfo.nHeroId; tHeroAIInfo.szAIDesc = AIDescArrayStr[i]; tHeroAIInfo.nAIID = Convert.ToInt32(AIIDArrayStr[i]); CreateASHeroAIInfo(tHeroAIInfo, out ASHeroAIValue); vAllHeroAIArray.SetElement(i, ASHeroAIValue); } if (RoleSlot.Invoke("SetDropDownHeroAIName", vAllHeroAIArray, SchmeInfo.bIsOpen) == null) { Trace.LogError("call SetDropDownHeroName failed"); return; } }