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

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

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

■1567 / inTopicNo.1)  インクルードが動きません助けてください
  
□投稿者/ リューク -(2002/01/26(Sat) 12:00:01)
http://csx.jp/~secondlife/
    初めましてリュークと言います
    早速ですが、勉強のために作った文字スクロールのインクルードが動きません
    動かそうとした所でSRCが止まってしまいました
    http://csx.jp/~secondlife/TextScroll.txt
    にアップしました

    図々しいと自分でも思いますが
    助けてください
引用返信/返信 削除キー/
■1568 / inTopicNo.2)  こちらで質問されてはいかがでしょうか
□投稿者/ カーツ -(2002/01/26(Sat) 12:27:27)
    初めまして、リュークさん。

    この手のシナリオ作成に関する話題でしたら
    三笠氏が運営されているSRC開発支援センター
    http://tomato.sakura.ne.jp/~mikasa/src/
    にある、"シナリオサポート掲示板"管理人の上条さんに
    質問してみると良いと思いますよ。

    但し、書き込みにあたってネチケットはしっかり守ってくださいね。
解決済み!
引用返信/返信 削除キー/
■1569 / inTopicNo.3)  Re[2]: こちらで質問されてはいかがでしょうか
□投稿者/ リューク -(2002/01/26(Sat) 12:38:39)
http://csx.jp/~secondlife/
    そうさせていただきます
    ありがとうございました
引用返信/返信 削除キー/
■1570 / inTopicNo.4)  Re[1]: インクルードが動きません助けてください
□投稿者/ 幻魔の公子 -(2002/01/26(Sat) 13:18:01)
     幻魔の公子です。

     止まる理由かどうかは知りませんが、いくつか気になった点を。
     とりあえず、Else以降に命令を記述しないなら、Elseは必要ありません。

     まず、このインクルードは現在行数が1のときに無限ループに陥ります。
     TextStartラベルにおいて、現在行数が1のとき、If文全てが飛ばされます。(おそらく、これは意図された動作ではないでしょう)
     If〜If〜Else〜Endif〜If〜Endif〜(中略)〜Endifという順になっていますよね?
     おそらく、三つ目のElseと四つ目のEndifを最初のIfに対応させたいのではないかと予想しておりますが、これだと二つ目のIfに対応してしまいます。残りは順次IfとEndifが対になっているので、一つ目のIfと対応するのは最後のEndifなわけです。
     そして、そこまで行くことがあった場合、現在行数が増えることは有り得ず、よって延々ループし続けるわけです。

    >If Args(現在行数+1) > 35 Then
     ここですが、これはArgs()の文字数が35文字以上だったら、という意味でしょうか? おそらくこれには文字列が入るように思われるのですが。
     でしたら、Len(Args(現在行数 + 1))とする必要があります。
     違うのであれば申し訳ありません。

    >PaintString - 480-高度1 Args(1)
     これの、「480-高度1」ですが、演算子と数、文字列の間には半角スペースが必要です。
     ですから、(480 - 高度1)とすべきだと思われます。
     「40*最終行数」とか、「450/最終行数」とかもですね。

    > If 現在行数 > 2 Then
    >Else

     や、

    > If 現在行数 > 3 Then
    >EndIf

     の部分は、どのような動作を意図されたものでしょうか?
     上の方は、現在行数が2以下の場合に動作する、となります。
     しかし、おそらく現在行数が1の場合にElse以下を実行し、また現在行数が3以上の場合にEndif以降を実行させたいのではないでしょうか。
     でしたら、このIf文はEndifの後に持ってくるべきだと思われます。(何れにせよ、現在行数が2以下ならばそれ以降は実行されません)

     下の方は、Ifの条件に合致したときだけEndifを実行させたいのでしょうか? それは無理です。そのIfに対応するEndifだと判断されるからです。
     おそらくですが、これもEndifの下にIfを入れてもそのまま動作すると思われます。

     それから、PaintStringの下にあるReturnは、おそらくRefreshではないでしょうか?

     また、Stopのラベルの最後のRefreshは逆にReturnではないかと思います。これだと、どこからも戻れず、エラーになります。

     他、Call中にGotoを使った場合に正常に動作するかわからないので追記しておきます。正常に動くなら特に必要はありません。
     TextScrollからTextStartへのGotoは必要ありません。その下のReturnともども削りましょう。
     StopへのGotoですが、Stopの命令をIf文の中に入れてしまえばそれで済むように思います。
     TextStart中のGotoは、Do〜Whileコマンドを使えば問題ありません。Whileの条件式に、絶対に満たされない条件を書いておけばよろしいかと。

     とりあえず見ていて思いついた点は以上です。
     それでは。

引用返信/返信 削除キー/
■1571 / inTopicNo.5)  Re[2]: ありがとうございました
□投稿者/ リューク -(2002/01/26(Sat) 13:32:53)
http://csx.jp/~secondlife/
    幻魔の公子さん、ありがとうございました
    とりあえず今からご指摘された点をなおしてみます
    もっと勉強しないと……(T_Tです

解決済み!
引用返信/返信 削除キー/
■1572 / inTopicNo.6)  Re[2]: インクルードが動きません助けてください
□投稿者/ リューク -(2002/01/26(Sat) 15:42:34)
http://csx.jp/~secondlife/
    見ました……
    それで簡単に(構造が)改修したのですが
    今度は飛ばされるようになっていました
    改修したのを先ほどのアドレスにアップしました
引用返信/返信 削除キー/
■1574 / inTopicNo.7)  Re[3]: インクルードが動きません助けてください
□投稿者/ 幻魔の公子 -(2002/01/26(Sat) 17:16:00)
     幻魔の公子です。

     ごめんなさい、説明に一つ間違いがありました。
     Whileの条件式を常に満たすように、でした。

    >Do While (100 < 現在行数)
     ここの比較演算子を逆にすれば動きます。

     ただ、動くには動きましたが、無限ループになりました。
     説明が悪かったですが、えーと、終了の条件を満たした時点でReturnしてしまってはどうか、と言っているつもりだったのです。

    >If 高度1 > 480 - 480 / 最終行数 Then

     このIf文で、表示が消えていくようにしたいのですよね、多分?
     高度の変数を高度[]に変えて、

    For i = 1 To 7
    If 高度[i] > 480 - 480 / 最終行数 Then
    待ち時間 = 5 * 最終行数
    Wait 待ち時間
    Incr 高度[i] -2000
    If i = 最終行数 Then
    Return
    Endif
    Endif
    Next

     こんな感じにするとかいうのはどうでしょう。

     それでは。

引用返信/返信 削除キー/
■1578 / inTopicNo.8)  Re[4]: 出来ました!!
□投稿者/ リューク -(2002/01/26(Sat) 21:39:17)
http://csx.jp/~secondlife/
    やっと出来ました
    幻魔の公子さん、カーツさん
    ありがとうございました

    何度目の解決済みでしょうか?
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -