Files
qinglong/脚本库/微信小程序/抓包版/海澜之家-游戏/2025-04-28_sudojia_hlzj_game_8beaea91.js
2026-05-24 05:33:05 +00:00

351 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/wx_mini/sudojia_hlzj_game.js
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/wx_mini/sudojia_hlzj_game.js
// # Repo: sudojia/AutoTaskScript
// # Path: src/wx_mini/sudojia_hlzj_game.js
// # UploadedAt: 2025-04-28T19:26:13+08:00
// # SHA256: 8beaea916b05f67a30c9c2957648ca1665dec401cb08fd49b07142a3b7a4ffca
// # Category: 微信小程序/抓包版
// # Evidence: appid/openid/session_key/encryptedData等小程序字段
//
/**
* 海澜之家小程序 - 底部 - 游戏
*
* 进入游戏后,抓 https://gmdevpro.hlzjppgl.cn/server/api/authorized-login 获取请求体 union_id 的值即可
* {
* "union_id": "oHds-xxxxxxxxxxx", <--- 只要这个值即可
* "invite_user_id": ""
* }
* 填写示例:
* export HLZJ_UNID = 'oHds-xxxxxxxxxxx'
* 多账号用 & 或换行
*
* @author Telegram@sudojia
* @site https://blog.imzjw.cn
* @date 2024/08/16
*
* const $ = new Env('海澜之家-游戏')
* cron: 39 8,15,20 * * *
*/
const initScript = require('../utils/initScript')
const {$, notify, sudojia, checkUpdate} = initScript('海澜之家-游戏');
const hlzjList = process.env.HLZJ_UNID ? process.env.HLZJ_UNID.split(/[\n&]/) : [];
let message = '';
// 接口地址
const baseUrl = 'https://gmdevpro.hlzjppgl.cn'
// 请求头
const headers = {
'Host': 'gmdevpro.hlzjppgl.cn',
'User-Agent': sudojia.getRandomUserAgent(),
'Content-Type': 'application/json',
'Accept': '*/*',
'Origin': 'https://gmdevpro.hlzjppgl.cn',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9',
};
!(async () => {
await checkUpdate($.name, hlzjList);
console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`);
for (let i = 0; i < hlzjList.length; i++) {
const index = i + 1;
$.unionId = hlzjList[i];
headers.Referer = `https://gmdevpro.hlzjppgl.cn/?token=${$.unionId}&timestamp=${Date.now()}`;
console.log(`\n*****第[${index}]个${$.name}账号*****`);
message += `📣====${$.name}账号[${index}]====📣\n`;
await main();
await $.wait(sudojia.getRandomWait(2000, 2500));
}
if (message) {
await notify.sendNotify(`${$.name}`, `${message}`);
}
})().catch((e) => $.logErr(e)).finally(() => $.done());
async function main() {
await getUserInfo();
await $.wait(sudojia.getRandomWait(2000, 2500));
await getTodayWater();
await $.wait(sudojia.getRandomWait(2000, 2500));
await getDayList();
await $.wait(sudojia.getRandomWait(2000, 2500));
// 浏览15s
console.log(`开始浏览15s奖励...`);
await receiveTaskWater(3);
// 领电力礼包 7-12 14-17 18-22
console.log('开始领三餐礼包...');
await receiveTaskWater(7);
await $.wait(sudojia.getRandomWait(2000, 2500));
// 答题
console.log('开始答题...');
await answerTaskWater();
await $.wait(sudojia.getRandomWait(1200, 1800));
await answerTaskWater(1);
await $.wait(sudojia.getRandomWait(1200, 1800));
await answerTaskWater(2);
await $.wait(sudojia.getRandomWait(2000, 2500));
await joinPower();
await $.wait(sudojia.getRandomWait(1200, 1800));
await chooseInvest();
await $.wait(sudojia.getRandomWait(1200, 1800));
await receiveInvest();
}
/**
* 获取用户信息
*
* @return {Promise<void>}
*/
async function getUserInfo() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/authorized-login`, 'post', headers, {
"union_id": $.unionId,
"invite_user_id": "78630"
});
if (200 !== data.code) {
console.error(data.message);
return;
}
headers.Authorization = `Bearer ${data.data.token}`;
console.log(`${data.data.user_info.nick_name}(${data.data.user_info.user_no})`);
message += `${data.data.user_info.nick_name}(${data.data.user_info.user_no})\n`;
$.treeId = data.data.user_info.tree_id;
} catch (e) {
console.error(`获取用户信息时发生异常:${e.response.data}`);
}
}
/**
* 获取签到状态
*
* @return {Promise<void>}
*/
async function getDayList() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/day-list`, 'post', headers);
if (200 !== data.code) {
console.error(data.message);
return;
}
if (data.data.day_sign_status) {
console.log(`今日已签到!`);
message += `今日已签到!\n\n`;
return;
}
console.log(`开始签到`);
await $.wait(sudojia.getRandomWait(1000, 1500));
await signIn();
} catch (e) {
console.error(`获取签到状态时发生异常:${e.response.data}`);
}
}
/**
* 签到
*
* @return {Promise<void>}
*/
async function signIn() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/day-sign`, 'post', headers);
if (200 !== data.code) {
console.error(data.message);
return;
}
console.log(`签到成功!电力 X${data.data.water_num}\n已连续签到${data.data.day_sign_list.day_num}`);
message += `签到成功!\n已连续签到${data.data.day_sign_list.day_num}\n`;
} catch (e) {
console.error(`签到时发生异常:${e.response.data}`);
}
}
/**
* 领取今日电力奖励
*
* @return {Promise<void>}
*/
async function getTodayWater() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/user/get-today-water`, 'post', headers);
if (200 !== data.code) {
message += `今日电力奖励已领取!\n`;
console.error(`领取今日电力奖励失败:${data.message}`);
return;
}
console.log(`已领取今日电力奖励:${data.data.get_water}`);
console.log(`明日可领${data.data.tomorrow_get_water_num}电力`);
message += `明日可领${data.data.tomorrow_get_water_num}电力\n`;
} catch (e) {
console.error(`领取电力时发生异常:${e.response.data}`);
}
}
/**
* 领取水滴(任务列表)
*
* @param tid
* @return {Promise<void>}
*/
async function receiveTaskWater(tid) {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/task/receive-task-water`, 'post', headers, {
"tid": tid
});
if (200 !== data.code) {
console.error(data.message);
return;
}
if (3 === tid) {
await $.wait(sudojia.getRandomWait(15000, 15100));
}
console.log(`领取成功!电力 X${data.data.add_water}`);
} catch (e) {
console.error(`领取水滴时发生异常:${e.response.data}`);
}
}
/**
* 答题
*
* @param tid
* @return {Promise<void>}
*/
async function answerTaskWater(tid = 0) {
try {
await $.wait(sudojia.getRandomWait(1000, 1500));
const data = await sudojia.sendRequest(`${baseUrl}/server/api/task/answer-task-water`, 'post', headers, {
"tid": tid
});
await $.wait(sudojia.getRandomWait(1000, 1500));
if (200 !== data.code) {
console.error(data.message);
return;
}
console.log(`答题成功,电力 X${data.data.add_water}`);
} catch (e) {
console.error(`答题时发生异常:${e.response.data}`);
}
}
/**
* 获取新的 treeId 并开启进入下一轮游戏
*
* @return {Promise<*|null>}
*/
async function enablePower() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/authorized-login`, 'post', headers, {
"union_id": $.unionId,
"invite_user_id": ""
});
if (200 !== data.code) {
console.error(data.message);
return;
}
return data.data.user_info.tree_id;
} catch (e) {
console.error(`获取 treeId 时发生异常:${e.response.data}`);
return null;
}
}
/**
* 加入电力
*
* @return {Promise<void>}
*/
async function joinPower() {
try {
const initialData = await sudojia.sendRequest(`${baseUrl}/server/api/game/use-power`, 'post', headers, {
"num": 1,
"user_tree_id": $.treeId
});
if (200 !== initialData.code) {
return console.error(`加入电力失败:${initialData.message}`);
}
// 获取当前电力
let currentEnergy = initialData.data.info.sy_water;
// 可加入电力次数
let remainingJoins = initialData.data.user_tree.send_water;
while (remainingJoins > 0) {
await $.wait(sudojia.getRandomWait(1200, 1800));
const responseData = await sudojia.sendRequest(`${baseUrl}/server/api/game/use-power`, 'post', headers, {
"num": 1,
"user_tree_id": $.treeId
});
if (309 === initialData.code) {
// 该轮游戏已完成,重新获取 tree_id
$.treeId = await enablePower();
}
if (200 !== responseData.code) {
console.error(`加入电力失败:${initialData.message}`);
break;
}
currentEnergy = initialData.data.info.sy_water;
remainingJoins = responseData.data.user_tree.send_water;
console.log(`当前电力:${currentEnergy},可加入电力次数:${remainingJoins}`);
}
await $.wait(sudojia.getRandomWait(1000, 1500));
console.log('开始领取宝箱...');
await receiveBox();
} catch (e) {
console.error(`加入电力时发生异常:${e.response.data}`);
}
}
/**
* 领取宝箱
*
* @return {Promise<void>}
*/
async function receiveBox() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/game/receive-box`, 'post', headers);
if (200 !== data.code) {
console.error(`领取宝箱失败:${data.message}`);
return;
}
console.log(`领取宝箱成功!电力 X${data.data.add_water}`);
} catch (e) {
console.error(`领取宝箱时发生异常:${e.response.data}`);
}
}
/**
* 选择投资
*
* @returns {Promise<void>}
*/
async function chooseInvest() {
try {
console.log('开始投资任务,默认选择最小投资');
const data = await sudojia.sendRequest(`${baseUrl}/server/api/power/choose-invest`, 'post', headers, {
"condition": "min"
});
if (200 !== data.code) {
console.error(`选择投资失败:${data.message}`);
return;
}
console.log('选择最小投资成功');
} catch (e) {
console.error(`选择投资时发生异常:${e.response.data}`);
}
}
/**
* 领取投资
*
* @returns {Promise<void>}
*/
async function receiveInvest() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/server/api/power/receive-invest`, 'post', headers);
if (200 !== data.code) {
console.error(`领取投资失败:${data.message}`);
return;
}
console.log(`领取投资成功获得电力X${data.data.add_power_num}`);
} catch (e) {
console.error(`领取投资时发生异常:${e.response.data}`);
}
}