Beispiel #1
0
objLst, mobLst = getTypeList(["passiveobject", "monster"], port)

# 主程序
while True:
    result = getExtractIndex("obj", objLst)
    if len(result) == 1:
        flag = printErrorLog(result)
        if flag == 0:
            print("程序已退出。")
            break
        else:
            continue
    # 提取
    allObjID, errorLog = result

    directExtractFile, couldRepeatGetFileList, allMobID, allApcID = getEmptyList(
        4)
    directExtractFile, allObjID, allMobID, errorLog = repeatGet(
        allObjID, objLst, allMobID, mobLst, couldRepeatGetFileList,
        directExtractFile, allApcID, port, errorLog)

    # 去重排序
    allObjID = reCSort(allObjID)
    allMobID = reCSort(allMobID)
    directExtractFile = list(set(directExtractFile))
    # 导出文件
    objName = 'obj' + "_".join(allObjID)
    lstDict = {
        "passiveObject": [allObjID, objLst],
        "monster": [allMobID, mobLst]
    }
    newSaveMainDir = saveMainDir + '\\特效\\{name}\\'.format(name=objName)
Beispiel #2
0
def equExtract(allEquID, equLst, port, errorLog, imgDir):
    creLst = toList(fromPvfGetContent(port, "creature/creature.lst"))
    for equId in allEquID:
        if equId not in equLst:
            errorLog.append(equId + "\t不在列表中,已跳过获取。")
            allEquID.remove(equId)
    if len(allEquID) == 0:
        return False

    # ------------创建套装词典
    partSetIndexDict = getPartSetIndexDict(imgDir, equLst, port)
    partSetEtcDict = getPartSetEtc(port)
    # ------------初步获取输入装备index信息
    [
        directExtractFiles, repeatEqu, allMobID, allObjID, allApdID, allApcID,
        iconImgFiles, trueVars, allCreID, allPartSetFileIndex, repeatFileList,
        inputItems
    ] = getEmptyList(12)

    contentList = [
        iconImgFiles, trueVars, repeatEqu, allMobID, allObjID, allApdID,
        allApcID, allCreID, allPartSetFileIndex, repeatFileList,
        directExtractFiles, errorLog, inputItems
    ]
    contentList = equIdFunc(allEquID, equLst, port, contentList)

    # ------------获取套装信息
    setPartContent = ''
    getPartSetInfo = [
        directExtractFiles, repeatEqu, allMobID, allObjID, allApcID, allApdID,
        repeatFileList
    ]
    allPartSetFileIndex = list(set(allPartSetFileIndex))

    # ------------去除对高级和稀有时装的获取
    if "2" in allPartSetFileIndex:
        allPartSetFileIndex.remove("2")
    if "3" in allPartSetFileIndex:
        allPartSetFileIndex.remove("3")
    if len(allPartSetFileIndex) > 0:
        [directExtractFiles, repeatEqu, allMobID,
         allObjID, allApcID, allApdID, repeatFileList], \
        setPartContent, errorLog = getPartSet(allPartSetFileIndex, partSetIndexDict,
                                              partSetEtcDict, getPartSetInfo, errorLog, port)

    contentList = [
        iconImgFiles, trueVars, repeatEqu, allMobID, allObjID, allApdID,
        allApcID, allCreID, allPartSetFileIndex, repeatFileList,
        directExtractFiles, errorLog, inputItems
    ]

    # ------------重复获取
    allEquID, contentList = equRepeat(repeatEqu, allEquID, contentList, port,
                                      equLst)
    [
        iconImgs, trueVars, repeatEqu, allMobID, allObjID, allApdID, allApcID,
        allCreID, allPartSetFileIndex, repeatFileList, directExtractFiles,
        errorLog, inputItems
    ] = contentList

    # ------------宠物提取
    allCreID = list(set(allCreID).intersection(set(creLst)))
    if len(allCreID) > 0:
        creDirectFile, creRepeatFile, creObj, errorLog = creFunc(
            allCreID, creLst, port, errorLog)
        directExtractFiles += creDirectFile
        repeatFileList += creRepeatFile
        allObjID += creObj

    return directExtractFiles, repeatFileList, \
           allEquID, allMobID, allObjID, allApdID, allCreID, allApcID, \
           iconImgs, trueVars, setPartContent
        flag = printErrorLog(result)
        if flag == 0:
            print("程序已退出。")
            break
        else:
            continue
    allItemID, errorLog = result

    allStkID = listJoin(allItemID, stkLst)

    allEquID = listJoin(allItemID, equLst)

    setPartContent = ''

    [allMobID, allObjID, allApcID, allCreID, allApdID,
     icons, directExtractFiles, repeatFileList, repeatStk] = getEmptyList(9)

    getContentList = directExtractFiles, repeatStk, allEquID, allMobID, \
                     allObjID, allApcID, repeatFileList, icons, allApdID

    getContentList, errorLog = stkIDFunc(allStkID, stkLst, equLst, getContentList, port, errorLog)

    repeatStk = list(set(list(set(repeatStk))) - set(allStkID))
    # ------------新获取的STK重复
    allStkID, getContentList = stkRepeat(repeatStk, allStkID, getContentList, stkLst, equLst, port, errorLog)

    directExtractFiles, repeatStk, allEquID, allMobID, allObjID, allApcID, repeatFileList, icons, allApdID = getContentList

    if ife(imgDir + '\\partSetDict.pkl'):
        with open(imgDir + '\\partSetDict.pkl', 'rb') as f:
            partSetIndexDict = load(f)
