RGSS3のHPやMPを割合で吸収出来るようなスクリプトを探したのですが、MVのしか見つからなかった為、リクエストさせて頂きます。
もし、お時間があって作成できる方いましたら、お願い致します。
解決済み(割合吸収武器)
解決済み(割合吸収武器)
最後に編集したユーザー なたね [ 2017年9月05日(火) 22:59 ], 累計 1 回
Re: 割合吸収武器
こんにちは。
Artificial Providenceという素材屋さんに「HP/MP/TP変換攻撃特徴・アイテム・スキル」という素材があります。
たくさんの機能を持っていて、それで恐らく希望していることは可能だと思います。
たまたま自分も自作のものを持っているので、もし競合などがあればこちらもよかったらどうぞ。
Artificial Providenceさんのものとは違って、本当にシンプルなものです。
Artificial Providenceという素材屋さんに「HP/MP/TP変換攻撃特徴・アイテム・スキル」という素材があります。
たくさんの機能を持っていて、それで恐らく希望していることは可能だと思います。
たまたま自分も自作のものを持っているので、もし競合などがあればこちらもよかったらどうぞ。
Artificial Providenceさんのものとは違って、本当にシンプルなものです。
コード: 全て選択
#==============================================================================
# ■ RGSS3 ダメージからの吸収の割合を変更 by オシブ
#==============================================================================
#==============================================================================
# ■ RPG::UsableItem
#==============================================================================
class RPG::UsableItem
#--------------------------------------------------------------------------
# ● 吸収の割合を読み込み スキル、アイテムのメモ欄に<DRAIN_30%>などと書く
#--------------------------------------------------------------------------
def drain_ratio
@note.scan(/<DRAIN_(\d+)%>/)
return $1.to_i.quo(100).to_f if $1
return 1
end
end
#==============================================================================
# ■ Vocab
#------------------------------------------------------------------------------
# 用語とメッセージを定義するモジュールです。定数でメッセージなどを直接定義す
# るほか、グローバル変数 $data_system から用語データを取得します。
#==============================================================================
module Vocab
ActorDrain = "%sは %s のダメージを受け %s 吸収された!"
EnemyDrain = "%sに %s のダメージを与え %s 回復した!"
end
#==============================================================================
# ■ Game_ActionResult
#------------------------------------------------------------------------------
# 戦闘行動の結果を扱うクラスです。このクラスは Game_Battler クラスの内部で
# 使用されます。
#==============================================================================
class Game_ActionResult
#--------------------------------------------------------------------------
# ● ダメージの作成
#--------------------------------------------------------------------------
alias oxib_drain_make_damage make_damage
def make_damage(value, item)
oxib_drain_make_damage(value, item)
@hp_drain = (@hp_damage * item.drain_ratio).round if item.damage.drain?
@mp_drain = (@mp_damage * item.drain_ratio).round if item.damage.drain?
end
#--------------------------------------------------------------------------
# ● HPの回復効果率の反映
#--------------------------------------------------------------------------
def drain_hp_rec(user)
if @hp_drain > 0
@hp_drain = @hp_drain * user.rec
@hp_drain = @hp_drain.round
end
end
#--------------------------------------------------------------------------
# ● MPの回復効果率の反映
#--------------------------------------------------------------------------
def drain_mp_rec(user)
if @mp_drain > 0
@mp_drain = @mp_drain * user.rec
@mp_drain = @mp_drain.round
end
end
#--------------------------------------------------------------------------
# ● HP ダメージの文章を取得 ※再定義
#--------------------------------------------------------------------------
def hp_damage_text
if @hp_drain > 0
fmt = @battler.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
#sprintf(fmt, @battler.name, Vocab::hp, @hp_drain)
sprintf(fmt, @battler.name, @hp_damage, @hp_drain) #変更
elsif @hp_damage > 0
fmt = @battler.actor? ? Vocab::ActorDamage : Vocab::EnemyDamage
sprintf(fmt, @battler.name, @hp_damage)
elsif @hp_damage < 0
fmt = @battler.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
sprintf(fmt, @battler.name, Vocab::hp, -hp_damage)
else
fmt = @battler.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage
sprintf(fmt, @battler.name)
end
end
#--------------------------------------------------------------------------
# ● MP ダメージの文章を取得 ※再定義
#--------------------------------------------------------------------------
def mp_damage_text
if @mp_drain > 0
fmt = @battler.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
#sprintf(fmt, @battler.name, Vocab::mp, @mp_drain)
sprintf(fmt, @battler.name, @mp_damage, @mp_drain) #変更
elsif @mp_damage > 0
fmt = @battler.actor? ? Vocab::ActorLoss : Vocab::EnemyLoss
sprintf(fmt, @battler.name, Vocab::mp, @mp_damage)
elsif @mp_damage < 0
fmt = @battler.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
sprintf(fmt, @battler.name, Vocab::mp, -@mp_damage)
else
""
end
end
end
#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------
# スプライトや行動に関するメソッドを追加したバトラーのクラスです。このクラス
# は Game_Actor クラスと Game_Enemy クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● ダメージの処理
#--------------------------------------------------------------------------
alias oxib_drain_execute_damage execute_damage
def execute_damage(user)
@result.drain_hp_rec(user) if @result.hp_drain > 0
@result.drain_mp_rec(user) if @result.mp_drain > 0
oxib_drain_execute_damage(user)
end
end
――――――――――――――――――――――――――――――――――――――――――――――
RPGツクールVXでシナリオ重視ゲーム作ってます。

サイト:Mix Idea
アドレス:http://oxibgame.jugem.jp/
―――――――――――――――――――――――――――――――――――――――――――――――
RPGツクールVXでシナリオ重視ゲーム作ってます。

サイト:Mix Idea
アドレス:http://oxibgame.jugem.jp/
―――――――――――――――――――――――――――――――――――――――――――――――
Re: 割合吸収武器
簡単な吸収武器の作り方を載せます
これで装備してる武器がID:1の武器の時、通常攻撃がスキルID:51となります
(ハンドアクスで通常攻撃をすると、ファイアが発動するようになります)
なので、対応するスキルの設定を弄れば吸収するようになるはずです
コード: 全て選択
class Game_Actor
alias weapon_attack_skill_id attack_skill_id
def attack_skill_id
if dual_wield? && (weapons[0].id == 1 || weapons[1].id == 1) # 二刀流の時
return 51
elsif !dual_wield? && weapons[0].id == 1 # 二刀流でない時
return 51
else
weapon_attack_skill_id
end
end
end
(ハンドアクスで通常攻撃をすると、ファイアが発動するようになります)
なので、対応するスキルの設定を弄れば吸収するようになるはずです
現在サポート終了中
Re: 割合吸収武器
返信遅れてしまい申し訳ありません!
オシブ様、ありがとうございます。
でも、欲しかったのは武器でしたがこちらも使わせていただきます。
ありがとうございました。
TOMO様、ありがとうございます。
自分の理想通りのものができました。
お二方この度は本当にありがとうございました。
オシブ様、ありがとうございます。
でも、欲しかったのは武器でしたがこちらも使わせていただきます。
ありがとうございました。
TOMO様、ありがとうございます。
自分の理想通りのものができました。
お二方この度は本当にありがとうございました。