零基础开发 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
,重启游戏再试试效果。