Project1

标题: RMMV基于托管网站的游戏版本更新检测 [打印本页]

作者: 易大师    时间: 2016-12-30 13:57
标题: RMMV基于托管网站的游戏版本更新检测
  RMMV基于托管网站的游戏版本更新检测
楼主没发过什么帖子,也不知道该说些啥,就是基于github或者coding的游戏版本检查,首先是在这些网站上拥有自己的仓库,然后发布page页,新建一个关于版本的文件,然后在rmmv中用插件进行判断,详细说明在demo中有写,依赖jquery,有不懂的回复说明。

地址如下 RMMV插件游戏版本检测(原).rar (1.24 MB, 下载次数: 131)



插件地址:https://ycxyi.github.io/plugs/Ycx_VersionCheck.js

插件预览,记得有位大大说 document会覆盖,有建议可以及时提,谢谢。

JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // Ycx_VersionCheck.js
  3. //=============================================================================
  4. var Imported = Imported || {};
  5. Imported.Ycx_VersionCheck = true;
  6.  
  7. var Ycx = Ycx || {};
  8. Ycx.CHECK = Ycx.CHECK || {};
  9. /*:
  10.  * @plugindesc 基于代码托管网站的检测游戏版本插件 v1.0.0
  11.  * @author ycx
  12.  *
  13.  * @param nowVersion
  14.  * @desc 目前游戏版本
  15.  * @default 1.0.0
  16.  *
  17.  *
  18.  * @param urlText
  19.  * @desc 检测版本的url地址
  20.  * @default [url]http://ycxm.coding.me/jquery/version.txt[/url]
  21.  *
  22.  * @param showInTitle
  23.  * @desc 菜单是否显示版本检查  false 不显示  true 显示
  24.  * @default true
  25.  *
  26.  *  @param showInTitleText
  27.  * @desc showInTitle为true,即要显示的标题命令文字
  28.  * @default 版本检测
  29.  *
  30.  *  
  31.  * @param urlOpen
  32.  * @desc 有新版本则要打开的url地址
  33.  * @default [url]http://ycxm.coding.me/jquery/version.rar[/url]
  34.  *
  35.  * @param startCheck
  36.  * @desc 是否开始游戏就检查版本  false 不检查  true 检查
  37.  * @default true
  38.  *
  39.  *
  40.  * @help
  41.  * ================================================================
  42.  * 检测游戏版本
  43.  * ================================================================
  44.  *   依赖项:需要导入Jquery.js
  45.  *
  46.  *   nowVersion:当前游戏版本。
  47.  *
  48.  *   urlText:检测版本的url地址,代码托管网站的文件地址,得到的是版本号,不要写其他的。
  49.  *   
  50.  *   showInTitle:是否在标题显示版本检查这一项。  false 不显示  true 显示
  51.  *
  52.  *   showInTitleText:showInTitle为true时,即要显示的标题命令文字。
  53.  *
  54.  *   urlOpen:检测到有新版本则要打开的url地址,可打开官网之类。
  55.  *
  56.  *   startCheck:是否开始游戏就检查版本。   false 不检查  true 检查
  57.  *
  58.  *   插件命令:“命令 内容” 形式,示例如下:
  59.  *       1. checkversion [url]http://ycxm.coding.me/jquery/version.txt[/url]      检测游戏版本
  60.  *
  61.  *       2. openurl  [url]https://www.baidu.com[/url]                             打开网址,可打开游戏官网等。
  62.  *
  63.  *  最后qq:1359762297
  64.  *  ycx插件库:[url]https://github.com/ycxYI/plugs[/url](待更新)
  65.  *
  66.  */
  67.  
  68.  
  69. Ycx.parameters = PluginManager.parameters('Ycx_VersionCheck');
  70.  
  71. Ycx.nowVersion = String(Ycx.parameters['nowVersion'] || '1.0.0');
  72. Ycx.urlText = String(Ycx.parameters['urlText'] || 'http://ycxm.coding.me/jquery/version.txt');
  73. Ycx.showInTitle = String(Ycx.parameters['showInTitle'] || 'true');
  74. Ycx.showInTitleText = String(Ycx.parameters['showInTitleText'] || '版本检测');
  75. Ycx.urlOpen = String(Ycx.parameters['urlOpen'] || 'http://ycxm.coding.me/jquery/version.rar');
  76. Ycx.startCheck = String(Ycx.parameters['startCheck'] || 'true');
  77.  
  78. //=============================================================================
  79. // SceneManager
  80. //=============================================================================
  81.  
  82. SceneManager.openPopupBlockerMessage = function() {
  83.         this._scene.openPopupBlockerMessage();
  84. };
  85.  
  86. //=============================================================================
  87. // Game_Interpreter
  88. //=============================================================================
  89.  
  90. Ycx.CHECK.Game_Interpreter_pluginCommand =
  91.     Game_Interpreter.prototype.pluginCommand;
  92. Game_Interpreter.prototype.pluginCommand = function(command, args) {
  93.     Ycx.CHECK.Game_Interpreter_pluginCommand.call(this, command, args)
  94.     if (command === 'checkversion') this.checkVersion(args);
  95.     if (command === 'openurl') this.openurl(args);
  96. };
  97.  
  98. Game_Interpreter.prototype.checkVersion = function(args) {
  99.     TouchInput.clear();
  100.     Input.clear();
  101.     var url = String(args[0]);
  102.     $(document).load(url, function(responseText, textStatus) {
  103.         if (Ycx.nowVersion == responseText) {
  104.             alert("已经是最新版本!");
  105.         } else {
  106.             if (confirm("存在最新版本是否更新?")) {
  107.                 var win = window.open(url);
  108.                 if (win) {
  109.                     win.focus();
  110.                 } else {
  111.                     SceneManager.openPopupBlockerMessage();
  112.                 }
  113.             }
  114.         }
  115.  
  116.     });
  117. };
  118.  
  119. Game_Interpreter.prototype.openurl = function(args) {
  120.     TouchInput.clear();
  121.     Input.clear();
  122.     var url = String(args[0]);
  123.     var win = window.open(url);
  124.     if (win) {
  125.         win.focus();
  126.     } else {
  127.         SceneManager.openPopupBlockerMessage();
  128.     }
  129.  
  130. };
  131.  
  132. //-----------------------------------------------------------------------------
  133. //开始检测
  134. //-----------------------------------------------------------------------------
  135. if (Ycx.startCheck == "true") {
  136.     $(document).load(Ycx.urlText, function(responseText, textStatus) {
  137.  
  138.         if (Ycx.nowVersion == responseText) {
  139.             alert("已经是最新版本!");
  140.         } else {
  141.             if (confirm("存在最新版本是否更新?")) {
  142.                 var win = window.open(Ycx.urlOpen);
  143.                 if (win) {
  144.                     win.focus();
  145.                 } else {
  146.                     SceneManager.openPopupBlockerMessage();
  147.                 }
  148.             }
  149.         }
  150.  
  151.     });
  152. }
  153.  
  154. //-----------------------------------------------------------------------------
  155. // Scene_Title
  156. //-----------------------------------------------------------------------------
  157.  
  158. Scene_Title.prototype.createCommandWindow = function() {
  159.     this._commandWindow = new Window_TitleCommand();
  160.     this._commandWindow.setHandler('newGame', this.commandNewGame.bind(this));
  161.     this._commandWindow.setHandler('continue', this.commandContinue.bind(this));
  162.     this._commandWindow.setHandler('options', this.commandOptions.bind(this));
  163.     if (Ycx.showInTitle == "true") {
  164.         this._commandWindow.setHandler('Check', this.versionCheck.bind(this));
  165.     }
  166.     this.addWindow(this._commandWindow);
  167. };
  168.  
  169. Scene_Title.prototype.versionCheck = function() {
  170.     this._commandWindow.close();
  171.     $(document).load(Ycx.urlText, function(responseText, textStatus) {
  172.         if (Ycx.nowVersion == responseText) {
  173.             alert("已经是最新版本!");
  174.         } else {
  175.             if (confirm("存在最新版本是否更新?")) {
  176.                 var win = window.open(Ycx.urlOpen);
  177.                 if (win) {
  178.                     win.focus();
  179.                 } else {
  180.                     SceneManager.openPopupBlockerMessage();
  181.                 }
  182.             }
  183.         }
  184.     });
  185.     SceneManager.goto(Scene_Title);
  186. };
  187.  
  188. //-----------------------------------------------------------------------------
  189. // Window_TitleCommand
  190. //-----------------------------------------------------------------------------
  191.  
  192. Window_TitleCommand.prototype.makeCommandList = function() {
  193.     this.addCommand(TextManager.newGame, 'newGame');
  194.     this.addCommand(TextManager.continue_, 'continue', this.isContinueEnabled());
  195.     this.addCommand(TextManager.options, 'options');
  196.     if (Ycx.showInTitle == "true") {
  197.         this.addCommand(Ycx.showInTitleText, 'Check');
  198.     }
  199. };

