ページ 11

トラップについて

Posted: 2017年2月02日(木) 01:44
by ソウリン
いつもお世話になっています。
ゲーム内でのイベント作成で少しわからないことがあるので回答おねがいします。

まず、ダンジョン内で 針がでたり入ったりするトラップを作ろうと思い二つのイベントを作成しました。
1つ目が

[並列処理]
-------------------------
ウェイト60 

条件分岐

針がONのとき
スイッチの操作 針=OFF

そうでないとき
スイッチの操作 針=ON
-------------------------
2つ目が

イベントページ1
-------------------------
(なにもいじっていません)
-------------------------
イベントページ2
-------------------------
トリガー プレイヤーからの接触

出現条件 スイッチ 針がONの時

実行内容

Seの演奏

画面フラッシュ

ダメージ
-------------------------

…というような感じで要するに、ダンジョン内で針が出たり入ったりして 出ているときにプレイヤーが接触するとダメージを
受けてしまうというのを作成しました。
ただ、プレイヤーがのったままでいてしまうと針が出ても、ダメージを受けないのが気になりまして
どうにかできないものかと悩んでいます。

Re: トラップについて

Posted: 2017年2月02日(木) 08:21
by トリアコンタン
こんにちは!
二つ目のイベントも並列処理にしてプレイヤーの座標がイベント自身の座標と一致したらダメージ処理にしてはどうでしょうか?

その場合、ダメージ処理後は連続で実行されないようウェイトを入れることも必要です。

Re: トラップについて

Posted: 2017年2月02日(木) 14:19
by ネコタ
こんにちは。

一つ目のイベントに、もう一つスイッチ処理(針効果無効)を加えて、針をオフにすると同時に加えたスイッチもオフにします。

二つ目のイベントには、針が出た時のイベントを並列処理にし、まず、プレイヤーとスイッチの位置情報を変数に入れます。

つぎに、加えたスイッチがオフの時という条件分岐を組みます。その中に、プレイヤーとイベントが一致する場合の条件分岐を組みます。

加えたスイッチがオフで且つ、位置が一致する場合にはダメージを与えて、追加したスイッチをオンにします。並列処理イベントの最後には必ずウエイト(1~2フレームで構いません)を入れて下さい。

これで、針が出ている間にプレイヤーが針に接触すると1度だけダメージを受けるトラップが出来ると思います。針が引っ込むと、再度飛び出た時に接触すればダメージを受けます。

Re: トラップについて

Posted: 2017年2月02日(木) 18:53
by まっつUP
ソウリン様
お世話になります。
イベントコマンド「条件分岐」で以下の条件式をスクリプトで評価するとよいと思います。
(二つ書いときます。)

(プレイヤーのマップx == このイベントのマップx)
this.character(-1).x == this.character(0).x
(プレイヤーのマップy == このイベントのマップy)
this.character(-1).y == this.character(0).y

このイベントとある通り処理を入れるのは針の方です。
プレイヤーとこのイベントの参照なのでコモンイベントにぶちこんでコピペできると思います。
連続で受けないための方法はいくつかありますが
プレイヤーを後方に一歩下げるのが画面効果と多段ヒット回避を両立できていいかなと思いました。

Re: トラップについて

Posted: 2017年2月04日(土) 04:30
by ソウリン
お疲れ様です、毎度お世話になっています
書き込んでから都合で返信遅れました、申し訳ないです

皆さまのアドバイスの通り、苦悩の末なんとかそれらしいのが完成しました!感謝いたします…
これで、何とか次のステップに進めそうなので本当に感謝です!

またお世話になると思いますのでよろしくお願いします(*´Д`)

Re: トラップについて

Posted: 2017年2月05日(日) 01:01
by ソウリン
申し訳ないです、このように組んでいるのですが
この針イベントを踏んだ場所から、縦は問題ないのですが 針イベントから
左右に移動してもダメージを食らい続ける現象になっています。
訂正箇所を教えていただけると幸いです

◆条件分岐:スクリプト:this.character(-1).x == this.character(0).x,this.character(-1).y == this.character(0).y
◆SEの演奏:damage03 (90, 100, 0)
◆画面のフラッシュ:(255,136,85,170), 10フレーム
◆HPの増減:パーティ全体, - 100
◆ウェイト:55フレーム

:分岐終了

Re: トラップについて

Posted: 2017年2月05日(日) 01:40
by まっつUP
多分
this.character(-1).x == this.character(0).x,this.character(-1).y == this.character(0).y
じゃなくて
this.character(-1).x == this.character(0).x && this.character(-1).y == this.character(0).y
でいけると思います。