GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 1050|回复: 11
收起左侧

[问题求助] 【脚本求助】冷却后自动回复 和 PAUSE账本 的兼容问题

[复制链接] |关注本帖

SCP-s-1889-第二页虚空之海的鲸『随时随地开启!』被释放的灵魂『随时随地开启!』无尽的怀表不朽之恋遗留之人的城堡男巫之歌史莱姆牧场

    300金币
    本帖最后由 星之子 于 2024-12-1 10:47 编辑
    动机
    之前我写过一篇 帖子 介绍了自己回帖时使用的一套丝滑小连招:Ctrl+Q跳到文本框,Win+H语音输入,Ctrl+Enter回帖,Ctrl+Tab下一帖。这套连招唯一会卡顿的地方就是60秒的CD,而狐狸的 【油猴脚本】冷却后自动回复1.1 这个脚本则很好地解决了这一痛点,从此一气呵成。

    需求

    狐狸的脚本我设置为“自动回复后不关闭标签页”。但标签页在后台完成回帖、再去查看的时候,本应存在的“橙色条”却没有弹出,大概这样:

    PAUSE账本 通过监测“橙色条”弹出的内容记账。它能正常记录,说明“橙色条”依然存在,只是出于某些原因看不见了。

    这个橙色条看着还是很爽的,尤其是辉石发力爆出高额金币的时候,如果不能截图真的很遗憾。
    希望有大佬能出手,解决两个脚本的兼容问题,在兼顾丝滑小连招的流畅爽感的同时,把橙色条的惊喜爽感找回来,感激不尽惹!



    2024年12月1日10点43分 补充:
    感谢@源子 大佬的慷慨相助,测试了大佬提供的这个版本,但遇到了三个问题:
    1. 和 冷却后自动回复 的兼容不太好,经常会出现字数不够的蓝条顶替掉橙条的情况。
    2. 偶尔会导致 PAUSE EA 账本没有记录到(我测试了20条丢了3条)。
    3. 在购买附件的时候,消耗金币的橙色条会反复跳出,直到阴影重叠在一起变成下图这样。


    附件: 您需要 登录 才可以下载或查看,没有账号?立即注册

    最佳答案

    查看完整内容

    咱也不知道你这两个脚本冲突在哪,但既然是橙框框消失的原因,那干脆就简单粗暴点直接固定在页面让它永不消逝好了。在pause脚本中找到下面这个函数,直接覆盖即可。主要是这种需要回复才能测试的脚本实在太麻烦了,样本量很少,只能力大砖飞了。在我的测试中,橙框框确实已经永固了,但是和自动回复脚本的那一部分会产生什么幺蛾子就不清楚了。 2024/12/01 根据反馈,发现这类提示元素蓝框和橙框用的是同一个Id【ntcwin】,原paus ...
      收起(8)
    • 恶之华 恶之华 :有点赞同!虽然我没下那个脚本,但有一说一,那条橙色条条弹出的瞬间确实惊险刺激!
      2024-11-30 17:28 回复
    • Makima Makima :当版主就能回复无限制了
      2024-11-30 17:36 回复
    • 星之子 星之子 :回复 娱乐法师火布偶 :哈哈,火布偶老师指点的是。不过PAUSE账本之所以叫PAUSE就是因为可以完全【暂停】页面,不点确定是不会消失的,这也正是脚本的卖点之一。不妨先自己使用一下再点评哈。
      2024-11-30 18:12 回复
    • 娱乐法师火布偶 娱乐法师火布偶 :回复 星之子 :这个脚本我一直都在用,不过我没有使用回复的脚本,我个人还是觉得暂停也不会是永久的,尤其是chorme现在会自动回收打开一段时间标签页的内存,存在这一个弹窗被回收掉的可能性,而弹窗是另外打开的,所以不会回收,所以想要获取永久的基本上还是靠截图
      2024-11-30 18:53 回复
    • 娱乐法师火布偶 娱乐法师火布偶 :回复 星之子 :本人确实没有注意到pause是这样的含义,不过本人的需求点也不在这个pause上面,我更需要的是统计回帖收益的功能
      2024-11-30 18:58 回复
    • 星之子 星之子 :回复 娱乐法师火布偶 :
      娱乐法师火布偶: 橙色条应该是自动显示几秒后就消失了,想要捕获确实基本只能靠截图
      2024-11-30 18:01 回复 删除
      1. 勋章触发时停器 -再也不怕手慢截不到图了,分享你的欧皇时刻,PAUSE!时停!
      2024-11-30 21:47 回复
    • 还有2条回复 点击查看

      我也说一句

    回复

    使用道具 举报

    Act of Ultimate Trust遗留之人的城堡人到中年丹·雷诺斯.王者之盾风物长宜Vergil

      本帖最后由 源子 于 2024-12-1 15:47 编辑

      咱也不知道你这两个脚本冲突在哪,但既然是橙框框消失的原因,那干脆就简单粗暴点直接固定在页面让它永不消逝好了。在pause脚本中找到下面这个函数,直接覆盖即可。主要是这种需要回复才能测试的脚本实在太麻烦了,样本量很少,只能力大砖飞了。在我的测试中,橙框框确实已经永固了,但是和自动回复脚本的那一部分会产生什么幺蛾子就不清楚了。

      2024/12/01 根据反馈,发现这类提示元素蓝框和橙框用的是同一个Id【ntcwin】,原pause脚本用的是【creditpromptdiv】,之前没注意到这个问题导致会出现复制了不该复制的内容,多次重复复制不断重叠就出现了阴影。至于购买附件的问题,购买附件时和回复奖励用的橙框框是同类型的元素,实际上原pause脚本在页面加载的10s内购买附件也会弹出提示框,原脚本的逻辑如此,这种非预期的信息弹窗原脚本代码层面也没有规避,因为泥潭的网页代码并没有对这两种类型的信息做区分,后续我尝试检测弹窗的文本看看是否符合特定格式,目前测试下来是没什么大问题。同时不再像原脚本那样采用阻塞型的弹窗,修改成论坛原生的橙框框,只是把存在时间延长了亿点点,需要隐藏时点一下橙框框就能自动隐藏。
      另外有个问题,你的PAUSE脚本用的是哪个版本的,目前我这里给出的是EA版对应的代码,并不是持久版
      1. // 主要负责暂停和记录的主函数
      2. // limitTimes 为超时限制,类型整数,例如10代表最多检测10次,超时仍未抓取到则关闭
      3. // playSound 则表示是否播放音效
      4. function pauseAndSave(limitTimes) {

      5.     // 开始检测页面并抓取奖励内容
      6.     const timer = setInterval(() => {
      7.         // 检测是否找到了 creditpromptdiv
      8.         const creditPromptDiv = document.getElementById("creditpromptdiv");

      9.         if (creditPromptDiv) {
      10.             // 检查 creditPromptDiv 中的文本内容是否包含“勋章功能触发”
      11.             const textContent = creditPromptDiv.textContent || creditPromptDiv.innerText;

      12.             if (textContent.includes("勋章功能触发")) {

      13.                 // 从 creditPromptDiv 向上查找直到找到 ntcwin
      14.                 let parentNode = creditPromptDiv;
      15.                 while (parentNode && parentNode.id !== "ntcwin") {
      16.                     parentNode = parentNode.parentNode;
      17.                 }

      18.                 // 如果找到了 ntcwin
      19.                 if (parentNode && parentNode.id === "ntcwin") {
      20.                     console.log("找到 ntcwin 的父级节点:", parentNode);

      21.                     // 复制弹窗并添加到目标容器中
      22.                     var appendParent = document.getElementById('append_parent');
      23.                     if (appendParent) {
      24.                         // 复制 ntcwin 节点
      25.                         var clonedNode = parentNode.cloneNode(true);

      26.                         // 修改复制节点的 ID,确保它不会被重复检测
      27.                         clonedNode.id = "ntcwin_cloned_" + Date.now(); // 给复制的节点一个唯一的 ID

      28.                         // 将复制的弹窗添加到目标容器中
      29.                         appendParent.appendChild(clonedNode);

      30.                         // 为复制后的节点添加点击事件,使其消失
      31.                         clonedNode.addEventListener("click", function() {

      32.                             clonedNode.style.display = "none";  // 隐藏复制的节点
      33.                            
      34.                             // 或者删除复制的节点
      35.                             // clonedNode.remove();  // 删除复制的节点
      36.                             console.log("复制的节点已点击并隐藏");
      37.                         });

      38.                         // 记录到控制台
      39.                         console.log(clonedNode);
      40.                     }

      41.                     // 保存内容
      42.                     extractAndSave(clonedNode);

      43.                     // 清除定时器
      44.                     clearInterval(timer);
      45.                 }
      46.             }
      47.         }

      48.         console.log("记录器工作中...");

      49.         // 限制次数减一
      50.         limitTimes -= 1;

      51.         // 限制次数为0不再检测
      52.         if (limitTimes == 0) {
      53.             clearInterval(timer);
      54.             console.log("超时,已自动退出");
      55.         }
      56.     }, 1000);

      57.     return 0;
      58. }
      复制代码













        收起(1)
      回复

      使用道具 举报

      您需要登录后才可以回帖 登录 | 立即注册

      本版积分规则

      文字版|手机版|小黑屋|GameMale

      GMT+8, 2024-12-4 16:27 , Processed in 0.058636 second(s), 34 queries , Redis On.

      Copyright © 2013-2024 GameMale

      All Rights Reserved.

      快速回复 返回列表