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

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

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    138

    主题

    1814

    帖子

    1988

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    1988

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

    发表于 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的每日心情
    开心
    3 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    138

    主题

    1814

    帖子

    1988

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    1988

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

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

    image.png

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

    这是随便写的

    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    328

    主题

    2877

    帖子

    2888

    积分

    荣誉开发者

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

    Rank: 10Rank: 10Rank: 10

    积分
    2888

    猫咪币纪念章

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

    图片.png

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    328

    主题

    2877

    帖子

    2888

    积分

    荣誉开发者

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

    Rank: 10Rank: 10Rank: 10

    积分
    2888

    猫咪币纪念章

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

    图片.png
    点击破万

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 12:10
  • 签到天数: 118 天

    [LV.6]常住居民II

    41

    主题

    355

    帖子

    1704

    积分

    荣誉开发者

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

    Rank: 10Rank: 10Rank: 10

    积分
    1704

    活跃会员三好学生中秋纪念章国庆纪念章热心会员推广达人宣传达人突出贡献猫咪币纪念章

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

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

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

    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 12:10
  • 签到天数: 118 天

    [LV.6]常住居民II

    41

    主题

    355

    帖子

    1704

    积分

    荣誉开发者

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

    Rank: 10Rank: 10Rank: 10

    积分
    1704

    活跃会员三好学生中秋纪念章国庆纪念章热心会员推广达人宣传达人突出贡献猫咪币纪念章

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

    QQ图片20220421193654.png

    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    138

    主题

    1814

    帖子

    1988

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    1988

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

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

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

    不能使用作弊脚本作弊
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    10

    主题

    350

    帖子

    430

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    430

    活跃会员热心会员突出贡献三好学生猫咪币纪念章中秋纪念章国庆纪念章

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

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

    使用道具 举报

  • TA的每日心情

    2022-5-9 10:40
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    4

    主题

    23

    帖子

    34

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    34

    中秋纪念章

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

    使用道具 举报

  • TA的每日心情

    2022-4-18 23:32
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    13

    主题

    260

    帖子

    225

    积分

    版主

    Rank: 8Rank: 8

    积分
    225

    猫咪币纪念章活跃会员中秋纪念章国庆纪念章

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

    使用道具 举报

    发表回复

    本版积分规则

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