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)
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)
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:
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))
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],