私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇359:
Re:補足 [masaki] 02/16 13:23

 └◇360:Re[2]:補足 [moon] 02/16 15:13
  └◇361:Re[3]:補足 [masaki] 02/16 16:42
   └◇362:Re[4]:補足 [masaki] 02/16 19:20
    └◇363:Re[5]:補足 [moon] 02/16 20:16
     └◇364:Re[6]:補足 [masaki] 02/16 21:32
      └◇365:Re[7]:補足 [moon] 02/16 22:20
       └◇367:Re[8]:補足 [masaki] 02/16 22:46
        └◇368:Re[9]:補足 [moon] 02/16 23:53
         ├◇369:補足 [moon] 02/17 00:14
         │└◇372:Re:補足 [masaki] 02/17 06:36
         │ └◇373:Re[2]:補足 [moon] 02/17 09:08
         └◇370:Re[10]:補足 [masaki] 02/17 06:23


359● Re:補足[ masaki ] 2003 02/16 13:23
そうですね。全部載せるのは再配布のような気がします。。
以後気をつけます。御忠告ありがとうございました。

最初の方法でやってみたのですが、
http://m3voyage.hp.infoseek.co.jp/sos.jpg
こんな風になってしまします(;;
この下に、さらにまたプレイヤーのデータが表示されています。
(左上の文字が気になりますが(^^;)
怪しいと思うのは
Main Programの
if ($Fm{'mode'} eq 'dungeon_select') { require 'dungeon.pl'; &dungeonselect_form }
normal actionの
&input('radio','mode','dungeon_select','',"ダンジョン攻略に出かける<br>\n") if $av ne 'dead';
あたりです。(でも、どこもおかしくなさそうですが)
あとは、僕のやり方が間違っているとしか・・・。
# Sub Normal Action #
sub normal_action {
    if($tw eq 1){
&get_file; &list_in;
    print qq|<tr>|;
    &form('start');
    print qq|<td valign=top>|;
    &input('radio','mode','note_before','',"手紙を書く<br>\n");
#1の街のときの行動(省略)
&input('radio','mode','dungeon_select','',"ダンジョン攻略に出かける<br>\n") if $av ne 'dead';
&OKbuttoninform('n');
    print qq|</td>|;
    &form('end');
}
else{
&get_file; &list_in;
    print qq|<tr>|;
    &form('start');
    print qq|<td valign=top>|;
    &input('radio','mode','find_partner',' checked',"他のプレイヤーを探す<br>\n");
    &input('radio','mode','note_before','',"手紙を書く<br>\n");
#その他の街での行動(省略)
&OKbuttoninform('n');
    print qq|</td>|;
    &form('end');
}
という感じです。。
見にくくてすみません(;;
スレッド一覧


360● Re[2]:補足[ moon ] 2003 02/16 15:13
> そうですね。全部載せるのは再配布のような気がします。。
> 以後気をつけます。御忠告ありがとうございました。

これは忠告ではなくただ疑問に思っただけです。まあ、どっちでも良いのですが。(笑)

> 最初の方法でやってみたのですが、
> http://m3voyage.hp.infoseek.co.jp/sos.jpg
> こんな風になってしまします(;;
> この下に、さらにまたプレイヤーのデータが表示されています。
> (左上の文字が気になりますが(^^;)

左上の文字は&header;が2度実行されているからです。
同様に2つ目のプレイヤーデータが表示されるのは&partner_data;が2度実行されているからでしょうね・・・。

町に行った瞬間にダンジョンに行くのではなく、行くかどうかを選択できるということだったのですか?
しかも、ダンジョン専用の画面が用意されているようだし。

それなら、normal_actionではダンジョンと普通の町で行動メニューを分けず普通の行動メニューを追加するように、
  &input('radio','mode','dungeon_select','',"ダンジョン攻略に出かける<br>\n") if($tw eq '1' && $av ne 'dead');
とかを追加すれば良いだけでは?
スレッド一覧


361● Re[3]:補足[ masaki ] 2003 02/16 16:42
> 左上の文字は&header;が2度実行されているからです。
> 同様に2つ目のプレイヤーデータが表示されるのは&partner_data;が2度実行されているからでしょうね・・・。
&header;も&partner_data;も、normal_action内にはないのですが(;;
よくわからないです。。すみません。。
> それなら、normal_actionではダンジョンと普通の町で行動メニューを分けず普通の行動メニューを追加するように、
>   &input('radio','mode','dungeon_select','',"ダンジョン攻略に出かける<br>\n") if($tw eq '1' && $av ne 'dead');
> とかを追加すれば良いだけでは?
はい。。まったくその通りです。(笑)
なんだか難しく考えすぎていたみたいですね(^^;
スレッド一覧


362● Re[4]:補足[ masaki ] 2003 02/16 19:20
dungeon.pl内の
# Sub DungeonSelect Form -- ダンジョン選択フォーム--
sub dungeonselect_form {
&header;
&table_top;
&msg;
&dungeon_select    if $Fm{'mode'} eq 'dungeon_select';
&table_bottom;
}
の&headerかと思いましたがこれも違いました。。
説明書通りではないと大変ですね(^^;
(変更点が多いですし)
スレッド一覧


363● Re[5]:補足[ moon ] 2003 02/16 20:16
> dungeon.pl内の
> # Sub DungeonSelect Form -- ダンジョン選択フォーム--
> sub dungeonselect_form {
> &header;
> &table_top;
> &msg;
> &dungeon_select    if $Fm{'mode'} eq 'dungeon_select';
> &table_bottom;
> }
> の&headerかと思いましたがこれも違いました。。
> 説明書通りではないと大変ですね(^^;
> (変更点が多いですし)

うまくいったか微妙な返信だったので、うまくいったと判断し何も返信しませんでしたが一部まだだったのですね。(笑)

以下、確認事項。
・dungeon_selectは何をやっているものですか?(想像は出来ますが)
・dungeonselect_formの後に続く処理は何も無いですよね?
・流れは「ダンジョン攻略に出かける」→「dungeonselect_form」→終了、ですか?(それとも違う処理?)
・画像の状態は何をした後ですか?

とりあえず、流れを見極めないことには・・・。
スレッド一覧


364● Re[6]:補足[ masaki ] 2003 02/16 21:32
> 以下、確認事項。
> ・dungeon_selectは何をやっているものですか?(想像は出来ますが)
いくつかあるダンジョンの中から行きたいダンジョンを選ぶ物です。
(そのまんまかな(^^;)
> ・dungeonselect_formの後に続く処理は何も無いですよね?
続く処理はないです。上ので終わりです。
> ・流れは「ダンジョン攻略に出かける」→「dungeonselect_form」→終了、ですか?(それとも違う処理?)
ダンジョン攻略に出かける⇒dungeonselect_form⇒dungeon_action⇒終了 です。。
> ・画像の状態は何をした後ですか?
画像は「ダンジョン攻略に出かける」をしたあとです。
> とりあえず、流れを見極めないことには・・・。
はい(^^;
色々とすみません(^^;
スレッド一覧


365● Re[7]:補足[ moon ] 2003 02/16 22:20
> > ・dungeonselect_formの後に続く処理は何も無いですよね?
> 続く処理はないです。上ので終わりです。
で、if ($Fm{'mode'} eq 'dungeon_select') { require 'dungeon.pl'; &dungeonselect_form }なら、これの実行時は選択画面しか表示されない(行動画面やプレイヤーデータが表示されない)ということになるような。(dungeon_selectでそこまで表示しているのなら大丈夫ですが)

> > ・流れは「ダンジョン攻略に出かける」→「dungeonselect_form」→終了、ですか?(それとも違う処理?)
> ダンジョン攻略に出かける⇒dungeonselect_form⇒dungeon_action⇒終了 です。。
> > ・画像の状態は何をした後ですか?
> 画像は「ダンジョン攻略に出かける」をしたあとです。

dungeonselect_form⇒dungeon_actionということなのでdungeon_actionのほう(もしくはそこから呼び出されるサブルーチン)で&header;が余分に実行されているのでは?

# 例によって、push(@msg,'〜');または場所によってprint '〜';で確認したほうが流れ確認には早いような。(とりあえず、付ける場所はdungeon系のサブルーチンの先頭)
スレッド一覧


367● Re[8]:補足[ masaki ] 2003 02/16 22:46
> # 例によって、push(@msg,'〜');または場所によってprint '〜';で確認したほうが流れ確認には早いような。(とりあえず、付ける場所はdungeon系のサブルーチンの先頭)
むむ・・。
push(@msg'〜')などを付けて調べると言う事ですか?

@rcdlines = &get_user("$Fm{'id'}");
    @dstslines = &get_dstatus("$Fm{'id'}");
    local($ipng,$north,$south,$east,$west) = get_dungeon($ufln,$upox,$upoy);
    &get_file; &list_in;

    &form('start');
    print qq|<td valign=top>|;
    print qq|シナリオ:$usnm<br>|;
    print qq|<img src="$imgdir$ipng" width=$ig_wd height=$ig_ht>\n|;
    print qq| <img src="$imgdir$ivntpng" width=$ig_wd height=$ig_ht>\n| if ($discoverflag == 1);
    print qq|<br>現在位置 X $upox Y $upoy<br><br>|;

    if ($fight_flag) {
        #ダンジョン内での戦闘
    }
    else {#移動・その他の行動
        
    }
    &OKbuttoninform('n');
    print qq|</td>|;
    &form('end');
いまいちわからないのですが・・。
(本当にすみません(;;)
検索してみましたが、&headerはありませんでした。。
スレッド一覧


368● Re[9]:補足[ moon ] 2003 02/16 23:53
> push(@msg'〜')などを付けて調べると言う事ですか?

そうです。

何をやっているのかが分からなくなってきたので、確認ですが現象は画像のまま変わっていませんよね?
あと、画像のときのHTMLソースがあったほうが良いです。

# 「ダンジョン選択」「dungeonselect_form」を一度実行した後、「dungeonselect_form」「dungeon_action」の繰り返し、なら大枠としては変なところが見つからないんだけどな・・・。
スレッド一覧


369● 補足[ moon ] 2003 02/17 00:14
本当にheaderが2度実行されているかの確認もしておいたほうが良いかな、ということでsub headerに以下を追加。

$xxx++;
$zzz = "header count $xxx";
print "$zzz<br>";
push(@msg,$zzz);

ちなみに、追加した後は画面で確認するのではなくHTMLで確認したほうが正確です。(これに限りませんが)
スレッド一覧


372● Re:補足[ masaki ] 2003 02/17 06:36
トップからずっと、
header count1
でしたが、ダンジョンへ行くをしたところ
header count2
もでてきました(;;
やっぱりdungeonselectでしょうか?(・・;
スレッド一覧


373● Re[2]:補足[ moon ] 2003 02/17 09:08
> トップからずっと、
> header count1
> でしたが、ダンジョンへ行くをしたところ
> header count2
> もでてきました(;;
> やっぱりdungeonselectでしょうか?(・・;

dungeonselect_formが毎回呼び出される必要があるのか分からないので何とも言えないですが、呼び出す必要が無いならそうして試してみてください。

あと一つ思い付いたのですが、dungeon_actionの実行はplay_formの中ですか?
それとも、メイン処理分岐(Main Program)の中ですか?

前者の場合、dungeon_actionの中でも&player_data;を実行している場合2度目になるので画像のようになると思います。(もちろん&dungeonselect_formも実行されているのなら&header;も2度目になります。)

# 関係ないですけれどアップしてもらったテキストを表示するとHTMLとして表示されますね・・・。(iswebの仕様なのかな?それともうちだけ?)
# HTMLだとバナーが付くのにテキストだとバナーが付かないようなのでこれを悪用している人がいそう。(笑)
スレッド一覧


370● Re[10]:補足[ masaki ] 2003 02/17 06:23
・dungeonselect_formに一つ&headerがあったので削除してみましたが、プレイヤーのデータの周りの枠(だけ)が消えてしまいました。
http://m3voyage.hp.infoseek.co.jp/sos0.txt(ソース)
・結局、あの画像の状態から変化なしです(TT
http://m3voyage.hp.infoseek.co.jp/sos1.txt
スレッド一覧

CGIROOM