2025年2月23日星期日

游戏动力任务脚本

1.购买服务器

阿里云:

服务器购买地址

https://t.aliyun.com/U/wrtp9T

若失效,可用地址

https://www.aliyun.com/activity/wuying/dj?source=5176.29345612&userCode=49hts92d

腾讯云:

https://curl.qcloud.com/wJpWmSfU

若失效,可用地址

https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console

华为云

https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905

2.部署教程

2024年最新青龙面板跑脚本教程(一)持续更新中

3.代码如下

//游戏动力app*/const axios = require("axios");const code = config.gamepower.loginCodeconst headers = {    packagename: "com.vgn.gamepower",    "user-agent""okhttp/3.12.0",    Host: "api.vgn.cn",    version: "1.3.7",    version_code: 47,    device_name: "",    device_id: "",    screen_resolution: "2400*1080",    device_type: "android",    //    "Content-Token""",    "Content-Type""application/json; charset=utf-8"}
function get(task, method = "get", data = null) {    return new Promise(async (resolve) => {        try {
            let url = `https://api.vgn.cn/apiv2/${task}`;            if (method == "get") res = await axios.get(url, {                headers            });            if (method == "post") res = await axios.post(url, data, {                headers            });            if (method == "patch") res = await axios.patch(url, data, {                headers            });            if (method == "delete") res = await axios.delete(url, {                headers            });            if (res.data.code == 200) console.log("    操作成功")            else console.log("    " + res.data.msg)            resolve(res.data)        } catch (err) {            console.log(err);            resolve({                code: 500,                msg: "签到接口请求出错"            })        }        resolve();    });}
async function getaskList() {    console.log("查询任务列表")    let res = await get("task/list")    if (res.code == 200 && res.data) return res.data.filter(x => x.task_type == 1 && x.status != 2)    return []}
async function dotask(taskList) {    for (var task of taskList) {        console.log("开始任务:" + task.title)        if (task.status == 0) {            switch (task.id) {                case 14:                    await get("v3/member/wish""patch", {                        "product_id": 1394330                    })                    break                case 10:                    await get("v3/game/1394330/comment""post", {                        "difficulty": 1,                        "score": 5,                        "length": 0,                        "progress": 1,                        "sale_notice": 0,                        "play_status": 2,                        "content""好玩ヾ ^_^♪"                    })                    break                case 7:                    for (i = 0; i < 5; i++) await get("home/operate""post", {                        "operate": 1,                        "type_id": 22312,                        "type": 1                    })                    break                case 8:                    let cres = await get("v3/group/comment/22179""post", {                        "revert_id""0",                        "revert_user_id""0",                        "content""牛啊牛啊牛啊牛",                        "p_id""0"                    })                    await get("comment/" + cres.data, "delete")                    break                case 11:                    await get("task/share/6001""post")                    break                case 17:                    await get("task/share/6002""post")                    break                default:                    break            }        }        console.log(`  去领取奖励:经验值${task.exp} 瓶盖${task.reward_point}`)        await get("task/" + task.id, "post")    }}
async function gamepower() {    rinfo = ""    let loginRes = await get("v2/login/qq""post", {        "code": code    })    if (loginRes.code == 200) {        console.log("登陆成功")        headers["Content-Token"] = loginRes.data.token        let taskList = await getaskList()        console.log(`当前还有${taskList.length}任务待完成`)        console.log("去签到")        await get("v3/mine/reward/point/daily""post")        await dotask(taskList)        console.log("\n查询个人信息")        let uinfo = await get("v3/login/userinfo")        if (uinfo.code == 200) rinfo = `\n昵称:${uinfo.data.member_nickname}\n等级:${uinfo.data.level_info.level}\n瓶盖:${uinfo.data.reward_point}\n连签:${uinfo.data.reward_days}`        else rinfo = uinfo.msg    } else rinfo = loginRes.msg    console.log(rinfo)    return "【游戏动力】:" + rinfo}module.exports = gamepower

解析

