Project1

标题: rpg maker MV 制作一个循环游戏 [打印本页]

作者: miu111    时间: 2016-8-31 00:36
标题: rpg maker MV 制作一个循环游戏
  就是game over以后 我可以给变量计数 下一次游戏的时候根据变量来触发不一样的开场 请问具体需要做什么定义呢?
作者: 玄天    时间: 2016-8-31 11:34
本帖最后由 玄天 于 2016-8-31 11:38 编辑

你这个效果用全局变量类型的插件就行了。

比如这个插件的功能大概就是指定某些变量为全局保存,即不管你游戏进度如何,这个变量都会保持在最后更新的状态。这样你只要在需要分歧的地方加个条件分歧就行了,很简单。
JAVASCRIPT 代码复制下载
  1. //=============================================================================
  2. // MrTS_GlobalSavesData.js
  3. //=============================================================================
  4.  
  5. /*:
  6. * @plugindesc Allows player to set and change variables that affect all saves.
  7. * @author Mr. Trivel
  8. *
  9. * @help
  10. * --------------------------------------------------------------------------------
  11. * Terms of Use
  12. * --------------------------------------------------------------------------------
  13. * Don't remove the header or claim that you wrote this plugin.
  14. * Credit Mr. Trivel if using this plugin in your project.
  15. * Free for commercial non-commercial projects.
  16. * --------------------------------------------------------------------------------
  17. * Version 1.0
  18. * --------------------------------------------------------------------------------
  19. *
  20. * --------------------------------------------------------------------------------
  21. * Plugin Commands
  22. * --------------------------------------------------------------------------------
  23. * GlobalVar Set [NAME] [VALUE] - Sets variable to [VALUE]
  24. * GlobalVar Add [NAME] [VALUE] - Adds [VALUE] to variable
  25. * GlobalVar Sub [NAME] [VALUE] - Subtracts [VALUE] from value
  26. *
  27. * [NAME] - Variable name, case sensitive
  28. * [VALUE] - Value of variable a number or true/false
  29. *
  30. * Examples:
  31. * GlobalVar Set Glasses true
  32. *
  33. * GlobalVar Set GameCompleted 1
  34. * GlobalVar Add GameCompleted 1
  35. * GlobalVar Sub GameCompleted 2
  36. * --------------------------------------------------------------------------------
  37. *
  38. * --------------------------------------------------------------------------------
  39. * Script Calls - for use in switches, variables, branches and script calls
  40. * --------------------------------------------------------------------------------
  41. * DataManager.getGlobalVar(NAME) - returns global variable of NAME
  42. *
  43. * Example:
  44. * DataManager.getGlobalVar(Glasses)
  45. * --------------------------------------------------------------------------------
  46. *
  47. * --------------------------------------------------------------------------------
  48. * Version History
  49. * --------------------------------------------------------------------------------
  50. * 1.0 - Release
  51. */
  52.  
  53. (function() {
  54.  
  55.         //--------------------------------------------------------------------------
  56.         // Game_Interpreter
  57.         //
  58.  
  59.         var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  60.         Game_Interpreter.prototype.pluginCommand = function(command, args) {
  61.                 _Game_Interpreter_pluginCommand.call(this, command, args);
  62.                 if (command.toLowerCase() === "globalvar") {
  63.                         switch (args[0].toUpperCase())
  64.                         {
  65.                                 case 'SET':
  66.                                 {
  67.                                         DataManager.setGlobalVar(args[1], eval(args[2]))
  68.                                 } break;
  69.                                 case 'ADD':
  70.                                 {
  71.                                         DataManager.addGlobalVar(args[1], Number(args[2]))
  72.                                 } break;
  73.                                 case 'SUB':
  74.                                 {
  75.                                         DataManager.setGlobalVar(args[1], Number(args[2]))
  76.                                 } break;
  77.  
  78.                         }
  79.                 }
  80.         };
  81.  
  82.         //--------------------------------------------------------------------------
  83.         // StorageManager
  84.         //
  85.  
  86.         var _StorageManager_localFilePath = StorageManager.localFilePath;
  87.         StorageManager.localFilePath = function(key) {
  88.             if (key === 'globalsavedata') return this.localFileDirectoryPath() + 'globalSaveData.rpgsave';
  89.             else return _StorageManager_localFilePath.call(this, key);
  90.         };
  91.  
  92.         var _StorageManager_webStorageKey = StorageManager.webStorageKey;
  93.         StorageManager.webStorageKey = function(key) {
  94.                 if (key === 'globalsavedata') return 'RPG GlobalSaveData';
  95.                 else return _StorageManager_webStorageKey.call(this, key);
  96.         };
  97.  
  98.         //--------------------------------------------------------------------------
  99.         // DataManager
  100.         //
  101.  
  102.         var _DataManager_loadGameWithoutRescue = DataManager.loadGameWithoutRescue;
  103.         DataManager.loadGameWithoutRescue = function(savefileId) {
  104.                 var success = _DataManager_loadGameWithoutRescue.call(this, savefileId);
  105.             if (success) this._globalSaveData = this.loadGlobalSaveData();
  106.             return success;
  107.         };
  108.  
  109.         var _DataManager_setupNewgame = DataManager.setupNewGame;
  110.         DataManager.setupNewGame = function() {
  111.                 _DataManager_setupNewgame.call(this);
  112.                 this._globalSaveData = this.loadGlobalSaveData();
  113.         };
  114.  
  115.         DataManager.setGlobalVar = function(name, value) {
  116.                 this._globalSaveData[name] = value;
  117.         };
  118.  
  119.         DataManager.addGlobalVar = function(name, value) {
  120.                 if (!this._globalSaveData[name]) this._globalSaveData[name] = 0;
  121.                 this._globalSaveData[name] += value;
  122.         };
  123.  
  124.         DataManager.subGlobalVar = function(name, value) {
  125.                 this.addGlobalVar(name, -value);
  126.         };
  127.  
  128.         DataManager.getGlobalVar = function(name) {
  129.                 if (!this._globalSaveData[name]) this._globalSaveData[name] = 0;
  130.                 return this._globalSaveData[name];
  131.         };
  132.  
  133.         DataManager.loadGlobalSaveData = function() {
  134.                 var data = StorageManager.load('globalsavedata');
  135.                 if (data)
  136.                 {
  137.                         return JsonEx.parse(data);
  138.                 }
  139.                 else return {};
  140.         };
  141.  
  142.         var _DataManager_saveGameWithoutRescue = DataManager.saveGameWithoutRescue;
  143.         DataManager.saveGameWithoutRescue = function(savefileId) {
  144.                 var saved = _DataManager_saveGameWithoutRescue.call(this, savefileId);
  145.                 if (saved) {
  146.                         this.saveGlobalSaveData(this._globalSaveData);
  147.                 }
  148.                 return saved;
  149.         };
  150.  
  151.         DataManager.saveGlobalSaveData = function(data) {
  152.                 StorageManager.save('globalsavedata', JSON.stringify(data));
  153.         };
  154. })();


如果觉得这个不够好还可以搜搜其他的,还有不少其他运作方式的全局变量插件。




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