设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1464|回复: 5
打印 上一主题 下一主题

[已经解决] 【XP】请问怪物物品掉落只能设置一种嘛?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
101
在线时间
86 小时
注册时间
2011-12-11
帖子
194
跳转到指定楼层
1
发表于 2012-1-1 18:25:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我需要一种怪物有机会掉落三种不同物品 概率要分别不同···

Lv2.观梦者

梦石
0
星屑
448
在线时间
628 小时
注册时间
2011-9-27
帖子
3996
2
发表于 2012-1-1 19:03:39 | 只看该作者
如何设置多掉宝? ,地址里的5楼有详细介绍脚本使用方法
http://rpg.blue/forum.php?mod=vi ... =%E6%8E%89%E5%AE%9D
  1. #==============================================================================

  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息

  3. #==============================================================================

  4. # ============================================================================

  5. # 四格掉宝设定 by SailCat

  6. # ============================================================================

  7. # 脚本使用说明:

  8. # 1.复制后插入到Main前面

  9. # 2.数据库设定额外掉宝的概率,在敌人名称那里

  10. #   格式: 敌人名称,宝物2,宝物3,宝物4

  11. #   宝物写法: (I|W|A)n 分别对应: n号道具,n号武器,n号防具 I W A必须大写

  12. #   例: Cockatrice,A5,I5,W3

  13. #       Fishman,I2,I3

  14. #   三栏中任一栏留空不写时,取前一格的设定,全都不写时,取默认宝物设定

  15. # 3.186行是四格概率比设定,在那里填上4个数字就可以更改概率了,该行内容:

  16. #         rarity = [178, 51, 15, 12]

  17. # ============================================================================


  18. #--------------------------------------------------------------------------

  19. # □ RPG::Enemy

  20. #--------------------------------------------------------------------------

  21. module RPG

  22. class Enemy

  23.    def name

  24.      name = @name.split(/,/)[0]

  25.      return name != nil ? name : ""

  26.    end

  27.    def treasure2

  28.      treasure = @name.split(/,/)[1]

  29.      return treasure.to_s

  30.    end

  31.    def treasure3

  32.      treasure = @name.split(/,/)[2]

  33.      return treasure.to_s

  34.    end

  35.    def treasure4

  36.      treasure = @name.split(/,/)[3]

  37.      return treasure.to_s

  38.    end

  39. end

  40. end


  41. #==============================================================================

  42. # ■ Game_Enemy

  43. #------------------------------------------------------------------------------

  44. #  处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的

  45. # 内部使用。

  46. #==============================================================================

  47. class Game_Enemy < Game_Battler

  48. #--------------------------------------------------------------------------

  49. # ● 获取物品 ID2

  50. #--------------------------------------------------------------------------

  51. def item2_id

  52.    if $data_enemies[@enemy_id].treasure2 == ""

  53.      return item_id

  54.    elsif $data_enemies[@enemy_id].treasure2[0,1] != "I"

  55.      return 0

  56.    else

  57.      return $data_enemies[@enemy_id].treasure2[/[0-9]+/].to_i

  58.    end

  59. end

  60. #--------------------------------------------------------------------------

  61. # ● 获取武器 ID2

  62. #--------------------------------------------------------------------------

  63. def weapon2_id

  64.    if $data_enemies[@enemy_id].treasure2 == ""

  65.      return weapon_id

  66.    elsif $data_enemies[@enemy_id].treasure2[0,1] != "W"

  67.      return 0

  68.    else

  69.      return $data_enemies[@enemy_id].treasure2[/[0-9]+/].to_i

  70.    end

  71. end

  72. #--------------------------------------------------------------------------

  73. # ● 获取防具 ID2

  74. #--------------------------------------------------------------------------

  75. def armor2_id

  76.    if $data_enemies[@enemy_id].treasure2 == ""

  77.      return armor_id

  78.    elsif $data_enemies[@enemy_id].treasure2[0,1] != "A"

  79.      return 0

  80.    else

  81.      return $data_enemies[@enemy_id].treasure2[/[0-9]+/].to_i

  82.    end

  83. end

  84. #--------------------------------------------------------------------------

  85. # ● 获取物品 ID3

  86. #--------------------------------------------------------------------------

  87. def item3_id

  88.    if $data_enemies[@enemy_id].treasure3 == ""

  89.      return item2_id

  90.    elsif $data_enemies[@enemy_id].treasure3[0,1] != "I"

  91.      return 0

  92.    else

  93.      return $data_enemies[@enemy_id].treasure3[/[0-9]+/].to_i

  94.    end

  95. end

  96. #--------------------------------------------------------------------------

  97. # ● 获取武器 ID3

  98. #--------------------------------------------------------------------------

  99. def weapon3_id

  100.    if $data_enemies[@enemy_id].treasure3 == ""

  101.      return weapon2_id

  102.    elsif $data_enemies[@enemy_id].treasure3[0,1] != "W"

  103.      return 0

  104.    else

  105.      return $data_enemies[@enemy_id].treasure3[/[0-9]+/].to_i

  106.    end

  107. end

  108. #--------------------------------------------------------------------------

  109. # ● 获取防具 ID3

  110. #--------------------------------------------------------------------------

  111. def armor3_id

  112.    if $data_enemies[@enemy_id].treasure3 == ""

  113.      return armor2_id

  114.    elsif $data_enemies[@enemy_id].treasure3[0,1] != "A"

  115.      return 0

  116.    else

  117.      return $data_enemies[@enemy_id].treasure3[/[0-9]+/].to_i

  118.    end

  119. end

  120. #--------------------------------------------------------------------------

  121. # ● 获取物品 ID4

  122. #--------------------------------------------------------------------------

  123. def item4_id

  124.    if $data_enemies[@enemy_id].treasure4 == ""

  125.      return item3_id

  126.    elsif $data_enemies[@enemy_id].treasure4[0,1] != "I"

  127.      return 0

  128.    else

  129.      return $data_enemies[@enemy_id].treasure4[/[0-9]+/].to_i

  130.    end

  131. end

  132. #--------------------------------------------------------------------------

  133. # ● 获取武器 ID4

  134. #--------------------------------------------------------------------------

  135. def weapon4_id

  136.    if $data_enemies[@enemy_id].treasure4 == ""

  137.      return weapon3_id

  138.    elsif $data_enemies[@enemy_id].treasure4[0,1] != "W"

  139.      return 0

  140.    else

  141.      return $data_enemies[@enemy_id].treasure4[/[0-9]+/].to_i

  142.    end

  143. end

  144. #--------------------------------------------------------------------------

  145. # ● 获取防具 ID4

  146. #--------------------------------------------------------------------------

  147. def armor4_id

  148.    if $data_enemies[@enemy_id].treasure4 == ""

  149.      return armor3_id

  150.    elsif $data_enemies[@enemy_id].treasure4[0,1] != "A"

  151.      return 0

  152.    else

  153.      return $data_enemies[@enemy_id].treasure4[/[0-9]+/].to_i

  154.    end

  155. end

  156. end


  157. #==============================================================================

  158. # ■ Scene_Battle

  159. #------------------------------------------------------------------------------

  160. #  处理战斗画面的类。

  161. #==============================================================================

  162. class Scene_Battle

  163. #--------------------------------------------------------------------------

  164. # ● 开始结束战斗回合

  165. #--------------------------------------------------------------------------

  166. def start_phase5

  167.    # 转移到回合 5

  168.    @phase = 5

  169.    # 演奏战斗结束 ME

  170.    $game_system.me_play($game_system.battle_end_me)

  171.    # 还原为战斗开始前的 BGM

  172.    $game_system.bgm_play($game_temp.map_bgm)

  173.    # 初始化 EXP、金钱、宝物

  174.    exp = 0

  175.    gold = 0

  176.    treasures = []

  177.    # 循环

  178.    for enemy in $game_troop.enemies

  179.      # 敌人不是隐藏状态的情况下

  180.      unless enemy.hidden

  181.        # 获得 EXP、增加金钱

  182.        exp += enemy.exp

  183.        gold += enemy.gold

  184.        # 出现宝物判定

  185.        if rand(100) < enemy.treasure_prob

  186.          rarity = [178, 51, 15, 12]

  187.          case rand(rarity[0] + rarity[1] + rarity[2] + rarity[3])

  188.          when 0..rarity[0] - 1

  189.            if enemy.item_id > 0

  190.              treasures.push($data_items[enemy.item_id])

  191.            end

  192.            if enemy.weapon_id > 0

  193.             treasures.push($data_weapons[enemy.weapon_id])

  194.            end

  195.            if enemy.armor_id > 0

  196.              treasures.push($data_armors[enemy.armor_id])

  197.            end

  198.          when rarity[0]..rarity[0] + rarity[1] - 1

  199.            if enemy.item2_id > 0

  200.              treasures.push($data_items[enemy.item2_id])

  201.            end

  202.            if enemy.weapon2_id > 0

  203.             treasures.push($data_weapons[enemy.weapon2_id])

  204.            end

  205.            if enemy.armor2_id > 0

  206.              treasures.push($data_armors[enemy.armor2_id])

  207.            end

  208.          when rarity[0] + rarity[1]..rarity[0] + rarity[1] + rarity[2] - 1

  209.            if enemy.item3_id > 0

  210.              treasures.push($data_items[enemy.item3_id])

  211.            end

  212.            if enemy.weapon3_id > 0

  213.             treasures.push($data_weapons[enemy.weapon3_id])

  214.            end

  215.            if enemy.armor3_id > 0

  216.              treasures.push($data_armors[enemy.armor3_id])

  217.            end

  218.          else

  219.            if enemy.item4_id > 0

  220.              treasures.push($data_items[enemy.item4_id])

  221.            end

  222.            if enemy.weapon4_id > 0

  223.             treasures.push($data_weapons[enemy.weapon4_id])

  224.            end

  225.            if enemy.armor4_id > 0

  226.              treasures.push($data_armors[enemy.armor4_id])

  227.            end

  228.          end

  229.        end

  230.      end

  231.    end

  232.    # 限制宝物数为 8 个

  233.    treasures = treasures[0..7]

  234.    # 获得 EXP

  235.    for i in 0...$game_party.actors.size

  236.      actor = $game_party.actors[i]

  237.      if actor.cant_get_exp? == false

  238.        last_level = actor.level

  239.        actor.exp += exp

  240.        if actor.level > last_level

  241.          @status_window.level_up(i)

  242.        end

  243.      end

  244.    end

  245.    # 获得金钱

  246.    $game_party.gain_gold(gold)

  247.    # 获得宝物

  248.    for item in treasures

  249.      case item

  250.      when RPG::Item

  251.        $game_party.gain_item(item.id, 1)

  252.      when RPG::Weapon

  253.        $game_party.gain_weapon(item.id, 1)

  254.      when RPG::Armor

  255.        $game_party.gain_armor(item.id, 1)

  256.      end

  257.    end

  258.    # 生成战斗结果窗口

  259.    @result_window = Window_BattleResult.new(exp, gold, treasures)

  260.    # 设置等待计数

  261.    @phase5_wait_count = 100

  262. end

  263. end


  264. #==============================================================================

  265. # 本脚本来自www.66RPG.com,使用和转载请保留此信息

  266. #==============================================================================
