WOLF RPGエディター(ウディタ)[3.337]/基本システム【サイトトップへ戻る】
■コモンイベント[059:X[共]ウェイト(キー押しで中断)]の解説
(更新:2024/05/18)


コモンイベント[059:X[共]ウェイト(キー押しで中断)]について解説します。


ショートカット
■コモンイベント[059:X[共]ウェイト(キー押しで中断)]って何?
■こうゆう時にこのコモンイベントを改造する
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

基本システムに関する説明は別ページに記載しています。
【基本システムに関する説明ページを見る】

コモンイベントの一覧と補足説明のページも用意しています。
【コモンイベントの一覧と補足説明のページを開く】


  
■コモンイベント[059:X[共]ウェイト(キー押しで中断)]って何?

コモンイベント[059:X[共]ウェイト(キー押しで中断)]は装備変更画面にて、
外すことができない装備があるため、この装備を付けることができませんでした。
のエラーを表示する時のウェイト(エラーの表示時間)の処理で使われます。



このエラーは、
「装備すると複数の装備欄を専有する」
「一度装備すると外せななくなる」
「装備している装備欄以外の専有している装備欄で装備を変えようとした」

の条件がそろった時に表示されます。

上図の「赤い服」の場合は、
防具欄2(身体)」に装備すると「防具2+3+4欄(身体+装飾1+装飾2)」を専有し、
さらに「赤い服」が一度装備すると外せなくなる場合に「装飾1」に何らかの装備をしようとした時に、
このエラーが表示されます。

「赤い服」を装備している「防具欄2(身体)」の装備を変更しようとした時には、
外すことができません」が表示されますが、
このエラーの表示時間は単に「ウェイト:30フレーム」が設定されており、
コモンイベント[059:X[共]ウェイト(キー押しで中断)]は使っていません。

また装備がいつでも外せる設定である場合は、エラーは表示されず、普通に装備の変更が行われます。



コモンイベント[059:X[共]ウェイト(キー押しで中断)]の特徴としては、
指定した時間が経過するまではウェイトが発生しますが、
「決定キー」「キャンセルキー」「サブキー」が押されるとウェイトの処理が中断します。

そのため、上図のエラー表示では「60フレームの表示時間」になっていますが、
ウェイト中にキーが押されると、すぐにウェイトが中断され、エラー表示がすぐに消えます。



なお、このコモンイベント[059:X[共]ウェイト(キー押しで中断)]ウェイトの処理のみを行うため、
画面上にエラーを表示する処理はコモンイベント[109:X[移]装備欄_選択実行]から
コモンイベント[101:X[移]メニュー時文章表示]を呼び出して表示しています。


▲トップへ戻る▲


  
■こうゆう時にこのコモンイベントを改造する

以下のような改造を行いたい時にこのコモンイベントを改造します。

◆ウェイトを中断するキーの種類を増やしたい。


▲トップへ戻る▲


  
■[入力の数/結果を返す]について

コモンイベント[059:X[共]ウェイト(キー押しで中断)][入力の数/結果を返す]の設定は、
基本システムが必要に応じて自動的に行いますので、基本システムの利用者は何も設定する必要はありません。

▼数値1/コモンセルフ0「ウェイトするフレーム」

ウェイト時間を設定。
▼数値2/コモンセルフ1「最低ウェイト」

ウェイトを実行する最低時間を設定。


▲トップへ戻る▲


  
■コモンイベント呼び出しの一覧

コモンイベント[059:X[共]ウェイト(キー押しで中断)]を呼び出しているコモンイベントの一覧です。
なお、コモンイベント[059:X[共]ウェイト(キー押しで中断)]から呼び出しているコモンイベントはありません。

コモンイベント[059:X[共]ウェイト(キー押しで中断)]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
109:X[移]装備欄_選択実行 装備の変更ができない時に呼び出されます。

