ページ 11

マップ上で戦うためのセルフ変数を組み込みたい

Posted: 2017年2月11日(土) 16:16
by ホナミ
現在制作中のゲームで、自動マップ生成プラグインを使ってローグライクシステムを搭載したいと考えています。
元のスクリプトの仕様で、マップ上でバトルしようにもイベントでランダムに配置されたエネミーが触れた瞬間に消えてしまうので、セルフ変数スクリプトを利用してHPを持たせたいのですが……。

使用するスクリプトは↓です。
https://forums.rpgmakerweb.com/index.ph ... tor.51808/
http://himeworks.com/2015/12/self-variables/

エネミーにセルフ変数を設定、乱数でHPをランダムに。
攻撃すると、主人公の攻撃力の値を減算、0以下で消滅
ランダムでアイテムをドロップ

というシステムで作りたいので、攻撃を受けたエネミーイベントの処理をコモンイベントかプラグインで作りたいと思っています。
それほど難しい処理ではない(と思った)ので初心者の私でもできるだろうと勇み足でスクリプトを集めたのですが、それをどう組み合わせればいいのかわからず混乱しています。

@エネミーにセルフ変数でHPをランダムに設定(40-60)
this.set_self_variable(EHP, Math.floor( Math.random() * 61) + 40)

@攻撃で体力減算
if(Input.isPressed("ok")){
//this.get_self_variable("EHP" - 20)
}

@HP0以下で消滅、ランダムでアイテムドロップ
if(this.get_self_variable("EHP") <=0){
$gameVariables.setValue(1,Math.floor( Math.random() * 21) + 1)
if($gameVariables.value(1) <=5){
$game_party.gain_item($data_items[1], 1)}
}

ここからどうやって組めばいいんでしょうか……。
全て羅列してコモンイベントで呼び出してみたところ普通にエラーでした。
完全に混乱してしまい、にっちもさっちもいかない状態になってしまったため、諸先輩方の叡智に縋りたくこちらに書き込みさせていただきました。
どうかご助言の程よろしくお願いいたします。

Re: マップ上で戦うためのセルフ変数を組み込みたい

Posted: 2017年2月11日(土) 16:35
by まっつUP
ゆあな様
お世話になります。

@エネミーにセルフ変数でHPをランダムに設定(40-60)
this.set_self_variable(EHP, Math.floor( Math.random() * 61) + 40)

の部分で最初の引数に""で囲まれていないのはなぜでしょうか。

Re: マップ上で戦うためのセルフ変数を組み込みたい

Posted: 2017年2月12日(日) 07:28
by ホナミ
返信ありがとうございます。
""がないのは、スクリプトは上から順に集めたもので、一番最初参照したHPの記事に""のことがかかれていなかったため、記述ミスをしました。
質問をするのにきちんと確認出来ておらず申し訳なく思います。
記述を改め再度試してみましたがやはりうまくいきません。
ご助言賜れると幸いです。

Re: マップ上で戦うためのセルフ変数を組み込みたい

Posted: 2017年2月12日(日) 08:58
by まっつUP
よく見たら
$game_party.gain_item($data_items[1], 1)}
はおかしいところまみれなので見直してみてください。
(アンダースコアは必要ですか。)

Re: マップ上で戦うためのセルフ変数を組み込みたい

Posted: 2017年2月12日(日) 22:56
by ホナミ
まっつUP様、このような初歩的な質問に丁寧にご返信くださってありがとうございます。
色々な方法を併せて模索しながら検討してみたところ、通常の変数操作で敵のHPの設定は可能なようで、今回の質問の主題である「セルフ変数を組み込む」という作業自体が必要なくなってしまいそうです。
なので、まだ目的のシステムの搭載には至っておりませんが、一旦この質問はここで中断し違う方面でのシステム実装を目指そうと考えております。
私の勉強不足でお手数おかけして申し訳ありません。
大変失礼なことをしてしまいました……。

都合がいいようですが、また自分の力でどうにもならなくなったときはこちらに頼りたいと思いますので、その時はまたご提言願えれば幸いです。
今回は本当に失礼いたしました。