查看: 2259|回复: 2

[已经过期] 体力吸收效果

[复制链接]
梦石
0
星屑
1461
在线时间
815 小时
注册时间
2013-8-3
回帖
355
发表于 2015-12-9 23:35:20 | 显示全部楼层 |阅读模式

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

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

×
体力吸收默认吸收伤害的100%,谁会把体力吸收改成吸收20%伤害吗?

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000
梦石
0
星屑
75
在线时间
345 小时
注册时间
2011-10-13
回帖
380
发表于 2015-12-10 00:45:31 | 显示全部楼层
{:2_276:}善用搜索和图书馆功能,里面就有怎么解决你这个问题的方法

点评

你没插Taroxd的前置脚本吧,去复制一下插到这个脚本上面  发表于 2015-12-12 00:24
设置特性的地方只能添加系统的功能,下面有个备注,我把<drain 100>写进去没效果,我认为是我的比例表达输入错了,“r”这个数比例该怎么表达?   发表于 2015-12-11 09:10
使用方法:在可以设置“特性”的地方备注 <drain r>。其中 r 为吸血的比例。 这个看不懂么,照着上面写的去写个备注不就能用了么  发表于 2015-12-11 01:13
……脚本第二行到第四行说的那么清楚,你都不知道怎么用,那我真没办法教你了  发表于 2015-12-11 01:12
开始找到过,弄了一下没效果,可能是不会用!又不敢回复挖坟,能教我用?  发表于 2015-12-11 00:22
回复

使用道具 举报

漾夕☽星化残月☾

梦石
0
星屑
8611
在线时间
3858 小时
注册时间
2015-5-12
回帖
2022

剧作品鉴家

发表于 2015-12-10 10:50:57 | 显示全部楼层
[pre lang="ruby"]#==============================================================================
# ■ RGSS3 吸収通常攻撃特徴 Ver1.00 by 星潟
#------------------------------------------------------------------------------
# ステート付加:通常攻撃の攻撃を行った際
# 一定確率でダメージのうち一定割合分のHPを吸収するか
# 自らのMPとして変換する特徴を作成できるようになります。
# HP吸収の場合はHP吸収発動率とHP吸収割合の設定が必要となります。
# 同様に、MP変換の場合はMP変換発動率とMP変換割合の設定が必要となります。
#
# 例1 特徴に下記のように書き込んだ場合
# <HP吸収発動率:50>
# <HP吸収割合:50>
#
# 50%の確率でHPダメージのうち50%を自らのHPとして吸収する。
#
# 例2 特徴に下記のように書き込んだ場合
# <MP変換発動率:25>
# <MP変換割合:100>
#
# 25%の確率でHPダメージのうち100%を自らのMPとして回復する。
#==============================================================================
module DRAIN_ATTACK
  
  #HP吸収時のメッセージ表示方法をデフォルトから変更するか?
  
  M_C = true
  
  #HP吸収攻撃発動率設定用キーワード(変更不要)
  
  HPD = "HP吸収発動率"
  
  #MP変換攻撃発動率設定用キーワード(変更不要)
  
  MPD = "MP変換発動率"
  
  #HP吸収割合設定用キーワード(変更不要)
  
  HPDR = "HP吸収割合"
  
  #MP変換割合設定用キーワード(変更不要)
  
  MPDR = "MP変換割合"
  
  #アクターMP吸収時メッセージ
  
  MESS1 = "%s 吸收了 %s 点生命值!"
  
  #エネミーMP吸収時メッセージ
  
  MESS2 = "%sを %s 回復した!"
  
  