作者: 库拉托斯    时间: 2016-12-30 15:25
感谢大大分享,记得va里也有类似的·功能

作者: walf_man    时间: 2016-12-30 15:34
正需要啊,不用自己写了,多谢大师
作者: 白嫩白嫩的    时间: 2016-12-31 13:09
不知道为何不能给分,但是至少要回复一下楼主表示感谢
作者: xiaoruis    时间: 2017-1-20 06:18
哈哈
作者: garfeng    时间: 2017-1-20 09:00
可以更进一步,在version文件里提供各版本升级包下载地址,直链地址,用js下载升级包覆盖本地游戏目录,这样就可以自动升级了。
作者: tseyik    时间: 2017-1-20 10:42
SRD_AutoUpdater.js
可在version文件里提供各版本升级文件下载地址,可以自动升级。
Download the Plugin Here:
http://sumrndm.site/auto-updater/
示範視頻
https://www.youtube.com/watch?v= ... p;index=92&t=3s
作者: 易大师    时间: 2017-1-22 01:41
garfeng 发表于 2017-1-20 09:00
可以更进一步,在version文件里提供各版本升级包下载地址,直链地址,用js下载升级包覆盖本地游戏目录,这 ...

我知道了,感谢
作者: 易大师    时间: 2017-1-22 01:42
tseyik 发表于 2017-1-20 10:42
SRD_AutoUpdater.js
可在version文件里提供各版本升级文件下载地址,可以自动升级。
Download the Plugin H ...

好的,我会看看的
作者: 13599299942    时间: 2023-8-3 16:21
https://rpg.blue/thread-398017-1-1.html谁指导下仓库那边如何设置




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1