SRC質問掲示板Mk2
(現在 過去ログ128 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■22251 / inTopicNo.1)  グローバル変数がシナリオ終了後にリセットされる
  
□投稿者/ F -(2011/04/04(Mon) 23:07:57) [ID:YpnHWitb]
    はじめまして、Fといいます。よろしくお願いします。
    シナリオ作成中なのですが、グローバル変数が想定どおり機能しないため、
    質問させてください。

    ==前提の認識===
    Global・・・引数に渡した文字列をグローバル変数として宣言する(変数として利用するにはSetで変数化させる必要がある)
    Set ・・・・引数に渡した文字列を変数として作成する。既に存在する場合は、変数に値を設定する。
    ==========

    現在、作成中のシナリオで、
    話を跨いでグローバル変数を利用した処理を利用しています。
    しかし、3話のプロローグでGlobal宣言した変数、fFirstOkGとfSecondOkGを
    4話で利用しようとしたところ、値が引き継がれていませんでした。
    具体的には、3話の上記2つの変数を利用した条件分岐では、
    二重のIF文の中の処理@(想定通りの分岐)が実施されたのに対し、4話の全く同じ条件分岐では
    IF文の中の処理AどころかBも実施されず、EndIf以降の処理が実施されました。

    変数の値を調べるため、4話の冒頭でTalkと$()を挿入したところ、
    fFirstOkGとfSecondOkGに関してはそのまま変数名が出力され、
    suScoreG[先生]に関してのみ、想定したとおりの値(数字)が出力されました。
    # fFirstOkGとfSecondOkGは変数自体が無くなってる?

    該当箇所を以下に記載しました。
    Helpを見ながら、作成しているつもりなんですが、
    どこか書式がおかしいでしょうか?

    原因の分かる方がいましたから、御指摘をお願いします。


    ------↓第3話ここから↓---------------------------------------------------

    プロローグ:



    Global fFirstOkG
    Set fFirstOkG 0
    Global fSecondOkG
    Set fSecondOkG 0
    Global suScoreG
    Set suScoreG[先生] 0



    Exit

    戦闘イベント:



    Set fFirstOkG 1
    Set fSecondOkG 1



    Exit

    *破壊 敵:


    Incr suScoreG[一人目男]


    Exit

    エピローグ:



    If fYukaOkG Or fNamiOkG Then


    If fYukaOkG And fNamiOkG Then

    @

    EndIf


    EndIf

    Exit

    ------↑第3話ここまで↑---------------------------------------------------

    ------↓第4話ここから↓---------------------------------------------------

    プロローグ:

    If fYukaOkG Or fNamiOkG Then

    B

    If fYukaOkG And fNamiOkG Then

    A

    EndIf


    EndIf



    Exit

    ------↑第4話ここまで↑---------------------------------------------------

引用返信/返信 削除キー/
■22253 / inTopicNo.2)  Re[1]: グローバル変数がシナリオ終了後にリセットされる
□投稿者/ SIF -(2011/04/05(Tue) 10:18:32) [ID:BBr92Y4z]
    こんにちは、SIFです。

    記述されたイベントを見ると、
    グローバル変数として宣言されたfFirstOkGとfSecondOkGは利用されておらず、
    fYukaOkGとfNamiOkGという変数が使われているように見えるのですが。
引用返信/返信 削除キー/
■22254 / inTopicNo.3)  Re[2]: グローバル変数がシナリオ終了後にリセットされる
□投稿者/ F -(2011/04/05(Tue) 21:40:07) [ID:YpnHWitb]
    > 記述されたイベントを見ると、
    > グローバル変数として宣言されたfFirstOkGとfSecondOkGは利用されておらず、
    > fYukaOkGとfNamiOkGという変数が使われているように見えるのですが。

    っと、失礼しました。
    正確には↓です。

    ------↓第3話ここから↓---------------------------------------------------

    プロローグ:



    Global fFirstOkG
    Set fFirstOkG 0
    Global fSecondOkG
    Set fSecondOkG 0
    Global suScoreG
    Set suScoreG[先生] 0



    Exit

    戦闘イベント:



    Set fFirstOkG 1
    Set fSecondOkG 1



    Exit

    *破壊 敵:


    Incr suScoreG[先生]


    Exit

    エピローグ:



    If fFirstOkG Or fSecondOkG Then
     ・
     ・
     If fFirstOkG And fSecondOkG Then
      ・
      @
      ・
     EndIf
     ・
     ・
    EndIf

    Exit

    ------↑第3話ここまで↑---------------------------------------------------

    ------↓第4話ここから↓---------------------------------------------------

    プロローグ:

    If fFirstOkG Or fSecondOkG Then
     ・
     B
     ・
     If fFirstOkG And fSecondOkG Then
      ・
      A
      ・
     EndIf
     ・
     ・
    EndIf



    Exit

    ------↑第4話ここまで↑---------------------------------------------------

