私設SoS2オーナー応援BBS

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

No.1851  Re[9]:カードトレードと、カード画像の実装を目指して…
発言者: YOUME
発言日: 2015 08/15 19:58
ご教授ありがとうございます!
つ、ついにカードごとの画像を出せるようになりました!!!
本当にありがとうございます!!!
理想のカードコレクション画面が出せるように調整していきたいと思います!


そして、0行の件につきまして…

> sub file_in_afterで「&joinitem('iF');」が行われていないか、sub joinitemが変更されていない場合にこのようになりそうですので、これらを確認してみてください。

ご指摘通り、# Sub File In After #に、&joinitem('iF');がありました!

無ければ良いのかな?と思い

# Sub File In After #
sub file_in_after{
@rcdlines = &get_user("$Fm{'id'}");
return if $fg ne 'FIBB';
@collines = &get_coll("$Fm{'id'}");
&splititem('iF');
foreach (0 .. $#items) {
($item,$sts) = split(/△/,$items[$_]);
$filebag = 1;
if ($Fm{"$_"}) {
my $tmpflg=0; ##
foreach $tmp (@fitems) {
($tmpitem,$tmpsts) = split(/△/,$tmp);
if ($tmpitem eq $item) {$tmpflg=1;}
}
if (!$tmpflg) {
$fco++;
push (@fitems,"$item△$sts");
push (@msg,"$itemをファイルに入れました。");
$fbg .= ",$item△$sts"; #(4/8)修正
$filebag = 0;
} else { push (@msg,"既に「$item」はファイル内に存在します。") }
}
if ($filebag) { push(@newitems,$items[$_]); }
}
@items = @newitems; #&joinitem('iF');
$fg = ''; &userout; &fileout;
}

としてみたのですが、0行は生成されてしまうままで…
別の表記にした方が良いのでしょうか?


また、これとは別件なのですが…

現状だとカードデュエルがプレイヤーと行えないので、
これをデッキを持っているプレイヤーが相手でもデュエルできるようにしたいなと思い始めました。

理想は、プレイヤーと接触した際に、相手とデュエルできるようにしたいとは思いつつ…
ただデュエルできる場所が隔離された場所で実行されてるので、デュエルする相手をデッキを持っているプレイヤーからプルダウンで選ぶか、NPCにするかを選択できるようにしたほうが良いのかな…とも思いつつ…

現状のデュエルバトルシステムがduel.pl内にある下記の部分に相当しているのですが

