【解決済み】時間差のあるダメージ床の作り方

sionn
記事: 4
登録日時: 2017年12月28日(木) 23:55

【解決済み】時間差のあるダメージ床の作り方

投稿記事by sionn » 2018年7月10日(火) 19:51

特定のタイルに乗ったままにすると
時間毎にダメージが蓄積されるイベントの作り方を探しています。

プレイヤーから接触またはイベントからの接触では
一度タイル上から離れてもう一度乗る(または触る)形にしないとダメージが蓄積されません。



(例)
①60フレームごとにスイッチをオンにし、60フレームたつとオフになるイベントを作る。
②オンになる瞬間にイベント上にいるとダメージが入る。


ようなイベントが作りたいのです。
どうか知恵を貸してください。
よろしくお願いします。
最後に編集したユーザー sionn on 2018年7月15日(日) 22:24 [ 編集 1 回目 ]

アバター
raeyik
記事: 78
登録日時: 2016年6月10日(金) 15:24

Re: 時間差のあるダメージ床の作り方

投稿記事by raeyik » 2018年7月10日(火) 21:32

https://galvs-scripts.com/category/rmmv ... #post-1632
MV Event Spawn Timers

特徴
セルフスイッチを有効にするイベントや、タイマーの期限が切れるとスイッチを再起動する時間を設定できます。
sionn
記事: 4
登録日時: 2017年12月28日(木) 23:55

Re: 時間差のあるダメージ床の作り方

投稿記事by sionn » 2018年7月10日(火) 22:00

ありがとうございます。
調べてみたのですが、求めている効果とは少し違うようです……

【特定位置に乗った状態だとダメージを受ける】という効果を探しています。
変数でプレイヤー座標とイベント座標を取得する方法も試したのですが上手くいきませんでした……
アバター
にいやん
記事: 218
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡を取る:

Re: 時間差のあるダメージ床の作り方

投稿記事by にいやん » 2018年7月11日(水) 07:30

sionn さんが書きました:①60フレームごとにスイッチをオンにし、60フレームたつとオフになるイベントを作る。
②オンになる瞬間にイベント上にいるとダメージが入る。

このようにやりたいことが明確に分かっているのであれば条件分岐で出来ると思います。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: 時間差のあるダメージ床の作り方

投稿記事by にゃたま » 2018年7月11日(水) 23:15

sionn様

こんばんは。

スイッチなしでこんな感じに組んだらどうでしょう?
プライオリティは通常キャラの下でトリガーはプレイヤーからの接触です。
但しこの場合だとマウスクリックで脱出できないので他にもっといい案があるかもです。
尚、条件分岐を先にすれば乗ってもダメージうけないけど乗り続けるとダメージにできます。

コード: 全て選択

◆ループ
  ◆SEの演奏:Damage5 (90, 100, 0)
  ◆HPの増減:パーティ全体, - 10
  ◆画面のフラッシュ:(255,255,255,170), 60フレーム (ウェイト)
  ◆条件分岐:ボタン[下]が押されている
    ◆ループの中断
    ◆
  :分岐終了
  ◆条件分岐:ボタン[左]が押されている
    ◆ループの中断
    ◆
  :分岐終了
  ◆条件分岐:ボタン[右]が押されている
    ◆ループの中断
    ◆
  :分岐終了
  ◆条件分岐:ボタン[上]が押されている
    ◆ループの中断
    ◆
  :分岐終了
  ◆
:以上繰り返し


追記
一応、並列処理バージョンを作ってみました。
先頭にウェイトを入れれば踏んでもすぐダメージが入らずここで止まると
ダメージがはいります。これでいかかでしょうか?

コード: 全て選択

◆ウェイト:60フレーム
◆変数の操作:#0001 プレイヤーX = プレイヤーのマップX
◆変数の操作:#0002 プレイヤーY = プレイヤーのマップY
◆変数の操作:#0003 このイベントX = このイベントのマップX
◆変数の操作:#0004 このイベントY = このイベントのマップY
◆条件分岐:プレイヤーX = このイベントX
  ◆条件分岐:プレイヤーY = このイベントY
    ◆SEの演奏:Damage5 (90, 100, 0)
    ◆HPの増減:パーティ全体, - 10
    ◆画面のフラッシュ:(255,255,255,170), 60フレーム
    ◆
  :分岐終了
  ◆