Beispiel #4
0
        allApcID, errorLog = result
        # -----------获取提取DGN路径
        # print(allApcID)
        if len(allApcID) == 0:
            with open(saveMainDir + '\\error.log', 'w', encoding='utf-8') as f:
                for line in errorLog:
                    f.write(line + '\n')
            break

    if extractMode:
        apcSaveDir = saveMainDir + '\\APC\\ALL-APC\\'
    else:
        apcSaveDir = saveMainDir + '\\APC\\' + '-'.join(allApcID) + '\\'
    iep(apcSaveDir)

    allDirectFile, allRepeatFile, allItems, newAllApc, allObjID, allMobID, stkList, newCashShopList = getEmptyList(
        8)

    apcNameList = getApcNameDict(allApcID, apcLst, equLst, port, errorLog)

    for apcC in apcNameList:

        [apcID, apcName, equItem, apcJob, directFile, repeatFile] = apcC
        allItems += equItem
        allDirectFile += directFile
        allRepeatFile += repeatFile
        newAllApc.append(apcID)
        newSummon = summonStk.format(name=apcName, ID=apcID)

        # 写入STK文件
        packageContent = ''
        for equID in equItem:
Beispiel #5
0
            print("程序已退出。")
            break
        else:
            continue
    allEquID, (dgnLst, mapLst, mobLst, objLst, equLst, stkLst, apcLst, apdLst,
               creLst, twnLst), errorLog = result

    # ------------创建套装词典
    partSetIndexDict = getPartSetIndexDict(imgDir, equLst, port)
    partSetEtcDict = getPartSetEtc(port)
    # ------------初步获取输入装备index信息
    [
        directExtractFiles, repeatEqu, allMobID, allObjID, allApdID, allApcID,
        iconImgFiles, trueVars, allCreID, allPartSetFileIndex, repeatFileList,
        inputItems
    ] = getEmptyList(12)

    contentList = [
        iconImgFiles, trueVars, repeatEqu, allMobID, allObjID, allApdID,
        allApcID, allCreID, allPartSetFileIndex, repeatFileList,
        directExtractFiles, errorLog, inputItems
    ]
    contentList = equIdFunc(allEquID, equLst, port, contentList)

    # ------------获取套装信息
    setPartContent = ''
    getPartSetInfo = [
        directExtractFiles, repeatEqu, allMobID, allObjID, allApcID, allApdID,
        repeatFileList
    ]
    allPartSetFileIndex = list(set(allPartSetFileIndex))
Beispiel #6
0
mapLst, objLst, mobLst = getTypeList(["map", "passiveobject", "monster"], port)

# -----------主程序
while True:
    result = getExtractIndex("map", mapLst)
    if len(result) == 1:
        flag = printErrorLog(result)
        if flag == 0:
            print("程序已退出。")
            break
        else:
            continue

    allMapID, errorLog = result

    contentList = getEmptyList(6)
    [directExtractFile, couldRepeatGetFileList, allObjID, allMobID, changeMapID, npcList], \
    dgnMapIndex, errorLog = getInDictMapInfo(contentList, allMapID, mapLst,
                                             errorLog, [], port)
    # -----------循环获取
    directExtractFile, allObjID, allMobID, errorLog = repeatGet(
        allObjID, objLst, allMobID, mobLst, couldRepeatGetFileList,
        directExtractFile, [], port, errorLog)
    allMapID = reCSort(allMapID)
    allObjID = reCSort(allObjID)
    allMobID = reCSort(allMobID)
    directExtractFile = list(set(directExtractFile))

    # -----------文件操作
    lstDict = {
        "map": [allMapID, mapLst],