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; } }
public void InitDropMachineInfo() { int nDropIdex = 0; string strHeroName = ""; PersonSkinModelItem modelData = new PersonSkinModelItem(); for (int i = (int)VOCATION.VOCATION_RANDOM; i < (int)VOCATION.VOCATION_MAX; i++) { // 查找英雄AI配置 SSchemeHeroAIConfig SchmeInfo = null; HeroAIConfig.Instance.GetHeroAIInfo(nConfigWarID, i, ref SchmeInfo); if (SchmeInfo == null) { continue; } if (SchmeInfo.bIsOpen == false) { continue; } MachineInfo machineInfo = new MachineInfo(); machineInfo.nIconId = i;// 是图片id machineInfo.bLock = false; strHeroName = ""; if (i >= 0 && GameLogicAPI.GetPersonModel((UInt16)i, ref modelData)) { strHeroName = modelData.szHeroName; } machineInfo.stDesc = strHeroName; dicDropHeroIdWithIndex[i] = nDropIdex;// 储存英雄图片id对应的槽位 dDropMachineInfo.Add(machineInfo); nDropIdex++; } // 给每个槽位发送基本的数据 // 给as发送假人的名字和图片id,假人名字这些数据还没接受 for (int i = 0; i < 10; i++) { int nSlotId = i > 4 ? i - 5 : i; int nSlotCamp = i > 4 ? 1 : 0; SetMachineInfo(nSlotCamp, nSlotId); } }