私設SoS2オーナー応援BBS

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

スレッド

└◇1598:
Re:画像変更 [moon] 01/03 00:29

 └◇1599:Re[2]:画像変更 [rien] 01/03 03:29
  └◇1601:Re[3]:画像変更 [moon] 01/03 09:48
   └◇1602:Re[4]:画像変更 [rien] 01/03 11:38
    └◇1603:Re[5]:画像変更 [moon] 01/03 15:44
     └◇1604:Re[6]:画像変更 [rien] 01/03 17:13
      └◇1605:Re[7]:画像変更 [moon] 01/03 20:14
       └◇1606:Re[8]:画像変更 [rien] 01/03 22:01<-last


1598● Re:画像変更[ moon ] 2009 01/03 00:29
> またまた質問で申し訳ないのですが・・・
>
> ゲーム内で画像変更する際ですが・・・
> かりんさんの画像変更を導入しております。
> 新規登録の際はプリンさんの画像変更に加え桜さんの
> javaの画像表示を導入してます。
>
> ゲーム内でもプリンさんと桜さんの改造のようなプルダウンで選ぶことができ・・できればjavaで表示できればと思っています。
> 新規登録と同じように表示することはできるのでしょうか???

できるのは間違いないですが内容を理解してからでないと難しいかもしれません。
sub face_beforeを変更することで実現できるはずです。
  ・formの名前をsosにする。(&form('start');を削除して&form('start');で行っていることを行う。)
  ・「print qq|<tr><td>キャラ画像</td>\n|;」〜「print "<td><img src=\"img\/●●.gif\" name=\"sosimg\"></td></tr>\n";」までを貼り付ける。(tr要素などの余計なものは削除する。)
  ・表示上の余分なものを削除する。

> それとリストの表示のことなのですが
> マシマロさんの分割版で
> 桜さんのプレイヤーリストの切り替え表示を導入するには
> どうしたらよいでしょうか??
> 本家様のsosでないと導入できないのでしょうか???
>
> SOSはマシマロ様の分割版を使用しております。

list.cgiのsub player_listを変更すればできると思います。
unless ($pagemax == 1){〜}の部分を置換することになります。
ただ、置換するといっても貼り付けるだけでは駄目で少なくとも以下の変更は必要だと思います。
  ・「page」→「pageno」。
  ・「$cgiurl」→「$listurl」。
  ・$backと$nextを求める。

どちらも案外面倒だと思いますので、内容をある程度理解してから行ったほうが良いと思います。
スレッド一覧


1599● Re[2]:画像変更[ rien ] 2009 01/03 03:29
> できるのは間違いないですが内容を理解してからでないと難しいかもしれません。
> sub face_beforeを変更することで実現できるはずです。
>   ・formの名前をsosにする。(&form('start');を削除して&form('start');で行っていることを行う。)
>   ・「print qq|<tr><td>キャラ画像</td>\n|;」〜「print "<td><img src=\"img\/●●.gif\" name=\"sosimg\"></td></tr>\n";」までを貼り付ける。(tr要素などの余計なものは削除する。)
>   ・表示上の余分なものを削除する。
>
> > それとリストの表示のことなのですが
> > マシマロさんの分割版で
> > 桜さんのプレイヤーリストの切り替え表示を導入するには
> > どうしたらよいでしょうか??
> > 本家様のsosでないと導入できないのでしょうか???
> >
> > SOSはマシマロ様の分割版を使用しております。
>
> list.cgiのsub player_listを変更すればできると思います。
> unless ($pagemax == 1){〜}の部分を置換することになります。
> ただ、置換するといっても貼り付けるだけでは駄目で少なくとも以下の変更は必要だと思います。
>   ・「page」→「pageno」。
>   ・「$cgiurl」→「$listurl」。
>   ・$backと$nextを求める。
>
> どちらも案外面倒だと思いますので、内容をある程度理解してから行ったほうが良いと思います。

お返事ありがとうございます。
画像表示の方なんですが
しばらく頑張ってみましたが・・
やはりjavaがうまく表示できません・・・。
設定した●●.gifが表示されたまま変わらなく・・
というわけでjavaは諦めた方がよいのかと・・・
半ば諦め・・
プルダウンだけでも・・と思ったのですが
決定ボタンを押してもページが変わりません・・。
何か記述が足りないのでしょうか??
ボタンの所は
    &OKbuttoninform('','face_after');
    print qq|</td>|; &form('end');}
こうなってます・・。
スレッド一覧


