Project1

标题: 如何在这个菜单里加入读取读取存档功能 [打印本页]

作者: rkjspb    时间: 2016-6-23 10:47
标题: 如何在这个菜单里加入读取读取存档功能
就是左上角保存功能的下方,加入个读取功能

顺便再问下如何拿掉右边人物的框和下方金钱的框。
在此提前谢谢各位的帮助
作者: rkjspb    时间: 2016-6-23 18:46
还有一点,请尽量不要使用插件,不过话说怎么没有大牛来帮忙啊,本人菜鸟
作者: iceBOXz    时间: 2016-6-23 18:59
如果不使用插件. .那就是要修改代碼了吶
  修改代碼不是比 用插件更麻煩嗎?
如果要改代碼.. 得另請一些真大神來解答

你的問題跟最近的一個帖很相似
https://rpg.blue/forum.php?mod=r ... 229&pid=2686386
作者: 在野月光    时间: 2016-6-23 20:25
楼上 +1
也可以试试以下:
JAVASCRIPT 代码复制
  1. /*
  2. ===================================================================================================================
  3.  ◆ 插入自定义参数 (新建)
  4. ===================================================================================================================
  5. */
  6. var MLC          =  {};                                             /* 创建变量 */   
  7. MLC.CREATE       =  Scene_Menu.prototype.create;                    /* 代入函数 */
  8. MLC.CCW          =  Scene_Menu.prototype.createCommandWindow;       /* 代入函数 */
  9. MLC.LoadName     =  '读取'                                          /* 创建变量 */
  10.  
  11. /*
  12. ===================================================================================================================
  13.  ◆ 在菜单场景内创建窗口 (重写)  <来源:rpg_scenes.js —— Scene_Menu >
  14. ===================================================================================================================
  15. */
  16. Scene_Menu.prototype.create = function() {
  17.         MLC.CREATE.call(this);                   /* 调入原函数(Scene_Menu.prototype.create) */
  18.         this._commandWindow.visible =  true;     /* 设置选项窗口的可视状态 */
  19.         this._goldWindow.visible    =  false;    /* 设置金币窗口的可视状态 */
  20.         this._statusWindow.visible  =  false;    /* 设置角色窗口的可视状态 */
  21. };
  22.  
  23. /*
  24. ===================================================================================================================
  25.  ◆ 制作指令选单 (重写)  <来源:rpg_windows.js —— Window_MenuCommand >
  26. ===================================================================================================================
  27. */
  28. Window_MenuCommand.prototype.makeCommandList = function() {        /* 以下排序与菜单场景的排版顺序同步 */
  29.     this.addMainCommands();                                        /* 原文 */
  30.     this.addFormationCommand();                                    /* 原文 */
  31.     this.addOriginalCommands();                                    /* 原文 */  
  32.     this.addOptionsCommand();                                      /* 原文 */   
  33.     this.addSaveCommand();                                         /* 原文 */
  34.         this.addLoadCommand(MLC.LoadName);                             /* 新增 '读取' 指令项 */
  35.     this.addGameEndCommand();                                      /* 原文 */   
  36. };
  37.  
  38. /*
  39. ===================================================================================================================
  40.  ◆ 在菜单场景内增加'读取'指令项 (新建)  <衔接位置:rpg_windows.js —— Window_MenuCommand >
  41. ===================================================================================================================
  42. */
  43. Window_MenuCommand.prototype.addLoadCommand = function(name) {
  44.     this.addCommand(name, 'load', true);                        /* 增加指令 */   
  45. };
  46.  
  47. /*
  48. ===================================================================================================================
  49.  ◆ 绑定菜单的'读取'事件 (新建)  <衔接位置:rpg_scenes.js —— Scene_Menu >
  50. ===================================================================================================================
  51. */
  52. Scene_Menu.prototype.createCommandWindow = function() {
  53.         MLC.CCW.call(this);                                                   /* 调入 */
  54.         this._commandWindow.setHandler('load', this.commandLoad.bind(this));  /* 绑定 */
  55. };
  56.  
  57. /*
  58. ===================================================================================================================
  59.  ◆ 执行'读取'命令 (新建)  <衔接位置:rpg_scenes.js —— Scene_Menu >
  60. ===================================================================================================================
  61. */
  62. Scene_Menu.prototype.commandLoad = function(){  
  63.         Scene_Title.prototype.commandContinue.call(this);        /* 调用标题画面的读档方法 */
  64. };





