ページ 1 / 1
スクリプトで変数にアクターの実際の能力を代入する方法
Posted: 2017年4月05日(水) 23:53
by TANAKATANAKA
いつもお世話になっております。
イベントのスクリプトにて、変数にアクターの能力を代入することは可能なのですが、
実際の能力(装備などの補正なしの能力)を代入する方法を模索しています。
以下では、装備の補正を含んだatkが代入されてしまい、実際の補正なしの能力ではありません。
$game_variables[1] = $game_actors[1].atk
どのようにすれば出来るか、ご教示いただけないでしょうか。
よろしくお願いします。
Re: スクリプトで変数にアクターの実際の能力を代入する方法
Posted: 2017年4月06日(木) 00:35
by faida
「補正無し」がどこまでを指すか分かりませんが、「成長効果」を含めないのであれば以下です。
$game_variables[1] = $game_actors[1].param_base(param_id)
param_idは0~7で、atkだと2となります。
Re: スクリプトで変数にアクターの実際の能力を代入する方法
Posted: 2017年4月07日(金) 00:29
by TANAKATANAKA
FAIDA様
ご回答いただきありがとうございます。
ただ、申し訳ございません、こちらの説明が不足しておりました。
今回、補正なしといいましたが「装備」「ステート」の補正を含まない、であり、。
成長補正(イベントやアイテムなどで増加)は含めた値を代入したいと思っておりました。
お手数をおかけしますが、イベントやアイテムなど成長を含めた値の取得方法もご教授いただけないでしょうか。
よろしくお願い申し上げます。
Re: スクリプトで変数にアクターの実際の能力を代入する方法
Posted: 2017年4月07日(金) 12:02
by faida
本来、成長効果等の加算値は外から読み取る機能が備わってないので、
実は結構強引な方法で読み取るか素材スクリプトを追加するかどっちかしかないんですよね。
actor = $game_actors[1]
base = actor.param_base(param_id)
plus = actor.instance_variable_get(:@param_plus)[param_id]
$game_variables[1] = base + plus
余計な話なんでアレですけど、「instance_variable_get」「instance_variable_set」を使えば理論上どんなインスタンス変数も読み書き可能です。
まぁ弊害が起こる可能性があるのでここぞって時にしか使いませんけど。
【解決済み】Re: スクリプトで変数にアクターの実際の能力を代入する方法
Posted: 2017年4月08日(土) 17:58
by TANAKATANAKA
FAIDA様
ありがとうございます。
これにて解決済みとさせていただきます。