Project1

标题: 系统菜单,金钱窗口大小调整? 插件变量自定义? [打印本页]

作者: king    时间: 2017-12-16 22:13
标题: 系统菜单,金钱窗口大小调整? 插件变量自定义?
本帖最后由 king 于 2017-12-16 22:40 编辑

我是修改默认系统菜单,加入 地名和声望
1.声望是用变量15来控制的,我希望变量15可以修改,例如变量20,但是每次都打开插件编辑?
怎么做和yep插件那种点击直接输入变量值就行,可以自定义变量值?方便别人使用


2.金钱窗口被挡住,我发现就是修改 Window_Gold插件 height,是不行的,数字和图标会被档,怎么弄?
3.想 Window_MenuCommand 想加个图标,然后一直提示bimp……显示图片怎么弄?





作者: 幻の飞鱼    时间: 2017-12-17 20:37
本帖最后由 幻の飞鱼 于 2017-12-17 20:46 编辑

第一个问题虽然不知道意义在哪里,声望这种东西不能在一个变量上解决吗?为什么要换?你非要这样的话

让声望 = $gameVariables.value($gameVariables.value(16))
你的变量16是X,声望就等于变量X了吧,比如X为20,声望就等于变量20。

第二个问题,你的空间看起来是不够默认的金钱窗口显示了,它的contents上下都要padding空间的,没法显示全
在窗口里加一个Sprite,不要自带的contents了,直接drawtext到这个新加的Sprite上,勉强可以显示的下
或者索性重写一个WINDOWS

第三个我理解就是在drawtext之前加一个 this.contents.bitmap.blt.......然后把drawtext里的Y往右移动一个图标的宽度







作者: 在野月光族    时间: 2017-12-17 22:02

1、描述不清晰。
初步估计是:已使用的变量分配给对应的角色并同步刷新(声望值)
如果是这样,
需要先将变量的编号与状态窗口中的角色序列进行关联。
比如
窗口角色 0 关联 变量15
窗口角色 1 关联 变量20
....
可以到Game_Actor 下进行关联,
然后菜单窗口选择角色时,触发的位置是:
Window_Selectable.prototype.select
在其下判断 this.constructor 等于Window_MenuStatus 时,
就可以同步更新声望值了。
2、基本如楼上朋友所述。
不过还可以在Scene_Menu下创建金钱窗口后,
同步更改窗口高度、Y轴、内边距、字体大小,
然后refresh 刷新。
3、描述不清晰。
初步估计是:
指令窗口的文字的左或右贴上图标?
诸如:
<图标> 人物信息
<图标> 调整队伍
… ??
如果是,
则需要将该指令窗口的函数drawText
最后的参数改为“left”或“riht”,
然后在该窗口的contents 里直接blt 图标。
不过如果图标不是“IconSet.png”里的图片,
那这个图标的图片还需要预加载
作者: 在野月光族    时间: 2017-12-18 01:10











JAVASCRIPT 代码复制
  1. // 修正指令写出位置,让窗口文字腾出空间。
  2. Window_MenuCommand.prototype.drawText = function(text, x, y, maxWidth, align) {
  3.         align = 'center' ;                 // 'left':居左、'center':居中、'right':居右
  4.     this.contents.drawText(text, x, y, maxWidth, this.lineHeight(), align);
  5. };
  6.  
  7. // 假设图片放到了 \img\faces 文件夹,以下就自带图片'Nature.png' 为例。
  8. var _sceneMenu_create = Scene_Menu.prototype.create;
  9. Scene_Menu.prototype.create = function() {
  10.         _sceneMenu_create.call(this);
  11.         ImageManager.reserveFace('Nature');                // 预读
  12. };
  13.  
  14. // 嵌入图标
  15. var  _sceneMenu_start = Scene_Menu.prototype.start;
  16. Scene_Menu.prototype.start = function() {
  17.         _sceneMenu_start.call(this);
  18.         var img = ImageManager.loadFace('Nature');                        // 加载
  19.         var cw = this._commandWindow;        // 提取指令窗口控制权
  20.         cw._list.forEach(function(c, i){                // 遍历指令
  21.                 var x = (i > 3? i%4 : i) * 144;                // 计算图片横向的纵切位置
  22.                 var y = (i > 3? 1 : 0) * 144;                        // 计算图片纵向的横切位置
  23.                 var oy = i * cw.lineHeight();                // 计算指令窗口贴图的Y轴位置
  24.  
  25.                 /* 将图标由原图的144×144压缩到35×35的大小。*/
  26.                 cw.contents.blt(img, x, y, 144, 144, 0, oy, 35, 35);          // 贴图。
  27.         });
  28. };




