Project1
标题: 整合物品掉落显示的菜鸟想法 [打印本页]
作者: shinsuzaku 时间: 2014-8-13 00:36
标题: 整合物品掉落显示的菜鸟想法
本帖最后由 shinsuzaku 于 2014-9-4 09:39 编辑
之前问过一个问题,当N个怪物掉落相同物品时,有没有办法整合显示,一开始想用数组,结果4个小时没有解决问题,最后脑筋一开想到Object一试,不到10分钟搞定……简直惨这是……
可能这个方式比较不效率,期待有高手能给出更效率的方法
修改的代码在BattleManager的329行 重写self.gain_drop_items方法
def self.gain_drop_items
items = {}
for i in $game_troop.make_drop_items
if items[i]
items[i] += 1
else
items[i] = 1
end
end
for k in items
$game_party.gain_item(k[0], k[1])
$game_message.add(sprintf(Vocab::ObtainItem,k[1], k[0].name))
end
wait_for_message
end
def self.gain_drop_items
items = {}
for i in $game_troop.make_drop_items
if items[i]
items[i] += 1
else
items[i] = 1
end
end
for k in items
$game_party.gain_item(k[0], k[1])
$game_message.add(sprintf(Vocab::ObtainItem,k[1], k[0].name))
end
wait_for_message
end
然后修改Vocab第39行的显示信息
效果如下:
首先看一下掉率
打败敌人后的信息显示
作者: taroxd 时间: 2014-8-13 08:01
本帖最后由 taroxd 于 2014-8-13 08:05 编辑
我就来给个效率更低的,未测试的,卖萌用的
这段东西就在战斗结束的时候偶尔执行,完全不用考虑效率的,放心吧
def self.gain_drop_items
$game_troop.make_drop_item.group_by {|i| i }.each do |item, arr|
amount = arr.size
$game_party.gain_item(item, amount)
$game_message.add("获得了#{amount}个#{item.name}!")
wait_for_message
end
end
def self.gain_drop_items
$game_troop.make_drop_item.group_by {|i| i }.each do |item, arr|
amount = arr.size
$game_party.gain_item(item, amount)
$game_message.add("获得了#{amount}个#{item.name}!")
wait_for_message
end
end
作者: 千夙 时间: 2014-8-13 11:53
这不是灌水哦,别抢我的糖路过带走
作者: 彩虹色的猪 时间: 2014-8-18 12:17
楼主的脚本使用后虽然显示了获得道具,但结果物品栏里并没有增加道具-。-
二楼的使用后报错,错误如图
作者: shinsuzaku 时间: 2014-8-20 22:00
彩虹色的猪 发表于 2014-8-18 12:17
楼主的脚本使用后虽然显示了获得道具,但结果物品栏里并没有增加道具-。-
二楼的使用后报错,错误如图
...
啊确实有错,要修改
339行的k[0].id改成k[0]就可以了
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |