Beispiel #1
0
    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");
    }
Beispiel #2
0
    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;
        }
    }