Ejemplo n.º 1
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;
        }
    }
Ejemplo n.º 2
0
    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);
        }
    }