Project1
标题:
合成系统怎样一次性合出多件物品?
[打印本页]
作者:
弗雷德
时间:
2009-1-9 07:17
标题:
合成系统怎样一次性合出多件物品?
脚本大概不用全发上来吧……
下面是原来某人改过的,有一定几率合出两件:具体是某某人不记得了……
def make
if have
if rand(100) < @craft_rand
if rand(49) < (@craft_rand-10)/2 - 1
result_number = 2
else
result_number = 1
end
case @result_type
when 0
$game_party.gain_item(@result, result_number)
recipe_name=$data_items[@result].name
when 1
$game_party.gain_armor(@result, result_number)
recipe_name=$data_armors[@result].name
when 2
$game_party.gain_weapon(@result, result_number)
recipe_name=$data_weapons[@result].name
end
$game_system.se_play($data_system.save_se)
$make_text = "提炼成功!得到『" + recipe_name + "』× #{result_number}"
else
$game_system.se_play($data_system.buzzer_se)
$make_text = "提炼失败(><)!"
end
decrement
end
end
我的目的是想做到合成时可以根据合成成功率一次性合出多件物品,比如某包子的合成成功率是300,那么一次就能合出3个包子,就是这个意思,请问各位大虾,具体该怎么改呢? [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
九夜神尊
时间:
2009-1-9 19:30
改了一下,直接复制过去就可以了
def make
if have
if rand(100) < @craft_rand
n = @craft_rand/100
n = n.to_i
result_number = n
result_number +=1 if rand(100) < (@craft_rand %100)
case @result_type
when 0
$game_party.gain_item(@result, result_number)
recipe_name=$data_items[@result].name
when 1
$game_party.gain_armor(@result, result_number)
recipe_name=$data_armors[@result].name
when 2
$game_party.gain_weapon(@result, result_number)
recipe_name=$data_weapons[@result].name
end
$game_system.se_play($data_system.save_se)
$make_text = "提炼成功!得到『" + recipe_name + "』× #{result_number}"
else
$game_system.se_play($data_system.buzzer_se)
$make_text = "提炼失败(><)!"
end
decrement
end
end
复制代码
其中公式为 如果成功率为 250 ,那么就是50%得到2个 50% 3个
只有成功率 小于100%才可能失败
[具体东西就在前几行 概率/100 取整 +( 概率/100 取余) %
主要是你出了这么多分!
[LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
弗雷德
时间:
2009-1-12 06:17
不行呃,合成之后还是只有一件东西呃
作者:
弗雷德
时间:
2009-1-12 06:27
我自己建了个新工程发现可以呃,不知道是不是哪里有冲突了,不过这还真奇怪呃``
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1