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

Project1

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

[已经解决] 如何多掉几个宝物

[复制链接]

Lv4.逐梦者

梦石
0
星屑
13647
在线时间
3853 小时
注册时间
2013-7-18
帖子
2314
跳转到指定楼层
1
发表于 2013-8-25 14:24:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
默认只能选一个呀?

点评

那个应该不是本脚本内容了……  发表于 2013-8-25 18:23
山岚野人,快人快语,礼数不周,还望海涵....

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
2
发表于 2013-8-25 14:27:40 | 只看该作者
在多个敌人都有可掉落的物品时,战斗后可能得到多个物品
但是一个敌人只能设置一个掉落物品…

点评

只有这个办法了么,我看见脚本里最多可以掉6个是怎么回事  发表于 2013-8-25 18:37
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
3
发表于 2013-8-25 14:31:09 | 只看该作者
有一种笨办法,比如幽灵
在数据库敌人中多复制几个幽灵,并且掉包不同,在队伍设置的时候把不同的幽灵同时加进来。
这就是多格掉宝

点评

只有这个办法了么,我看见脚本里最多可以掉6个是怎么回事  发表于 2013-8-25 15:01
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1350
在线时间
275 小时
注册时间
2011-3-18
帖子
40
4
发表于 2013-8-25 17:09:48 | 只看该作者
敌人可掉4种宝物设定方法

脚本功能
将敌人可能掉落的宝物从1种增加到最多4种

使用方法
用法: 将脚本复制后插入到Main前面,然后修改数据库设定

数据库设定:
敌人名称一栏,在名称后添加 宝物2 宝物3 宝物4,各项之间用逗号隔开
宝物名格式: (I|W|A)数字
I W A对应 道具 武器 防具,比如I144就是道具144号
如果省略其中某项,则默认取前一项
如果省略,则默认全部掉落宝物1(也就是数据库"宝物"一栏设定的东西)
例:
幽灵,A2,I32,A3
则除了默认设定的宝物以外,额外掉落:防具2号(第2格),道具32号(第3格),防具3号(第4格)
哥布林,,W1
则除了默认设定的宝物以外,额外掉落:默认宝物(第2格),武器1号(第3格),武器1号(第4格)

冲突可能: RTAB(重定义start_phase5), 战斗特殊效果(利用敌人名称做了偷窃)

脚本设定:见脚本前面的注释


如图:

脚本如下:
RUBY 代码复制
  1. #==============================================================================
  2.  
  3. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  4.  
  5. #==============================================================================
  6.  
  7. # ============================================================================
  8.  
  9. # 四格掉宝设定 by SailCat
  10.  
  11. # ============================================================================
  12.  
  13. # 脚本使用说明:
  14.  
  15. # 1.复制后插入到Main前面
  16.  
  17. # 2.数据库设定额外掉宝的概率,在敌人名称那里
  18.  
  19. #   格式: 敌人名称,宝物2,宝物3,宝物4
  20.  
  21. #   宝物写法: (I|W|A)n 分别对应: n号道具,n号武器,n号防具 I W A必须大写
  22.  
  23. #   例: Cockatrice,A5,I5,W3
  24.  
  25. #       Fishman,I2,I3
  26.  
  27. #   三栏中任一栏留空不写时,取前一格的设定,全都不写时,取默认宝物设定
  28.  
  29. # 3.186行是四格概率比设定,在那里填上4个数字就可以更改概率了,该行内容:
  30.  
  31. #         rarity = [178, 51, 15, 12]
  32.  
  33. # ============================================================================
  34.  
  35.  
  36. #--------------------------------------------------------------------------
  37.  
  38. # □ RPG::Enemy
  39.  
  40. #--------------------------------------------------------------------------
  41.  
  42. module RPG
  43.  
  44. class Enemy
  45.  
  46.    def name
  47.  
  48.      name = @name.split(/,/)[0]
  49.  
  50.      return name != nil ? name : ""
  51.  
  52.    end
  53.  
  54.    def treasure2
  55.  
  56.      treasure = @name.split(/,/)[1]
  57.  
  58.      return treasure.to_s
  59.  
  60.    end
  61.  
  62.    def treasure3
  63.  
  64.      treasure = @name.split(/,/)[2]
  65.  
  66.      return treasure.to_s
  67.  
  68.    end
  69.  
  70.    def treasure4
  71.  
  72.      treasure = @name.split(/,/)[3]
  73.  
  74.      return treasure.to_s
  75.  
  76.    end
  77.  
  78. end
  79.  
  80. end
  81.  
  82.  
  83. #==============================================================================
  84.  
  85. # ■ Game_Enemy
  86.  
  87. #------------------------------------------------------------------------------
  88.  
  89. #  处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
  90.  
  91. # 内部使用。
  92.  
  93. #==============================================================================
  94.  
  95. class Game_Enemy < Game_Battler
  96.  
  97. #--------------------------------------------------------------------------
  98.  
  99. # ● 获取物品 ID2
  100.  
  101. #--------------------------------------------------------------------------
  102.  
  103. def item2_id
  104.  
  105.    if $data_enemies[@enemy_id].treasure2 == ""
  106.  
  107.      return item_id
  108.  
  109.    elsif $data_enemies[@enemy_id].treasure2[0,1] != "I"
  110.  
  111.      return 0
  112.  
  113.    else
  114.  
  115.      return $data_enemies[@enemy_id].treasure2[/[0-9]+/].to_i
  116.  
  117.    end
  118.  
  119. end
  120.  
  121. #--------------------------------------------------------------------------
  122.  
  123. # ● 获取武器 ID2
  124.  
  125. #--------------------------------------------------------------------------
  126.  
  127. def weapon2_id
  128.  
  129.    if $data_enemies[@enemy_id].treasure2 == ""
  130.  
  131.      return weapon_id
  132.  
  133.    elsif $data_enemies[@enemy_id].treasure2[0,1] != "W"
  134.  
  135.      return 0
  136.  
  137.    else
  138.  
  139.      return $data_enemies[@enemy_id].treasure2[/[0-9]+/].to_i
  140.  
  141.    end
  142.  
  143. end
  144.  
  145. #--------------------------------------------------------------------------
  146.  
  147. # ● 获取防具 ID2
  148.  
  149. #--------------------------------------------------------------------------
  150.  
  151. def armor2_id
  152.  
  153.    if $data_enemies[@enemy_id].treasure2 == ""
  154.  
  155.      return armor_id
  156.  
  157.    elsif $data_enemies[@enemy_id].treasure2[0,1] != "A"
  158.  
  159.      return 0
  160.  
  161.    else
  162.  
  163.      return $data_enemies[@enemy_id].treasure2[/[0-9]+/].to_i
  164.  
  165.    end
  166.  
  167. end
  168.  
  169. #--------------------------------------------------------------------------
  170.  
  171. # ● 获取物品 ID3
  172.  
  173. #--------------------------------------------------------------------------
  174.  
  175. def item3_id
  176.  
  177.    if $data_enemies[@enemy_id].treasure3 == ""
  178.  
  179.      return item2_id
  180.  
  181.    elsif $data_enemies[@enemy_id].treasure3[0,1] != "I"
  182.  
  183.      return 0
  184.  
  185.    else
  186.  
  187.      return $data_enemies[@enemy_id].treasure3[/[0-9]+/].to_i
  188.  
  189.    end
  190.  
  191. end
  192.  
  193. #--------------------------------------------------------------------------
  194.  
  195. # ● 获取武器 ID3
  196.  
  197. #--------------------------------------------------------------------------
  198.  
  199. def weapon3_id
  200.  
  201.    if $data_enemies[@enemy_id].treasure3 == ""
  202.  
  203.      return weapon2_id
  204.  
  205.    elsif $data_enemies[@enemy_id].treasure3[0,1] != "W"
  206.  
  207.      return 0
  208.  
  209.    else
  210.  
  211.      return $data_enemies[@enemy_id].treasure3[/[0-9]+/].to_i
  212.  
  213.    end
  214.  
  215. end
  216.  
  217. #--------------------------------------------------------------------------
  218.  
  219. # ● 获取防具 ID3
  220.  
  221. #--------------------------------------------------------------------------
  222.  
  223. def armor3_id
  224.  
  225.    if $data_enemies[@enemy_id].treasure3 == ""
  226.  
  227.      return armor2_id
  228.  
  229.    elsif $data_enemies[@enemy_id].treasure3[0,1] != "A"
  230.  
  231.      return 0
  232.  
  233.    else
  234.  
  235.      return $data_enemies[@enemy_id].treasure3[/[0-9]+/].to_i
  236.  
  237.    end
  238.  
  239. end
  240.  
  241. #--------------------------------------------------------------------------
  242.  
  243. # ● 获取物品 ID4
  244.  
  245. #--------------------------------------------------------------------------
  246.  
  247. def item4_id
  248.  
  249.    if $data_enemies[@enemy_id].treasure4 == ""
  250.  
  251.      return item3_id
  252.  
  253.    elsif $data_enemies[@enemy_id].treasure4[0,1] != "I"
  254.  
  255.      return 0
  256.  
  257.    else
  258.  
  259.      return $data_enemies[@enemy_id].treasure4[/[0-9]+/].to_i
  260.  
  261.    end
  262.  
  263. end
  264.  
  265. #--------------------------------------------------------------------------
  266.  
  267. # ● 获取武器 ID4
  268.  
  269. #--------------------------------------------------------------------------
  270.  
  271. def weapon4_id
  272.  
  273.    if $data_enemies[@enemy_id].treasure4 == ""
  274.  
  275.      return weapon3_id
  276.  
  277.    elsif $data_enemies[@enemy_id].treasure4[0,1] != "W"
  278.  
  279.      return 0
  280.  
  281.    else
  282.  
  283.      return $data_enemies[@enemy_id].treasure4[/[0-9]+/].to_i
  284.  
  285.    end
  286.  
  287. end
  288.  
  289. #--------------------------------------------------------------------------
  290.  
  291. # ● 获取防具 ID4
  292.  
  293. #--------------------------------------------------------------------------
  294.  
  295. def armor4_id
  296.  
  297.    if $data_enemies[@enemy_id].treasure4 == ""
  298.  
  299.      return armor3_id
  300.  
  301.    elsif $data_enemies[@enemy_id].treasure4[0,1] != "A"
  302.  
  303.      return 0
  304.  
  305.    else
  306.  
  307.      return $data_enemies[@enemy_id].treasure4[/[0-9]+/].to_i
  308.  
  309.    end
  310.  
  311. end
  312.  
  313. end
  314.  
  315.  
  316. #==============================================================================
  317.  
  318. # ■ Scene_Battle
  319.  
  320. #------------------------------------------------------------------------------
  321.  
  322. #  处理战斗画面的类。
  323.  
  324. #==============================================================================
  325.  
  326. class Scene_Battle
  327.  
  328. #--------------------------------------------------------------------------
  329.  
  330. # ● 开始结束战斗回合
  331.  
  332. #--------------------------------------------------------------------------
  333.  
  334. def start_phase5
  335.  
  336.    # 转移到回合 5
  337.  
  338.    @phase = 5
  339.  
  340.    # 演奏战斗结束 ME
  341.  
  342.    $game_system.me_play($game_system.battle_end_me)
  343.  
  344.    # 还原为战斗开始前的 BGM
  345.  
  346.    $game_system.bgm_play($game_temp.map_bgm)
  347.  
  348.    # 初始化 EXP、金钱、宝物
  349.  
  350.    exp = 0
  351.  
  352.    gold = 0
  353.  
  354.    treasures = []
  355.  
  356.    # 循环
  357.  
  358.    for enemy in $game_troop.enemies
  359.  
  360.      # 敌人不是隐藏状态的情况下
  361.  
  362.      unless enemy.hidden
  363.  
  364.        # 获得 EXP、增加金钱
  365.  
  366.        exp += enemy.exp
  367.  
  368.        gold += enemy.gold
  369.  
  370.        # 出现宝物判定
  371.  
  372.        if rand(100) < enemy.treasure_prob
  373.  
  374.          rarity = [178, 51, 15, 12]
  375.  
  376.          case rand(rarity[0] + rarity[1] + rarity[2] + rarity[3])
  377.  
  378.          when 0..rarity[0] - 1
  379.  
  380.            if enemy.item_id > 0
  381.  
  382.              treasures.push($data_items[enemy.item_id])
  383.  
  384.            end
  385.  
  386.            if enemy.weapon_id > 0
  387.  
  388.             treasures.push($data_weapons[enemy.weapon_id])
  389.  
  390.            end
  391.  
  392.            if enemy.armor_id > 0
  393.  
  394.              treasures.push($data_armors[enemy.armor_id])
  395.  
  396.            end
  397.  
  398.          when rarity[0]..rarity[0] + rarity[1] - 1
  399.  
  400.            if enemy.item2_id > 0
  401.  
  402.              treasures.push($data_items[enemy.item2_id])
  403.  
  404.            end
  405.  
  406.            if enemy.weapon2_id > 0
  407.  
  408.             treasures.push($data_weapons[enemy.weapon2_id])
  409.  
  410.            end
  411.  
  412.            if enemy.armor2_id > 0
  413.  
  414.              treasures.push($data_armors[enemy.armor2_id])
  415.  
  416.            end
  417.  
  418.          when rarity[0] + rarity[1]..rarity[0] + rarity[1] + rarity[2] - 1
  419.  
  420.            if enemy.item3_id > 0
  421.  
  422.              treasures.push($data_items[enemy.item3_id])
  423.  
  424.            end
  425.  
  426.            if enemy.weapon3_id > 0
  427.  
  428.             treasures.push($data_weapons[enemy.weapon3_id])
  429.  
  430.            end
  431.  
  432.            if enemy.armor3_id > 0
  433.  
  434.              treasures.push($data_armors[enemy.armor3_id])
  435.  
  436.            end
  437.  
  438.          else
  439.  
  440.            if enemy.item4_id > 0
  441.  
  442.              treasures.push($data_items[enemy.item4_id])
  443.  
  444.            end
  445.  
  446.            if enemy.weapon4_id > 0
  447.  
  448.             treasures.push($data_weapons[enemy.weapon4_id])
  449.  
  450.            end
  451.  
  452.            if enemy.armor4_id > 0
  453.  
  454.              treasures.push($data_armors[enemy.armor4_id])
  455.  
  456.            end
  457.  
  458.          end
  459.  
  460.        end
  461.  
  462.      end
  463.  
  464.    end
  465.  
  466.    # 限制宝物数为 8 个
  467.  
  468.    treasures = treasures[0..7]
  469.  
  470.    # 获得 EXP
  471.  
  472.    for i in 0...$game_party.actors.size
  473.  
  474.      actor = $game_party.actors[i]
  475.  
  476.      if actor.cant_get_exp? == false
  477.  
  478.        last_level = actor.level
  479.  
  480.        actor.exp += exp
  481.  
  482.        if actor.level > last_level
  483.  
  484.          @status_window.level_up(i)
  485.  
  486.        end
  487.  
  488.      end
  489.  
  490.    end
  491.  
  492.    # 获得金钱
  493.  
  494.    $game_party.gain_gold(gold)
  495.  
  496.    # 获得宝物
  497.  
  498.    for item in treasures
  499.  
  500.      case item
  501.  
  502.      when RPG::Item
  503.  
  504.        $game_party.gain_item(item.id, 1)
  505.  
  506.      when RPG::Weapon
  507.  
  508.        $game_party.gain_weapon(item.id, 1)
  509.  
  510.      when RPG::Armor
  511.  
  512.        $game_party.gain_armor(item.id, 1)
  513.  
  514.      end
  515.  
  516.    end
  517.  
  518.    # 生成战斗结果窗口
  519.  
  520.    @result_window = Window_BattleResult.new(exp, gold, treasures)
  521.  
  522.    # 设置等待计数
  523.  
  524.    @phase5_wait_count = 100
  525.  
  526. end
  527.  
  528. end
  529.  
  530.  
  531. #==============================================================================
  532.  
  533. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  534.  
  535. #==============================================================================

点评

这个名字前的N和一竖是什么意思?  发表于 2013-8-25 18:14
好的,辛苦你了  发表于 2013-8-25 18:11

评分

参与人数 1星屑 +70 收起 理由
弗雷德 + 70 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

笑问情缘

梦石
0
星屑
73
在线时间
238 小时
注册时间
2006-5-3
帖子
640
5
发表于 2013-8-28 12:07:41 手机端发表。 | 只看该作者
其实用明雷的话比较好解决,条件分歧,胜利后代入一个变量还可以随机获得宝物
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 16:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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