私設SoS2オーナー応援BBS

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

No.1849  Re[7]:カードトレードと、カード画像の実装を目指して…
発言者: YOUME
発言日: 2015 08/15 09:52
おはようございます!
カードトレードの方は上手く動くようになりました!
ありがとうございます!

> 今更ですが、いのそうさんが公開されていた改造方法についての話題だったのですね。

はい!懐かしいなぁなんて思いながらも、頭を悩ませております…

> 画像のパスは$image_pathです。
> また、$etcは適切な値で定義するか、使用しないのでしたら$image_pathの作成時に使わなくても構いません。

なるほど!早速以下のようにしてみたのですが
---------------------
print qq|<tr><td><b>▼カード名</b></td><td><b>▼攻撃力</b></td><td><b>▼属性</b></td></tr>\n|;
foreach $items (@fitems) {
($item,$sts) = split(/△/,$items);
$idd = int(substr($sts,7,1));
$pc = int(substr($sts,0,4));
if ($sts =~ /C0/) {$cde1 = "<font color=red>火</font>";}
if ($sts =~ /C1/) {$cde1 = "<font color=blue>水</font>";}
if ($sts =~ /C2/) {$cde1 = "<font color=yellow>雷</font>";}
if ($sts =~ /C3/) {$cde1 = "<font color=blown>土</font>";}
if ($sts =~ /C4/) {$cde1 = "<font color=green>風</font>";}
if ($sts =~ /C5/) {$cde1 = "<font color=gray>天</font>";}
if ($sts =~ /C6/) {$cde1 = "<font color=#8C008C>冥</font>";}
if ($sts =~ /C7/) {$cde1 = "<font color=powderblue>空</font>";}

#カード画像表示
# 利用
my $image_path = exists($card_name_hash{$item}) ? $card_name_hash{$item}:'2011-12-23_1-246.gif';
# $itemはカード名、未定義の場合は'2011-12-23_1-246.gif'
$image_path = 'img/' . $image_path . '';
# ディレクトリ、拡張子、その他の情報(解像度を区別するため等)を付加
# 最終的に'./image/example_thumb.png'のようなパスになる
#カード画像表示

#カード画像表示
# 定義
$card_name_hash = (
'C1カード' => 'test.jpg',
'C2カード' => 'test2.jpg',
'C3カード' => 'test3.jpg',
);
#カード画像表示

print qq|<tr><td><img src="$image_path"><b>$item</b></td><td>$idd</td><td>$cde1</td></tr> \n|;
}
---------------------
カード名が一致していても全てが未定義状態になってしまい…

「カード画像表示」の定義部分は別の場所に移した方が良いでしょうか?
可能であれば、カード画像表示の定義部分は(カード数が増えたことを想定して)別ファイルから読み込むような形をとりたいなとも考えているのですが、難しいでしょうか…?


> 先頭行が空なのはデータ的に余計なものが存在するか、先頭に余計なデータが含まれるようにsplitされているか、だと思います。
> 以下を確認してみてください。
> ・sub get_cardで正常に読み込まれているか?
> ・sub cardoutで正常に保存できているか?
> ・これ以外のサブルーチンでカードファイルを誤って保存していないか?
> ・何をした後におかしなデータになるか?

自分なりに条件を変えて確認してみたのですが、コレクションファイルを作成した時は問題なく、カードを1枚でもいれると0行ができ…
ただ現在は何故か入れたカードの最下部に0行が並ぶように;
0行の場所が変わったのは下記のように変更したせいかも;
---------------------
foreach $items (@fitems) {
($item,$sts) = split(/△/,$items);
$at = int(substr($sts,7,1));
$co = int(substr($sts,0,4));
$el = int(substr($sts,8,2));
if ($Fm{'sort'} eq 'N') { push(@Alines,"$item△$item△$sts") }
#if ($Fm{'sort'} eq 'N') { push(@Alines,"$item△$sts") }
#if ($Fm{'sort'} eq 'L') { push(@Alines,"$break△$item△$sts") }
if ($Fm{'sort'} eq 'L') { push(@Alines,"$item△$sts") }
if ($Fm{'sort'} eq 'A') { push(@Alines,"$at△$item△$sts") }
if ($Fm{'sort'} eq 'E') { push(@Alines,"$el△$item△$sts") }
if ($Fm{'sort'} eq 'S') { push(@Alines,"$se△$item△$sts") }
#if ($Fm{'sort'} eq 'S') { push(@Alines,"$item△$sts") }
if ($Fm{'sort'} eq 'C') { push(@Alines,"$co△$item△$sts") }
}
---------------------
コレクションカードデータの中身は、
---------------------
0004<>,C2カード△10000264C2,C0カード△00300264C0,C1カード△01000264C1,C3カード△00300264C3,C4カード△00300264C4,C5カード△00300264C5,C6カード△00300264C6,C7カード△00300264C7<>8<>
---------------------
こんな感じになっていました。
「,C2カード」が変な気がしたのですが、,がついている理由が分からず…

sub get_cardとsub cardoutは現状こんな感じです。
---------------------
# Sub Get Card #
sub get_card {
return if $getcardflag;
if ( $sp =~ /Ca/ ) {
open(IN,"$cardir$_[0]\.cgi") || &error("ID $_[0]は存在しません");
@_ = <IN>;
close(IN);
if (!@_) { &error("ID $_[0] 読みこみエラー") }
($cid,$cbg,$csp) = split(/<>/,$_[0]);
shift(@_);
$getcardflag = 1;
return @_;
}
}

# Sub Card Out #
sub cardout {
$carline = join('<>',$cid,$cbg,$csp,"\n");
unshift (@carlines,$carline);
&writedat("$cardir$id\.cgi",@carlines);
}
---------------------

いろいろ見てはみたものの、どこが良くない動きをしているのか現状わからず…お知恵をお借りできたら幸いです…!

▼関連発言

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