# バトルシステム #
sub battle_duel {
    $reid = $Fm{'id'};
    &read_dc;
@cardlines = &get_card("$Fm{'id'}");
&splitcard('c');
&mcard_dat;
        $catm = $cat1+$cat2+$cat3;
$battle_mn = $catm * 5;
if ($mn < $battle_mn) { &duel_error("お金が足りません。");}
$mn = $mn - $battle_mn;
    &write_dc;
    open(IN,"$pcard_d");
    @PCARDD = <IN>;
    close(IN);
    $eld = @PCARDD;
    srand;
    $rnd = int(rand($eld));
    ($dekkinm,$wn_point,$pcd1,$pcd2,$pcd3) = split(/<>/,$PCARDD[$rnd]);
    &splitcard('C');
    &pcard_dat;
        $pcatm = $pcat1+$pcat2+$pcat3;
    $pcom_nm = "なっしんぐ";$com_nm = "なっしんぐ";
    &go_combo;
    &go_combop;
&header;
&table_top;
&msg;
#先鋒戦#
$zokusei1 = 0;
$pzokusei1 = 0;
if (($cds1 =~ /C0/) && ($pcds1 =~ /C1/)) { $pzokusei1 = "1"; } #自分火<相手水
if (($cds1 =~ /C1/) && ($pcds1 =~ /C0/)) { $zokusei1 = "1"; } #相手火<自分水
if (($cds1 =~ /C1/) && ($pcds1 =~ /C2/)) { $pzokusei1 = "1"; } #自分水<相手雷
if (($cds1 =~ /C2/) && ($pcds1 =~ /C1/)) { $zokusei1 = "1"; } #相手水<自分雷
if (($cds1 =~ /C2/) && ($pcds1 =~ /C3/)) { $pzokusei1 = "1"; } #自分雷<相手土
if (($cds1 =~ /C3/) && ($pcds1 =~ /C2/)) { $zokusei1 = "1"; } #相手雷<自分土
if (($cds1 =~ /C3/) && ($pcds1 =~ /C4/)) { $pzokusei1 = "1"; } #自分土<相手風
if (($cds1 =~ /C4/) && ($pcds1 =~ /C3/)) { $zokusei1 = "1"; } #相手土<自分風
if (($cds1 =~ /C4/) && ($pcds1 =~ /C0/)) { $pzokusei1 = "1"; } #自分風<相手火
if (($cds1 =~ /C0/) && ($pcds1 =~ /C4/)) { $zokusei1 = "1"; } #相手風<自分火
if ($cds1 =~ /C5/) { $zokusei1 = "1"; } #自分天
if ($pcds1 =~ /C5/) { $pzokusei1 = "1"; } #相手天
if ($cds1 =~ /C6/) { $zokusei1 = "2"; } #自分冥
if ($pcds1 =~ /C6/) { $pzokusei1 = "2"; } #相手冥
    $bat1 = $cat1 + $zokusei1 + $combo1 - $pcombo1;
    $pbat1 = $pcat1 + $pzokusei1 + $pcombop1 - $combop1;
        if ($bat1 > $pbat1) { $bwin1 = "1"; $pbwin1 = "0"; $result1 = "<font color=blue>$cdn1の勝利!!"; }
        elsif ($bat1 < $pbat1) { $bwin1 = "0"; $pbwin1 = "1"; $result1 = "<font color=red>$pcdn1の勝利!!"; }
        else { $bwin1 = "0"; $pbwin1 = "0"; $result1 = "<font color=gray>引き分け</font>"; }
#中堅戦#
$zokusei2 = 0;
$pzokusei2 = 0;
if (($cds2 =~ /C0/) && ($pcds2 =~ /C1/)) { $pzokusei2 = "1"; } #自分火<相手水
if (($cds2 =~ /C1/) && ($pcds2 =~ /C0/)) { $zokusei2 = "1"; } #相手火<自分水
if (($cds2 =~ /C1/) && ($pcds2 =~ /C2/)) { $pzokusei2 = "1"; } #自分水<相手雷
if (($cds2 =~ /C2/) && ($pcds2 =~ /C1/)) { $zokusei2 = "1"; } #相手水<自分雷
if (($cds2 =~ /C2/) && ($pcds2 =~ /C3/)) { $pzokusei2 = "1"; } #自分雷<相手土
if (($cds2 =~ /C3/) && ($pcds2 =~ /C2/)) { $zokusei2 = "1"; } #相手雷<自分土
if (($cds2 =~ /C3/) && ($pcds2 =~ /C4/)) { $pzokusei2 = "1"; } #自分土<相手風
if (($cds2 =~ /C4/) && ($pcds2 =~ /C3/)) { $zokusei2 = "1"; } #相手土<自分風
if (($cds2 =~ /C4/) && ($pcds2 =~ /C0/)) { $pzokusei2 = "1"; } #自分風<相手火
if (($cds2 =~ /C0/) && ($pcds2 =~ /C4/)) { $zokusei2 = "1"; } #相手風<自分火
if ($cds2 =~ /C5/) { $zokusei2 = "1"; } #自分天
if ($pcds2 =~ /C5/) { $pzokusei2 = "1"; } #相手天
if ($cds2 =~ /C6/) { $zokusei2 = "2"; } #自分冥
if ($pcds2 =~ /C6/) { $pzokusei2 = "2"; } #相手冥
    $bat2 = $cat2 + $zokusei2 + $combo2 - $pcombo2;
    $pbat2 = $pcat2 + $pzokusei2 + $pcombop2 - $combop2;
        if ($bat2 > $pbat2) { $bwin2 = "1"; $pbwin2 = "0"; $result2 = "<font color=blue>$cdn2の勝利!!"; }
        elsif ($bat2 < $pbat2) { $bwin2 = "0"; $pbwin2 = "1"; $result2 = "<font color=red>$pcdn2の勝利!!"; }
        else { $bwin2 = "0"; $pbwin2 = "0"; $result2 = "<font color=gray>引き分け</font>"; }
#大将戦#
$zokusei3 = 0;
$pzokusei3 = 0;
if (($cds3 =~ /C0/) && ($pcds3 =~ /C1/)) { $pzokusei3 = "1"; } #自分火<相手水
if (($cds3 =~ /C1/) && ($pcds3 =~ /C0/)) { $zokusei3 = "1"; } #相手火<自分水
if (($cds3 =~ /C1/) && ($pcds3 =~ /C2/)) { $pzokusei3 = "1"; } #自分水<相手雷
if (($cds3 =~ /C2/) && ($pcds3 =~ /C1/)) { $zokusei3 = "1"; } #相手水<自分雷
if (($cds3 =~ /C2/) && ($pcds3 =~ /C3/)) { $pzokusei3 = "1"; } #自分雷<相手土
if (($cds3 =~ /C3/) && ($pcds3 =~ /C2/)) { $zokusei3 = "1"; } #相手雷<自分土
if (($cds3 =~ /C3/) && ($pcds3 =~ /C4/)) { $pzokusei3 = "1"; } #自分土<相手風
if (($cds3 =~ /C4/) && ($pcds3 =~ /C3/)) { $zokusei3 = "1"; } #相手土<自分風
if (($cds3 =~ /C4/) && ($pcds3 =~ /C0/)) { $pzokusei3 = "1"; } #自分風<相手火
if (($cds3 =~ /C0/) && ($pcds3 =~ /C4/)) { $zokusei3 = "1"; } #相手風<自分火
if ($cds3 =~ /C5/) { $zokusei3 = "1"; } #自分天
if ($pcds3 =~ /C5/) { $pzokusei3 = "1"; } #相手天
if ($cds3 =~ /C6/) { $zokusei3 = "2"; } #自分冥
if ($pcds3 =~ /C6/) { $pzokusei3 = "2"; } #相手冥
    $bat3 = $cat3 + $zokusei3 + $combo3 - $pcombo3;
    $pbat3 = $pcat3 + $pzokusei3 + $pcombop3 - $combop3;
        if ($bat3 > $pbat3) { $bwin3 = "1"; $pbwin3 = "0"; $result3 = "<font color=blue>$cdn3の勝利!!</font>"; }
        elsif ($bat3 < $pbat3) { $bwin3 = "0"; $pbwin3 = "1"; $result3 = "<font color=red>$pcdn3の勝利!!</font>"; }
        else { $bwin3 = "0"; $pbwin3 = "0"; $result3 = "<font color=gray>引き分け</font>"; }
#戦闘結果#
$bwin_l = $bwin1 + $bwin2 + $bwin3;
$pbwin_l = $pbwin1 + $pbwin2 + $pbwin3;
    if ($bwin_l > $pbwin_l) {$cdwn = $cdwn + 1;$cdpoint = $cdpoint + $wn_point;
    $result_l = "<font color=Yellow>おめでとうございます。$nmさんの勝利です!<br>勝利ボーナスとして、デュエルポイントを<b>$wn_point</b>を得た。</font>";
    }
    elsif ($bwin_l < $pbwin_l) {$cdlz = $cdlz + 1;
    $result_l = "<font color=red>残念でした。$nmさんの敗北です。</font></font>";
    }
    else {
    $result_l = "<font color=gray>残念でした。引き分けです。</font>";
    }
$line = join('<>',$cdid,$cdpoint,$cdwn,$cdlz,$cd1,$cd2,$cd3,"\n");
&writedat("$carddir$id\.dat",$line);
print <<"_EOF_";
<tr><td>
<center>
<img src=img/card_b.jpg><br>
<br>
<table width=80% border="1" bordercolor="#0000FF">
<tr bgcolor="#000066"><td align=center><font color="#F4F4F4">デュエルアリーナ</font></td></tr>
<tr><td> デュエルの相手は自動的に決まります。デッキによっては相性の良い悪いがあると思いますが、いかに効率よく勝てるかという事を研究するのも大事ですね。攻撃力も重要ですが、カードの配置、コンボの組立等見直すところはたくさんありますよ。攻撃力が全然なくてもコンボで生きてくるカードもあります。<br> 例え勝てなくても相手のデッキを見て得ることもあるでしょう。どんどん挑戦しましょう!</td></tr>
</table><br>
<table width=80% border="1" bordercolor="#9ACD32">
<tr bgcolor="#556B2F"><td colspan=4 align=center><font color="#F4F4F4">+$nmのデッキ+<br>(合計値:$catm/$cdall_max|勝:$cdwn/負:$cdlz)</font></td></tr>
<tr bgcolor="#6B8E23"><td width=15% align=center>順番</td><td width=55% align=center>カード名</td><td width=15% align=center>攻撃</td><td width=15% align=center>属性</td></tr>
<tr><td align=center>先鋒</td><td>$cdn1</td><td align=center>$cat1</td><td align=center>$cde1</td></tr>
<tr><td align=center>中堅</td><td>$cdn2</td><td align=center>$cat2</td><td align=center>$cde2</td></tr>
<tr><td align=center>大将</td><td>$cdn3</td><td align=center>$cat3</td><td align=center>$cde3</td></tr>
</table><br>
<table width=80% border="1" bordercolor="darkred">
<tr bgcolor="Maroon"><td colspan=4 align=center><font color="#F4F4F4">+対戦相手:$dekkinm+<br>(合計値:$pcatm/$cdall_max)</font></td></tr>
<tr bgcolor="brown"><td width=15% align=center>順番</td><td width=55% align=center>カード名</td><td width=15% align=center>攻撃</td><td width=15% align=center>属性</td></tr>
<tr><td align=center>先鋒</td><td>$pcdn1</td><td align=center>$pcat1</td><td align=center>$pcde1</td></tr>
<tr><td align=center>中堅</td><td>$pcdn2</td><td align=center>$pcat2</td><td align=center>$pcde2</td></tr>
<tr><td align=center>大将</td><td>$pcdn3</td><td align=center>$pcat3</td><td align=center>$pcde3</td></tr>
</table><br>
<table width=80% border="1" bordercolor="#0000FF">
<tr><td width=25% bgcolor=#000066 align=center><font color="#F4F4F4">所持金</font></td><td width=25% align=center>$mn</td><td width=25% bgcolor=#000066 align=center><font color="#F4F4F4">ポイント</font></td><td width=25% align=center>$cdpoint</td></tr>
</table>
<br>
<table width=85%><tr><td>
<tr bgcolor="#000066"><td colspan=3 align=center><font color="#F4F4F4"><b>特別処理</b></font></td></tr>
<tr><td align=center><font color=#808080>
<b><$nm側の特別効果></b><br>必殺コンボ『<b>$com_nm</b>』!<br>$com_mes<br><b><$dekkinm側の特別効果></b><br>必殺コンボ『<b>$pcom_nm</b>』!<br>$pcom_mes
</font></td></tr></table><br>
<table width=85%>
<tr bgcolor="#000066"><td colspan=3 align=center><font color="#F4F4F4"><b>先鋒戦</b></font></td></tr>
<tr><td width=25% align=center><font color=blue>$cdn1<br>$cde1<br>$bat1</font></td><td width=50%>
<font color=blue>
「基本攻撃力:<b>$cat1</b>」+「属性効果:<b>$zokusei1</b>」<br>+「自特殊効果:<b>$combo1</b>」−「敵特殊効果:<b>$pcombo1</b>」<br>=「合計攻撃力:<b>$bat1</b>」</font><br>
<font color=red>
「基本攻撃力:<b>$pcat1</b>」+「属性効果:<b>$pzokusei1</b>」<br>+「自特殊効果:<b>$pcombop1</b>」−「敵特殊効果:<b>$combop1</b>」<br>=「合計攻撃力:<b>$pbat1</b>」</font><br><center><b>$result1</b></center>
</td><td width=25% align=center><font color=red>$pcdn1<br>$pcde1<br>$pbat1</font></td></tr></table>
<table width=85%>
<tr bgcolor="#000066"><td colspan=3 align=center><font color="#F4F4F4"><b>中堅戦</b></font></td></tr>
<tr><td width=25% align=center><font color=blue>$cdn2<br>$cde2<br>$bat2</font></td><td width=50%>
<font color=blue>
「基本攻撃力:<b>$cat2</b>」+「属性効果:<b>$zokusei2</b>」<br>+「自特殊効果:<b>$combo2</b>」−「敵特殊効果:<b>$pcombo2</b>」<br>=「合計攻撃力:<b>$bat2</b>」</font><br>
<font color=red>
「基本攻撃力:<b>$pcat2</b>」+「属性効果:<b>$pzokusei2</b>」<br>+「自特殊効果:<b>$pcombop2</b>」−「敵特殊効果:<b>$combop2</b>」<br>=「合計攻撃力:<b>$pbat2</b>」</font><br><center><b>$result2</b></center>
</td><td width=25% align=center><font color=red>$pcdn2<br>$pcde2<br>$pbat2</font></td></tr></table>
<table width=85%>
<tr bgcolor="#000066"><td colspan=3 align=center><font color="#F4F4F4"><b>大将戦</b></font></td></tr>
<tr><td width=25% align=center><font color=blue>$cdn3<br>$cde3<br>$bat3</font></td><td width=50%>
<font color=blue>
「基本攻撃力:<b>$cat3</b>」+「属性効果:<b>$zokusei3</b>」<br>+「自特殊効果:<b>$combo3</b>」−「敵特殊効果:<b>$pcombo3</b>」<br>=「合計攻撃力:<b>$bat3</b>」</font><br>
<font color=red>
「基本攻撃力:<b>$pcat3</b>」+「属性効果:<b>$pzokusei3</b>」<br>+「自特殊効果:<b>$pcombop3</b>」−「敵特殊効果:<b>$combop3</b>」<br>=「合計攻撃力:<b>$pbat3</b>」</font><br><center><b>$result3</b></center>
</td><td width=25% align=center><font color=red>$pcdn3<br>$pcde3<br>$pbat3</font></td></tr></table>
<table width=85%>
<tr bgcolor="darkorange"><td colspan=3 align=center><font color="#000000"><b>総合結果報告</b></font></td></tr>
<tr><td align=center><font color=#808080>$result_l<br><br>デュエル代 <b>$battle_mn</b> KIRAを支払った。</font><br><br>

<form method="POST" action="sos2.cgi">
<input type="hidden" name="mode" value="duel">
<input type="hidden" name="name" value="$nm">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pass" value="$ps">
<input type="submit" class="buttonY" value=" 戻る ">
</form>

</td></tr></table>
</center>

<table width=100%><tr><td align=right><small>『Duel of Sphere $cd_ver』 By <a href="http://www.bellcity.ne.jp/~yamato/" target="_blank">Sphere(大和)</a></small></td></tr></table>
</td></tr>
_EOF_

&table_bottom;

}