end
class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 使用効果[ステート付加]:通常攻撃
  #--------------------------------------------------------------------------
  alias item_effect_add_state_attack_drain item_effect_add_state_attack
  def item_effect_add_state_attack(user, item, effect)
    item_effect_add_state_attack_drain(user, item, effect)
    return if user == nil or item == nil
    if rand(100) < user.at_h_drain_execute_rate
      if !DRAIN_ATTACK::M_C
        @result.hp_drain = @result.hp_damage * user.h_drain_rate / 100
        @result.hp_drain = [@result.hp_drain, @result.pre_hp].min
        user.hp += @result.hp_drain if !user.dead?
      else
        @result.exhp_drain = @result.hp_damage * user.h_drain_rate / 100
        @result.exhp_drain = [@result.exhp_drain, @result.pre_hp].min
        user.hp += @result.exhp_drain if !user.dead?
      end
    end
    if rand(100) < user.at_m_drain_execute_rate
      if !DRAIN_ATTACK::M_C
        @result.mp_drain = @result.hp_damage * user.m_drain_rate / 100
        @result.mp_drain = [@result.mp_drain, @result.pre_hp].min
        user.mp += @result.mp_drain if !user.dead?
      else
        @result.exmp_drain = @result.hp_damage * user.m_drain_rate / 100
        @result.exmp_drain = [@result.exmp_drain, @result.pre_hp].min
        user.mp += @result.exmp_drain if !user.dead?
      end
    end
  end
  def at_h_drain_execute_rate
    rate = 0
    feature_objects.each do |object|
      data = object.note
      data.each_line { |line|
      memo = line.scan(/<#{DRAIN_ATTACK::HPD}[::](\S+)>/)
      memo = memo.flatten
      rate += memo[0].to_i if memo != nil && !memo.empty?
      }
    end
    return rate
  end
  def at_m_drain_execute_rate
    rate = 0
    feature_objects.each do |object|
      data = object.note
      data.each_line { |line|
      memo = line.scan(/<#{DRAIN_ATTACK::MPD}[::](\S+)>/)
      memo = memo.flatten
      rate += memo[0].to_i if memo != nil && !memo.empty?
      }
    end
    return rate
  end
  def h_drain_rate
    rate = 0
    feature_objects.each do |object|
      data = object.note
      data.each_line { |line|
      memo = line.scan(/<#{DRAIN_ATTACK::HPDR}[::](\S+)>/)
      memo = memo.flatten
      rate += memo[0].to_i if memo != nil && !memo.empty?
      }
    end
    return rate
  end
  def m_drain_rate
    rate = 0
    feature_objects.each do |object|
      data = object.note
      data.each_line { |line|
      memo = line.scan(/<#{DRAIN_ATTACK::MPDR}[::](\S+)>/)
      memo = memo.flatten
      rate += memo[0].to_i if memo != nil && !memo.empty?
      }
    end
    return rate
  end
end
class Game_ActionResult
  attr_accessor :exhp_drain
  attr_accessor :exmp_drain
  attr_accessor :pre_hp
  #--------------------------------------------------------------------------
  # ● ダメージ値のクリア
  #--------------------------------------------------------------------------
  alias clear_damage_values_drain clear_damage_values
  def clear_damage_values
    clear_damage_values_drain
    @exhp_drain = 0
    @exmp_drain = 0
    @pre_hp = 0
  end
  #--------------------------------------------------------------------------
  # ● ダメージの作成
  #--------------------------------------------------------------------------
  alias make_damage_drain make_damage
  def make_damage(value, item)
    @pre_hp = @battler.hp
    make_damage_drain(value, item)
  end
  #--------------------------------------------------------------------------
  # ● HP 吸収の文章を取得
  #--------------------------------------------------------------------------
  def hp_damage_exdrain_text
    fmt = @battler.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
    sprintf(fmt, @battler.name, Vocab::hp, @exhp_drain)
  end
  #--------------------------------------------------------------------------
  # ● MP 吸収の文章を取得
  #--------------------------------------------------------------------------
  def mp_damage_exdrain_text
    fmt = @battler.actor? ? DRAIN_ATTACK::MESS1 : DRAIN_ATTACK::MESS2
    if !DRAIN_ATTACK::M_C
      mpd = @mp_drain
    else
      mpd = @exmp_drain
    end
    sprintf(fmt, Vocab::mp, mpd, "")
  end
end
class Window_BattleLog < Window_Selectable
  #--------------------------------------------------------------------------
  # ● HP ダメージ表示
  #--------------------------------------------------------------------------
  alias display_hp_damage_drain display_hp_damage
  def display_hp_damage(target, item)
    display_hp_damage_drain(target, item)
    if target.result.exhp_drain > 0 && DRAIN_ATTACK::M_C
      add_text(target.result.hp_damage_exdrain_text)
      wait
    end
    if (target.result.mp_drain > 0 && !DRAIN_ATTACK::M_C) or
      (target.result.exmp_drain > 0 && DRAIN_ATTACK::M_C)
      add_text(target.result.mp_damage_exdrain_text)
      wait
    end
  end
end[/pre]


星潟的这个
脚本不错的、可以试试

点评

没效果··  发表于 2015-12-10 20:03
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部