零基础开发 era 游戏 #19 检查更新
本章内容仅限「EmueraEE+EM」改进版可用。
Emuera「本家」或只修 bug 不加新功能的「私家改造版」是无法使用的,请注意。
EE+EM 扩展功能#
强力安利这个 EM+EE 改进版。
这是目前功能最强大、设计最先进、更新最勤奋的 Emuera 版本,没有之一。
大家快来用啊。
两位作者都在我们的 里,有任何问题随时可以反馈。
检测版本更新#
首先需要启用 EmueraEE+EM 的专属配置项 UPDATECHECKを許可しない:NO。
即「UPDATECHECK 功能」。
然后在 ./csv/GameBase.csv 里添加:
バージョン名,当前版本
バージョン情報URL,检测最新版本的URL
两个新的配置项。
此外,访问 检测最新版本的URL 需要响应内容为纯文本的网页,格式为:
当前最新版本
一个跳转链接
这里的 一个跳转链接 可以自由发挥。
可以跳到更新日志、新版本下载直链、你的个人主页……你的游戏,你想写什么写什么。
我们收录的游戏均已自动配置好接口,详见《中文 era 游戏版本信息数据库》一文。
示例流程#
想要自给自足其实也很简单。
准备版本信息 URL#
不需要自建网站,你可以在 GitHub 之类的代码托管网站上建立一个公共的 git 仓库,然后通过 raw 方式就能通过 URL(网址)访问文件内容。
同样的道理,Pastebin.com / Ubuntu Pastebin 这样的在线剪贴板也可以做到。
总之就是准备一个网页(位于「版本信息 URL」),访问之后返回响应内容:
- 第一行是「最新版本号」
- 第二行是「如果检测到新版本,跳转的 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,重启游戏再试试效果。