Project1

标题: 如何将某增幅消耗品里面附加随机出现中毒等负面状态 [打印本页]

作者: wudilyj    时间: 2011-7-9 14:07
标题: 如何将某增幅消耗品里面附加随机出现中毒等负面状态
比如说:发臭的肉 增加HP500 然后在公共事件里面设置”中毒“ 结果一试就悲剧了 战斗测试中的猪脚使用加血后立刻进入中毒状态 怎么才能让出现负面状态的几率变小 比如10%?
作者: Kimu    时间: 2011-7-9 17:37
用变量代入,随机9
条件分歧如果变量=0
中毒
作者: fux2    时间: 2011-7-9 18:06
命中率这个数值您有注意吗?
作者: 中华素面    时间: 2011-7-9 18:40
把中毒的随机数调低就可以了
作者: wudilyj    时间: 2011-7-10 07:03
fux2 发表于 2011-7-9 18:06
命中率这个数值您有注意吗?

那加血就会miss=A=
作者: R-零    时间: 2011-7-10 13:15
本帖最后由 fux2 于 2011-7-10 16:08 编辑

#脚本修改: Project8.zip (202.35 KB, 下载次数: 6)
  1. #还是不会的加本人@@ 1349607750
  2. #==============================================================================
  3. # ■ Game_Battler (分割定义 4)
  4. #------------------------------------------------------------------------------
  5. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  6. # 超级类来使用。
  7. #==============================================================================

  8. class Game_Battler
  9.   #●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  10.   # 增加
  11.   $item_data = { 1 =>[3,100],#物品编号 => [附加状态,几率],
  12.           }
  13.   #●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  14.   #--------------------------------------------------------------------------
  15.   # ● 应用物品效果
  16.   #     item : 物品
  17.   #--------------------------------------------------------------------------
  18.   def item_effect(item)
  19.     # 清除会心一击标志
  20.     self.critical = false
  21.     # 物品的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
  22.     # 或者物品的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
  23.     if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or
  24.        ((item.scope == 5 or item.scope == 6) and self.hp >= 1)
  25.       # 过程结束
  26.       return false
  27.     end
  28.     # 清除有效标志
  29.     effective = false
  30.     # 公共事件 ID 是有效的情况下,设置为有效标志
  31.     effective |= item.common_event_id > 0
  32.     # 命中判定
  33.     hit_result = (rand(100) < item.hit)
  34.     # 不确定的特技的情况下设置为有效标志
  35.     effective |= item.hit < 100
  36.     # 命中的情况
  37.     if hit_result == true
  38.       ####状态变化,啦啦
  39.       #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  40.       d = $item_data[item.id]
  41.       if d != nil
  42.         st = d[0]
  43.         n = d[1]
  44.         if rand(100) < n
  45.           effective |= states_plus([st])
  46.         end
  47.       end
  48.       #●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  49.       # 计算回复量
  50.       recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
  51.       recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
  52.       if recover_hp < 0
  53.         recover_hp += self.pdef * item.pdef_f / 20
  54.         recover_hp += self.mdef * item.mdef_f / 20
  55.         recover_hp = [recover_hp, 0].min
  56.       end
  57.       # 属性修正
  58.       recover_hp *= elements_correct(item.element_set)
  59.       recover_hp /= 100
  60.       recover_sp *= elements_correct(item.element_set)
  61.       recover_sp /= 100
  62.       # 分散
  63.       if item.variance > 0 and recover_hp.abs > 0
  64.         amp = [recover_hp.abs * item.variance / 100, 1].max
  65.         recover_hp += rand(amp+1) + rand(amp+1) - amp
  66.       end
  67.       if item.variance > 0 and recover_sp.abs > 0
  68.         amp = [recover_sp.abs * item.variance / 100, 1].max
  69.         recover_sp += rand(amp+1) + rand(amp+1) - amp
  70.       end
  71.       # 回复量符号为负的情况下
  72.       if recover_hp < 0
  73.         # 防御修正
  74.         if self.guarding?
  75.           recover_hp /= 2
  76.         end
  77.       end
  78.       # HP 回复量符号的反转、设置伤害值
  79.       self.damage = -recover_hp
  80.       # HP 以及 SP 的回复
  81.       last_hp = self.hp
  82.       last_sp = self.sp
  83.       self.hp += recover_hp
  84.       self.sp += recover_sp
  85.       effective |= self.hp != last_hp
  86.       effective |= self.sp != last_sp
  87.       # 状态变化
  88.       @state_changed = false
  89.       effective |= states_plus(item.plus_state_set)
  90.       effective |= states_minus(item.minus_state_set)
  91.       # 能力上升值有效的情况下
  92.       if item.parameter_type > 0 and item.parameter_points != 0
  93.         # 能力值的分支
  94.         case item.parameter_type
  95.         when 1  # MaxHP
  96.           @maxhp_plus += item.parameter_points
  97.         when 2  # MaxSP
  98.           @maxsp_plus += item.parameter_points
  99.         when 3  # 力量
  100.           @str_plus += item.parameter_points
  101.         when 4  # 灵巧
  102.           @dex_plus += item.parameter_points
  103.         when 5  # 速度
  104.           @agi_plus += item.parameter_points
  105.         when 6  # 魔力
  106.           @int_plus += item.parameter_points
  107.         end
  108.         # 设置有效标志
  109.         effective = true
  110.       end
  111.       # HP 回复率与回复量为 0 的情况下
  112.       if item.recover_hp_rate == 0 and item.recover_hp == 0
  113.         # 设置伤害为空的字符串
  114.         self.damage = ""
  115.         # SP 回复率与回复量为 0、能力上升值无效的情况下
  116.         if item.recover_sp_rate == 0 and item.recover_sp == 0 and
  117.            (item.parameter_type == 0 or item.parameter_points == 0)
  118.           # 状态没有变化的情况下
  119.           unless @state_changed
  120.             # 伤害设置为 "Miss"
  121.             self.damage = "Miss"
  122.           end
  123.         end
  124.       end
  125.     # Miss 的情况下
  126.     else
  127.       # 伤害设置为 "Miss"
  128.       self.damage = "Miss"
  129.     end
  130.     # 不在战斗中的情况下
  131.     unless $game_temp.in_battle
  132.       # 伤害设置为 nil
  133.       self.damage = nil
  134.     end
  135.     # 过程结束
  136.     return effective
  137.   end
  138. end
