カジノコインに変換、交換する処理を教えて欲しいです!

返信する
Ameria
記事: 5
登録日時: 2023年9月09日(土) 04:40

カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by Ameria »

こんにちは。初投稿のAmeriaです。

初めて力を入れてゲームをRPGツクールMVにて作成しているのですが、カジノ要素が欲しいなと思い以下(https://pd-present.moo.jp/PC_otaku/archives/3529)のサイトのやり方を参考に文章以外の処理が同じように作成しましたが、このような問題が起きました。

・所持金がいくらあろうが所持金が足りません。と表示されてしまう。

・コインとアイテム交換所をサイト通りに作成しましたが、ショップを開くと所持金が0になってしまう。

以上2点です。
今回、変数自体も初めて使用するもので、イマイチピンと来ませんでした。お手数ですが、詳しく何がダメか、どうすれば改善されるか教えてくださると嬉しいです。

よろしくお願いいたします。
アバター
DoujinRuis
記事: 166
登録日時: 2022年10月25日(火) 10:59

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by DoujinRuis »

もしよければ、イベントエディターの部分をスクショで見せてもらえませんか?
ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH

普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
Ameria
記事: 5
登録日時: 2023年9月09日(土) 04:40

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by Ameria »

コイン交換.png
 こちらが交換所と
換金.png
 こちらが換金用の処理です。

お願いします!
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
スクリーンショットの内容を見る限りでは、
イベントの内容は、正しく設定されているように見えます。

まず、
Ameria さんが書きました: ・コインとアイテム交換所をサイト通りに作成しましたが、ショップを開くと所持金が0になってしまう。
についてですが、
イベントの内容として、ショップ画面を開く前に
  1. 現在の所持金を 変数ID 0001プレイヤー所持金 に代入する。
  2. 所持金を 変数ID 0004 コイン所持 の数値に変更する。
という処理を行い、
ショップ画面を開いて、それが閉じられた後に、
  1. 変数ID 0004 コイン所持数 に 所持金(所持金が現在のコイン所持数と同額のはず)を代入する。
  2. 所持金を変数ID 0001プレイヤー所持金 の数値に変更する。
という処理をしています。
ショップ画面が開くときに、所持金がコインの所持数に変わっていますので、
コインを1枚も購入していない状態であれば、0枚 と表示されているのが正常な状態となります。
(コインの購入処理が正しく動かず、コインの購入が全くできない状態になっているとのことなので、
0枚と表示されるのが正常動作のはずです)

次に、
Ameria さんが書きました: ・所持金がいくらあろうが所持金が足りません。と表示されてしまう。
ですが、
こちらに関しては、前述の通り、イベントの設定内容を見る限り、正しく設定できていると思いますので、
所持金が正しく設定(増加)されているかどうかを確認する必要があるかと思います。
数値入力の処理の前に

◆文章:People4(1), ウィンドウ, 下
:  :何枚ご購入になりますか?\$

という文章表示のコマンドを入れてみてください。
これを入れると数値入力の際に右上に所持金のウィンドウが表示されるので、
所持金がきちんとあるかどうかを確認してください。

あと、細かい点として2つほど。

\v[003] と変数の値を出力する制御文字で [] の中の数字が 003 となっていますが、
MVの動作を制御している JavaScript というプログラミング言語では、
先頭に 0 のつく数値は8進数で表記されているものとして扱うというのがあるため、
こういう表記はしないほうがいいです。
制御文字の変換の処理中では、特に問題にならないようですが、
他の場面では、問題になる場合があることを覚えておいてください。


また、
◆変数の操作:#0004 コイン所持数 = コイン購入
となっていますが、
これだと、コインを購入するたびに、コイン所持数が、その時購入した枚数に変更されてしまうので、
◆変数の操作:#0004 コイン所持数 += コイン購入
とする(代入ではなく加算にする)のが正しいです。

以上、長文になり申し訳ありませんが、ご確認ください。
Ameria
記事: 5
登録日時: 2023年9月09日(土) 04:40

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by Ameria »

ご指摘ありがとうございます。
ショップを開いて「0枚」と表示されるのは理解しましたが、ショップの処理が終わりメニュー画面を開くと所持金がすべてなくなってしまっています。こちらも原因わかりますか?

また、ご指摘通り所持金を表示できるように試しに1000Gを交換しようとした際まだ、所持金不足とでてしまいます。
(交換所の処理は頂いた文章を追加、◆変数の操作:#0004 コイン所持数 += コイン購入を修正した点以外は変更していません。)

何か原因分かれば教えていただけますでしょうか。

よろしくお願いいたします。
添付ファイル
所持金不足.png
何枚購入.png
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by ecf5DTTzl6h6lJj02 »

Ameria さんが書きました:ご指摘ありがとうございます。
ショップを開いて「0枚」と表示されるのは理解しましたが、ショップの処理が終わりメニュー画面を開くと所持金がすべてなくなってしまっています。こちらも原因わかりますか?

また、ご指摘通り所持金を表示できるように試しに1000Gを交換しようとした際まだ、所持金不足とでてしまいます。
(交換所の処理は頂いた文章を追加、◆変数の操作:#0004 コイン所持数 += コイン購入を修正した点以外は変更していません。)

何か原因分かれば教えていただけますでしょうか。

よろしくお願いいたします。
上記現象が起こるということは、(特にショップ画面終了時に所持金が0になってしまうということは)
変数ID 0001 プレイヤーの所持金 に 所持金が正しく代入されておらず、0 になってしまっている可能性が高いです。
追加してもらった文章表示コマンドを

◆文章:People4(1), ウィンドウ, 下
:  :カジノ店員
:  :「何枚ご購入になりますか?
:  :プレイヤーの所持金(変数ID 0001)は
:  :\V[1] \Gです。」\$

などと変え、変数ID 0001 プレイヤーの所持金 の内容も表示して、確認してみてください。
’この時に 0 Gです。’ と表示されるようであれば、何らかの原因で、変数ID 0001 の値がおかしくなっています。
何か、並列処理のイベントが起動していて、そのイベントの中で、 変数ID 0001 の値を 0 にしてしまうような処理が入っていないか確認してみてください。
そのようなイベントが無いという場合、使用しているプラグインが悪さをしていると考えられるので、
一旦すべてのプラグインを OFF にしてみてください。
この状態で、正常に動作する場合はプラグインが原因となっています。
ひとつづつ、プラグインを ON にしていって、どのプラグインがONになった時に、正常に動作しなくなるのか特定してください。
Ameria
記事: 5
登録日時: 2023年9月09日(土) 04:40

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by Ameria »

教えていただいたように表示すると、ご指摘通り変数として代入出来ていないっぽいです。
並列処理のイベントは特になく一応ほかのMAPいある並列処理も止めて起動してみましたが、ダメでした。
補足ですが、ここで初めて変数を使用しているので他で使用している可能性は低いです。
(他MAPを新規作成して試してもだめでした。)

次にプラグインを全てOFFにしてみたのですが、画像のような画面でプラグインが原因ではないと感じました。
購入画面.png
新規プロジェクトで同じように処理を作ったところこちらも正常に動作しませんでした。
私の知識が浅く変数の使い方自体を間違えている可能性があります。
変数一覧ですが、4項目しかありません。
変数.png
変数.png (52.81 KiB) 閲覧された回数 1092 回
何か間違えていたらまた、教えていただけますでしょうか。

よろしくお願いします!
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by ecf5DTTzl6h6lJj02 »

もしかして、
変数ID 0001 プレイヤーの所持金に 変数ID 0002 所持金 を代入していますか?
だとしたら、原因はそれです。
変数 ID 0002 所持金 には、何の値も代入されていない(ですよね?)ので、0のはずです。
それを変数ID 0001 に代入しているのであれば、変数ID 0001 の値は 0 になってしまいます。
オタク女子のゲーム&IT入門さんの記事でも書かれている通り、変数ID 0001 プレイヤーの所持金には、ゲームデータ > その他 > 所持金 を選択して、
パーティーの所持金を代入しなければいけません。
プレイヤーの所持金への代入図
プレイヤーの所持金への代入図
※私のほうで、変数ID 0021 を使用しているだけなので、変数IDが違うのは気にしないでください

正しく設定している場合と表示のされ方が一緒だったので気づきませんでした。
ここ(コインの購入のイベントと、景品交換のイベントと両方の所持金を代入する部分)を直せば正常に動作するはずです。
Ameria
記事: 5
登録日時: 2023年9月09日(土) 04:40

Re: カジノコインに変換、交換する処理を教えて欲しいです!

投稿記事 by Ameria »

アクセスできず返信遅くなりました。

無事動作致しました。ありがとうございます。
返信する

“MV:質問”に戻る