私設SoS2オーナー応援BBS

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

No.842  Re[2]:コンタクト後の探索エラー
発言者: 織江
発言日: 2003 10/18 20:49
>再配布を公開しているのでもない限り、ファイルそのままはリンクしないほうが良いと思いますよ。

すみません…。
混乱してもはや何処がどう悪いのかが分からなくなってしまったもので…。
思わず全て送ってしまいました…。


教えて頂いたnormal_actionの変更を行ったところ、エラーは出なくなりました。
(前は、誰かと会った後に探索しようとすると「Internal Sever Error」と出ました)

そして現在は、通常「体力:16/MAX20」のように表示される部分の、現時点体力が表示されず、探索回数指定も効かない状態です。
ご指摘頂いた、$hpの 代入がおかしいのだろうと思うのですが。

> とりあえずエラー内容の詳細と、normal_action(もしくはそこから呼び出しているサブルーチン)のどこで$hpを代入しているかとその周辺のスクリプトを書いてもらえると原因の判別材料になるかと思います。

ということでしたので、normal_actuionのスクリプトを。

>>>>ここから。

sub normal_action {
&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");
    print qq|<div align=center><select name=pd>\n|;
    foreach $line (@lstlines) {
($pid, $pnm, $pps, $pjb, $pig, $psp, $pbp, $ptw) = (split(/<>/, $line))[0, 1, 2, 3, 4, 5, 6,30];
    if($Fm{'id'} eq $pid){$mysp = $psp; $mybp = $pbp; $myjb = $pjb; $hp = $php; $tw = $ptw;}
        else { print qq|<option value="$pid">$pid:$pnm($pjb)\n| }
    }

    print qq|</select> ID:|;
&input('text','pd2','',' size=4','');
print qq|</div>\n|;
    &OKbuttoninform('n');
    &form('end');
    &form('start');
    
    my $num = $tw == 1 || $tw == 2 || $tw == 3 ? '1' : $tw == 4 || $tw == 5 ? '2' : $tw == 6 || $tw == 7 ? '3' : $tw == 8 ? '4' : $tw == 9 || $tw == 10 ? '5' : ''; # mode値に付く数字の計算
    
&input('radio', 'mode', "find_item$num", ' checked', ('新校舎', '旧校舎上階', '旧校舎', '深層部', '最深部')[$num eq '' ? 0 : $num - 1] . '探索  探索回数:'); # 探索場所の表示
        if ($mysp !~ /Nf/ && $hp > 1)
        {
print qq|<select name=t_max>\n|; $hpcheck = 2;
print qq|<option value="1" SELECTED>1回\n|;
while ($hpcheck < $hp) {print qq|<option value="$hpcheck">$hpcheck\回\n|; last if $t_max == $hpcheck; $hpcheck++;}
print qq|</select><BR>|;
}
else{print qq| 0回<BR>|;}
        
    &input('radio','mode','find_champ','',"覇王に挑戦<br>\n")if $mysp =~ /Tf/;
    &input('radio','mode','use_before','',"アイテムの脱着・使用<br>\n") if $mysp =~ /Tf/;
    &input('radio','mode','use_before','',"アイテムの使用<br>\n") if $mysp =~ /Tv/;

&input('radio','mode','yuugou_before','',"鏡融合<br>\n") if $mysp =~ /Yc/;
        &input('radio','mode','fusion_before','',"合成<br>\n") if $mysp =~ /Bp/;
&input('radio','mode','pet_before','',"小龍飼育<br>\n") if $mysp =~ /Cc/;
    &input('radio','mode','dump_before','',"アイテムを捨てる<br>\n");
    &input('radio','mode','stell_before','',"護符の設定<br>\n") if $mysp !~ /Nf/;
     require "soskit.pl";
&menu_dlstl;
    &input('radio','mode','poem_before','',"詩・日誌を書く<br>\n") if $mysp =~ /Wp/ || $mysp =~ /An/;
    &input('radio','mode','goods_before','',"商品の設定<br>\n") if $mysp =~ /Tv/ && $mysp !~ /Nf/;
    &input('radio','mode','goods_before',' checked',"商品の設定<br>\n") if $mysp =~ /Nf/;
    &input('radio','mode','fee_before','',"治療費の設定<br>\n") if $mysp =~ /Ad|Rv/;
    &input('radio','mode','com_before','',"コメント文の変更<br>\n");
    &input('radio','mode','judge_before','',"アイテム鑑定<br>\n") if $mysp =~ /Eo/;
    &input('radio','mode','name_before','',"銘入り品の名前を変更する<br>\n") if $mybp =~ /Na/;
    if ($mysp !~ /X/) {
        &input('radio','mode','reward','','賞金首に摩尼をかける ID:');
&input('text','pd','',' size=4',' 摩尼:');
&input('text','price','',' size=5','<br><br>');
    }
&input('radio','mode','change_menu','',"進路相談室へ<br>\n")if ($tw == 1);
    &input('radio','mode','norm_save','',"踊場で保存\n");
    &input('radio','mode','hide_save','',"身を隠して保存<br>\n");
    &input('radio','mode','levy','',"<font color=red>税の徴収をして保存(注意)</font><br>\n") if $mysp =~ /Lv/;
    &input('radio','mode','del_before','',"キャラを削除\n")if ($tw == 1);
    &input('radio','mode','back_up','',"バックアップ\n")if ($tw == 1);
    &OKbuttoninform('n');
print qq|</td>|;
    &form('end');
}

#略#

# Sub HitPoint Check #
sub hpcheck {
$_[0] += $_[2];
    $_[0] = 1 if $_[0] < 1;
    $_[0] = $_[1] if $_[0] > $_[1];
    return($_[0]);
}

#略#
# Sub Get User #
sub get_user {
return if $getuserflag;
    open(IN,"$usrdir$_[0]\.dat") || &error("ID $_[0]は存在しません");
    @_ = <IN>;
    close(IN);
if (!@_) { &error("ID $_[0] 読みこみエラー") }
    ($id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db,
    $av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,$fe,$cm,$is,$ht,$fg,$rw,$kl,$tw) = split(/<>/,$_[0]);
$userline = shift(@_);
$getuserflag = 1;
    return @_;
}

<<<<ここまで。
何度も何度も申し訳ありません…。

▼関連発言

824:街ごとにアイテム変化(探索回数指定付) [織江] 10/15 14:17
 └825:Re:街ごとにアイテム変化(探索回数指定付) [moon] 10/15 19:51
  └826:有難うございます!! [織江] 10/15 23:07
   └833:コンタクト後の探索エラー [織江] 10/17 23:47
    ├834:つけたし。 [織江] 10/18 00:07
    │└836:Re:つけたし。 [moon] 10/18 00:24
    │ └837:Re[2]:つけたし。 [moon] 10/18 00:31
    │  └838:さらに追記 [moon] 10/18 00:35
    └835:Re:コンタクト後の探索エラー [moon] 10/18 00:16
     └842:Re[2]:コンタクト後の探索エラー [織江] 10/18 20:49
      └843:Re[3]:コンタクト後の探索エラー [moon] 10/18 23:30
       └844:今度こそ。 [織江] 10/19 01:11<-last

Pass 保存


CGIROOM