零基础开发 era 游戏 #19 检查更新

本章内容仅限「EmueraEE+EM」改进版可用。
Emuera「本家」或只修 bug 不加新功能的「私家改造版」是无法使用的,请注意。

EE+EM 扩展功能#

强力安利这个 EM+EE 改进版。
这是目前功能最强大、设计最先进、更新最勤奋的 Emuera 版本,没有之一。
大家快来用啊。
两位作者都在我们的 Discord 里,有任何问题随时可以反馈。

检测版本更新#

首先需要启用 EmueraEE+EM 的专属配置项 UPDATECHECKを許可しない:NO
即「启用不禁用 UPDATECHECK 功能」。

然后在 ./csv/GameBase.csv 里添加:

バージョン名,当前版本
バージョン情報URL,检测最新版本的URL

两个新的配置项。

此外,访问 检测最新版本的URL 需要响应内容为纯文本的网页,格式为:

当前最新版本
一个跳转链接

这里的 一个跳转链接 可以自由发挥。
可以跳到更新日志、新版本下载直链、你的个人主页……你的游戏,你想写什么写什么。

我们收录的游戏均已自动配置好接口,详见《中文 era 游戏版本信息数据库》一文。

示例流程#

想要自给自足其实也很简单。

准备版本信息 URL#

不需要自建网站,你可以在 GitHub 之类的代码托管网站上建立一个公共的 git 仓库,然后通过 raw 方式就能通过 URL(网址)访问文件内容。
同样的道理,Pastebin.com / Ubuntu Pastebin 这样的在线剪贴板也可以做到。

总之就是准备一个网页(位于「版本信息 URL」),访问之后返回响应内容:

  1. 第一行是「最新版本号」
  2. 第二行是「如果检测到新版本,跳转的 URL」

进行配置#

确认配置文件 ./emuera.config

UPDATECHECKを許可しない:NO

编辑 ./csv/GameBase.csv

バージョン名,0.9.0-alpha
バージョン情報URL,https://pastebin.com/raw/Ng9iCTnS

没错,バージョン名 本质是一个字符串,你可以写任意格式的版本号。
实际上 UPDATECHECK 就是匹配 バージョン名バージョン情報URL 的第一行是否相同。
简单,但有效。

但这就衍生出一个问题,假如你的本地游戏版本高于已发布的版本;
为什么会出现这种情况? 你是开发者啊 w,再新的版本也是从你手里发布出去的啊)
也会视为「检测到新版本」,请自行处理这种情况。

编写代码#

编辑 ./erb/检测更新.erb

@SYSTEM_TITLE
    WHILE 1
        DRAWLINE
        PRINTBUTTON "[检测更新]", 123
        INPUT
        CLEARLINE 2
        IF RESULT == 123
            CALL VERSION_UPDATE_CHECK
        ENDIF
    WEND
    QUIT


@VERSION_UPDATE_CHECK
    UPDATECHECK
    SELECTCASE RESULT
        CASE 0
            PRINTL 已经是最新版本
        CASE 1
            PRINTL 检测到新版本 玩家选择不更新
        CASE 2
            PRINTL 检测到新版本 已打开最新版本下载链接
        CASE 3
            PRINTL 获取版本信息失败 请检查网络连接
        CASEELSE
            PRINTL 检测版本更新时出错
    ENDSELECT

可以将 ./csv/GameBase.csvバージョン名 改为 1.0.0-beta,重启游戏再试试效果。

lackbfun © 2021 - 2024