Project1

标题: 普通攻击时回复MP值要怎么做? [打印本页]

作者: 灬心魔o    时间: 2011-7-5 11:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: Wind2010    时间: 2011-7-5 12:34
如果没有对默认系统做出修改(修改成普通攻击能对敌多体进行攻击)的话,可以直接在Game_Battler 3里的普通攻击里进行修改
作者: 菜鸟飞呀飞    时间: 2011-7-5 12:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灬心魔o    时间: 2011-7-5 14:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 277297575    时间: 2011-7-5 15:51
Game_Battler 3
-def attack_effect(attacker)
     # 命中的情况下
    if hit_result == true
     a =rand(2)
       a==1 ? attacker.sp += 2 : attacker.sp += 1
看不见你的图,但是估计这样就成。
    有100%回1点和50%回2点的情况下,或然率都是50%.

作者: Wind2010    时间: 2011-7-5 16:05
  1. class Game_Battler
  2.   def attack_effect(attacker)
  3.     # 清除会心一击标志
  4.     self.critical = false
  5.     # 第一命中判定
  6.     hit_result = (rand(100) < attacker.hit)
  7.     # 命中的情况下
  8.     if hit_result == true
  9.       # 计算基本伤害
  10.       atk = [attacker.atk - self.pdef / 2, 0].max
  11.       self.damage = atk * (20 + attacker.str) / 20
  12.       # 属性修正
  13.       self.damage *= elements_correct(attacker.element_set)
  14.       self.damage /= 100
  15.       # 伤害符号正确的情况下
  16.       if self.damage > 0
  17.         # 会心一击修正
  18.         if rand(100) < 4 * attacker.dex / self.agi
  19.           self.damage *= 2
  20.           self.critical = true
  21.         end
  22.         # 防御修正
  23.         if self.guarding?
  24.           self.damage /= 2
  25.         end
  26.       end
  27.       # 分散
  28.       if self.damage.abs > 0
  29.         amp = [self.damage.abs * 15 / 100, 1].max
  30.         self.damage += rand(amp+1) + rand(amp+1) - amp
  31.       end
  32.       # 第二命中判定
  33.       eva = 8 * self.agi / attacker.dex + self.eva
  34.       hit = self.damage < 0 ? 100 : 100 - eva
  35.       hit = self.cant_evade? ? 100 : hit
  36.       hit_result = (rand(100) < hit)
  37.     end
  38.     # 命中的情况下
  39.     if hit_result == true
  40.       # 增加攻击者MP
  41.       attacker.sp += rand(2)
  42.       # 状态冲击解除
  43.       remove_states_shock
  44.       # HP 的伤害计算
  45.       self.hp -= self.damage
  46.       # 状态变化
  47.       @state_changed = false
  48.       states_plus(attacker.plus_state_set)
  49.       states_minus(attacker.minus_state_set)
  50.     # Miss 的情况下
  51.     else
  52.       # 伤害设置为 "Miss"
  53.       self.damage = "Miss"
  54.       # 清除会心一击标志
  55.       self.critical = false
  56.     end
  57.     # 过程结束
  58.     return true
  59.   end
  60. end
复制代码

作者: 灬心魔o    时间: 2011-7-5 16:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 菜鸟飞呀飞    时间: 2011-7-5 18:58
提示: 作者被禁止或删除 内容自动屏蔽




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