:分岐終了


追記
何度もすみません。
前回の並列処理は動作が重くなるリスクがありますし何度も乗り降りをしていると
ダメージを受ける問題がありますのでやはりプレイヤーからの接触にして改良しました。
プラグインはFTKR_EventSmoothStartとこちらは私製のものになりますがNYA_StartEventを
使用してイベントのメモには<ESS_停止無視><SE>を記入します。
以下のコードをそのイベントに記入します。

コード: 全て選択

◆ウェイト:20フレーム
◆変数の操作:#0001 プレイヤーX = プレイヤーのマップX
◆変数の操作:#0002 プレイヤーY = プレイヤーのマップY
◆変数の操作:#0003 このイベントX = このイベントのマップX
◆変数の操作:#0004 このイベントY = このイベントのマップY
◆条件分岐:プレイヤーX = このイベントX
  ◆条件分岐:プレイヤーY = このイベントY
    ◆SEの演奏:Damage5 (90, 100, 0)
    ◆HPの増減:パーティ全体, - 10
    ◆画面のフラッシュ:(255,255,255,170), 60フレーム (ウェイト)
    ◆変数の操作:#0001 プレイヤーX = プレイヤーのマップX
    ◆変数の操作:#0002 プレイヤーY = プレイヤーのマップY
    ◆変数の操作:#0003 このイベントX = このイベントのマップX
    ◆変数の操作:#0004 このイベントY = このイベントのマップY
    ◆条件分岐:プレイヤーX = このイベントX
      ◆条件分岐:プレイヤーY = このイベントY
        ◆プラグインコマンド:StartEvent
        ◆
      :分岐終了
      ◆
    :分岐終了
    ◆
  :分岐終了
  ◆
:分岐終了


尚、先頭のウェイトをなくせばすぐにダメージが入ります。


<FTKR_EventSmoothStart>
https://github.com/futokoro/RPGMaker/bl ... thStart.js
<NYA_StartEvent>
https://forum.tkool.jp/index.php?threads/【終了】◇秋のプラグイン制作2017◇.494/



追記
最後に並列処理でも割とうまくいったので掲載しておきます。
こちらならイベントを連結して沢山増やしても止まらず動作しました。
しかもUpdateCountというプラグインを使ったらシンプルになりました。
イベントを沢山増やす場合はトリアコンタン様のTemplateEventプラグインがオススメです。
解決済みですが興味があればどうぞ。

コード: 全て選択

◆条件分岐:スクリプト:$gameMap.pd_UC_repeatInterval(30)
  ◆変数の操作:#0001 プレイヤーX = プレイヤーのマップX
  ◆変数の操作:#0002 プレイヤーY = プレイヤーのマップY
  ◆変数の操作:#0003 このイベントX = このイベントのマップX
  ◆変数の操作:#0004 このイベントY = このイベントのマップY
  ◆条件分岐:プレイヤーX = このイベントX
    ◆条件分岐:プレイヤーY = このイベントY
      ◆SEの演奏:Damage5 (90, 100, 0)
      ◆HPの増減:パーティ全体, - 10
      ◆画面のフラッシュ:(255,255,255,170), 60フレーム
      ◆
    :分岐終了
    ◆
  :分岐終了
  ◆
:分岐終了



<UpdateCount>
https://paradre.com/「○秒毎に繰り返す処理」を作る方法【ツクール/
最後に編集したユーザー にゃたま on 2018年7月17日(火) 12:32 [ 編集 2 回目 ]
sionn
記事: 4
登録日時: 2017年12月28日(木) 23:55

Re: 時間差のあるダメージ床の作り方

投稿記事by sionn » 2018年7月15日(日) 22:24

ありがとうございます。
皆様のアドバイスにより無事解決しました。
特ににゃたま様、コードやプラグインまで細やかに提案していただき
とても助かりました。

“MV:質問” へ戻る