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

Project1

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

[已经解决] 请问该如何删去菜单装备栏中的三个更装选项?

[复制链接]

Lv2.观梦者

梦石
0
星屑
282
在线时间
45 小时
注册时间
2021-5-25
帖子
49
跳转到指定楼层
1
发表于 2021-5-28 03:12:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如图上的「更换装备」等三个选项,如何删去呢?
我尝试在Window_EquipStatus、Window_Command、Window_Slot与Scene_Equip中删去了这三个选项本身与形成它们的窗口,然后手动调整了装备栏窗口及其内部文字的大小,效果如附件图片所示。
但是,这么做以后,一旦打开装备就无法进行任何操作,包括光标选中,返回。
之后,我在Scene_Equip中找到了
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 指令“更换装备”
  3.   #--------------------------------------------------------------------------
  4.   def command_equip
  5.     @slot_window.activate
  6.     @slot_window.select(0)
  7.   end

然后,我又打开了Scene_Menu,写了一个def command_equipped,然后把command_personal的四个@复制到了我的equipped里。
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 指令“技能”“装备”“状态”
  3.   #--------------------------------------------------------------------------
  4.   def command_personal
  5.     @status_window.select_last
  6.     @status_window.activate
  7.     @status_window.set_handler(:ok,     method(:on_personal_ok))
  8.     @status_window.set_handler(:cancel, method(:on_personal_cancel))
  9.   end

接着调整了同样在Scene_Menu里的内容,就是上面的
RUBY 代码复制
  1. @command_window.set_handler(:equip,     method(:command_personal))

我把它改成了method(:command_equipped)。
接下来,command_equip里面的两个@被我复制到了我的command_equipped里面。
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 指令“装备”
  3.   #--------------------------------------------------------------------------
  4.   def command_equipped
  5.     @status_window.select_last
  6.     @status_window.activate
  7.     @status_window.set_handler(:ok,     method(:on_personal_ok))
  8.     @status_window.set_handler(:cancel, method(:on_personal_cancel))
  9.     @slot_window.activate
  10.     @slot_window.select(0)
  11.   end

然后进入游戏,点开装备选项后就报错了。
我的描述不是很好,如果有dalao能直接解决问题的话可以忽略上述文字,直接解决问题本身就好,我也没有脚本基础,就只能自己乱来了TAT

QQ截图20210528025744.png (242.79 KB, 下载次数: 21)

QQ截图20210528025744.png

QQ截图20210528030018.png (210.26 KB, 下载次数: 24)

QQ截图20210528030018.png

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
来自 2楼
发表于 2021-5-28 08:07:40 | 只看该作者
本帖最后由 alexncf125 于 2021-5-28 08:09 编辑

所以为什么你认为可以在Scene_Menu调用@slot_window

class Scene_Equip < Scene_MenuBase
  alias date_20210528_start start
  def start
    date_20210528_start
    @command_window.hide.deactivate
    command_equip
  end
  alias date_20210528_create_slot_window create_slot_window
  def create_slot_window
    date_20210528_create_slot_window
    @slot_window.y -= @command_window.height
    @slot_window.height += @command_window.height
    @slot_window.set_handler(:cancel,   method(:return_scene))
  end
end

评分

参与人数 2星屑 +100 +1 收起 理由
VIPArcher + 100 认可答案
应答 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
282
在线时间
45 小时
注册时间
2021-5-25
帖子
49
3
 楼主| 发表于 2021-5-31 00:37:51 | 只看该作者
alexncf125 发表于 2021-5-28 08:07
所以为什么你认为可以在Scene_Menu调用@slot_window

class Scene_Equip < Scene_MenuBase

因为脚本才刚学一点点,改这个基本上靠连蒙带猜
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
282
在线时间
45 小时
注册时间
2021-5-25
帖子
49
4
 楼主| 发表于 2021-5-31 01:21:55 | 只看该作者
alexncf125 发表于 2021-5-28 08:07
所以为什么你认为可以在Scene_Menu调用@slot_window

class Scene_Equip < Scene_MenuBase

嗯……遇到一个新问题,方便的话可以再解答一下么。
我把你的
  1. @slot_window.height += @command_window.height
复制代码

改成了
  1. @slot_window.height == @status_window.height
复制代码

然后在Window_EquipSlot中修改了draw_item方法的一些参数,改变了装备栏文字与图标的位置,看起来更加美观。但是光标选择并没有和文字一起改变位置。
我尝试寻找装备界面中有关光标选择的语句,但翻遍window的Equip相关和Scene_Equip也只找到了
RUBY 代码复制
  1. def command_equip
  2.     @slot_window.activate
  3.     @slot_window.select(0)
  4.   end

这种。
我点开Window_Selectable,看到了有关「项目高度」「高度」和「光标位置」的方法,但是他们的语句让我毫无头绪,不知道从何改起。
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取项目的高度
  3.   #--------------------------------------------------------------------------
  4.   def item_height
  5.     line_height
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● 设置高度
  9.   #--------------------------------------------------------------------------
  10.   def height=(height)
  11.     super
  12.     update_padding
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 设置光标位置
  16.   #--------------------------------------------------------------------------
  17.   def index=(index)
  18.     @index = index
  19.     update_cursor
  20.     call_update_help
  21.   end

所以,该如何实现光标位置的下移呢?

QQ截图20210531011416.png (268.61 KB, 下载次数: 19)

QQ截图20210531011416.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
5
发表于 2021-5-31 08:42:11 | 只看该作者
本帖最后由 alexncf125 于 2021-5-31 08:44 编辑

你说你把...改成了@slot_window.height == @status_window.height
正确应该是改成@slot_window.height = @status_window.height
不知是这儿打多了个=号, 还是真的误改成了==

至于排版的话, 我只知道这样改, 可能与你想要的效果不同
class Window_EquipSlot < Window_Selectable
  alias add_standard_padding standard_padding
  def standard_padding
    r = add_standard_padding
    r += 12
    return r
  end
end
p.s.要测试这段脚本, 请先把之前"在Window_EquipSlot中修改了draw_item方法的一些参数"移走

评分

参与人数 1+1 收起 理由
应答 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
282
在线时间
45 小时
注册时间
2021-5-25
帖子
49
6
 楼主| 发表于 2021-5-31 20:35:37 | 只看该作者
alexncf125 发表于 2021-5-31 08:42
你说你把...改成了@slot_window.height == @status_window.height
正确应该是改成@slot_window.height = @s ...

是我误改了,神奇的是,我改回来后发现二者的效果一样……不知道怎么回事。

你的改法完全符合我的构想。大感谢。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 02:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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