这个脚本的通过调用游戏动力APP的API接口,实现自动化的签到、任务执行和奖励领取功能。它通过 axios 进行HTTP请求,处理任务列表,完成不同类型的任务,最终获取奖励信息。

1. headers 配置

这些是请求时需要的 HTTP 请求头,用于模拟APP客户端与服务器的通信:

  • packagename: 固定的包名 "com.vgn.gamepower"

  • user-agent: 用户代理,模拟的是 okhttp 版本。

  • Host: 请求的服务器域名 "api.vgn.cn"

  • version 和 version_code: 模拟APP版本号和版本代码。

  • device_namedevice_id: 设备信息,这里是空的,可能需要通过具体设备来填充。

  • screen_resolution: 屏幕分辨率 "2400*1080"

  • device_type: 设备类型,这里为 "android"

  • Content-Type: 请求内容类型,"application/json; charset=utf-8" 表示请求体为JSON格式。

2. get 函数

这是一个通用的HTTP请求函数,根据指定的请求方式(GET、POST、PATCH、DELETE)发送请求,并返回响应结果:

  • 通过 axios 的 getpostpatchdelete 方法来发起请求。

  • 如果返回的 code 为 200,说明操作成功,否则输出错误信息。

  • 如果出现错误,返回 { code: 500, msg: "签到接口请求出错" }

3. getaskList 函数

这个异步函数用于获取任务列表:

  • 它通过调用 get("task/list") 来请求任务列表。

  • 如果任务列表返回成功并且包含任务数据,它会过滤出 task_type == 1 且 status != 2 的任务(假设 task_type == 1 表示有效任务,status != 2 表示任务未完成)。

  • 返回过滤后的任务列表。

4. dotask 函数

这个异步函数用于执行任务:

  • 对于每个任务,判断任务的 status 是否为 0,表示任务未完成。

  • 根据任务的 id,执行不同的操作,支持:

    • 任务ID为14时,调用 v3/member/wish 接口。

    • 任务ID为10时,调用 v3/game/1394330/comment 接口,发表评论。

    • 任务ID为7时,调用 home/operate 接口,执行5次操作。

    • 任务ID为8时,评论并删除评论。

    • 任务ID为11和17时,执行分享任务。

  • 对于每个任务,完成后都会调用 get("task/" + task.id, "post") 来领取奖励。

5. gamepower 函数

这是主要的执行函数,包含了登录、任务处理、签到和用户信息查询的逻辑:

  • 登录:调用 v2/login/qq 接口进行登录,登录成功后会设置 Content-Token 为登录返回的 token。

  • 获取任务列表:登录成功后,调用 getaskList() 获取待完成的任务列表。

  • 签到:调用 get("v3/mine/reward/point/daily", "post") 来进行每日签到。

  • 执行任务:调用 dotask() 执行任务。

  • 查询个人信息:登录后,查询用户的昵称、等级、瓶盖数量和连续签到天数等信息,并输出。

6. 返回结果

  • 在整个操作完成后,返回一个包含用户信息的字符串,格式如下:

    【游戏动力】:
    昵称:xxxx
    等级:xx
    瓶盖:xx
    连签:xx

主要功能

  1. 登录到"游戏动力"APP。

  2. 获取未完成的任务列表。

  3. 执行任务,根据任务ID执行不同的API请求。

  4. 完成任务后领取奖励。

  5. 最后查询并输出用户的基本信息,包括昵称、等级、瓶盖数量和连续签到天数。

8. 模块导出

module.exports = gamepower 使得 gamepower 函数可以在其他模块中被调用,返回签到、任务完成和用户信息的结果。

注意

本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。




没有评论:

发表评论

别再打工了,在小区附近做这3个暴利小生意,一天五六百,即使经济不好,也比上班强多了!

打工一辈子也难翻身,自己创业才是出路。 小区人口集中,需求多,是做小生意的好地方。 下面介绍三个在小区附近就能做的小生意,投入不大,日收入五六百,比上班强多了。 一、小区早餐摊位 俗话说"早餐养胃,午餐养气,晚餐养命"。 现在人们生活节奏快,很多上班族和学...