【コモンイベント呼び出しの一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[059:X[共]ウェイト(キー押しで中断)]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 ウェイトするフレーム ウェイト時間を設定。
1 最低ウェイト ウェイトを実行する最低時間を設定。
10 直前キー[決定] 現フレーム以前の決定キーのキーコード「10」を取得。
11 直前キー[キャンセル] 現フレーム以前のキャンセルキーのキーコード「11」を取得。
12 直前キー[サブ] 現フレーム以前のサブキーのキーコード「12」を取得。
13 現在キー[決定] 決定キーのキーコード「10」を取得。
14 現在キー[キャンセル] キャンセルキーのキーコード「11」を取得。
15 現在キー[サブ] サブキーのキーコード「12」を取得。

【変数の一覧を別ウィンドウで表示】



キーを押しているかどうかは「直前キー」と「現在キー」の2つのセルフ変数で読み取ります。

直前キー」は現フレームの前に押されていたキーコードであり、
「0」の場合は「キーを押していない状態(押し続けていたキーを一度離した状態)」になります。

現在キー」は現フレームのキーコードであり、「0以外」の場合は「現在キーを押している」になります。

この2つのセルフ変数を使い…
■条件分岐(変数): 【1】 CSelf10[直前キー[決定]] が 0 と同じ
 ■条件分岐(変数): 【1】 CSelf13[現在キー[決定]] が 0 以外
などと設定する事で
押し続けていたキーを一度離して、そして再びキーを押したかどうか」を判断する事ができます。

こうする事で、エラーを表示する前から決定キーやキャンセルキーを押し続けている状態でも、
一度キーを離して再びキーを押し直さないと、ウェイトが中断しないようにする事ができます。


▲トップへ戻る▲


  
■イベントコマンドの解説

イベントコマンドの解説を行います。

なお、見た目で設定内容が分かるような簡単なイベントコマンドの解説は省略しています。

処理内容
4-6 処理開始時のキーコードをセルフ[10〜12]に取得。
7 最低限のウェイト時間(セルフ[1])の分だけウェイトを実行。
なお、基本システム内の設定(コモンイベント[109:X[移]装備欄_選択実行]210行目)では、
この最低限のウェイト時間は設定されていないので、ここのウェイトは実行されません。
8 全体のウェイト時間(セルフ[0])から
既に実行した最低限のウェイト時間の分(セルフ[1])と、
46行目にある「ウェイト:1フレーム」分を減らします。
9-45 ■回数付きループ [ CSelf0[ウェイトするフレーム] ]回
最低限のウェイト時間の分と46行目にある「ウェイト:1フレーム」分を除いた
残りのウェイト分だけループします。
  10-12 現在のキーコードをセルフ[13〜15]に取得。
  13-21 ■条件分岐(変数): 【1】 CSelf10[直前キー[決定]] が 0 と同じ
 ■条件分岐(変数): 【1】 CSelf13[現在キー[決定]] が 0 以外
前のフレームで決定キーを押していない状態で、
現フレームでは決定キーを押している状態である場合は、
【ループ中断】を実行し、ウェイト時間を短くします。
  22-30 ■条件分岐(変数): 【1】 CSelf11[直前キー[キャンセル]] が 0 と同じ
 ■条件分岐(変数): 【1】 CSelf14[現在キー[キャンセル]] が 0 以外
前のフレームでキャンセルキーを押していない状態で、
現フレームではキャンセルキーを押している状態である場合は、
【ループ中断】を実行し、ウェイト時間を短くします。
  31-39 ■条件分岐(変数): 【1】 CSelf12[直前キー[サブ]] が 0 と同じ
 ■条件分岐(変数): 【1】 CSelf15[現在キー[サブ]] が 0 以外
前のフレームでサブキーを押していない状態で、
現フレームではサブキーを押している状態である場合は、
【ループ中断】を実行し、ウェイト時間を短くします。
  40-43 「直前」のキーコードをセルフ[10〜12]に取得し、ウェイトを実行。
46 最後にウェイトを1フレームだけ実行します。
このウェイトは、決定キーを押してウェイトを中断し、呼び出し元に処理が戻った時に、
決定キーを押し続けている事で【キー入力】が反応し、
再びこのエラーが表示される事を防いでいます。


▲トップへ戻る▲



◎関連ページ

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

YADOT-WOLFトップ  気紛れな空間へ戻る  メール