引用返信/返信 削除キー/
■22255 / inTopicNo.4)  Re[3]: グローバル変数がシナリオ終了後にリセットされる
□投稿者/ impact -(2011/04/06(Wed) 01:23:49) [ID:58NxFF72]
    当方、現在SRCが使用出来ない環境下ですので流し見た程度ですが気づいた点を。

    ># fFirstOkGとfSecondOkGは変数自体が無くなってる?

    これは変数の値が0のままである為の現象と思われます。
    どうやら下記部分が実行されず、機能していない為と推測します。


    >戦闘イベント:
    >・
    >・
    >・
    >Set fFirstOkG 1
    >Set fSecondOkG 1
    >・
    >・
    >・
    >Exit

    上記の戦闘イベントなるものに至るまでの経緯が此方では判りかねますので、その辺りを確認されたらと思いますよ。
引用返信/返信 削除キー/
■22256 / inTopicNo.5)  Re[3]: グローバル変数がシナリオ終了後にリセットされる
□投稿者/ HR-16 -(2011/04/06(Wed) 14:03:21) [ID:OV08QR80]
    2011/04/06(Wed) 14:10:56 編集(投稿者)

    はじめまして。HR-16です。

    どの記事に返信するのがいいか、悩みました。(重要じゃない)
    私も、原因はわかりません。私自身、この掲示板のログにお世話になってるレベルですし。
    ですが、原因場所の特定については、少し思うところがあるので、以下少し。

    # fFirstOkGとfSecondOkGは変数自体が無くなってる?
    この確認で一番簡単な方法は、3話終了後のインターミッション(挟まないならクイックセーブでも可)でセーブファイルを残して、そのファイルをメモ帳などのテキストエディタで開くことだと思います。
    Global変数が設定してあれば、必ず記載されています。
    (例「"お試し変数",0」)

    変数の値が"0"でも、変数がなくなることはないです。
    (一応、Global変数に0を入れて確認してみました。)

    なので、そこで
    [1]Global変数のfFirstOkG等が記載されていなければ、3話プロローグでのGlobal宣言から疑わないといけないかと思います。
    [2]0が代入されていれば、3話の戦闘イベントでセットできていない。
    [3]1が代入されていれば、4話での問題ですね。

    助力なれば幸いです。

    [追記]
    3話ではうまく分岐できて、4話では分岐できなかった(変数への代入なし)ということなら、Global宣言ができていない可能性が高い気がします。
引用返信/返信 削除キー/
■22257 / inTopicNo.6)  Re[4]: グローバル変数がシナリオ終了後にリセットされる
□投稿者/ SIF -(2011/04/06(Wed) 22:47:44) [ID:Ooj0ayC4]
    こんばんは、SIFです。

    私も先のお二人と同意見です。
    あとはそもそも、スペルミスしている、ことが考えられるかと。

    HR-16さんの言の通り、3話をクリアした、セーブデータを開いてみると
    何かしらわかるかと思います。

    それでは、失礼します。
引用返信/返信 削除キー/
■22259 / inTopicNo.7)  Re[5]: グローバル変数がシナリオ終了後にリセットされる
□投稿者/ F -(2011/04/10(Sun) 23:15:47) [ID:YpnHWitb]
    SIF様、impact様、HR-16様

    ご助言ありがとうございました。
    # 返信が遅くなり、申し訳ありません

    結論から言うと問題は解決しました。

    @HR-16さんの意見を参考に、3話クリア後のSRCファイルをテキストで開いたところ、
     fFirstOkG、fSecondOkGはやはり存在しませんでした。
    A@の結果から、ご指摘通りGlobal宣言ができていないと推測
    Bファイルを見直しても、原因が分からないのでカット&ペーストでプロローグの冒頭に移動
    C3話クリア後のSRCファイルをテキストで開いたところ、両変数とも存在を確認

    という結果になりました、
    正直詳細な原因は分からなかったんですが、
    開発中ということで、何らかの要因でGlobalコマンドまで到達しなかったのかな
    と思っております。

    皆様ご協力、ご助言、本当にありがとうございました。

解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -