Beispiel #1
0
    //读取机器人配置
    void ReadQualifyingRobot()
    {
        string text = ResourceLoadManager.Instance.GetConfigText(name2);
        if (text == null)
        {
            Debug.LogError("LoadConfig failed: " + name2);
            return;
        }
        
        RobotPlayerData.Clear();
        XmlDocument xmlDoc = CommonFunction.LoadXmlConfig(GlobalConst.DIR_XML_QUALIFYING_ROBOT, text);
        XmlNodeList nodelist = xmlDoc.SelectSingleNode("Data").ChildNodes;
        foreach (XmlElement xe in nodelist)
        {
            uint min, max;
            if (CommonFunction.IsCommented(xe))
                continue;
            RobotTeam data = new RobotTeam();
            string ranking = xe.SelectSingleNode("ranking").InnerText;
            if (ranking.IndexOf(",") == -1)
            {
                min = uint.Parse(ranking);
                max = uint.Parse(ranking);
            }
            else
            {
                string[] temp = ranking.Split(',');
                min = uint.Parse(temp[0]);
                max = uint.Parse(temp[1]);
            }
            data.rank_min = min;
            data.rank_max = max;
            data.AI_id = uint.Parse(xe.SelectSingleNode("AI").InnerText);
            data.level = uint.Parse(xe.SelectSingleNode("level").InnerText);
            string modify = xe.SelectSingleNode("modify").InnerText;
            string[] sep = modify.Split('&');
            if (sep.Length == 2)
            {
                data.basic = uint.Parse(sep[0]);
                data.hedging = float.Parse(sep[1]);
            }
            else
            {
                data.basic = 0;
                data.hedging = 1;
            }

            for (int i = 0; i < 3; i++)
            {
                string star = "star" + (i + 1);
                //string aptitude = "aptitude" + (i + 1);
                RobotPlayer player = new RobotPlayer();
                player.star = uint.Parse(xe.SelectSingleNode(star).InnerText);
                //player.aptitude = uint.Parse(xe.SelectSingleNode(aptitude).InnerText);
                data.robotTeam.Add(player);
            }
            RobotPlayerData.Add(data);
        }

    }
    static int GetRobotPlayerAttr(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        QualifyingConfig obj  = (QualifyingConfig)LuaScriptMgr.GetNetObjectSelf(L, 1, "QualifyingConfig");
        uint             arg0 = (uint)LuaScriptMgr.GetNumber(L, 2);
        RobotTeam        o    = obj.GetRobotPlayerAttr(arg0);

        LuaScriptMgr.PushObject(L, o);
        return(1);
    }
Beispiel #3
0
    public AttrData GetQualifyingNPCAttrData(uint id, uint level)
    {
        uint      position       = (uint)GameSystem.Instance.RoleBaseConfigData2.GetPosition(id);
        AttrData  attr           = new AttrData();
        AttrData  npcattr        = TourNpcs.Find(x => x.position == position && x.level == level).attrs;
        RobotTeam qualifyingData = GameSystem.Instance.qualifyingConfig.GetRobotPlayerAttr(level);
        uint      basic          = qualifyingData.basic;
        float     hedging        = qualifyingData.hedging;

        attr.attrs["shoot_near"]              = npcattr.attrs["shoot_near"] + basic;
        attr.attrs["shoot_middle"]            = npcattr.attrs["shoot_middle"] + basic;
        attr.attrs["shoot_far"]               = npcattr.attrs["shoot_far"] + basic;
        attr.attrs["dunk_near"]               = npcattr.attrs["dunk_near"] + basic;
        attr.attrs["dunk_middle"]             = npcattr.attrs["dunk_middle"] + basic;
        attr.attrs["layup_near"]              = npcattr.attrs["layup_near"] + basic;
        attr.attrs["layup_middle"]            = npcattr.attrs["layup_middle"] + basic;
        attr.attrs["anti_disturb"]            = (uint)(npcattr.attrs["anti_disturb"] * hedging);
        attr.attrs["pass"]                    = npcattr.attrs["pass"] + basic;
        attr.attrs["control"]                 = (uint)(npcattr.attrs["control"] * hedging);;
        attr.attrs["block"]                   = (uint)(npcattr.attrs["block"] * hedging);
        attr.attrs["anti_block"]              = (uint)(npcattr.attrs["anti_block"] * hedging);
        attr.attrs["steal"]                   = (uint)(npcattr.attrs["steal"] * hedging);
        attr.attrs["disturb"]                 = (uint)(npcattr.attrs["disturb"] * hedging);
        attr.attrs["rebound"]                 = (uint)(npcattr.attrs["rebound"] * hedging);
        attr.attrs["speed"]                   = npcattr.attrs["speed"] + basic;
        attr.attrs["strength"]                = (uint)(npcattr.attrs["strength"] * hedging);
        attr.attrs["interception"]            = (uint)(npcattr.attrs["interception"] * hedging);
        attr.attrs["ph"]                      = npcattr.attrs["ph"] + basic;
        attr.attrs["rebound_height"]          = npcattr.attrs["rebound_height"];
        attr.attrs["cross_speed"]             = npcattr.attrs["cross_speed"];
        attr.attrs["shoot_far_dist"]          = npcattr.attrs["shoot_far_dist"];
        attr.attrs["bodythrowcatch_distance"] = npcattr.attrs["bodythrowcatch_distance"];
        attr.attrs["bodythrowcatch_prob"]     = npcattr.attrs["bodythrowcatch_prob"];

        Debug.Log("shoot_near:" + attr.attrs["shoot_near"]);
        Debug.Log("shoot_middle:" + attr.attrs["shoot_middle"]);
        Debug.Log("anti_disturb:" + attr.attrs["anti_disturb"]);
        Debug.Log("steal:" + attr.attrs["steal"]);
        Debug.Log("rebound:" + attr.attrs["rebound"]);
        Debug.Log("disturb:" + attr.attrs["disturb"]);
        Debug.Log("strength:" + attr.attrs["strength"]);
        //return TourNpcs.Find(x => x.position == NPCDatas[NPCID].position && x.level == MainPlayer.Instance.Level).attrs;
        return(attr);
    }