[掲示板へもどる]
一括表示

記事No: 21604 [関連記事]
タイトル選択肢を進行具合で表示/非表示にしたい
投稿日: 2024/02/05 16:01
投稿者初心者 [FiFdeW1173(海外)]

はじめまして。

[やりたいこと]
ゲーム中のヒント係を作成する際に、ゲームの進行度合い(変数)に応じて選択肢を消したり表示したい。
例:
□選択肢
・ヒントA(操作法)
 初期からずっと表示
・ヒントB(Aという街の行き方について)
 ※Aの街の話をNPCに聞いてから表示
・ヒントC(Bのアイテムの入手の仕方)
 ※Bのアイテムに関する文章を開いてから表示
その後、A街やBに関するイベントが終わったらこれに関する選択肢を消したいです。

[やってみたこと]
【条件分岐】
条件1:v[A街への行き方フラグ]が1と同じ時
 文字列操作:v[このイベントのセルフ2]=S1[A街への行き方]
条件2:v[Bのアイテムフラグ]が1と同じ時
 文字列操作:v[このイベントのセルフ3]=S2[Bの入手法]
【選択肢】
 選択肢A[操作方法]
  文章表示:操作方法
 選択肢B[\self2]
  ヒントの内容
 選択肢B[\self3]
  ヒントの内容
 選択肢E[閉じる]
  選択肢強制中断
[やってみた結果、どううまくいかないか]
ヒント役NPCの選択肢が空欄/非表示にならず、
 操作方法
 0
 0
 閉じる
になってしまいました。

理想形
 操作方法
 A街への行き方
 Bの入手法
 閉じる
 
この0(数字)というのが表示されてしまう原因がわかりませんでした。
変数の条件を0と同じにして、変数0の状態で話しかけても同様に「0」が表示されました。

色々調べたのですが解決方法がわからず、お力添え頂きたいです。
過去の質問とかぶっていましたら大変申し訳ございません。
よろしくお願いいたします。


記事No: 21605 [関連記事]
タイトルRe: 選択肢を進行具合で表示/非表示にしたい
投稿日: 2024/02/05 19:46
投稿者YADO [LerLWW459(海外)]

> はじめまして。
>
> [やりたいこと]
> ゲーム中のヒント係を作成する際に、ゲームの進行度合い(変数)に応じて選択肢を消したり表示したい。
> 例:
> □選択肢
> ・ヒントA(操作法)
>  初期からずっと表示
> ・ヒントB(Aという街の行き方について)
>  ※Aの街の話をNPCに聞いてから表示
> ・ヒントC(Bのアイテムの入手の仕方)
>  ※Bのアイテムに関する文章を開いてから表示
> その後、A街やBに関するイベントが終わったらこれに関する選択肢を消したいです。
>
> [やってみたこと]
> 【条件分岐】
> 条件1:v[A街への行き方フラグ]が1と同じ時
>  文字列操作:v[このイベントのセルフ2]=S1[A街への行き方]
> 条件2:v[Bのアイテムフラグ]が1と同じ時
>  文字列操作:v[このイベントのセルフ3]=S2[Bの入手法]
> 【選択肢】
>  選択肢A[操作方法]
>   文章表示:操作方法
>  選択肢B[\self2]
>   ヒントの内容
>  選択肢B[\self3]
>   ヒントの内容
>  選択肢E[閉じる]
>   選択肢強制中断
> [やってみた結果、どううまくいかないか]
> ヒント役NPCの選択肢が空欄/非表示にならず、
>  操作方法
>  0
>  0
>  閉じる
> になってしまいました。
>
> 理想形
>  操作方法
>  A街への行き方
>  Bの入手法
>  閉じる
>  
> この0(数字)というのが表示されてしまう原因がわかりませんでした。
> 変数の条件を0と同じにして、変数0の状態で話しかけても同様に「0」が表示されました。
>
> 色々調べたのですが解決方法がわからず、お力添え頂きたいです。
> 過去の質問とかぶっていましたら大変申し訳ございません。
> よろしくお願いいたします。


マップイベントのセルフ変数は数値しか保存する事ができないので、文字列を保存しようとしても「0」などの数値になってしまいます。

またイベントコマンド「文字列操作」にある「代入先を変数で指定」は、数値系の変数に文字列を設定する機能ではなく、
数値系の変数に「変数呼び出し値」を設定して、どこの文字列変数に文字列を設定するのかを指定する時に使います。

例えば
■変数操作: このEvのセルフ変数0 = 1100001201 + 0
■文字列操作:V[このEvのセルフ変数0] = "あいうえお"
と設定した場合、「変数呼び出し値=1100001201」は可変DB[0:主人公ステータス]の[12:ウルファール]の[1:肩書き]の変数呼び出し値になるため、
上記設定を実行すると、ウルファールの肩書きが「案内人」から「あいうえお」に変わります。


選択肢の選択項目を表示するorしないを設定する場合は、文字列変数を使ってください。

■文字列操作:S1[] = ""
■文字列操作:S2[] = ""
■条件分岐(変数): 【1】 V1[] が 1 と同じ
-◇分岐: 【1】 [ V1[] が 1 と同じ ]の場合↓
|■文字列操作:S1[] = "A街への行き方を訊く"
|■
◇分岐終了◇
■条件分岐(変数): 【1】 V2[] が 1 と同じ
-◇分岐: 【1】 [ V2[] が 1 と同じ ]の場合↓
|■文字列操作:S2[] = "Bの入手法を訊く"
|■
◇分岐終了◇
■ループ開始
|■文章選択肢:/ 【1】操作方法 / 【2】\s[1] / 【3】\s[2] / 【4】閉じる
|-◇選択肢:【1】 操作方法 の場合↓
| |■文章:操作方法の文章
| |■
|-◇選択肢:【2】 \s[1] の場合↓
| |■文章:A街への行き方の文章
| |■文字列操作:S1[] = ""
| |■変数操作: V1[] = 2 + 0
| |■
|-◇選択肢:【3】 \s[2] の場合↓
| |■文章:Bの入手法の文章
| |■文字列操作:S2[] = ""
| |■変数操作: V2[] = 2 + 0
| |■
|-◇選択肢:【4】 閉じる の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇


上記設定の選択肢内にある
■文字列操作:S1[] = ""
■変数操作: V1[] = 2 + 0
の設定は、一度選択したら選択項目が消える設定になっています。

もしも何度も見れるようにする場合は
■文字列操作:S1[] = ""
■変数操作: V1[] = 2 + 0
の設定を削除してください。


なお、ウディタのサンプルゲーム内にあるマップ「サンプルマップA」のマップイベント09「コック(パン屋)」にも、
選択肢を一度選択すると選択項目が消える設定例があります。


記事No: 21606 [関連記事]
タイトル無事にできました
投稿日: 2024/02/05 20:27
投稿者初心者 [FiFdeW1173(海外)]

YADO 様
ご返信ありがとうございます。
教えて頂いた通りにやてみたところ、無事に想定した通りになりました。
原因についてもご教授いただき、ありがとうございました!
大変勉強になりました。