Project1
标题: 请问该如何删去菜单装备栏中的三个更装选项? [打印本页]
作者: 应答 时间: 2021-5-28 03:12
标题: 请问该如何删去菜单装备栏中的三个更装选项? 如图上的「更换装备」等三个选项,如何删去呢?
我尝试在Window_EquipStatus、Window_Command、Window_Slot与Scene_Equip中删去了这三个选项本身与形成它们的窗口,然后手动调整了装备栏窗口及其内部文字的大小,效果如附件图片所示。
但是,这么做以后,一旦打开装备就无法进行任何操作,包括光标选中,返回。
之后,我在Scene_Equip中找到了
#--------------------------------------------------------------------------
# ● 指令“更换装备”
#--------------------------------------------------------------------------
def command_equip
@slot_window .activate
@slot_window .select ( 0 )
end
#--------------------------------------------------------------------------
# ● 指令“更换装备”
#--------------------------------------------------------------------------
def command_equip
@slot_window .activate
@slot_window .select ( 0 )
end
然后,我又打开了Scene_Menu,写了一个def command_equipped,然后把command_personal的四个@复制到了我的equipped里。
#--------------------------------------------------------------------------
# ● 指令“技能”“装备”“状态”
#--------------------------------------------------------------------------
def command_personal
@status_window .select_last
@status_window .activate
@status_window .set_handler ( :ok , method( :on_personal_ok ) )
@status_window .set_handler ( :cancel , method( :on_personal_cancel ) )
end
#--------------------------------------------------------------------------
# ● 指令“技能”“装备”“状态”
#--------------------------------------------------------------------------
def command_personal
@status_window .select_last
@status_window .activate
@status_window .set_handler ( :ok , method( :on_personal_ok ) )
@status_window .set_handler ( :cancel , method( :on_personal_cancel ) )
end
接着调整了同样在Scene_Menu里的内容,就是上面的
@command_window .set_handler ( :equip , method( :command_personal ) )
@command_window .set_handler ( :equip , method( :command_personal ) )
我把它改成了method(:command_equipped)。
接下来,command_equip里面的两个@被我复制到了我的command_equipped里面。
#--------------------------------------------------------------------------
# ● 指令“装备”
#--------------------------------------------------------------------------
def command_equipped
@status_window .select_last
@status_window .activate
@status_window .set_handler ( :ok , method( :on_personal_ok ) )
@status_window .set_handler ( :cancel , method( :on_personal_cancel ) )
@slot_window .activate
@slot_window .select ( 0 )
end
#--------------------------------------------------------------------------
# ● 指令“装备”
#--------------------------------------------------------------------------
def command_equipped
@status_window .select_last
@status_window .activate
@status_window .set_handler ( :ok , method( :on_personal_ok ) )
@status_window .set_handler ( :cancel , method( :on_personal_cancel ) )
@slot_window .activate
@slot_window .select ( 0 )
end
然后进入游戏,点开装备选项后就报错了。
我的描述不是很好,如果有dalao能直接解决问题的话可以忽略上述文字,直接解决问题本身就好,我也没有脚本基础,就只能自己乱来了TAT
QQ截图20210528025744.png
(242.79 KB, 下载次数: 27)
QQ截图20210528030018.png
(210.26 KB, 下载次数: 28)
作者: alexncf125 时间: 2021-5-28 08:07
本帖最后由 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
作者: 应答 时间: 2021-5-31 00:37
因为脚本才刚学一点点,改这个基本上靠连蒙带猜
作者: 应答 时间: 2021-5-31 01:21
嗯……遇到一个新问题,方便的话可以再解答一下么。
我把你的
@slot_window.height += @command_window.height 复制代码
改成了
@slot_window.height == @status_window.height 复制代码
然后在Window_EquipSlot中修改了draw_item方法的一些参数,改变了装备栏文字与图标的位置,看起来更加美观。但是光标选择并没有和文字一起改变位置。
我尝试寻找装备界面中有关光标选择的语句,但翻遍window的Equip相关和Scene_Equip也只找到了
def command_equip
@slot_window .activate
@slot_window .select ( 0 )
end
def command_equip
@slot_window .activate
@slot_window .select ( 0 )
end
这种。
我点开Window_Selectable,看到了有关「项目高度」「高度」和「光标位置」的方法,但是他们的语句让我毫无头绪,不知道从何改起。
#--------------------------------------------------------------------------
# ● 获取项目的高度
#--------------------------------------------------------------------------
def item_height
line_height
end
#--------------------------------------------------------------------------
# ● 设置高度
#--------------------------------------------------------------------------
def height=( height)
super
update_padding
end
#--------------------------------------------------------------------------
# ● 设置光标位置
#--------------------------------------------------------------------------
def index=( index)
@index = index
update_cursor
call_update_help
end
#--------------------------------------------------------------------------
# ● 获取项目的高度
#--------------------------------------------------------------------------
def item_height
line_height
end
#--------------------------------------------------------------------------
# ● 设置高度
#--------------------------------------------------------------------------
def height=( height)
super
update_padding
end
#--------------------------------------------------------------------------
# ● 设置光标位置
#--------------------------------------------------------------------------
def index=( index)
@index = index
update_cursor
call_update_help
end
所以,该如何实现光标位置的下移呢?
QQ截图20210531011416.png
(268.61 KB, 下载次数: 28)
作者: alexncf125 时间: 2021-5-31 08:42
本帖最后由 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方法的一些参数"移走
作者: 应答 时间: 2021-5-31 20:35
是我误改了,神奇的是,我改回来后发现二者的效果一样……不知道怎么回事。
你的改法完全符合我的构想。大感谢。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1