Project1

标题: 想请教一下如何制作二周目或者多周目要素 [打印本页]

作者: 唐尨    时间: 2023-7-1 14:57
标题: 想请教一下如何制作二周目或者多周目要素
我想在二周目加入新的NPC或者对话,或者说要二周目才能打开的房间等等与一周目区别。想请教各位想在MZ做到这样的效果可以通过什么方式实现吗?是否有相关的插件或者脚本可以直接做到二周目效果?
作者: ex悠米桑    时间: 2023-7-1 18:11
我听说有二周目脚本,但是我自己没用过。

我是这么做二周目的,我在论坛下载了一个插件, 叫做全局变量(还是全局开关来着?),你可以在论坛搜索一下。就是说,这个变量\开关,一旦打开,在任何情况下都会生效,哪怕你重启游戏也是一样。所以我在结局的时候,给变量赋值。然后每次游戏开局判定,这个变量是否大于1.这样还可以做出来,让玩家知道自己打了几周目2333
作者: 小秋橙    时间: 2023-7-1 18:57
https://rpg.blue/forum.php?mod=r ... amp;fromuid=2731820
可以参考我曾经的一个回答,核心思路就是利用ConfigManager相关代码来追加【第五音量】这样的全局量。
  1. //-----------------------------------------------------------------------------
  2. // ConfigManager
  3. //
  4. // The static class that manages the configuration data.

  5. function ConfigManager() {
  6.     throw new Error("This is a static class");
  7. }

  8. ConfigManager.alwaysDash = false;
  9. ConfigManager.commandRemember = false;
  10. ConfigManager.touchUI = true;
  11. ConfigManager._isLoaded = false;

  12. Object.defineProperty(ConfigManager, "bgmVolume", {
  13.     get: function() {
  14.         return AudioManager._bgmVolume;
  15.     },
  16.     set: function(value) {
  17.         AudioManager.bgmVolume = value;
  18.     },
  19.     configurable: true
  20. });

  21. Object.defineProperty(ConfigManager, "bgsVolume", {
  22.     get: function() {
  23.         return AudioManager.bgsVolume;
  24.     },
  25.     set: function(value) {
  26.         AudioManager.bgsVolume = value;
  27.     },
  28.     configurable: true
  29. });

  30. Object.defineProperty(ConfigManager, "meVolume", {
  31.     get: function() {
  32.         return AudioManager.meVolume;
  33.     },
  34.     set: function(value) {
  35.         AudioManager.meVolume = value;
  36.     },
  37.     configurable: true
  38. });

  39. Object.defineProperty(ConfigManager, "seVolume", {
  40.     get: function() {
  41.         return AudioManager.seVolume;
  42.     },
  43.     set: function(value) {
  44.         AudioManager.seVolume = value;
  45.     },
  46.     configurable: true
  47. });

  48. ConfigManager.load = function() {
  49.     StorageManager.loadObject("config")
  50.         .then(config => this.applyData(config || {}))
  51.         .catch(() => 0)
  52.         .then(() => {
  53.             this._isLoaded = true;
  54.             return 0;
  55.         })
  56.         .catch(() => 0);
  57. };

  58. ConfigManager.save = function() {
  59.     StorageManager.saveObject("config", this.makeData());
  60. };

  61. ConfigManager.isLoaded = function() {
  62.     return this._isLoaded;
  63. };

  64. ConfigManager.makeData = function() {
  65.     const config = {};
  66.     config.alwaysDash = this.alwaysDash;
  67.     config.commandRemember = this.commandRemember;
  68.     config.touchUI = this.touchUI;
  69.     config.bgmVolume = this.bgmVolume;
  70.     config.bgsVolume = this.bgsVolume;
  71.     config.meVolume = this.meVolume;
  72.     config.seVolume = this.seVolume;
  73.     return config;
  74. };

  75. ConfigManager.applyData = function(config) {
  76.     this.alwaysDash = this.readFlag(config, "alwaysDash", false);
  77.     this.commandRemember = this.readFlag(config, "commandRemember", false);
  78.     this.touchUI = this.readFlag(config, "touchUI", true);
  79.     this.bgmVolume = this.readVolume(config, "bgmVolume");
  80.     this.bgsVolume = this.readVolume(config, "bgsVolume");
  81.     this.meVolume = this.readVolume(config, "meVolume");
  82.     this.seVolume = this.readVolume(config, "seVolume");
  83. };

  84. ConfigManager.readFlag = function(config, name, defaultValue) {
  85.     if (name in config) {
  86.         return !!config[name];
  87.     } else {
  88.         return defaultValue;
  89.     }
  90. };

  91. ConfigManager.readVolume = function(config, name) {
  92.     if (name in config) {
  93.         return Number(config[name]).clamp(0, 100);
  94.     } else {
  95.         return 100;
  96.     }
  97. };
复制代码

作者: 唐尨    时间: 2023-7-1 19:21
ex悠米桑 发表于 2023-7-1 18:11
我听说有二周目脚本,但是我自己没用过。

我是这么做二周目的,我在论坛下载了一个插件, 叫做全局变量( ...

原来如此,很感谢您的经验分享!学习到了!
作者: 唐尨    时间: 2023-7-1 19:24
小秋橙 发表于 2023-7-1 18:57
https://rpg.blue/forum.php?mod=redirect&goto=findpost&ptid=491557&pid=2962625&fromuid=2731820
可以参 ...

!非常感谢您!我试试!




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