复制代码

作者: 竹轩轩    时间: 2011-7-20 13:49
最简单的方法:创建一个公共事件,在公共事件中插”变量操作“选一个变量,再选随机数,填上范围。然后条件分支,当某变量等于多少多少,执行中毒指令。之后,再有副作用的消耗品那个”公共事件“选上刚才的设的那个公共事件就行了。另外,这个方法还可以制作随机得东西的宝箱。

jiao.jpg (40.11 KB, 下载次数: 2)

例:随机锦囊公共事件

例:随机锦囊公共事件

jid.jpg (26.55 KB, 下载次数: 2)

例:随机锦囊物品设置

例:随机锦囊物品设置

作者: aq5888123    时间: 2011-7-20 14:25
好吧,话说好久好久没来6R了。。。。
这一次就为这里做那么一丁点儿贡献吧。。。
话说,自己的坑还没完成呢,啊哈哈。。。。。
好吧,话不多说,献上刚出炉的范例,具体看事件如何设置。
上面的方法有的看得我头晕,故而为了方便才自己做个范例,
值得一提的是,范例里的随机量可自己设置,可增加也可减少
希望能看得懂。
如果想要持续中毒伤害的话,自己在状态里设置一下,很容易,所以便不说了
飘走~~~
                                                                               ——看雪留

Project2.rar

185.96 KB, 下载次数: 1






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1