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
改了一下,直接复制过去就可以了

  1. def make
  2.   if have
  3.      if rand(100) < @craft_rand  
  4.      n =  @craft_rand/100
  5.      n = n.to_i
  6.      result_number = n
  7.      result_number +=1 if rand(100) < (@craft_rand %100)
  8.       case @result_type
  9.        when 0
  10.          $game_party.gain_item(@result, result_number)
  11.          recipe_name=$data_items[@result].name
  12.        when 1
  13.          $game_party.gain_armor(@result, result_number)
  14.          recipe_name=$data_armors[@result].name
  15.        when 2
  16.          $game_party.gain_weapon(@result, result_number)
  17.          recipe_name=$data_weapons[@result].name
  18.        end
  19.        $game_system.se_play($data_system.save_se)
  20.        $make_text = "提炼成功!得到『" + recipe_name + "』× #{result_number}"
  21.      else
  22.        $game_system.se_play($data_system.buzzer_se)
  23.        $make_text = "提炼失败(><)!"
  24.      end
  25.      decrement
  26.    end
  27. 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