复制代码
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1323
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
3
发表于 2012-1-2 16:55:42 | 只看该作者
你看也不看,一套脚本砸上去,这东西可以用事件啊,新人就是要磨练一下。
知道脚本好用了,然后又不会写脚本的人会怎么样
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复

使用道具 举报

Lv1.梦旅人

饕餮

梦石
0
星屑
222
在线时间
677 小时
注册时间
2011-5-9
帖子
486
4
发表于 2012-1-2 22:59:11 | 只看该作者
简单的事件多掉宝制作方法:

先数据库中设置一个BOSS,然后在数据库中再多设置几个怪物,然后除了BOSS之外的怪物都设置为“中途出现”,将BOSS设置为“不死之身”,最后在战斗事件中设置一个“当BOSSHP低于1%” 事件内容:敌人出现 把所有事先中途出现的怪物召唤出来,也就是敌人出现中将所有怪物(会掉落物品)调出来,再更改敌人状态为“不能战斗”。

每个怪物掉落一个物品,那么8个怪物就是掉落8个了,最多也就是掉落8个物品。
无冲突,设置简单,不需要任何脚本的多掉宝  很不错哦!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
101
在线时间
86 小时
注册时间
2011-12-11
帖子
194
5
 楼主| 发表于 2012-1-3 13:01:10 | 只看该作者
九夜神尊 发表于 2012-1-2 16:55
你看也不看,一套脚本砸上去,这东西可以用事件啊,新人就是要磨练一下。
知道脚本好用了,然后又不会写脚 ...

对对对 我就不会写小本!不对 脚本···
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
101
在线时间
86 小时
注册时间
2011-12-11
帖子
194
6
 楼主| 发表于 2012-1-3 13:01:59 | 只看该作者
526832541 发表于 2012-1-2 22:59
简单的事件多掉宝制作方法:

先数据库中设置一个BOSS,然后在数据库中再多设置几个怪物,然后除了BOSS之外 ...

那怪物会不会出来打我啊
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-28 03:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表