上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

【小练习】色弱测试小游戏脚本

[复制链接]
  • TA的每日心情
    开心
    2024-11-21 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    306

    主题

    4256

    回帖

    4105

    积分

    管理员

    积分
    4105

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-4-21 18:58:30 | 显示全部楼层 | 阅读模式

    论坛markdown还有点小问题,不能自动保存,哥哥们写文的时候记得先保存草稿,或者写好再复制粘贴上来T T

    今天发现一个小游戏,感觉有点意思,大家能不能写一个小脚本来选择色块完成测试呢?

    https://xingye.me/game/colortest/index.html

    我先来

    发现所有的元素都是在这个 div#box 这个盒子里

    那总体思路就有了,监听这个盒子的变动再模拟点击就好了

    image.png

    我们使用MutationObserver去监听
    详细的教程可看(论坛中直接搜索MutationObserver):
    [油猴脚本开发指南]MutationObserver的使用
    https://bbs.tampermonkey.net.cn/thread-988-1-1.html

    [油猴脚本开发指南]MutationObserver简易例子
    https://bbs.tampermonkey.net.cn/thread-1008-1-1.html

    (再次推荐一下ScriptCat扩展,有基本的自动提示补全等功能,写小脚本直接用扩展写很是舒服,还可以格式化代码,让代码更加整洁!)
    image.png

    代码

    // ==UserScript==
    // @name         New Userscript
    // @namespace    https://bbs.tampermonkey.net.cn/
    // @version      0.1.0
    // @description  try to take over the world!
    // @author       You
    // @match        https://xingye.me/game/colortest/index.html
    // @grant        none
    // ==/UserScript==
    
    (function () {
        'use strict';
        // 找到盒子
        let box = document.querySelector('div#box');
        // 观察器的配置(需要观察什么变动)
        const config = { attributes: true, childList: true, subtree: true };
        // 当观察到变动时执行的回调函数
        const callback = function (mutationsList, observer) {
            for (let mutation of mutationsList) {
                if (mutation.type === 'childList') {
                    // 找不同
                    let diffIndex = 0;
                    for (let index = 1; index < mutation.addedNodes.length; index++) {
                        if (mutation.addedNodes[0].getAttribute('style') != mutation.addedNodes[index].getAttribute('style')) {
                            diffIndex = index;
                            break;
                        }
                    }
                    if (diffIndex === 1) {
                        if (mutation.addedNodes[1].getAttribute('style') == mutation.addedNodes[2].getAttribute('style')) {
                            diffIndex = 0;
                        }
                    }
                    // 模拟点击
                    setTimeout(() => mutation.addedNodes[diffIndex].click(), 1000);
                }
            }
        };
        // 创建一个观察器实例并传入回调函数
        const observer = new MutationObserver(callback);
        // 以上述配置开始观察目标节点
        observer.observe(box, config);
    })();
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
  • TA的每日心情
    开心
    2024-11-21 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    306

    主题

    4256

    回帖

    4105

    积分

    管理员

    积分
    4105

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-4-21 19:00:58 | 显示全部楼层

    image.png

    来比拼谁的脚本分数高了(🐶

    这是随便写的

    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 194 天

    [LV.7]常住居民III

    720

    主题

    6071

    回帖

    6850

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6850

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-4-21 19:14:35 | 显示全部楼层

    图片.png

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 194 天

    [LV.7]常住居民III

    720

    主题

    6071

    回帖

    6850

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6850

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-4-21 19:22:54 | 显示全部楼层

    图片.png
    点击破万

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-7-6 11:14
  • 签到天数: 253 天

    [LV.8]以坛为家I

    41

    主题

    318

    回帖

    2178

    积分

    荣誉开发者

    累计点滴改进,迈向完美品质。

    积分
    2178

    荣誉开发者油中2周年生态建设者

    发表于 2022-4-21 19:30:33 | 显示全部楼层

    理论上可以无限高分,可以通过时间劫持来使计时器变慢甚至停止

    [油猴脚本开发指南]h5视频倍速,时间加速和run-at
    https://bbs.tampermonkey.net.cn/thread-176-1-1.html
    (出处: 油猴中文网)

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-7-6 11:14
  • 签到天数: 253 天

    [LV.8]以坛为家I

    41

    主题

    318

    回帖

    2178

    积分

    荣誉开发者

    累计点滴改进,迈向完美品质。

    积分
    2178

    荣誉开发者油中2周年生态建设者

    发表于 2022-4-21 19:37:29 | 显示全部楼层

    QQ图片20220421193654.png

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-21 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    306

    主题

    4256

    回帖

    4105

    积分

    管理员

    积分
    4105

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-4-21 20:47:44 | 显示全部楼层
    Hangover 发表于 2022-4-21 19:30
    [md]理论上可以无限高分,可以通过时间劫持来使计时器变慢甚至停止

    [油猴脚本开发指南]h5视频倍速,时间加 ...

    不能使用作弊脚本作弊
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    883

    回帖

    1381

    积分

    荣誉开发者

    积分
    1381

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-4-21 21:12:55 | 显示全部楼层
    爆破式作弊
    1. unsafeWindow.Game.lv = 99999;
    2. unsafeWindow.Game.gameOver();
    复制代码

    正经一点的话可以劫持Game的一些函数,在适当的时机不断调用Game.nextLv()就行了。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-5-27 09:54
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    4

    主题

    19

    回帖

    44

    积分

    荣誉开发者

    积分
    44

    荣誉开发者油中2周年

    发表于 2022-4-22 00:17:04 | 显示全部楼层
    循环执行$('#box>span').click()
    ~( ̄▽ ̄)~*
    啥也不是
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-9-11 10:49
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    13

    主题

    269

    回帖

    249

    积分

    版主

    积分
    249
    发表于 2022-4-22 09:21:41 | 显示全部楼层
    妙啊
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表