ページ 11

【解決済】能力値入れ替えスクリプト

Posted: 2019年5月24日(金) 20:02
by alan
やたら、リクエストが多いようですみません。


今回は、能力値を入れ替えるスクリプトが
見付からない様なので、リクエストします。

Re: 能力値入れ替えスクリプト

Posted: 2019年5月24日(金) 20:33
by ムノクラ
既存のスクリプトを探すにも、要件が全く予想できないので、検索できません。
要望をもう少し詳しく書いてください。

状況は
・戦闘中、移動中
・アクター、敵
・どの能力値をどう入れ替えるのか
まったく想像できません。

Re: 能力値入れ替えスクリプト

Posted: 2019年5月24日(金) 22:50
by alan
戦闘中限定で
アクターの一つ目の能力の数値と、二つ目の能力の数値を
入れ替える感じです。

Rgss2に有る、置換ステートが近いかもしれません。

Re: 能力値入れ替えスクリプト

Posted: 2019年5月25日(土) 16:46
by faida
多分もうあると思いますが作ってみました。

コード: 全て選択

=begin
◆概要
別の能力値を参照する特徴を作成します。

◆機能
・武具ステートのメモ欄に<能力入れ替え m, n>と記入すると、能力値mと能力値nの値が
入れ替わります。(m,nは0=HP,1=MP,2=攻撃力,...)
・武具ステートのメモ欄に<能力参照 m, n>と記入すると、能力値mの値が能力値nの値に
なります。

◆仕様
・<能力入れ替え m, n>は<能力参照 m, n><能力参照 n, m>と同じです。
・複数武具ステートだった時、優先順位はよくわかりません。

◆使用上の注意
・★……エイリアス ○……新規定義
・スクリプトの導入位置によっては上手く反映されない場合があるので、なるべく
下の方に置くといいと思います。

◆作者:faida @faida3983

◆更新履歴
ver1.0 : 作成

=end

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ メモ取得
  #--------------------------------------------------------------------------
  def refer_param
    return @refer_param if @refer_param
    @refer_param = []
    note.each_line {|line|
      if line =~ /<能力入れ替え\s(\d+)\s*\,\s*(\d+)\s*>/
        @refer_param << [$1.to_i, $2.to_i]
        @refer_param << [$2.to_i, $1.to_i]
      elsif line =~ /<能力参照\s(\d+)\s*\,\s*(\d+)\s*>/
        @refer_param << [$1.to_i, $2.to_i]
      end
    }
    @refer_param
  end
end

class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ○ 参照能力IDの取得
  #--------------------------------------------------------------------------
  def refer_param(param_id)
    obj = feature_objects.find{|o|o.refer_param.any?{|a|a[0] == param_id}}
    obj ? obj.refer_param.find{|a|a[0] == param_id}[1] : nil
  end
  #--------------------------------------------------------------------------
  # ★ 通常能力値の取得
  #--------------------------------------------------------------------------
  alias fai_refparam_param param
  def param(param_id)
    return fai_refparam_param(refer_param(param_id)) if refer_param(param_id)
    fai_refparam_param(param_id)
  end
end
攻撃力と防御力を変えたい時は<能力入れ替え 2, 3>でできると思います。

Re: 能力値入れ替えスクリプト

Posted: 2019年5月25日(土) 21:31
by alan
イメージ通りです、有難う御座います!


入れ替え、転換、置換、reverse等
色々検索してみたのですが、中々見当たらなかったですね :shock: