Esempio n. 1
0
def getValListFromXml(xml_name, xml_parameter, paraChecker=None):
    other_xml_tree = xmlTreeClass.XmlTree(xml_name, getXmlContent(xml_name))
    root = other_xml_tree.root

    para_vals = []
    if not paraChecker:
        for child in root:
            if "type" == child.tag:
                continue
            if child.get(
                    xml_parameter
            ):  # 有的元素没有某些参数,比如stage.xml中的hiddenStages,此时取到是None,不计入列表
                para_vals.append(child.get(xml_parameter))
    else:
        for child in root:
            if "type" == child.tag:
                continue
            attrCheckerName = paraChecker.split("=")[0]
            attrCheckerValue = paraChecker.split("=")[1]
            v = child.get(attrCheckerName)
            if child.get(xml_parameter) and attrCheckerValue == v:
                para_vals.append(child.get(xml_parameter))

    # 去重,但不打乱顺序
    # para_vals = list(set(para_vals))
    para_vals2 = []
    for p in para_vals:
        if p not in para_vals2:
            para_vals2.append(p)
    return para_vals2
Esempio n. 2
0
def GetTsumLevelupInfo(levelupInfo_dic):
    chestlevel_tree = xmlTreeClass.XmlTree(
        "tsum_levelup.xml", functions.getXmlContent("tsum_levelup.xml"))
    for child in chestlevel_tree.root:
        if "type" == child.tag:
            continue
        cost_val = child.get("cost")
        basescore_val = child.get("basescore")
        level_val = child.get("level")
        nextExp_val = child.get("nextExp")
        skillLv_val = child.get('skillLv')
        star_val = child.get('star')

        if not star_val or not skillLv_val or not level_val or not basescore_val:
            continue
        if star_val not in levelupInfo_dic.keys():
            levelupInfo_dic[star_val] = {
                level_val: [basescore_val, cost_val, nextExp_val, skillLv_val]
            }
        else:
            if level_val not in levelupInfo_dic[star_val].keys():
                if nextExp_val and cost_val:
                    levelupInfo_dic[star_val][level_val] = [
                        basescore_val, cost_val, nextExp_val, skillLv_val
                    ]
                else:
                    levelupInfo_dic[star_val][level_val] = [
                        basescore_val, None, None, skillLv_val
                    ]
    return levelupInfo_dic
Esempio n. 3
0
def getGlobalData(key):
    global_xml_tree = xmlTreeClass.XmlTree('global.xml',
                                           getXmlContent('global.xml'))
    for child in global_xml_tree.root:
        if key == child.get('key'):
            return child.text
        else:
            continue
Esempio n. 4
0
def GetTsumInfo(info_dic):
    chestlevel_tree = xmlTreeClass.XmlTree("tsum.xml",
                                           functions.getXmlContent("tsum.xml"))
    for child in chestlevel_tree.root:
        if "type" == child.tag:
            continue
        tsumId_val = child.get("id")
        familyId_val = child.get("family")
        tsumstar_val = child.get("star")

        if not tsumId_val or not familyId_val or not tsumstar_val:
            continue
        if tsumId_val not in info_dic.keys():
            info_dic[tsumId_val] = [familyId_val, tsumstar_val]
        else:
            if familyId_val != info_dic[tsumId_val][
                    0] or tsumstar_val != info_dic[tsumId_val][1]:
                info_dic[tsumId_val] = [familyId_val, tsumstar_val]
    return info_dic
Esempio n. 5
0
def GetTsumSkillup(skillup_dic):
    chestlevel_tree = xmlTreeClass.XmlTree(
        "tsum_levelup.xml", functions.getXmlContent("tsum_levelup.xml"))
    for child in chestlevel_tree.root:
        if "type" == child.tag:
            continue
        skillLv_val = child.get("skillLv")
        level_val = child.get("level")
        star_val = child.get('star')

        if not star_val or not skillLv_val or not level_val:
            continue
        if star_val not in skillup_dic.keys():
            skillup_dic[star_val] = {skillLv_val: [level_val]}
        else:
            if skillLv_val not in skillup_dic[star_val].keys():
                skillup_dic[star_val][skillLv_val] = [level_val]
            else:
                skillup_dic[star_val][skillLv_val].append(level_val)
    return skillup_dic
