私設SoS2オーナー応援BBS

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

No.1033  Re[3]:連続で申し訳ないです・・・_| ̄|○
発言者: CGI初心者炸裂
発言日: 2004 05/08 12:00
# Sub Saga #
sub saga {
    &opensosdat;
    &get_champ;
    &list_order;
    print qq|<tr><td valign=top width=50%><div align=center><img src=$imgdir$ttlimg></div><br>\n|;
    print qq|この物語は$hernam$heroと$ricnam$rich、\n|;
    print qq|その他多くの勇者、商人達の幾千年にもわたる壮大な歴史の叙事詩である。<br>\n|;

    if ($hero || $rich) {
        print qq|<table border=0 cellspacing=0 cellpadding=5 align=center>\n|;
        print qq|<tr><td align=center>\n|;
        print qq|<img src=$imgdir$himg width=$ig_wd height=$ig_ht><br>\n| if $himg;
        print qq|$hernam$hero| if $hero;
        print qq|</td>\n<td align=center>\n|;
        print qq|<img src=$imgdir$rimg width=$ig_wd height=$ig_ht><br>\n| if $rimg;
        print qq|$ricnam$rich| if $rich;
        print qq|</td>\n<td align=center>\n|;
print qq|<img src=$imgdir$pig width=$ig_wd height=$ig_ht><br>\n|;
        print qq|覇王$pnm|;
        print qq|</td></tr></table>\n|;
}
    # 吟遊詩人の詩
    if ($poem) { print qq|<br>$poem<div align=right>$poenam:$poet</div>\n| }
    # 探検日誌
    if ($note) { print qq|<br>$note<div align=right>$avenam$avenの日誌より</div>\n| }
    print qq|</td>\n|;
    $info =~ s/(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]*)/<a href=\"$1\:$2\" target=\"_blank\">CLICK<\/a>/ig;
    print qq|<td valign=top><b>$intl</b><br><br>\n$info<br><br>\n|;
    if (!$totalplayer) { $totalplayer = 0 } if (!$playernow) { $playernow = 0 }
#-ADD-
    push (@editor,"簡易掲示板 Ver 1.00 <A href='http://www.sionjam.net/' target='_blank'>by SION</A>");
    @bbslines = &opendat("$bbsdat");
    foreach (0 .. 4) {
        ($date,$log) = split(/<>/,$bbslines[$_],2);
        $date = "<FONT color=green>$date</FONT>";
        $bbs .= $date . $log . '<HR>';
    }
    &decoration($bbs);
    print qq|<A href="$recordcgi" target="_blank">ゲーム内掲示板</A><HR>$bbs|;
#-END of ADD- SION0032v1.00-2-1/3
    @rcd3lines = &opendat('rcd3.cgi');
    if (!@rcd3lines) { print qq|<center><b>本日は休刊です</b></center><hr>\n| }

    else { print qq|<center><b>新聞(最新記事15)</b></center><hr>\n| }#★TOP表示件数指定。この場合15件。0 .. 14)←この数字変更可。希望表示数-1で設定
    foreach (0 .. 9) { print qq|$rcd3lines[$_]<br><hr>\n| }#<hr>タグを消すとすっきり表示。


    print qq|<div align=right><b>プレイヤー総数:$totalplayer<br>\n|;
    print qq|現在のプレイ人数:$playernow</b></div></td></tr>\n|;

}

いろいろ足しててどこだかわかんないので全部w