プレイヤー同士のデュエルをとなると、上記バトルシステムの、プレイヤーverが必要になるのかな…?と思いつつ…

どうしたものかと…
お知恵を借りれたら幸いです…!

▼関連発言

1841:カードトレードと、カード画像の実装を目指して… [YOUME] 08/12 15:30
 └1842:Re:カードトレードと、カード画像の実装を目指して... [moon] 08/12 21:47
  └1843:Re[2]:カードトレードと、カード画像の実装を目指.. [moon] 08/12 22:03
   ├1844:Re[3]:カードトレードと、カード画像の実装を目.. [YOUME] 08/12 22:36
   └1845:Re[3]:カードトレードと、カード画像の実装を目.. [YOUME] 08/13 18:45
    └1846:Re[4]:カードトレードと、カード画像の実装を.. [moon] 08/13 20:28
     └1847:Re[5]:カードトレードと、カード画像の実装.. [YOUME] 08/14 09:22
      └1848:Re[6]:カードトレードと、カード画像の実.. [moon] 08/14 12:22
       └1849:Re[7]:カードトレードと、カード画像の.. [YOUME] 08/15 09:52
        └1850:Re[8]:カードトレードと、カード画像.. [moon] 08/15 11:19
         └1851:Re[9]:カードトレードと、カード画.. [YOUME] 08/15 19:58
          └1852:Re[10]:カードトレードと、カー... [moon] 08/15 22:19
           └1853:Re[11]:カードトレードと、カ... [YOUME] 08/16 16:08
            └1855:Re[12]:カードトレードと、... [moon] 08/16 21:42
             └1857:Re[13]:カードトレードと... [YOUME] 08/16 21:49
              └1859:Re[14]:カードトレード... [moon] 08/16 22:00<-last

  返信フォーム [引用]
名 前 保存
題 名
発 言
PASSWORD
投稿確認必ずチェックを入れてください。こちらにはチェックを入れないでください。
書き込む
◇題名は、短くわかりやすく書いてください。
◇過去に同じ内容が投稿されていないか検索してから書き込んで下さい。
◇管理人の判断により相応しくない投稿は削除します。

Pass 保存


CGIROOM