shawenguan 2 年 前
コミット
6e491d8ae0
2 ファイル変更133 行追加53 行削除
  1. 66 27
      Scripts/gandart/gandartComposite.js
  2. 67 26
      Scripts/gandart/gandartExchange.js

+ 66 - 27
Scripts/gandart/gandartComposite.js

@@ -85,7 +85,6 @@ if (!lk.isExecComm) {
     }
 }
 
-
 async function all() {
     let taskLst = [];
     if (isGetTaskListEnable()) {
@@ -128,37 +127,53 @@ async function all() {
         lk.log('合成任务列表为空');
     }
     if (isCaclMateListEnable()) {
-        let taskId = getWillCompositeTaskId();
+        let isFoundOnce = await checkToCompositeConformingTasks(taskLst);
+        if (!isFoundOnce) {
+            lk.log('没有任何相符合的合成任务');
+        }
+    }
+    lk.msg('');
+    lk.done();
+}
+
+async function checkToCompositeConformingTasks(taskLst) {
+    let taskIds = getWillCompositeTaskIds();
+    let isFoundOnce = false;
+    for (let i = 0; i < taskIds.length; i++) {
+        let taskId = taskIds[i];
+        let found = false;
         if (taskId > 0) {
-            let found = false;
-            for (let i = 0; i < taskLst.length; i++) {
-                let taskInfo = taskLst[i];
+            for (let j = 0; j < taskLst.length; j++) {
+                let taskInfo = taskLst[j];
                 if (taskInfo.id == taskId) {
                     found = true;
                     lk.setVal(GandartConstKey.CompositeTaskNameDisplay, taskInfo.compositeTaskName);
-                    await tryToExecCompositeTask(taskInfo.id, taskInfo);
+                    await tryToExecCompositeTask(taskInfo.id, taskInfo, i);
                     break;
                 }
             }
             if (!found) {
                 lk.log(`当前任务列表找不到指定任务[${taskId}]`);
-                await checkTrySearchToCompositeTask(taskLst);
+                found = await checkTrySearchToCompositeTask(taskLst, i);
             }
         } else {
             lk.log('没有设置指定任务ID,检查是否需进行检索合成');
-            await checkTrySearchToCompositeTask(taskLst);
+            found = await checkTrySearchToCompositeTask(taskLst, i);
+        }
+        if (found) {
+            isFoundOnce = found;
         }
     }
-    lk.msg('');
-    lk.done();
+    return isFoundOnce;
 }
 
-async function checkTrySearchToCompositeTask(taskLst) {
+async function checkTrySearchToCompositeTask(taskLst, sortIdx) {
     if (!isTaskNameSearchMode()) {
         return;
     }
     lk.log('开始尝试通过名称来检索任务进行合成');
-    let keyName = lk.getVal(GandartConstKey.CompositeTaskSearchKey);
+    let keyNames = getWillCompositeTaskSearchKeys();
+    let keyName = keyNames[sortIdx];
     if (lk.isEmpty(keyName)) {
         lk.log(`当前检索关键字为空`);
         return;
@@ -171,13 +186,14 @@ async function checkTrySearchToCompositeTask(taskLst) {
             found = true;
             lk.log(`检索到相符的任务[${taskName}#${taskInfo.id}]`);
             lk.setVal(GandartConstKey.CompositeTaskNameDisplay, taskName);
-            await tryToExecCompositeTask(taskInfo.id, taskInfo);
+            await tryToExecCompositeTask(taskInfo.id, taskInfo, sortIdx);
         }
     }
 
     if (!found) {
         lk.log(`当前关键字[${keyName}]没有检索到相关的任务`);
     }
+    return found;
 }
 
 function getCompositeTaskListStatus() {
@@ -246,14 +262,32 @@ function checkIsCompositeTaskExec(taskInfo) {
     return true;
 }
 
-function getWillCompositeTaskId() {
-    let val = lk.getVal(GandartConstKey.CompositeTaskId);
-    if (lk.isEmpty(val)) {
-        val = 0;
+function getWillCompositeTaskIds() {
+    let valArr = lk.getVal(GandartConstKey.CompositeTaskId);
+    if (!lk.isEmpty(valArr)) {
+        valArr = [];
+        let segments = valArr.split('|');
+        for (let vstr of segments) {
+            valArr.push(Number(vstr));
+        }
     } else {
-        val = Number(val);
+        valArr = [];
     }
-    return val;
+    return valArr;
+}
+
+function getWillCompositeTaskSearchKeys() {
+    let keyArr = lk.getVal(GandartConstKey.CompositeTaskSearchKey)
+    if (!lk.isEmpty(keyArr)) {
+        keyArr = [];
+        let segments = keyArr.split('|');
+        for (let vstr of segments) {
+            keyArr.push(vstr);
+        }
+    } else {
+        keyArr = [];
+    }
+    return keyArr;
 }
 
 function isTaskNameSearchMode() {
@@ -326,7 +360,7 @@ async function checkGetMaterialDetails(gUsedMaterialDetails, materialDict) {
     return gUsedMaterialDetails;
 }
 
-async function tryToExecCompositeTask(taskId, taskInfo = {}) {
+async function tryToExecCompositeTask(taskId, taskInfo = {}, sortIdx = 0) {
     if (getCompositeTaskMode() == 1) {
         lk.log('开始极速模式执行合成任务');
         let data = getCompositeTaskFinalList();
@@ -366,7 +400,7 @@ async function tryToExecCompositeTask(taskId, taskInfo = {}) {
         // printMaterialGroupsInfo(validCompositeGroups, '预估可行组合数');
 
         if (isGenFinalLisstEnable()) {
-            let compositeCountDict = getCompositeCountDict();
+            let compositeCountDict = getCompositeCountDict(sortIdx);
             let finalGroups = [];
             for (let k in compositeCountDict) {
                 let mGroup = validCompositeGroups[k];
@@ -557,14 +591,19 @@ function getCompositeTaskFinalList() {
     return data;
 }
 
-function getCompositeCountDict() {
+function getCompositeCountDict(sortIdx) {
     let str = lk.getVal(GandartConstKey.CompositeCountArray, '0#1');
-    let arr1 = str.split(',');
+    let arr0 = str.split('|');
     let ret = {};
-    for (let i = 0; i < arr1.length; i++) {
-        let arr2 = arr1[i].split('#');
-        let key = arr2[0];
-        ret[key] = Number(arr2[1] || 1);
+    if (sortIdx < arr0.length) {
+        let arr1 = arr0[sortIdx].split(',');
+        for (let i = 0; i < arr1.length; i++) {
+            let arr2 = arr1[i].split('#');
+            let key = arr2[0];
+            ret[key] = Number(arr2[1] || 1);
+        }
+    } else {
+        ret[0] = 1;
     }
     return ret;
 }

+ 67 - 26
Scripts/gandart/gandartExchange.js

@@ -128,37 +128,53 @@ async function all() {
         lk.log('置换分解任务列表为空');
     }
     if (isCaclMateListEnable()) {
-        let taskId = getWillExchangeTaskId();
+        let isFoundOnce = await checkToExchangeConformingTasks(taskLst);
+        if (!isFoundOnce) {
+            lk.log('没有任何相符合的置换分解任务');
+        }
+    }
+    lk.msg('');
+    lk.done();
+}
+
+async function checkToExchangeConformingTasks(taskLst) {
+    let taskIds = getWillExchangeTaskIds();
+    let isFoundOnce = false;
+    for (let i = 0; i < taskIds.length; i++) {
+        let taskId = taskIds[i];
+        let found = false;
         if (taskId > 0) {
-            let found = false;
-            for (let i = 0; i < taskLst.length; i++) {
-                let taskInfo = taskLst[i];
+            for (let j = 0; j < taskLst.length; j++) {
+                let taskInfo = taskLst[j];
                 if (taskInfo.id == taskId) {
                     found = true;
                     lk.setVal(GandartConstKey.ExchangeTaskNameDisplay, taskInfo.compositeTaskName);
-                    await tryToExecExchangeTask(taskInfo.id, taskInfo);
+                    await tryToExecExchangeTask(taskInfo.id, taskInfo, i);
                     break;
                 }
             }
             if (!found) {
                 lk.log(`当前任务列表找不到指定任务[${taskId}]`);
-                await checkTrySearchToExchangeTask(taskLst);
+                await checkTrySearchToExchangeTask(taskLst, i);
             }
         } else {
             lk.log('没有设置指定任务ID,检查是否需进行检索合成');
-            await checkTrySearchToExchangeTask(taskLst);
+            await checkTrySearchToExchangeTask(taskLst, i);
+        }
+        if (found) {
+            isFoundOnce = found;
         }
     }
-    lk.msg('');
-    lk.done();
+    return isFoundOnce;
 }
 
-async function checkTrySearchToExchangeTask(taskLst) {
+async function checkTrySearchToExchangeTask(taskLst, sortIdx) {
     if (!isTaskNameSearchMode()) {
         return;
     }
     lk.log('开始尝试通过名称来检索任务进行合成');
-    let keyName = lk.getVal(GandartConstKey.ExchangeTaskSearchKey);
+    let keyNames = getWillExchangeTaskSearchKeys();
+    let keyName = keyNames[sortIdx];
     if (lk.isEmpty(keyName)) {
         lk.log(`当前检索关键字为空`);
         return;
@@ -171,13 +187,14 @@ async function checkTrySearchToExchangeTask(taskLst) {
             found = true;
             lk.log(`检索到相符的任务[${taskName}#${taskInfo.id}]`);
             lk.setVal(GandartConstKey.ExchangeTaskNameDisplay, taskName);
-            await tryToExecExchangeTask(taskInfo.id, taskInfo);
+            await tryToExecExchangeTask(taskInfo.id, taskInfo, sortIdx);
         }
     }
 
     if (!found) {
         lk.log(`当前关键字[${keyName}]没有检索到相关的任务`);
     }
+    return found;
 }
 
 function getExchangeTaskListStatus() {
@@ -246,14 +263,33 @@ function checkIsExchangeTaskExec(taskInfo) {
     return true;
 }
 
-function getWillExchangeTaskId() {
-    let val = lk.getVal(GandartConstKey.ExchangeTaskId);
-    if (lk.isEmpty(val)) {
-        val = 0;
+function getWillExchangeTaskIds() {
+    let valArr = lk.getVal(GandartConstKey.ExchangeTaskId);
+    if (!lk.isEmpty(valArr)) {
+        valArr = [];
+        let segments = valArr.split('|');
+        for (let vstr of segments) {
+            valArr.push(Number(vstr));
+        }
     } else {
-        val = Number(val);
+        valArr = [];
     }
-    return val;
+    return valArr;
+}
+
+
+function getWillExchangeTaskSearchKeys() {
+    let keyArr = lk.getVal(GandartConstKey.ExchangeTaskSearchKey)
+    if (!lk.isEmpty(keyArr)) {
+        keyArr = [];
+        let segments = keyArr.split('|');
+        for (let vstr of segments) {
+            keyArr.push(vstr);
+        }
+    } else {
+        keyArr = [];
+    }
+    return keyArr;
 }
 
 function isTaskNameSearchMode() {
@@ -326,7 +362,7 @@ async function checkGetMaterialDetails(gUsedMaterialDetails, materialDict) {
     return gUsedMaterialDetails;
 }
 
-async function tryToExecExchangeTask(taskId, taskInfo = {}) {
+async function tryToExecExchangeTask(taskId, taskInfo = {}, sortIdx = 0) {
     if (getExchangeTaskMode() == 1) {
         lk.log('开始极速模式执行置换分解任务');
         let data = getExchangeTaskFinalList();
@@ -366,7 +402,7 @@ async function tryToExecExchangeTask(taskId, taskInfo = {}) {
         // printMaterialGroupsInfo(validCompositeGroups, '预估可行组合数');
 
         if (isGenFinalLisstEnable()) {
-            let exchangeCountDict = getExchangeCountDict();
+            let exchangeCountDict = getExchangeCountDict(sortIdx);
             let finalGroups = [];
             for (let k in exchangeCountDict) {
                 let mGroup = validCompositeGroups[k];
@@ -557,14 +593,19 @@ function getExchangeTaskFinalList() {
     return data;
 }
 
-function getExchangeCountDict() {
+function getExchangeCountDict(sortIdx) {
     let str = lk.getVal(GandartConstKey.ExchangeCountArray, '0#1');
-    let arr1 = str.split(',');
+    let arr0 = str.split('|');
     let ret = {};
-    for (let i = 0; i < arr1.length; i++) {
-        let arr2 = arr1[i].split('#');
-        let key = arr2[0];
-        ret[key] = Number(arr2[1] || 1);
+    if (sortIdx < arr0.length) {
+        let arr1 = arr0[sortIdx].split(',');
+        for (let i = 0; i < arr1.length; i++) {
+            let arr2 = arr1[i].split('#');
+            let key = arr2[0];
+            ret[key] = Number(arr2[1] || 1);
+        }
+    } else {
+        ret[0] = 1;
     }
     return ret;
 }