设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1399|回复: 5
打印 上一主题 下一主题

[有事请教] 关于替换地图显示名称的插件代码问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
82
在线时间
10 小时
注册时间
2020-10-23
帖子
3
跳转到指定楼层
1
发表于 2021-9-3 09:43:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
最近几天在学习编写插件,我找到“切换地图时,左上角显示地图名称”功能的相关代码,并复制粘贴进行了修改。达到了在屏幕中央提示地图名称的效果。

很奇怪的是,如果我把插件命名成NewMapName.js,这个插件就会正确生效,如果我把插件命名成cfw_MapName.js,这个插件就没法正常实现效果,(直接就不显示地图名称了)但是并没有报错。
我觉得跟Sence_Map那几行代码有关,但是不知道原因以及解决方法,还希望大佬解答。


JAVASCRIPT 代码复制
  1. /*:
  2. @author cfw
  3. @plugindesc 切换地图时,居中显示地图名称
  4. @help
  5.         切换地图时,在屏幕中央使用窗口显示当前地图名称。
  6.         默认显示150帧。
  7.         但是不会劫持用户操作,在显示窗口的时候可以乱跑,所以需要优化。
  8.  
  9. @param conTime
  10. @desc 控制地图名窗口显示时间,默认150
  11. @default 150
  12. */
  13.  
  14. //获取变量
  15. Window_NewMapName.params = PluginManager.parameters('NewMapName');
  16. Window_NewMapName.conTime = +Window_NewMapName.params['conTime']
  17.  
  18. //定义函数
  19. function Window_NewMapName() {
  20.     this.initialize.apply(this, arguments);
  21. }
  22.  
  23. Window_NewMapName.prototype = Object.create(Window_Base.prototype);
  24. Window_NewMapName.prototype.constructor = Window_NewMapName;
  25.  
  26. Window_NewMapName.prototype.initialize = function () {
  27.     var wight = this.windowWidth();
  28.     var height = this.windowHeight();
  29.     var x = this.windowX();
  30.     var y = this.windowY();
  31.     Window_Base.prototype.initialize.call(this, x, y, wight, height);
  32.     this.opacity = 0;
  33.     this.contentsOpacity = 0;
  34.     this._showCount = 0;
  35.     this.refresh();
  36. };
  37.  
  38. Window_NewMapName.prototype.windowX = function () {
  39.     var width = this.windowWidth();
  40.     x = (816 - width) / 2
  41.     return x;
  42. }
  43.  
  44. Window_NewMapName.prototype.windowY = function () {
  45.     var height = this.windowHeight();
  46.     y = (624 - height) / 2
  47.     return y;
  48. }
  49.  
  50. Window_NewMapName.prototype.windowWidth = function () {
  51.     return 360;
  52. };
  53.  
  54. Window_NewMapName.prototype.windowHeight = function () {
  55.     return this.fittingHeight(1);
  56. };
  57.  
  58. Window_NewMapName.prototype.update = function () {
  59.     Window_Base.prototype.update.call(this);
  60.     if (this._showCount > 0 && $gameMap.isNameDisplayEnabled()) {
  61.         this.updateFadeIn();
  62.         this._showCount--;
  63.     } else {
  64.         this.updateFadeOut();
  65.     }
  66. };
  67.  
  68. Window_NewMapName.prototype.updateFadeIn = function () {
  69.     this.contentsOpacity += 16;
  70.     this.opacity += 16;
  71. };
  72.  
  73. Window_NewMapName.prototype.updateFadeOut = function () {
  74.     this.contentsOpacity -= 16;
  75.     this.opacity -= 16;
  76. };
  77.  
  78. Window_NewMapName.prototype.open = function () {
  79.     this.refresh();
  80.     this._showCount = Window_NewMapName.conTime;
  81. };
  82.  
  83. Window_NewMapName.prototype.close = function () {
  84.     this._showCount = 0;
  85. };
  86.  
  87. Window_NewMapName.prototype.refresh = function () {
  88.     this.contents.clear();
  89.     if ($gameMap.displayName()) {
  90.         var width = this.contentsWidth();
  91.         this.drawText($gameMap.displayName(), 0, 0, width, 'center');
  92.     }
  93. };
  94. //对rpg_scenes.js中Scene_Map进行修改,启用cfw_MapName
  95. Scene_Map.prototype.createDisplayObjects = function () {
  96.     this.createSpriteset();
  97.     this.createNewMapNameWindow();
  98.     this.createWindowLayer();
  99.     this.createAllWindows();
  100. };
  101.  
  102. Scene_Map.prototype.createNewMapNameWindow = function () {
  103.     this._mapNameWindow = new Window_NewMapName();
  104.     this.addChild(this._mapNameWindow);
  105. };

Lv4.逐梦者

梦石
0
星屑
7089
在线时间
722 小时
注册时间
2021-3-5
帖子
821
2
发表于 2021-9-3 09:56:57 | 只看该作者
跟这一行有关:
Window_NewMapName.params = PluginManager.parameters('NewMapName');

楼主如果修改插件文件名,一定要同步修改这个参数才行的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
82
在线时间
10 小时
注册时间
2020-10-23
帖子
3
3
 楼主| 发表于 2021-9-3 10:05:49 | 只看该作者
RyanYe 发表于 2021-9-3 09:56
跟这一行有关:
Window_NewMapName.params = PluginManager.parameters('NewMapName');

我淦,原来是这个原因,谢谢老哥!
还想请教下,,如果在显示窗口的时候劫持用户操作呢。。我想达到等待地图名提示消失后才能操作人物的效果
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7089
在线时间
722 小时
注册时间
2021-3-5
帖子
821
4
发表于 2021-9-3 22:27:00 | 只看该作者
caofan2020 发表于 2021-9-3 10:05
我淦,原来是这个原因,谢谢老哥!
还想请教下,,如果在显示窗口的时候劫持用户操作呢。。我想 ...

那样玩家不得烦死你啊
你确定要这样设计吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
82
在线时间
10 小时
注册时间
2020-10-23
帖子
3
5
 楼主| 发表于 2021-9-3 23:18:43 | 只看该作者
RyanYe 发表于 2021-9-3 22:27
那样玩家不得烦死你啊
你确定要这样设计吗?

没事的,做个怀旧向游戏。。问题不大。。
就想类似于文本窗口,只对回车键生效。
我想让这个窗口会缓慢淡出,然后按回车键的话会提前消失。。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7089
在线时间
722 小时
注册时间
2021-3-5
帖子
821
6
发表于 2021-9-4 11:09:00 | 只看该作者
caofan2020 发表于 2021-9-3 23:18
没事的,做个怀旧向游戏。。问题不大。。
就想类似于文本窗口,只对回车键生效。
我想让这个窗口 ...

如果你要使用回车键的话,那就不能用这个插件了
可以使用yep的YEP_ButtonCommonEvents和SRD的SRD_HUDMaker

我先默认楼主听说过这2个插件,就不做过多解释了哈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 17:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表