# Sub List In Order #
sub list_order {
    $now = time - $def_dl * 86400;
    &get_file; &list_in; &unlock;
    foreach (0 .. $#lstlines) {

こんなかんじです。


Internet Archive
なんて便利なサイトがあったんですね!
知らなかった・・・・。
これからも活用していこっとw
そんでまた問題が・・・
人と対戦しようとすると
上のメニューだけ出て
戦闘画面が出なくなっちゃいました・・・。

# Sub Fight #
sub fight {
    @rcdlines = &get_user("$Fm{'id'}");
    @rcdlines = &get_user("$Fm{'id'}");
    if($Fm{'mode'} eq 'fight2'){@prclines = &get_champ}
    else{@prclines = &get_partner("$Fm{'pd'}")}
    $lapse = 12; #同一対戦の可能経過時間
    ($plfid,$plftime) = split(/△/,$plf);
    $off = (time - $plftime)/(60*60);
    if ($plf =~ /$id△/ && $off < $lapse) { push (@msg,"$pnmとは暫く戦えません[$off] "); return }

    if ($pav eq 'dead') { push (@msg,"$pnmは死んでいます"); return }
    if ($av eq 'dead') { push (@msg,'あなたは死んでいます'); return }
    if ($hp <= 2)        { push (@msg,'戦闘できる体力がありません'); return }
    if ($plf eq $id)    { push (@msg,"$pnmとは暫く戦えません"); return }

    srand(time | $$);
    if ($sp =~ /Qb/) { $uw = (-2,-1,0,1,2) [int(rand(5))] }
    if ($sp =~ /Qk/) { $uw = (-1,0,0,1,2) [int(rand(5))] }
    if ($sp =~ /Mw/) { $uw = 1 }
    if ($sp =~ /Qx/) { $ua = (-1,0,1)     [int(rand(3))] }
    if ($sp =~ /Ma/) { $ua = 1 }
    if ($sp =~ /Sd/ && $sp =~ /Qm/) { $uw += $def_Qm }

    if ($psp =~ /Qb/) { $pw = (-2,-1,0,1,2) [int(rand(5))] }
    if ($psp =~ /Qk/) { $pw = (-1,0,0,1,2) [int(rand(5))] }
    if ($psp =~ /Mw/) { $pw = 1 }
    if ($psp =~ /Qx/) { $pa = (-1,0,1)     [int(rand(3))] }
    if ($psp =~ /Ma/) { $pa = 1 }
    if ($psp =~ /Sd/ && $psp =~ /Qm/) { $pw += $def_Qm }

    if ($bp =~ /Oi/) { ($uo = $bp) =~ tr/A-Za-z//d }
    if ($bp =~ /Pi/) { ($up = $bp) =~ tr/A-Za-z//d }
    if ($pbp =~ /Oi/) { ($po = $pbp) =~ tr/A-Za-z//d }
    if ($pbp =~ /Pi/) { ($pp = $pbp) =~ tr/A-Za-z//d }

    $uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po;
    $udfd = $dd + $db + $ua + $up; $pdfd = $pdd + $pdb + $pa + $pp;

    ($php,$ptm) = &hprecover($php,$pxp,$psp,$pav,$ptm,$pfg);

    foreach ('a','b','c','d','e') {
        $bcount++;
        if ($rw >= $def_rp && $psp =~ /X$_/) { $patk += $bcount }
        if ($prw >= $def_rp && $sp =~ /X$_/) { $uatk += $bcount }
    }

    $BE = $wn+$kl; $BE = $MaxBE if $BE > $MaxBE;
    $pBE = $pwn+$pkl; $pBE = $MaxBE if $pBE > $MaxBE;
    $udice = int(rand($Badice)) + $uatk - $def_dm + $BE; # 己
    $pdice = int(rand($Badice)) + $patk - $def_dm + $pBE; # 敵
    $udmg=$udice-$BE;
    $pdmg=$pdice-$pBE;
    $Sidice -= $def_td if $sp =~ /Si/;
    $Bedice = int(rand($Bedice)); $Lddice = int(rand($Lddice)); $Dtdice = int(rand($Dtdice));
    $Chdice = int(rand($Chdice)); $Mgdice = int(rand($Mgdice)); $Bidice = int(rand($Bidice));
    $Cndice = int(rand($Cndice)); $Dkdice = int(rand($Dkdice)); $Sidice = int(rand($Sidice));
    $Afdice = int(rand($Afdice)); $Cmdice = int(rand($Cmdice)); $Bkdice = int(rand($Bkdice));
    $Drdice = int(rand($Drdice)); $Ctdice = int(rand($Ctdice)); $Bldice = int(rand($Bldice)); $Smdice = int(rand($Smdice)); $Fmdice = int(rand($Fmdice));


    $result = $udice <=> $pdice;
    if ($result == 1) {
$dmg = (1,1,$udmg - $pdfd) [($udmg <=> $pdfd) + 1];
        ($php,$pav,$pdt,$prw,$hp,$av,$dt)
            = &fight_sub($nm,$hp,$sp,$ab,$bp,$ak,$av,$dt,$bn,$pnm,$php,$psp,$pbp,$pav,$pdt,$prw,$pbn);
        $mn += $Wm; $plz++; $wn++; $itemchance = 1; $hp = $xp if $hp > $xp;
        if ($def_ar) { $rw += $def_ar };
    }
    if ($result == -1) {
$dmg = (1,1,$pdmg - $udfd) [($pdmg <=> $udfd) + 1];
        ($hp,$av,$dt,$rw,$php,$pav,$pdt)
            = &fight_sub($pnm,$php,$psp,$pab,$pbp,$pak,$pav,$pdt,$pbn,$nm,$hp,$sp,$bp,$av,$dt,$rw,$bn);
        $pmn += $Wm; $lz++; $pwn++; $php = $pxp if $php > $pxp;
        if ($def_ar) { $prw += $def_ar };
    }
    if ($result == 0) { &fmsg('引'); $hp-- }
    if (!$php) { $kl++ }; if (!$hp) { $pkl++ };
    if ($wn) { $rt = &rate($wn,$lz,$kl,$dt)     } else { $rt = 0 }
    if ($pwn) { $prt = &rate($pwn,$plz,$pkl,$pdt) } else { $prt = 0 }
    if ($def_wm && $result == 1) {
        if ($rt < $prt) { $pay = int(($prt - $rt) * $def_wm) }
        if ($def_lt) { $pay = $def_lt if $pay > $def_lt }
        $mn += $pay;
        push (@msg,"$pay\Gの勝利金を手に入れました") if $pay;
    }
    if ($def_lm && $result == -1) {
        if ($prt < $rt) { $pay = int(($rt - $prt) * $def_lm) }
        if ($def_lt) { $pay = $def_lt if $pay > $def_lt }
        $pmn += $pay;
        &fmsg('金') if $pay;
    }

    &splititem('i');
    if (!$Bidice) {
        foreach (0 .. $#items) {
            ($item,$sts,$price) = split(/△/,$items[$_]);
            if ($sts =~ /Li/ && $Bldice) { next }
            if ($result == 1 && $sts =~ /Qw/ && $sts !~ /Ie/) { $breakitem = 1 }
            if ($result == -1 && $sts =~ /Qs/ && $sts !~ /Qw/ && $sts !~ /Ie/)
                                                             { $breakitem = 1 }
         elsif ($result == -1 && $sts =~ /Qa/ && $sts !~ /Ie/) { $breakitem = 1 }
            if ($result == 0 && $sts =~ /Qt/ && $sts !~ /Ie/) { $breakitem = 1 }
            if ($breakitem) {
                $ab -= substr($sts,4,2); $db -= substr($sts,6,2);
                splice(@items,$_,1); &joinitem('i');
                $sp =~ s/Qb//g if $sts =~ /Bw/;
                $sp =~ s/Qk//g if $sts =~ /Kt/;
                $sp =~ s/Qx//g if $sts =~ /Ax/;
                $sp =~ s/Qm//g if $sts =~ /Sw/;
                push (@msg,"$itemが壊れました"); last;
            }
        }
    }

    $itemchance = 0 if $#items + 1 >= $xi;
    &splititem('I');
    if ($itemchance && $pitems[$Sidice]) {
        &splititem('i');
        ($item,$sts,$price) = split(/△/,$pitems[$Sidice]);
        if ($sts !~ /Ns/) {
            if ($sts =~ s/Q[swat]//g) { $pab -= substr($sts,4,2); $pdb -= substr($sts,6,2) }
            splice(@pitems,$Sidice,1); push(@items,"$item△$sts");
            $psp =~ s/Qb//g if $sts =~ /Bw/;
            $psp =~ s/Qk//g if $sts =~ /Kt/;
            $psp =~ s/Qx//g if $sts =~ /Ax/;
            $psp =~ s/Qm//g if $sts =~ /Sw/;
            &joinitem('iI'); &fmsg('奪');
        }
    }
    $bp = $bn = $pbp = $pbn = ''; $f_time = time;$plf = "$id△$f_time";

    &userout; if($Fm{'mode'} eq 'fight'){&add_record($fwords)}
else{
if ($result == 1){
$pid=$id;$pnm=$nm;$pps=$ps;$pjb=$jb;$pig=$ig;$psp=$sp;$pbp=$bp;$pbn=$bn;$pak=$ak;$pdd=$dd;$php=$hp;$pxp=$xp;$pab=$ab;$pdb=$db;$pav='alive';$pwn=$wn;$plz=$lz;$pdt=$dt;$pmn=$mn;$pbg=$bg;$pxi=$xi;$ptm=$tm;$plf=$lf;$pfe=$fe;$pcm=$cm;$pis=$is;$pht=$ht;$pfg='NS';$prw=$rw;$pkl=$kl;
push (@msg,"$nmは覇王の称号を継ぎました。");
&add_champ($fwords)}
else{$pav='alive';&add_champ($fwords)}
}
    &add_record($fwords);
    &add3_record("$nmと$pnmが交戦した模様");# 追加
    if ($av eq 'dead'){
    &add3_record("<font color=red>DAED!$nmが自滅!</font>");
    }
    if ($pav eq 'dead'){
    &add3_record("<font color=red>DAED!$pnmが戦死!</font>");
}
}

ちなみにSubFightはこんな感じです。

なんか、聞いてばっかでごめんなさい;−;

▼関連発言

1030:連続で申し訳ないです・・・_| ̄|○ [CGI初心者炸裂] 05/08 00:54
 └1031:Re:連続で申し訳ないです・・・_| ̄|○ [CGI初心者炸裂] 05/08 01:31
  └1032:Re[2]:連続で申し訳ないです・・・_| ̄|○ [moon] 05/08 10:25
   └1033:Re[3]:連続で申し訳ないです・・・_| ̄|○ [CGI初心者炸裂] 05/08 12:00
    └1035:Re[4]:連続で申し訳ないです・・・_| ̄|○ [moon] 05/08 14:16
     └1037:Re[5]:連続で申し訳ないです・・・_| ̄|... [CGI初心者炸裂] 05/08 15:08
      └1039:Re[6]:連続で申し訳ないです・・・_| ̄|.. [moon] 05/08 16:45
       └1040:Re[7]:連続で申し訳ないです・・・_|.. [CGI初心者炸裂] 05/08 22:38
        └1041:Re[8]:連続で申し訳ないです・・・_.. [moon] 05/09 01:44
         └1042:Re[9]:連続で申し訳ないです・・・.. [CGI初心者炸裂] 05/09 22:00<-last

Pass 保存


CGIROOM