[やりたいこと]SPとは別にMPという新しいパラメータを設定 これを消費して特殊技能を発動させる[やってみたこと]各コモンのSP処理と同じようにMPも処理する。可変DBの一時ステータスにもMPを設定し、Spと同じように処理してます。UDBの消費するものは?もMPに変更済みです。X[戦]技能使用_消費処理もSPではなくMPを消費するように変更しています。X[戦]パラメータ増減の対象パラメータの内部値24をMPにして、消費処理を追加しています。[やってみた結果、どううまくいかないか]仮に消費MP99の攻撃をコマンド入力した場合、敵からSpを攻撃され、SPが99未満に減少すると、SPがたりない!とメッセージが出てなにも起こりません。このメッセージを処理しているのはどのコモンなのでしょうか。仮に、ダメージを受ける前にMPが99以下だと選択ができず、99以上だとちゃんとMPを消費してコマンドが実行されます。敵の攻撃を受けて、SPにダメージを受けて消費ポイントを下回った場合にのみ発生します。その後もMPが足りているので(減っていない)、コマンド入力は受け付けますが、「SPがたりない!」の表示が出て何も起こらない状態が続きます。ご存じの方、回答よろしくお願いいたします。
表示と消去する所にそれぞれ10フレームのウェイトを入れたら問題なく動作しました。
その後色々変えてました以下のように作りましたらサブキーを押すとたまに表示され、もう一度押すとたまに消えるようなりました。なぜか表示される時されない時、消える時消えない時があります。確認のためセルフ変数[表示]が0から1になるときにseを入れてみましたが、1から0になる(と思われる)時にもseがなります。サブキーの反応がよくて一回押しても押しっぱなし状態になるのかとも思いましたが…わかりません懐中電灯オンオフ■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ -◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓ |■キー入力:CSelf13[キー入力] サブキー(12) |■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ |-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓ | |■条件分岐(変数): 【1】 CSelf13[キー入力] が 12 と同じ | |-◇分岐: 【1】 [ CSelf13[キー入力] が 12 と同じ ]の場合↓ | | |■条件分岐(変数): 【1】 CSelf16[表示] が 0 と同じ | | |-◇分岐: 【1】 [ CSelf16[表示] が 0 と同じ ]の場合↓ | | | |■変数操作: V4[暗闇] = 1 + 0 | | | |■変数操作: CSelf16[表示] = 1 + 0 | | | |■サウンド:SE ファイル[SE/[System]Enter02_Koya.ogg] 音 100% 周 100% 再生 / 遅延:0フレーム | | | |■ | | |-◇上記以外 | | | |■条件分岐(変数): 【1】 CSelf16[表示] が 1 と同じ | | | |-◇分岐: 【1】 [ CSelf16[表示] が 1 と同じ ]の場合↓ | | | | |■ピクチャ消去:300 / 0(0)フレーム | | | | |■変数操作: V4[暗闇] = 0 + 0 | | | | |■変数操作: CSelf16[表示] = 0 + 0 | | | | |■ | | | |◇分岐終了◇ | | | |■ | | |◇分岐終了◇ | | |■ | |◇分岐終了◇ | |■ |◇分岐終了◇ |■◇分岐終了◇
やりたい事サブキー(C)を押すと懐中電灯が付き、もう一度押すと懐中電灯を消したい。やってみた事懐中電灯の表示はおそらく大丈夫だと思います。オンオフの方のコモンもオンは作れたんですが、オフにする時のコマンドが分かりません。オンのキー入力の時に変数の他にセルフ変数に1を代入して、1がある状態=懐中電灯が点いている状態になっているのだから条件分岐でセルフ変数が1の時にもう一度キー入力を入れて変数4V暗闇を0にしてやってみたのですがうまくいきません。変数V4暗闇を作成コモンイベント懐中電灯オンオフ 並列実行(常時)■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ -◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓ |■キー入力:CSelf10 4方向 サブキー(12) |■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ |-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓ | |■条件分岐(変数): 【1】 CSelf10 が 12 と同じ | |-◇分岐: 【1】 [ CSelf10 が 12 と同じ ]の場合↓ | | |■変数操作: CSelf11 = 1 + 0 | | |■変数操作: V4[暗闇] = 1 + 0 | | |■次イベントの予約: [このコモンから+1] コモン238:[ 懐中電灯的な奴 ] | | |■ | |◇分岐終了◇ | |■ |◇分岐終了◇ |■◇分岐終了◇懐中電灯表示コモン 並列実行■変数操作+: CSelf10 = 主人公 の 画面X座標■変数操作+: CSelf11 = 主人公 の 画面Y座標■変数操作+: CSelf12 = 主人公 の 向き(1〜9)■条件分岐(変数): 【1】 CSelf12 が 2 と同じ 【2】 CSelf12 が 8 と同じ -◇分岐: 【1】 [ CSelf12 が 2 と同じ ]の場合↓ |▼ ↓ |■変数操作: CSelf11 -= 10 + 0 |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 1800 / 拡 100% / カラー R[100] G[100] B[100] |■-◇分岐: 【2】 [ CSelf12 が 8 と同じ ]の場合↓ |▼ ↑ |■変数操作: CSelf11 -= 10 + 0 |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100] |■-◇上記以外 |■条件分岐(変数): 【1】 CSelf12 が 4 と同じ 【2】 CSelf12 が 6 と同じ |-◇分岐: 【1】 [ CSelf12 が 4 と同じ ]の場合↓ | |▼ ← | |■変数操作: CSelf11 -= 10 + 0 | |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 2700 / 拡 100% / カラー R[100] G[100] B[100] | |■ |-◇分岐: 【2】 [ CSelf12 が 6 と同じ ]の場合↓ | |▼ → | |■変数操作: CSelf11 -= 10 + 0 | |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 900 / 拡 100% / カラー R[100] G[100] B[100] | |■ |-◇上記以外 | |■条件分岐(変数): 【1】 CSelf12 が 1 と同じ 【2】 CSelf12 が 9 と同じ | |-◇分岐: 【1】 [ CSelf12 が 1 と同じ ]の場合↓ | | |■変数操作: CSelf11 -= 10 + 0 | | |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 2250 / 拡 100% / カラー R[100] G[100] B[100] | | |■ | |-◇分岐: 【2】 [ CSelf12 が 9 と同じ ]の場合↓ | | |■変数操作: CSelf11 -= 10 + 0 | | |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 450 / 拡 100% / カラー R[100] G[100] B[100] | | |■ | |-◇上記以外 | | |■条件分岐(変数): 【1】 CSelf12 が 3 と同じ 【2】 CSelf12 が 7 と同じ | | |-◇分岐: 【1】 [ CSelf12 が 3 と同じ ]の場合↓ | | | |■変数操作: CSelf11 -= 10 + 0 | | | |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 1350 / 拡 100% / カラー R[100] G[100] B[100] | | | |■ | | |-◇分岐: 【2】 [ CSelf12 が 7 と同じ ]の場合↓ | | | |■変数操作: CSelf11 -= 10 + 0 | | | |■ピクチャ表示:300 [中心]ファイル「Picture/light.png」 X:CSelf10 Y:CSelf11 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 3150 / 拡 100% / カラー R[100] G[100] B[100] | | | |■ | | |◇分岐終了◇ | | |■ | |◇分岐終了◇ | |■ |◇分岐終了◇ |■◇分岐終了◇作ってみたオフにするコマンド※オンオフのコモンの12行目辺り | |■条件分岐(変数): 【1】 CSelf11 が 1 と同じ | |-◇分岐: 【1】 [ CSelf11 が 1 と同じ ]の場合↓ | | |■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ | | |-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓ | | | |■キー入力:CSelf10 4方向 サブキー(12) | | | |■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ | | | |-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓ | | | | |■条件分岐(変数): 【1】 CSelf10 が 12 と同じ | | | | |-◇分岐: 【1】 [ CSelf10 が 12 と同じ ]の場合↓ | | | | | |■変数操作: V4[暗闇] = 0 + 0 | | | | | |■変数操作: CSelf11 = 0 + 0 | | | | | |■ | | | | |◇分岐終了◇ | | | | |■ | | | |◇分岐終了◇ | | | |■ | | |◇分岐終了◇ | | |■ | |◇分岐終了◇それから、このコマンドを入れると懐中電灯の表示がおかしくなります。(主人公の位置を追わない、Cキーを押っぱなしにしないと追わなくなる)
バックログは並列実行で、キー操作を受け付けると表示処理を行うタイプのものを利用しています。> Sys7:選択肢次回初期位置(0,1,2...)これはあくまで次の選択肢ということで、再読込を行わないと元には戻せそうにありませんね……強制中断とラベルを使って無理矢理再読込しても、一度変わって元に位置に戻るという何とも気持ち悪い挙動がウェイトで制御しても修正できませんし。十字キーだけでしか操作できないのにそれだと流石に気持ち悪いので、ひとまずマウスでのスクロール(これなら基本選択肢位置は変わらず)に対応しました。何とか他の方法も試すだけ試してみます。回答ありがとうございました。
Sys7:選択肢次回初期位置(0,1,2...) で選択肢のカーソル位置を指定できるみたいです。(サンプルゲームのタイトル用イベントを参照してください)ただ、選択肢を表示した後、うまくバックログに切り替える方法が思い浮かばなかったです。左右キーでバックログに切り替えることができるかな?と思ったのですがSys20:選択肢カーソル現位置(0,1,2..非選択時:-1) で読み込める値が98,99に書き換えられてしまうようです。(←この方が便利ですけど…)万能ウィンドウを使って 選択肢と同じような動作のコモンを作成した方がいいかもしれません。
[やりたいこと]選択肢の位置を固定したままでバックログスクロールなど、十字キー操作を受け付けたい[やってみたこと]キー入力の受付禁止や選択肢位置に関わりそうなシステム探し[やってみた結果、どううまくいかないか]キー受付を禁止すると全キー受付の特定キーのみでの十字キー操作を受け付けなくなってしまい、コモンイベント内にも選択肢位置が変わるのを抑制出来そうな部分は見つからず。選択肢を表示する処理を止めても、システム変数20は読み取り専用のため、フラグ解除に合わせて元の位置に戻すことが出来ない
アドバイスありがとうございます!DB読込をユーザーに変更したら数値もその通りに出てちゃんと回復するようになりました。YADOさんありがとうございました!
> アドバイスありがとうございます> > アイテムを使用すると数値が変化するようになったのですが可変DBで作った数値が反映されません。(10や5の回復量にしてもほぼ全快する)> 希望としては回復量は固定させたい。> > ※試作として最大100として歩数でマイナスしていき、アイテムを使うと減った数字が回復する様にしている。> > 070[移]パラメータ増減> > ■条件分岐(変数): 【1】 CSelf1[対象パラメータ] が 22 と同じ 【2】 CSelf1[対象パラメータ] が 23 と同じ > -◇分岐: 【1】 [ CSelf1[対象パラメータ] が 22 と同じ ]の場合↓> |▼ HP> 〜〜〜〜> | |-◇分岐: 【2】 [ CSelf2[増減値] が -1 以下 ]の場合↓> | | |■文字列操作:CSelf9[表示メッセージ文] += "の\cself[8]が\cself[2]ポイント減少した。"> | | |■> | |◇分岐終了◇> | |●ラベル「メッセージ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>> | |■> |◇分岐終了◇> |■イベント処理中断> |■> ◇分岐終了◇> > ※ここに新しくコマンド入力 135行辺り> ↓> ■条件分岐(変数): 【1】 CSelf1[対象パラメータ] が 99 と同じ > -◇分岐: 【1】 [ CSelf1[対象パラメータ] が 99 と同じ ]の場合↓> |■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ×主人公一時DB : CSelf0[主人公ID] : 新パラメータ ] (17 : - : 21) > |■可変DB書込:DB[ 主人公ステータス : CSelf0[主人公ID] : 新パラメータ ] (0 : - : 60) += CSelf2[増減値]> |■可変DB書込:DB[ 主人公ステータス : CSelf0[主人公ID] : 新パラメータ ] (0 : - : 60) 上限 CSelf10[一時変数A]> |■可変DB書込:DB[ 主人公ステータス : CSelf0[主人公ID] : 新パラメータ ] (0 : - : 60) 下限 0> |■> ◇分岐終了◇> > > > 118[移]アイテム使用効果処理> > | |▼ SP回復値の計算> | |■DB読込(可変): CSelf35[最終SP回復値] = 可変DB[ ×主人公一時DB : CSelf14[一時キャラID] : [一時]計算済みMaxSP ] (17 : - : 1) > | |■DB読込(ユーザ): CSelf34[SP回復%] = ユーザDB[ アイテム : CSelf30[アイテム番号] : SP回復 [最大の?%] ] (2 : - : 12) > | |■変数操作: CSelf35[最終SP回復値] *= CSelf34[SP回復%] + 0 > | |■変数操作: CSelf35[最終SP回復値] /= 100 + 0 > | |■DB読込(ユーザ): CSelf35[最終SP回復値] += ユーザDB[ アイテム : CSelf30[アイテム番号] : ┗+SP回復 [ポイント] ] (2 : - : 13) > | |▼ > > ↓※ここに新しくコマンド入力 196行辺り> | |■DB読込(可変): CSelf36 = 可変DB[ ×主人公一時DB : CSelf14[一時キャラID] : 新パラメータ ] (17 : - : 21) > > | |▼ > | |■イベントの挿入[名]: ["X[移]パラメータ増減"] <コモンEv 70> / CSelf14[一時キャラID] / 22:HP / CSelf33[最終HP回復値] / 0:なし> | |■イベントの挿入[名]: ["X[移]パラメータ増減"] <コモンEv 70> / CSelf14[一時キャラID] / 23:SP / CSelf35[最終SP回復値] / 0:なし> > ↓※ここに新しくコマンド入力 200行辺り> | |■イベントの挿入[名]: ["X[移]パラメータ増減"] <コモンEv 70> / CSelf14[一時キャラID] / 99:新パラメータ / CSelf36 / 0:なし> > | |▼ 回復エフェクト+表示更新> | |■イベントの挿入[名]: ["X[移]指定キャラHP/SP回復表示"] <コモンEv 97> / CSelf11[一時変数B] / CSelf33[最終HP回復値] / CSelf35[最終SP回復値]> | |■イベントの挿入[名]: ["X[移]キャラクター欄描画"] <コモンEv 90> / 2:カーソルOFF(対象位置 位置-1なら全部) / -1 / 0> | |▼ コモンイベント[118:X[移]アイテム使用効果処理]に追加した…■DB読込(可変): CSelf36 = 可変DB[ ×主人公一時DB : CSelf14[一時キャラID] : 新パラメータ ] (17 : - : 21)の設定は合っていますか?このセルフ[36]には回復量を設定する事になっているので、可変DB[17:×主人公一時DB]ではなく、ユーザーDB[2:アイテム]にある回復量を設定する事になるでしょう。コモンイベント[070:X[移]パラメータ増減]の設定から推測すると、可変DB[17:×主人公一時DB]の項目[21:新パラメータ]には、新パラメータの最大値(100)が設定されていると思います。もしも項目[21:新パラメータ]の値が「新パラメータの最大値」の場合は、コモンイベント[118:X[移]アイテム使用効果処理]の…■DB読込(可変): CSelf36 = 可変DB[ ×主人公一時DB : CSelf14[一時キャラID] : 新パラメータ ] (17 : - : 21)■イベントの挿入[名]: ["X[移]パラメータ増減"] <コモンEv 70> / CSelf14[一時キャラID] / 99:新パラメータ / CSelf36 / 0:なしの設定は、「新パラメータの最大値(100)で回復する」と言った設定になるでしょう。
アドバイスありがとうございますアイテムを使用すると数値が変化するようになったのですが可変DBで作った数値が反映されません。(10や5の回復量にしてもほぼ全快する)希望としては回復量は固定させたい。※試作として最大100として歩数でマイナスしていき、アイテムを使うと減った数字が回復する様にしている。070[移]パラメータ増減■条件分岐(変数): 【1】 CSelf1[対象パラメータ] が 22 と同じ 【2】 CSelf1[対象パラメータ] が 23 と同じ -◇分岐: 【1】 [ CSelf1[対象パラメータ] が 22 と同じ ]の場合↓ |▼ HP〜〜〜〜 | |-◇分岐: 【2】 [ CSelf2[増減値] が -1 以下 ]の場合↓ | | |■文字列操作:CSelf9[表示メッセージ文] += "の\cself[8]が\cself[2]ポイント減少した。" | | |■ | |◇分岐終了◇ | |●ラベル「メッセージ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>> | |■ |◇分岐終了◇ |■イベント処理中断 |■◇分岐終了◇※ここに新しくコマンド入力 135行辺り↓■条件分岐(変数): 【1】 CSelf1[対象パラメータ] が 99 と同じ -◇分岐: 【1】 [ CSelf1[対象パラメータ] が 99 と同じ ]の場合↓ |■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ×主人公一時DB : CSelf0[主人公ID] : 新パラメータ ] (17 : - : 21) |■可変DB書込:DB[ 主人公ステータス : CSelf0[主人公ID] : 新パラメータ ] (0 : - : 60) += CSelf2[増減値] |■可変DB書込:DB[ 主人公ステータス : CSelf0[主人公ID] : 新パラメータ ] (0 : - : 60) 上限 CSelf10[一時変数A] |■可変DB書込:DB[ 主人公ステータス : CSelf0[主人公ID] : 新パラメータ ] (0 : - : 60) 下限 0 |■◇分岐終了◇118[移]アイテム使用効果処理 | |▼ SP回復値の計算 | |■DB読込(可変): CSelf35[最終SP回復値] = 可変DB[ ×主人公一時DB : CSelf14[一時キャラID] : [一時]計算済みMaxSP ] (17 : - : 1) | |■DB読込(ユーザ): CSelf34[SP回復%] = ユーザDB[ アイテム : CSelf30[アイテム番号] : SP回復 [最大の?%] ] (2 : - : 12) | |■変数操作: CSelf35[最終SP回復値] *= CSelf34[SP回復%] + 0 | |■変数操作: CSelf35[最終SP回復値] /= 100 + 0 | |■DB読込(ユーザ): CSelf35[最終SP回復値] += ユーザDB[ アイテム : CSelf30[アイテム番号] : ┗+SP回復 [ポイント] ] (2 : - : 13) | |▼ ↓※ここに新しくコマンド入力 196行辺り| |■DB読込(可変): CSelf36 = 可変DB[ ×主人公一時DB : CSelf14[一時キャラID] : 新パラメータ ] (17 : - : 21) | |▼ | |■イベントの挿入[名]: ["X[移]パラメータ増減"] <コモンEv 70> / CSelf14[一時キャラID] / 22:HP / CSelf33[最終HP回復値] / 0:なし | |■イベントの挿入[名]: ["X[移]パラメータ増減"] <コモンEv 70> / CSelf14[一時キャラID] / 23:SP / CSelf35[最終SP回復値] / 0:なし↓※ここに新しくコマンド入力 200行辺り | |■イベントの挿入[名]: ["X[移]パラメータ増減"] <コモンEv 70> / CSelf14[一時キャラID] / 99:新パラメータ / CSelf36 / 0:なし | |▼ 回復エフェクト+表示更新 | |■イベントの挿入[名]: ["X[移]指定キャラHP/SP回復表示"] <コモンEv 97> / CSelf11[一時変数B] / CSelf33[最終HP回復値] / CSelf35[最終SP回復値] | |■イベントの挿入[名]: ["X[移]キャラクター欄描画"] <コモンEv 90> / 2:カーソルOFF(対象位置 位置-1なら全部) / -1 / 0 | |▼