1601● Re[3]:画像変更[ moon ] 2009 01/03 09:48
> お返事ありがとうございます。
> 画像表示の方なんですが
> しばらく頑張ってみましたが・・
> やはりjavaがうまく表示できません・・・。
> 設定した●●.gifが表示されたまま変わらなく・・
> というわけでjavaは諦めた方がよいのかと・・・
> 半ば諦め・・
> プルダウンだけでも・・と思ったのですが
> 決定ボタンを押してもページが変わりません・・。
> 何か記述が足りないのでしょうか??
> ボタンの所は
>     &OKbuttoninform('','face_after');
>     print qq|</td>|; &form('end');}
> こうなってます・・。

画像選択時のソースを表示して、該当form要素とその中のHTMLを見てください。
最低限、form要素のnameがsos、select要素のnameがface、img要素のnameがsosimgになっている必要があります。

もし、返信にHTMLを貼り付ける場合はパスワードが含まれるはずですのでその部分は適当な値に変更してください。
スレッド一覧


1602● Re[4]:画像変更[ rien ] 2009 01/03 11:38
> 画像選択時のソースを表示して、該当form要素とその中のHTMLを見てください。
> 最低限、form要素のnameがsos、select要素のnameがface、img要素のnameがsosimgになっている必要があります。
>
> もし、返信にHTMLを貼り付ける場合はパスワードが含まれるはずですのでその部分は適当な値に変更してください。

返信ありがとうございます。
昨日からソースとにらめっこ状態ではあったのですが
どうもうまくいきません。。

ソースではform要素のnameがsos
ここが表示されていませんでした・・。
>><td colspan=2>キャラ画像
    <script language="JavaScript">
        function changeimg(){
            num=document.sos.face.value;
            document.sosimg.src="./img/"+ num;
        }
    </script>
このように表示されてました。
sub face_before の部分はこうなのですが・・・
&form('sos');だけだと足りないでしょうか?
>>
sub face_before {
    @rcdlines = &get_user("$Fm{'id'}");
    $fg='FB'; &userout;
    &form('sos');print qq|<td colspan=2>|;
    print qq|キャラ画像\n|;
print <<"_EOF_";
    <script language="JavaScript">
        function changeimg(){
            num=document.sos.face.value;
            document.sosimg.src="$imgdir"+ num;
        }
    </script>
_EOF_
    $faceno = 0;
    print "<select onchange=\"changeimg()\" name=face>\n";
    foreach (0 .. $#faceinit){
        print "<option value=\"$faceinit[$faceno]\">$facename[$faceno]</option>\n";
        $faceno++;
        }
    print qq|</select><br><br>\n|;
    print qq|<a href="$faceurl" target="_blank">\n|;
    print qq|<font color="blue"><a href="http://rebirth.raindrop.jp/pslist.html" TARGET="_blank">アイコンリスト</font></a>\n|;
    print "<img src=\"img\/p1.gif\" name=\"sosimg\">\n";
    &OKbuttoninform('n','face_after');
    print qq|</td>|; &form('end');}

CGIの中身の記載がまずいようでしたらすみません。。
スレッド一覧


1603● Re[5]:画像変更[ moon ] 2009 01/03 15:44
> > 画像選択時のソースを表示して、該当form要素とその中のHTMLを見てください。
> > 最低限、form要素のnameがsos、select要素のnameがface、img要素のnameがsosimgになっている必要があります。
> >
> > もし、返信にHTMLを貼り付ける場合はパスワードが含まれるはずですのでその部分は適当な値に変更してください。
>
> 返信ありがとうございます。
> 昨日からソースとにらめっこ状態ではあったのですが
> どうもうまくいきません。。
>
> ソースではform要素のnameがsos
> ここが表示されていませんでした・・。
> >><td colspan=2>キャラ画像
>     <script language="JavaScript">
>         function changeimg(){
>             num=document.sos.face.value;
>             document.sosimg.src="./img/"+ num;
>         }
>     </script>
> このように表示されてました。
> sub face_before の部分はこうなのですが・・・
> &form('sos');だけだと足りないでしょうか?
> >>
> sub face_before {
>     @rcdlines = &get_user("$Fm{'id'}");
>     $fg='FB'; &userout;
>     &form('sos');print qq|<td colspan=2>|;
>     print qq|キャラ画像\n|;
> print <<"_EOF_";
>     <script language="JavaScript">
>         function changeimg(){
>             num=document.sos.face.value;
>             document.sosimg.src="$imgdir"+ num;
>         }
>     </script>
> _EOF_
>     $faceno = 0;
>     print "<select onchange=\"changeimg()\" name=face>\n";
>     foreach (0 .. $#faceinit){
>         print "<option value=\"$faceinit[$faceno]\">$facename[$faceno]</option>\n";
>         $faceno++;
>         }
>     print qq|</select><br><br>\n|;
>     print qq|<a href="$faceurl" target="_blank">\n|;
>     print qq|<font color="blue"><a href="http://rebirth.raindrop.jp/pslist.html" TARGET="_blank">アイコンリスト</font></a>\n|;
>     print "<img src=\"img\/p1.gif\" name=\"sosimg\">\n";
>     &OKbuttoninform('n','face_after');
>     print qq|</td>|; &form('end');}
>
> CGIの中身の記載がまずいようでしたらすみません。。

