| 818 | |
| 819 | // 牛牛任务 |
| 820 | async function getActTask(type = true) { |
| 821 | return new Promise(async (resolve) => { |
| 822 | $.get(taskUrl(`story/GetActTask`), async (err, resp, data) => { |
| 823 | try { |
| 824 | if (err) { |
| 825 | console.log(`${JSON.stringify(err)}`) |
| 826 | console.log(`${$.name} GetActTask API请求失败,请检查网路重试`) |
| 827 | } else { |
| 828 | data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); |
| 829 | if (type) { |
| 830 | for (let key of Object.keys(data.Data.TaskList)) { |
| 831 | let vo = data.Data.TaskList[key] |
| 832 | if ([0, 1, 2].includes(vo.dwOrderId) && (vo.dwCompleteNum !== vo.dwTargetNum) && vo.dwTargetNum < 10) { |
| 833 | if (vo.strTaskName === "升级1个建筑") continue |
| 834 | console.log(`开始【🐮牛牛任务】${vo.strTaskName}`) |
| 835 | for (let i = vo.dwCompleteNum; i < vo.dwTargetNum; i++) { |
| 836 | console.log(`【🐮牛牛任务】${vo.strTaskName} 进度:${i + 1}/${vo.dwTargetNum}`) |
| 837 | await doTask(vo.ddwTaskId, 2) |
| 838 | await $.wait(3000) |
| 839 | } |
| 840 | } |
| 841 | } |
| 842 | data = await getActTask(false) |
| 843 | for (let key of Object.keys(data.Data.TaskList)) { |
| 844 | let vo = data.Data.TaskList[key] |
| 845 | if ((vo.dwCompleteNum >= vo.dwTargetNum) && vo.dwAwardStatus !== 1) { |
| 846 | await awardActTask('Award', vo) |
| 847 | await $.wait(3000) |
| 848 | } |
| 849 | } |
| 850 | data = await getActTask(false) |
| 851 | if (data.Data.dwCompleteTaskNum >= data.Data.dwTotalTaskNum) { |
| 852 | if (data.Data.dwStatus !== 4) { |
| 853 | console.log(`【🐮牛牛任务】已做完,去开启宝箱`) |
| 854 | await awardActTask('story/ActTaskAward') |
| 855 | await $.wait(3000) |
| 856 | } else { |
| 857 | console.log(`【🐮牛牛任务】已做完,宝箱已开启`) |
| 858 | } |
| 859 | } else { |
| 860 | console.log(`【🐮牛牛任务】未全部完成,无法开启宝箱\n`) |
| 861 | } |
| 862 | } |
| 863 | } |
| 864 | } catch (e) { |
| 865 | $.logErr(e, resp) |
| 866 | } finally { |
| 867 | resolve(data) |
| 868 | } |
| 869 | }) |
| 870 | }) |
| 871 | } |
| 872 | function awardActTask(function_path, taskInfo = '') { |
| 873 | const { ddwTaskId, strTaskName} = taskInfo |
| 874 | return new Promise((resolve) => { |