作者: king    时间: 2017-12-18 12:23
我把自己修改那些插件都关掉

把你的上面的代码 弄成插件放入游戏中,运行出现 提示找不到,F8显示这里出错

        ImageManager.reserveFace('Nature');

可我有这图片啊,默认工程啊……
作者: 在野月光族    时间: 2017-12-18 13:59

这都是MV自带的,不是我凭空编出来的啊。



MV一般会在Scene_Boot里预读。
Window方面的预读也就封装了一下,
不过调用的也是这一类的方法。
个人是习惯写到Create。
我这边是MV1.5.0 for Win7



作者: king    时间: 2017-12-18 17:12
本帖最后由 king 于 2017-12-18 17:27 编辑

我把这段
// 假设图片放到了 \img\faces 文件夹,以下就自带图片'Nature.png' 为例。
var _sceneMenu_create = Scene_Menu.prototype.create;
Scene_Menu.prototype.create = function() {
        _sceneMenu_create.call(this);
        ImageManager.reserveFace('Nature');                // 预读
};

去掉就可以了,我想要原因可能是:这Face系统设定是要检查人物角色的,但是我这是纯指令菜单,没有人物信息,所以显示找不到…

很诡异的,必须把角色1的头像设定成Nature这图,才会显示图片


求一段正常显示图片的代码,就是img\pictures

作者: king    时间: 2017-12-18 17:18
第一问题:其实是这样的,我就想知道,怎么写代码? 才能像YEP这样,就是我可以在软件的编辑器里面,输入变量的值,而不是打开插件再编辑
JAVASCRIPT 代码复制
  1. Window_Value.prototype.refresh = function() {
  2.     var x = this.textPadding();
  3.     var width = this.contents.width - this.textPadding() * 2;
  4.     this.contents.clear();
  5.         this.drawIcon(225, 0, 0);
  6.     this.drawTextEx("声望:"+$gameVariables.value(15), 40, 0);
  7. };


例如这个 $gameVariables.value(15)  里面的15,是可以通过编辑器来修改的,





作者: 幻の飞鱼    时间: 2017-12-18 17:34
低版本没预读,都是用监听来做了,可能1.5加了预读
我现在也是做多个文件监听做的烦的要死
1.5总算解决了这个问题啊
作者: 在野月光族    时间: 2017-12-18 18:28
本帖最后由 在野月光族 于 2017-12-18 18:46 编辑



读图那里试试这个模式:







作者: 灰白君    时间: 2017-12-21 03:01
厉害,大佬就是大佬,我这人不会JS,怎么办,我想跟你们一起学习!
作者: Fan723    时间: 2018-1-19 23:51
不知道楼主的插件修改好了没有?突然想在菜单加入个声望显示,可否请分享一下你的成果。拜谢!
作者: king    时间: 2018-1-20 10:25
声望显示
具体看插件内容
A_Window_Value.rar (1.13 KB, 下载次数: 28, 售价: 1 星屑)
作者: Fan723    时间: 2018-1-20 13:22
本帖最后由 Fan723 于 2018-1-20 13:23 编辑

我给你修改成可自定义变量、位置、显示文本及图标的了,给你公开地发上来吧。
A_Window_Value.rar (1.42 KB, 下载次数: 162)


作者: KTE    时间: 2018-1-21 08:31
大佬读取存档是怎么加上去的?

作者: zwlele1980    时间: 2020-4-24 18:28
想在菜单除了声望 在加一个 游戏时间的窗口怎么办啊
作者: 472453497    时间: 2020-4-25 07:29
zwlele1980 发表于 2020-4-24 18:28
想在菜单除了声望 在加一个 游戏时间的窗口怎么办啊

mog自定义主菜单  插件,你需要这个。。
作者: PLeaseS    时间: 2020-4-25 10:46
事  件  菜  单
作者: beethoventk    时间: 2020-5-9 12:49
想做个名望系统,搞不懂咋弄




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