大概找一款,xp时代的小游戏

脸脸 2026-06-04 11:24 1


我让codex做了一下示意图,emmm,差不多这样,画面比这个高级一点点,90后回忆了


2026年6月4日 22点59分 https://lab.mpsteam.cn/race/ 顺手做了一个,聊胜于无吧

最新回复 (19)
  • 脸脸 楼主 06-04 11:28
    1

    计划是这样,如果实在找不到,干脆vibe一款出来

  • liasica 06-04 11:33
    2

    ^-^ 我好像也玩过,但是搜了一圈实在是找不到

  • i-G_P-i 06-04 15:49
    3

    我找找一个, 好像是4399的小游戏,控制木质帆船,可以捞海里的木箱子,可以升级自己的船,可以跟人机对抗海战,两艘船离得近可以船长单挑,有个背景音是锯木头那种。其他的记不清了,找了好久没找到。

  • 脸脸 楼主 06-04 22:42
    4

    本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



    • 我的帖子已经打上 开源推广 标签:

    • 我的开源项目完整开源,无未开源部分:

    • 我的开源项目已链接认可 LINUX DO 社区:

    • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

    • 以上选择我承诺是永久有效的,接受社区和佬友监督:


    以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出




    部署上去了

    https://lab.mpsteam.cn/race

  • 脸脸 楼主 06-04 22:43
    5

    https://lab.mpsteam.cn/ 你看看,部署上去了

  • MarchBeta2087 06-05 10:52
    6


















    装备毕业,啥时候出强化功能,最高100级那种

  • liasica 06-05 17:39
    7

    哈哈哈哈哈,可以,开玩,多谢佬 ^-^


    加一下本地存储(localstorage)功能吧

  • 小卜 06-05 17:57
    8

    自动发车油猴脚本


    // ==UserScript==
    // @name MPS Lab 赛车绿灯自动起步
    // @namespace https://lab.mpsteam.cn/race/
    // @version 1.0.0
    // @description 在 MPS Lab 赛车小游戏绿灯亮起后立即点击“起步 / 踩油门”按钮。
    // @match https://lab.mpsteam.cn/race/
    // @match https://lab.mpsteam.cn/race/*
    // @run-at document-idle
    // @grant none
    // ==/UserScript==

    (function () {
    'use strict';

    const GREEN_LIGHT_SELECTOR = '#greenLight';
    const START_BUTTON_SELECTOR = '#startBtn';
    const LOG_SELECTOR = '#logOutput';

    let lastStartAt = 0;

    function writeLog(message) {
    const logOutput = document.querySelector(LOG_SELECTOR);
    if (!logOutput) {
    return;
    }

    const time = new Date().toLocaleTimeString('zh-CN', { hour12: false });
    logOutput.textContent += `[${time}] ${message}\n`;
    logOutput.scrollTop = logOutput.scrollHeight;
    }

    function canStart(greenLight, startButton) {
    return Boolean(
    greenLight &&
    startButton &&
    greenLight.classList.contains('active') &&
    !startButton.disabled
    );
    }

    function clickStartIfGreen() {
    const greenLight = document.querySelector(GREEN_LIGHT_SELECTOR);
    const startButton = document.querySelector(START_BUTTON_SELECTOR);

    if (!canStart(greenLight, startButton)) {
    return;
    }

    const now = performance.now();
    if (now - lastStartAt < 300) {
    return;
    }

    lastStartAt = now;
    startButton.click();
    writeLog('油猴脚本:绿灯已亮,已自动起步。');
    }

    function installGreenLightObserver() {
    const greenLight = document.querySelector(GREEN_LIGHT_SELECTOR);
    if (!greenLight) {
    return false;
    }

    const observer = new MutationObserver(clickStartIfGreen);
    observer.observe(greenLight, {
    attributes: true,
    attributeFilter: ['class'],
    });

    clickStartIfGreen();
    return true;
    }

    if (installGreenLightObserver()) {
    return;
    }

    const bootObserver = new MutationObserver(() => {
    if (installGreenLightObserver()) {
    bootObserver.disconnect();
    }
    });

    bootObserver.observe(document.documentElement, {
    childList: true,
    subtree: true,
    });
    })();```
  • 脸脸 楼主 06-06 03:05
    9

    等我,正在写1.4版本。。。别急啊,准备加插件,加新功能,新难度

  • 脸脸 楼主 06-06 03:15
    10

    加一下本地存储(localstorage)功能吧



    感谢建议,本地存储功能目前已经有了,在仓库里

  • Leon 06-06 04:47
    11

    这个界面。。。想起当初经典游戏“北京浮生计”了

  • 脸脸 楼主 06-06 04:53
    12

    没玩过这个游戏。。。我去看看。。。

  • 脸脸 楼主 06-06 05:04
    13

    V 1.4 版本发布


    主要增加了难度、图鉴功能、bug修复、神话装备、装备爆率改动,老版本可用



  • niupro 06-06 05:23
    14

    哈哈哈,有印象,这个满满的回忆。再来试一下。

  • 脸脸 楼主 06-06 07:12
    15

    赛车小游戏又修了一版。V1.4.1

    主要是之前商店老刷到买过的配件,挺烦的,这次把概率压下去了。高难度也重新调了一下,不然顶配车太容易一路碾过去

    顺手加了空格键操作,报名、起步、下一场都能按空格,舒服很多

    还加了反应时间和连胜记录,有点上头了。本来只是想修个小补丁,结果又折腾半天 ^-^



  • 脸脸 楼主 06-06 09:02
    16
      // ==UserScript==
    // @name MPS Lab 赛车绿灯自动起步
    // @namespace https://lab.mpsteam.cn/race/
    // @version 1.0.1
    // @description 在 MPS Lab 赛车小游戏绿灯亮起后立即点击“起步 / 踩油门”按钮。
    // @match *://lab.mpsteam.cn/race*
    // @run-at document-idle
    // @grant none
    // ==/UserScript==

    (function () {
    'use strict';

    const GREEN_LIGHT_SELECTOR = '#greenLight';
    const START_BUTTON_SELECTOR = '#startBtn';
    const LOG_SELECTOR = '#logOutput';

    let lastStartAt = 0;

    function writeLog(message) {
    const logOutput = document.querySelector(LOG_SELECTOR);
    const time = new Date().toLocaleTimeString('zh-CN', { hour12:
    false });

    if (logOutput) {
    logOutput.textContent += `[${time}] ${message}\n`;
    logOutput.scrollTop = logOutput.scrollHeight;
    }

    console.log(`[MPS Auto Start ${time}] ${message}`);
    }

    function canStart() {
    const greenLight = document.querySelector(GREEN_LIGHT_SELECTOR);
    const startButton = document.querySelector(START_BUTTON_SELECTOR);

    return Boolean(
    greenLight &&
    startButton &&
    greenLight.classList.contains('active') &&
    !startButton.disabled
    );
    }

    function clickStartIfGreen() {
    if (!canStart()) {
    return;
    }

    const now = performance.now();
    if (now - lastStartAt < 300) {
    return;
    }

    lastStartAt = now;
    document.querySelector(START_BUTTON_SELECTOR)?.click();
    writeLog('绿灯已亮,已自动起步。');
    }

    function install() {
    const greenLight = document.querySelector(GREEN_LIGHT_SELECTOR);
    const startButton = document.querySelector(START_BUTTON_SELECTOR);

    if (!greenLight || !startButton) {
    return false;
    }

    const observer = new MutationObserver(clickStartIfGreen);
    observer.observe(greenLight, {
    attributes: true,
    attributeFilter: ['class'],
    });
    observer.observe(startButton, {
    attributes: true,
    attributeFilter: ['disabled'],
    });

    setInterval(clickStartIfGreen, 50);
    clickStartIfGreen();
    writeLog('自动起步脚本已启动。');
    return true;
    }

    if (install()) {
    return;
    }

    const bootObserver = new MutationObserver(() => {
    if (install()) {
    bootObserver.disconnect();
    }
    });

    bootObserver.observe(document.documentElement, {
    childList: true,
    subtree: true,
    });
    })();
    ```
    版本更新了,改了一版
  • 脸脸 楼主 06-06 20:04
    17

    1.5-1.6 合在一起更新了,简直像做了一个新游戏






  • 脸脸 楼主 06-07 02:01
    18

    ai托管上线了。。。1.7版本



    ## [v1.7] — 2026-06-07 (当前版本)

    ### 新增

    - **AI 托管一场**:新增单场托管入口,会自动报名、等待绿灯并按普通玩家级别的反应时间完成起步,保留完整赛道动画和赛后结算。
    - **托管状态提示**:赛事战报区与结果提示区增加 AI 托管说明,并新增托管相关存档兼容字段。

    ### 规则

    - **操作类成就隔离**:AI 托管比赛可正常获得收益和比赛记录,但不会解锁反应、慢起步、抢跑、连胜、连续名次等依赖玩家操作的成就,也不会污染手动反应和手动连胜统计。

    ---

    ## [v1.6.6] — 2026-06-06

    ### 优化

    - **赛事主操作按钮**:合并“报名比赛”和“下一场比赛”为同一个主按钮,待机时用于报名,赛后用于进入下一场。
    - **移动端操作布局**:手机端赛事操作保留“主操作”和“起步 / 踩油门”两个按钮并排显示,减少赛后操作占用空间。

    ---

    ## [v1.6.5] — 2026-06-06

    ### 修复

    - **低余额卖装流程**:修复低余额时卸下最后一件装备会立刻进入失败态、导致刚卸下的库存零件无法出售的问题。

    ---

    ## [v1.6.4] — 2026-06-06

    ### 优化

    - **非噩梦难度强度上限**:休闲、标准、挑战、专家加入电脑最终强度上限,避免后期无限随玩家评分追赶;噩梦保持无上限高压定位。
    - **难度说明同步**:难度面板展示电脑强度上限,明确普通难度有毕业感、噩梦负责追赶玩家。

    ---

    ## [v1.6.3] — 2026-06-06

    ### 新增

    - **趣味成就扩展**:补充抢跑、极限反应、慢反应、破产、名次、改装流派与长期游玩成就,并新增噩梦难度限定的“这也能赢?”、“玻璃大炮”、“稳如老狗”和“噩梦毕业生”。
    - **失败与经济反馈**:抢跑累计、连续抢跑、余额不足报名、赛后低余额和累计购买零件均会触发对应成就反馈。

    ### 优化

    - **移动端成就提示**:手机端成就提示改为页面上方横幅,避免遮挡底部导航按钮。
    - **重开保留成就**:重开清档只重置经营进度,已解锁成就继续保留。

    ---

    ## [v1.6.2] — 2026-06-06

    ### 新增

    - **零件等级与稀有度颜色展示**:商店、改装槽位、当前槽位、候选零件、库存卡片和图鉴统一展示零件等级与稀有度颜色,图鉴详情同步补充等级字段。
    - **连续第二名成就**:新增“望尘莫及”和“逆袭登顶”两项成就,记录连续 10 场第二名,以及十连第二后夺冠。

    ---

    ## [v1.6.1] — 2026-06-06

    ### 优化

    - **改装页响应式重构**:桌面端改为左侧槽位总览 + 右侧当前槽位候选列表,默认选中第一个槽位,候选列表内部滚动,减少整页高度。 (a4dfda5)
    - **移动端单开手风琴**:改装页在窄屏下改为单展开槽位结构,展开新槽位时自动收起其他槽位,降低换装浏览成本。 (a4dfda5)
    - **候选零件卡片压缩**:候选件统一改为两行紧凑结构,只保留稀有度、编号、名称、装备按钮和相对当前属性变化标签,已装备项保持禁用态。 (a4dfda5)

    ---

    ## [v1.6] — 2026-06-06

    当前版本基于 `feat-race-1.5` 分支迭代,在 v1.5 基础上持续打磨。

    ### 新增

    - **保存成功提示**:手动保存成功后弹出提示框确认。 (40ec527)
    - **重开确认弹窗**:将重开并清档的双击确认改为弹窗确认,避免状态混淆导致意外清档。 (9bea590)
    - **损坏存档保护**:新增 `storageWriteBlockedReason` 机制,自动保存前检查标记,阻止覆盖损坏或无效的存档数据。重构存档读取逻辑,分离数据读取、验证与状态应用。 (8862a85)

    ---
  • 柠萌 06-07 02:11
    19

    在玩了,很好玩佬,休闲玩一玩真的非常惬意

* 帖子来源Linux.do
返回