作者: rkjspb    时间: 2016-6-23 22:53
在野月光 发表于 2016-6-23 20:25
楼上 +1
也可以试试以下:

嗯,多谢提供这些代码,话说我现在还没有电脑不好测试代码,话说我还有一点小问题,还请不吝赐教。
就是如何把这个左上角的框移入右下角位置呢,应该改动那一部分的代码呢?还请给些有注解的代码说明一下,如果不会,也没有关系,能提供这些已经帮了我很大的忙了
作者: 在野月光    时间: 2016-6-24 07:25

右下角:
JAVASCRIPT 代码复制
  1. /* 指令项窗口的坐标X = 游戏画面宽度 - 指令项窗口宽度 */
  2.         this._commandWindow.x = Graphics.width   - this._commandWindow.width ;
  3.         /* 指令项窗口的坐标Y = 游戏画面高度 - 指令项窗口高度 */
  4.         this._commandWindow.y = Graphics.height  - this._commandWindow.height ;


上述代码衔接到 Scene_Menu.prototype.create 函数中。


作者: rkjspb    时间: 2016-6-24 08:37
在野月光 发表于 2016-6-24 07:25
右下角:

        /* 指令项窗口的坐标X = 游戏画面宽度 - 指令项窗口宽度 */

嘻嘻,麻烦再问一个问题,主要是我没有js的编程经验,平时都是用其他语言来写软件,最上面的那个声明自定义参数(新建)该在js里面该如何声明呢(大概那个位置)
作者: rkjspb    时间: 2016-6-24 08:38
在野月光 发表于 2016-6-24 07:25
右下角:

        /* 指令项窗口的坐标X = 游戏画面宽度 - 指令项窗口宽度 */

嘻嘻,麻烦再问一个问题,主要是我没有js的编程经验,平时都是用其他语言来写软件,最上面的那个声明自定义参数(新建)该在js里面该如何声明呢(大概那个位置)
作者: rkjspb    时间: 2016-6-25 13:19
在野月光 发表于 2016-6-23 20:25
楼上 +1
也可以试试以下:

为什么提示 “MLC.CREATE is undefined”
意思好像是未赋值
是我用错方法了吗?
作者: 在野月光    时间: 2016-6-25 18:05
本帖最后由 在野月光 于 2016-6-25 18:14 编辑

函数未定义。
应该是你把变量放哪了?
如果在function内,那是局部变量,
局部变量在其他位置调用就会说未定义了。
我是将MLC定义为对象(直接在window下),
可以跨脚本调用的。
另外假设:
你要用 A 提取ABC函数的返回值 ,
而需要在BCD中调用A。
而这个返回值还没到该定义或没到该创建的时候,
那么,BCD也不能先于ABC执行。
否则也会 undefined。
如果BCD必定先于ABC执行 ,
而ABC在后面又必定会执行。
那怎么给A设条件跳过undefined,
这...该难不倒楼主了吧

作者: 在野月光    时间: 2016-6-25 18:32
很多时候,new 一个构造函数
提取其下的this._xxx值也会undefined。
具体原因我也不清楚。
我对JS的认识仅停留在百度W3C...
所以,时下也习惯了直接var 一个对象(obj)去保存。
毕竟可以F8  用Object.keys(obj)去翻查。
相对于JS,个人对MV稍微熟悉点。
毕竟MV脚本有自己的结构和格式,
也可以参考VA,虽然眼下是封装的JS。
其实除非你要推翻MV的框架重写基层代码,
或者当初用MV的出发点只是为了更方便入门JS或是其他原因吧?
否则,关于MV的JS,用到的时候再去百度W3C就可以了。
就像从前看漫画,不认识的那个字再去查字典。
毕竟F8 给出的数据如果要单步跟进,就有够看的了。

作者: rkjspb    时间: 2016-6-25 18:49
在野月光 发表于 2016-6-25 18:05
函数未定义。
应该是你把变量放哪了?
如果在function内,那是局部变量,

额,所真的难倒了
请问老师能否把已经写好的两个文件共享给我,我看一下,顺便学习,抱歉成为了一个伸手党,不过因为没有接触过js,也只能这样了,文件能否发送到[email protected]
作者: rkjspb    时间: 2016-6-26 21:12
顶上去以免生效
作者: rkjspb    时间: 2016-6-28 18:07
在野月光 发表于 2016-6-24 07:25
右下角:

        /* 指令项窗口的坐标X = 游戏画面宽度 - 指令项窗口宽度 */

已经解决了,多谢老师帮忙,原来可以直接使用插件功能调用,我真是太笨了




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