查看: 1252|回复: 3

合成系统怎样一次性合出多件物品?

  [复制链接]

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2009-1-9 07:17:33 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
脚本大概不用全发上来吧……
下面是原来某人改过的,有一定几率合出两件:具体是某某人不记得了……
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]版务信息:本贴由楼主自主结贴~
梦石
0
星屑
1408
在线时间
831 小时
注册时间
2007-12-25
回帖
1406
发表于 2009-1-9 19:30:21 | 显示全部楼层
改了一下,直接复制过去就可以了

  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 取余) %
主要是你出了这么多分!

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
精卫赤龙腾    九
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程    夜
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     神
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    尊
只是带着一种决心,去争取残存的最后的希望。
回复

使用道具 举报

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

 楼主| 发表于 2009-1-12 06:17:28 | 显示全部楼层
不行呃,合成之后还是只有一件东西呃
回复

使用道具 举报

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

 楼主| 发表于 2009-1-12 06:27:29 | 显示全部楼层
我自己建了个新工程发现可以呃,不知道是不是哪里有冲突了,不过这还真奇怪呃``
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部