&form('start');で行っていることは「print qq|<form method=$method action=$cgiurl>\n|」です。
ですので&form('sos');としてもnameがsosになるわけではないので、「print qq|<form method=$method action=$cgiurl name="sos">\n|;」と直接書く必要があります。

あと、
> tr要素などの余計なものは削除する。
これはtr要素に限らず無駄なものがあったら削除するという意味でしたので、必要である場合はtr要素であっても削除しなくて良いです。
スレッド一覧


1604● Re[6]:画像変更[ rien ] 2009 01/03 17:13
> &form('start');で行っていることは「print qq|<form method=$method action=$cgiurl>\n|」です。
> ですので&form('sos');としてもnameがsosになるわけではないので、「print qq|<form method=$method action=$cgiurl name="sos">\n|;」と直接書く必要があります。
>
> あと、
> > tr要素などの余計なものは削除する。
> これはtr要素に限らず無駄なものがあったら削除するという意味でしたので、必要である場合はtr要素であっても削除しなくて良いです。

お返事ありがとうございます。
すみません・・そうゆうことだったのですね。
とても勉強になります。
今は無事に表示することができています。
ありがとうございます。
trを残してた時だと(trだけではなかったですが
レイアウトが崩れてしまって・・
ちゃんと理解できてないだけだと思うのですが・・
それで直しているうちにこの形になってしまいました・・。

この間お聞きしたリスト表示の件なのですが
>>unless ($pagemax == 1){〜}
の部分をコメントアウトし
置き換え・・・page→pageno、cgiurl→listurl
にしてみました。
一括表示の部分がうまくいかなかったので
>>if($Fm{"pageno"} != all){print qq|<td><b>[<a href="$listurl?mode=list&order=$Fm{'order'}&pageno=all" target="_self">一括表\示</a>]</b></td>\n|;}
このように変えてみたのですが・・

表示自体・・
一括表示、前の●●件、IDやJOBなどのプルダウン、ページと思われるプルダウン(数字は記載されておらず・・)
という表示になってしまって
PAGEボタン(決定ボタン)が表示していませんでした・・。
前のではなくて次の〜件が表示されなくてはいけないはずなのですが・・

$backを求めるということは代入するということなのでしょうか??

すみません・・よろしくお願いします。
スレッド一覧


1605● Re[7]:画像変更[ moon ] 2009 01/03 20:14
> この間お聞きしたリスト表示の件なのですが
> >>unless ($pagemax == 1){〜}
> の部分をコメントアウトし
> 置き換え・・・page→pageno、cgiurl→listurl
> にしてみました。
> 一括表示の部分がうまくいかなかったので
> >>if($Fm{"pageno"} != all){print qq|<td><b>[<a href="$listurl?mode=list&order=$Fm{'order'}&pageno=all" target="_self">一括表\示</a>]</b></td>\n|;}
> このように変えてみたのですが・・
>
> 表示自体・・
> 一括表示、前の●●件、IDやJOBなどのプルダウン、ページと思われるプルダウン(数字は記載されておらず・・)
> という表示になってしまって
> PAGEボタン(決定ボタン)が表示していませんでした・・。
> 前のではなくて次の〜件が表示されなくてはいけないはずなのですが・・
>
> $backを求めるということは代入するということなのでしょうか??
>
> すみません・・よろしくお願いします。

まとまったソースは出さないようにしているのですが、それぞれの説明をしていると時間がかかりそうなので出します。

sub player_list内を以下のように変更すれば実現できると思います。(軽い動作確認は行いました。)
1. 先頭部分に以下を追加する。
  my $def_searchmaxh = $searchmaxh;
  my $allpage = $Fm{'pageno'} eq 'all';
2. unless ($pagemax == 1){〜}を以下に置き換える。
  print qq|<table border="0" cellpadding="2" cellspacing="2" align="center">\n|;
  print qq|<td><b>[<a href=$listurl?mode=list&order=$Fm{'order'}&pageno=all>一括表\示</a>]</b></td>\n|;
  if (!$allpage){
    my $back = $Fm{'pageno'} - 1;
    if ($back > 0){
      print <<EOD;
<form method="$method" action="$listurl">
<input type="hidden" name="mode" value="list">
<input type="hidden" name="order" value="$Fm{'order'}">
<input type="hidden" name="pageno" value="$back">
<td><input type="submit" value="前の${def_searchmaxh}件" class="btn1"></td>
</form>
EOD

    }
    my $next = $Fm{'pageno'} + 1;
    if (($next - 1) * $def_searchmaxh < @odrlines){
      print <<EOD;
<form method="$method" action="$listurl">
<input type="hidden" name="mode" value="list">
<input type="hidden" name="order" value="$Fm{'order'}">
<input type="hidden" name="pageno" value="$next">
<td><input type="submit" value="次の${def_searchmaxh}件" class="btn1"></td>
</form>
EOD

    }
  }

  print <<EOD;
<form method="$method" action="$listurl">
<input type="hidden" name="mode" value="list">
<td><select name="order">
EOD

  foreach ('ID','Name','Job','Money','Rate','Bounty') {
    if ($Fm{'order'} eq $_){
    print qq|<option value="$_" selected>$_</option>\n|;
    } else {
    print qq|<option value="$_">$_</option>\n|;
    }
  }

print <<EOD;
</select>
</td>
<td><select name="pageno">
EOD

  for ($i=0; $i <= $#odrlines; $i += $def_searchmaxh ) {
    $page_no = $i / $def_searchmaxh + 1;
    if (!$allpage && $page_no == $Fm{'pageno'}) { print qq|<option value="$page_no" selected>$page_no</option>\n|; }
    else { print qq|<option value="$page_no">$page_no</option>\n|; }
  }
  print <<EOD;
</select>
</td>
<td><input type="submit" value="PAGE" class="btn1"></td>
</form>
</table>
EOD
スレッド一覧


1606● Re[8]:画像変更[ rien ] 2009 01/03 22:01
> まとまったソースは出さないようにしているのですが、それぞれの説明をしていると時間がかかりそうなので出します。
>
> sub player_list内を以下のように変更すれば実現できると思います。(軽い動作確認は行いました。)
> 1. 先頭部分に以下を追加する。
>   my $def_searchmaxh = $searchmaxh;
>   my $allpage = $Fm{'pageno'} eq 'all';
> 2. unless ($pagemax == 1){〜}を以下に置き換える。
>   print qq|<table border="0" cellpadding="2" cellspacing="2" align="center">\n|;
>   print qq|<td><b>[<a href=$listurl?mode=list&order=$Fm{'order'}&pageno=all>一括表\示</a>]</b></td>\n|;
>   if (!$allpage){
>     my $back = $Fm{'pageno'} - 1;
>     if ($back > 0){
>       print <<EOD;
> <form method="$method" action="$listurl">
> <input type="hidden" name="mode" value="list">
> <input type="hidden" name="order" value="$Fm{'order'}">
> <input type="hidden" name="pageno" value="$back">
> <td><input type="submit" value="前の${def_searchmaxh}件" class="btn1"></td>
> </form>
> EOD
>
>     }
>     my $next = $Fm{'pageno'} + 1;
>     if (($next - 1) * $def_searchmaxh < @odrlines){
>       print <<EOD;
> <form method="$method" action="$listurl">
> <input type="hidden" name="mode" value="list">
> <input type="hidden" name="order" value="$Fm{'order'}">
> <input type="hidden" name="pageno" value="$next">
> <td><input type="submit" value="次の${def_searchmaxh}件" class="btn1"></td>
> </form>
> EOD
>
>     }
>   }
>
>   print <<EOD;
> <form method="$method" action="$listurl">
> <input type="hidden" name="mode" value="list">
> <td><select name="order">
> EOD
>
>   foreach ('ID','Name','Job','Money','Rate','Bounty') {
>     if ($Fm{'order'} eq $_){
>     print qq|<option value="$_" selected>$_</option>\n|;
>     } else {
>     print qq|<option value="$_">$_</option>\n|;
>     }
>   }
>
> print <<EOD;
> </select>
> </td>
> <td><select name="pageno">
> EOD
>
>   for ($i=0; $i <= $#odrlines; $i += $def_searchmaxh ) {
>     $page_no = $i / $def_searchmaxh + 1;
>     if (!$allpage && $page_no == $Fm{'pageno'}) { print qq|<option value="$page_no" selected>$page_no</option>\n|; }
>     else { print qq|<option value="$page_no">$page_no</option>\n|; }
>   }
>   print <<EOD;
> </select>
> </td>
> <td><input type="submit" value="PAGE" class="btn1"></td>
> </form>
> </table>
> EOD


お返事ありがとうございます。
す、すみません。。。
ソースまで出していただいて・・
お手数をおかけいたしまして申し訳ないです。

こうして見ると記述がぜんぜん足りなかったことが分かりました・・・。
ソースを見比べて勉強したいと思います。
どうもありがとうございました。
またご迷惑をおかけするかもしれませんが・・
よろしくお願いいたします。
スレッド一覧

CGIROOM