Project1
标题:
如何將商店選單中的購買分為物品與裝備兩類?
[打印本页]
作者:
冷徹心扉
时间:
2015-11-17 14:12
标题:
如何將商店選單中的購買分為物品與裝備兩類?
因為不想讓購買清單太長,所以想把原本的商店選單
【購買 賣出 取消】
改成
【物品 裝備 賣出】
有無方法讓商店選單中的購買項目
自動分類為物品與裝備兩種呢?
作者:
梦无笙
时间:
2015-11-17 16:52
这很简单啦,叔叔教你一个简单的办法。
首先在Window_ShopBuy这个脚本里
找到这几行:
if item != nil
@data.push(item)
end
复制代码
改为:
if item != nil
if $game_switches[1] == true #这是一个判定开关,你可以改为其它闲置的。
@data.push(item) if item.is_a?(RPG::Item)
else
@data.push(item) unless item.is_a?(RPG::Item)
end
end
复制代码
然后在Scene_Shop这个脚本里
找到
def create_command_window
end
复制代码
将其中的内容替换为:
s1 = "物品"
s2 = "装备"
s3 = "卖出"
@command_window = Window_Command.new(384, [s1, s2, s3], 3)
@command_window.y = 56
if $game_temp.shop_purchase_only
@command_window.draw_item(1, false)
end
复制代码
接着找到
def update_command_selection
end
复制代码
将其中的内容替换为:
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
case @command_window.index
when 0 # 物品
$game_switches[1] = true #这里的这个开关还有下面的那一个与之前的开关是一致的。
Sound.play_decision
@command_window.active = false
@dummy_window.visible = false
@buy_window.active = true
@buy_window.visible = true
@buy_window.refresh
@status_window.visible = true
when 1 # 装备
$game_switches[1] = false
Sound.play_decision
@command_window.active = false
@dummy_window.visible = false
@buy_window.active = true
@buy_window.visible = true
@buy_window.refresh
@status_window.visible = true
when 2 # 卖出
if $game_temp.shop_purchase_only
Sound.play_buzzer
else
Sound.play_decision
@command_window.active = false
@dummy_window.visible = false
@sell_window.active = true
@sell_window.visible = true
@sell_window.refresh
end
end
end
复制代码
这样就可以了。
作者:
梦无笙
时间:
2015-11-18 15:55
本帖最后由 梦无笙 于 2015-11-18 15:56 编辑
卖出卡死的问题是我疏忽了。
这样来解决:
在Scene_Shop脚本中找到
def cancel_number_input
end
复制代码
其中的内容,把
when 0
when 1
改为
when 0,1
when 2
找到
def decide_number_input
end
复制代码
其中的内容,把
when 0
when 1
改为
when 0,1
when 2
这样就可以了。
另外提供一个切换窗口时把光标自动切回第一个物品的方法
在我2L提供的代码的最后一段,在
when 0
when 1
下各加一句:
@buy_window.index = 0
作者:
梦无笙
时间:
2015-11-20 04:21
有几个地方需要改动以达到“嗯,就是不用點選進去交易列表 (購買、賣出、離開那一排) 就能顯示出底下的商品清單 ”这样的效果
改动全在“Scene_Shop”脚本里。
1:在脚本最开始,
def start-super
下添加一句:
$game_switches[1] = true
;
2:找到:
if @command_window.active - update_command_selection
,在其下添加以下代码:
case @command_window.index
when 0
$game_switches[1] = true
@sell_window.visible = false
@buy_window.refresh
@buy_window.visible = true
when 1
$game_switches[1] = false
@sell_window.visible = false
@buy_window.refresh
@buy_window.visible = true
when 2
@sell_window.refresh
@sell_window.visible = true
@buy_window.visible = false
end
复制代码
3:为了避免在窗口切换时有闪烁,找到
def update_buy_selection
,其下有一句
if Input.trigger?(Input::B) - end
,
将其中的
@buy_window.visible = false
注释掉;
找到
def update_sell_selection - elsif
, 将其中的
@buy_window.visible = false
注释掉;
4:为了避免窗口重叠,将该脚本中所有包含
@dummy_window
的语句注释掉。
如有问题,即使反馈。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1