Esempio n. 6
0
def chestlevel(TsumDrop_dic, FixedRewards_dic):
    chestlevel_tree = xmlTreeClass.XmlTree(
        "chest_level.xml", functions.getXmlContent("chest_level.xml"))
    for child in chestlevel_tree.root:
        if "type" == child.tag:
            continue
        chestId_val = child.get("chestId")
        userLevel_val = child.get("level")
        tsumDrop_val = child.get("tsumDrops")
        fixedRewards_val = child.get("fixedRewards")

        if not chestId_val or not userLevel_val or not tsumDrop_val:
            continue
        if chestId_val not in TsumDrop_dic.keys():
            TsumDrop_dic[chestId_val] = {userLevel_val: tsumDrop_val}
            FixedRewards_dic[chestId_val] = {userLevel_val: fixedRewards_val}
        else:
            if userLevel_val not in TsumDrop_dic[chestId_val].keys():
                TsumDrop_dic[chestId_val][userLevel_val] = tsumDrop_val
                FixedRewards_dic[chestId_val][userLevel_val] = fixedRewards_val
    return TsumDrop_dic, FixedRewards_dic
Esempio n. 7
0
def getValDicFromXml(xml_name,
                     xml_parameter1,
                     xml_parameter2,
                     xml_parameter3=None,
                     dicValueFormat='str'):
    other_xml_tree = xmlTreeClass.XmlTree(xml_name, getXmlContent(xml_name))
    root = other_xml_tree.root

    dicVals = {}
    if not xml_parameter3:
        # 获取两个参数的字典,value的参数类型为str
        if 'str' == dicValueFormat:
            for child in root:
                if "type" == child.tag:
                    continue
                val1 = child.get(xml_parameter1).encode('utf-8')
                val2 = child.get(xml_parameter2)

                if not val1 or not val2:
                    continue
                if val1 not in dicVals.keys():
                    dicVals[val1] = val2
        # 获取两个参数的字典,value的参数类型为数组
        if 'dic' == dicValueFormat:
            for child in root:
                if "type" == child.tag:
                    continue
                val1 = child.get(xml_parameter1)
                val2 = child.get(xml_parameter2)

                if not val1 or not val2:
                    continue
                if val1 not in dicVals.keys():
                    dicVals[val1] = [val2]
                else:
                    dicVals[val1].append(val2)
    else:
        # 获取三个参数的字典,value的参数类型为str
        if 'str' == dicValueFormat:
            for child in root:
                if "type" == child.tag:
                    continue
                val1 = child.get(xml_parameter1)
                val2 = child.get(xml_parameter2)
                val3 = child.get(xml_parameter3)

                if not val1 or not val2 or not val3:
                    continue
                if val1 not in dicVals.keys():
                    dicVals[val1] = {val2: val3}
                else:
                    if val2 not in dicVals[val1].keys():
                        dicVals[val1][val2] = val3
        # 获取三个参数的字典,value的参数类型为数组
        if 'dic' == dicValueFormat:
            for child in root:
                if "type" == child.tag:
                    continue
                val1 = child.get(xml_parameter1)
                val2 = child.get(xml_parameter2)
                val3 = child.get(xml_parameter3)

                if not val1 or not val2 or not val3:
                    continue
                if val1 not in dicVals.keys():
                    dicVals[val1] = {val2: [val3]}
                else:
                    if val2 not in dicVals[val1].keys():
                        dicVals[val1][val2] = [val3]
                    else:
                        dicVals[val1][val2].append(val3)
    return dicVals