私設SoS2オーナー応援BBS

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

No.1846  Re[4]:カードトレードと、カード画像の実装を目指して…
発言者: moon
発言日: 2015 08/13 20:28
> これだと「ID」「プレイヤー名」が空欄になってしまって…
> 他のリストと見比べたものの、原因が分からず…
> どこが悪いのか診て頂けると助かります(涙)

> push (@odrlines,"$item<>$sts<>$id<>$nm");
> ($item,$break,$sts,$iimg,$id,$nm) = split(/<>/,$odrlines[$_]);

この2つの中で扱っているデータの中身の対応が取れていない($breakと$iimgが余計)のが原因だと思います。

> 現状「カードをコレクションする」から「コレクションを見る」ことができるようにしてあるので、
> そのコレクションカードリストから、
> カードごとの画像を見れるようにしたいなと…!
>
> 140×180サイズのカードごとのサムネイル画像を並べて、クリックすると280×360くらいのサイズが見れるようにできたら最高だなと…!

カード名(アイテム名)は固定だと思いますので以下のようにハッシュで画像名を保持しておいて利用すれば良いのではないかと思います。
# 定義
%card_name_hash = (
    'カード名1' => '画像名1',
    'カード名2' => '画像名2',
    ...
    'カード名n' => '画像名n',
);
# 利用
my $image_path = exists($card_name_hash{$item}) ? $card_name_hash{$item} : 'unknown'; # $itemはカード名、未定義の場合は'unknown'
$image_path = './image/' . $image_path . '_' . $etc . '.png'; # ディレクトリ、拡張子、その他の情報(解像度を区別するため等)を付加
# 最終的に'./image/example_thumb.png'のようなパスになる

> カードトレードを他のプレイヤーと行おうとすると、
> お互いのカードを選択しているにも関わらず
> 「自分のカードが選択されていません」と出てしまい…

> if (!$Fm{'tm'}) { push (@msg,'自分のカードが選択されていません'); return }
> if (!$Fm{'ty'}) { push (@msg,'相手のカードが選択されていません'); return }

渡されてくる名前は'M'と'Y'なのでここを修正する必要があります。

あと、今回の件とは関係ありませんが、入力値チェックが行われていないので通常のアイテムとも交換できてしまいます。
「$sts =~ s/Td//g;」の上付近に以下を追加してみてください。
if(index($sts, 'Td') == -1){push(@msg, '自分の交換できないカードが選択されました。'); return;}
if(index($psts, 'Td') == -1){push(@msg, '相手の交換できないカードが選択されました。'); return;}

▼関連発言

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