2025年10月3日星期五

石之家任务脚本

1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/E8o0aM若失效,可用地址

1.购买服务器

阿里云:

服务器购买地址

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

若失效,可用地址

https://www.aliyun.com/daily-act/ecs/activity_selection?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.代码如下

import {    getLoginInfo, getCharacterBindInfo, doSignIn, getSignLog, getSignInRewardList, getSignInReward,    createPostComment, createDynamic, deleteDynamic,from './api.ts';import logger from './logger.ts';
export default async (cookiesstring) => {    await getLoginInfo(cookies);
    const characterInfo = await getCharacterBindInfo(cookies);    if (characterInfo.isSign !== 1) {        logger.info('今天尚未签到');
        const signInResult = await doSignIn(cookies);
        if (signInResult) {            logger.info(`签到成功:连续签到${signInResult.continuousDays.toString()}天,获得${signInResult.sqExp.toString()}经验`);        } else {            logger.info('今天已签到');        }
        await new Promise((resolve) => { setTimeout(resolve, 5000); });    } else {        logger.info('今天已签到');    }
    await getSignLog(cookies);
    const signInReward = await getSignInRewardList(cookies);    const pendingReward = signInReward.filter((item) => item.is_get === 0);    const incompleteReward = signInReward.filter((item) => item.is_get === -1);
    logger.info(`尚有${pendingReward.length.toString()}个签到奖励待领取`);    logger.info(`尚有${incompleteReward.length.toString()}个签到奖励未完成`);
    if (pendingReward.length > 0) {        await Promise.all(pendingReward            .map(async (item) => {                logger.info(`领取签到奖励:${item.item_name}`);
                try {                    await getSignInReward(cookies, item.id);                    logger.info(`领取成功:${item.item_name}`);                } catch (err) {                    logger.error(`领取失败:${(err as Error).message}`);                }            }));
        await new Promise((resolve) => { setTimeout(resolve, 5000); });    }
    // XXX: 目前官方水贴已失效    for (let i = 0; i < 0; i += 1) {        const content = '<p><span class="at-emo">[emo1]</span>&nbsp;</p>';        const postID = '9365';
        logger.info(`水贴发表评论(${(i + 1).toString()} / 5)`);
        // eslint-disable-next-line no-await-in-loop        await createPostComment(cookies, content, postID);
        // eslint-disable-next-line no-await-in-loop        await new Promise((resolve) => { setTimeout(resolve, 5000); });    }
    for (let i = 0; i < 5; i += 1) {        const content = '<p><span class="at-emo">[emo1]</span>&nbsp;</p>';
        logger.info(`发表动态并删除(${(i + 1).toString()} / 5)`);
        logger.info(`发表动态(${(i + 1).toString()} / 5)`);
        // eslint-disable-next-line no-await-in-loop        const data = await createDynamic(cookies, content);
        // eslint-disable-next-line no-await-in-loop        await new Promise((resolve) => { setTimeout(resolve, 5000); });
        logger.info(`删除动态(${(i + 1).toString()} / 5)`);
        // eslint-disable-next-line no-await-in-loop        await deleteDynamic(cookies, data.id);
        // eslint-disable-next-line no-await-in-loop        await new Promise((resolve) => { setTimeout(resolve, 5000); });    }};
解析

这脚本为石之家自动化"签到 + 奖励领取 + 动态发表/删除(刷任务量)"脚本。

https://ff14risingstones.web.sdo.com/pc/index.html#/post

主要作用

  1. 校验登录态 → 2) 判断并执行当天签到 → 3) 查询签到记录 → 4) 拉取并领取未领取的签到奖励 → 5) 通过批量发表并删除"动态"来满足平台的活跃/任务条件(原本的"水贴评论"已被注释为 0 次,不执行)。

主要方法

  • getLoginInfo(cookies)
    用给定的 cookies 拉取登录信息,验证当前会话有效。

  • getCharacterBindInfo(cookies)
    读取与账号绑定的角色/角色状态,脚本用其中的 isSign 字段判断"今天是否已签到"。

  • doSignIn(cookies)
    执行签到。若成功,返回包含"连续签到天数(continuousDays)"和"获得经验(sqExp)"等信息,日志里会打印出来。

  • (本地逻辑)if (characterInfo.isSign !== 1) ... else ...
    根据是否已签到决定是否调用 doSignIn,并在两次关键动作之间 setTimeout 5 秒,模拟人操作的节奏。

  • getSignLog(cookies)
    拉取签到日志/记录(用于留存或后续统计,脚本不再额外处理返回值)。

  • getSignInRewardList(cookies)
    获取当前签到奖励列表。脚本将其分成:

    • pendingRewardis_get === 0,表示"满足条件但未领取"的奖励;

    • incompleteRewardis_get === -1,表示"未达成条件"的奖励。
      并打印各自数量。

  • getSignInReward(cookies, item.id)
    对 pendingReward 中的每个奖励逐一领取,成功/失败都写日志。领取完成后再等待 5 秒。

  • "水贴评论"段
    for (let i = 0; i < 0; i += 1) { createPostComment(...) }
    循环上限是 0,等于不执行。注释表明"官方水贴已失效"。

  • createDynamic(cookies, content) 与 deleteDynamic(cookies, data.id)
    连续 5 次执行"先发动态 → 等 5 秒 → 再删动态 → 再等 5 秒"的闭环。
    文本内容是简单的表情 HTML([emo1]),用于完成"发表动态/活跃度"这一类任务指标。

  • logger.info / logger.error(...)
    贯穿全程的日志记录工具,用于输出每个节点的状态与异常信息,便于观测脚本行为。

  • await new Promise(resolve => setTimeout(resolve, 5000))
    多处人为插入 5 秒延迟,节流请求,降低被平台判定为异常的概率。

输入参数

  • cookies: string:外部传入的登录 Cookie 串,是所有 API 调用的身份凭证。


注意

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


历史脚本txt文件获取>>
服务器搭建,人工服务咨询>>

没有评论:

发表评论

外贸人必看:WhatsApp养号 + 大陆登录的终极指南

在外贸和跨境电商圈里,用 WhatsApp 已经是标配了。但很多朋友经常吐槽:"新号刚加几个好友就被封"、"大陆登录特别不稳,一不小心号又凉了"。 在外贸和跨境电商圈里,用 WhatsApp 已经是标配了。但很多朋友经常吐槽: ...