私設SoS2オーナー応援BBS

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

スレッド

└◇1586:
キャラデータの表示。 [rien] 12/29 13:46

 └◇1587:Re:キャラデータの表示。 [moon] 12/29 17:50
  └◇1588:Re[2]:キャラデータの表示。 [moon] 12/29 17:57
   └◇1589:Re[3]:キャラデータの表示。 [rien] 12/29 19:46
    └◇1590:Re[4]:キャラデータの表示。 [moon] 12/29 20:36
     └◇1591:Re[5]:キャラデータの表示。 [rien] 12/29 22:17
      └◇1592:Re[6]:キャラデータの表示。 [moon] 12/29 23:30
       └◇1593:Re[7]:キャラデータの表示。 [rien] 12/30 00:17
        └◇1594:Re[8]:キャラデータの表示。 [moon] 12/30 00:38
         └◇1595:Re[9]:キャラデータの表示。 [rien] 12/30 01:19<-last


1586● キャラデータの表示。[ rien ] 2008 12/29 13:46
いつもいつもすみません・・。

接触した相手の状態異常に色をつけることはできているのですが
これを自分のデータにも反映させたいと思い
やってみたら・・おかしいことになりました。
自分が毒だと紫に表示されるのですが、
自分が正常で、毒におかされているキャラに会うと紫でaliveと表示されてしまうのです・・・。

それと表示関連なのですが
戦闘実績などを表示しているのですが
相手と接触した直後には空欄になってしまい・・・
戦闘などアクションを起こしたあとだときちんと表示されます。
接触直後に表示するにはどうしたらよいでしょうか・・・。

2つともSub Player's DataとSub Partner's Dataを
見比べてやってはいるのですが・・うまくいきません・・。

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


1587● Re:キャラデータの表示。[ moon ] 2008 12/29 17:50
> いつもいつもすみません・・。
>
> 接触した相手の状態異常に色をつけることはできているのですが
> これを自分のデータにも反映させたいと思い
> やってみたら・・おかしいことになりました。
> 自分が毒だと紫に表示されるのですが、
> 自分が正常で、毒におかされているキャラに会うと紫でaliveと表示されてしまうのです・・・。

接触相手の状態($pav)によって色が決められているのではないでしょうか?
例えばpartner_dataでは、
  $av_clr = $dedclr if $pav eq 'dead'; $av_clr = $pznclr if $pav eq 'poison';
  print qq|状態:<font color=$av_clr>$pav</font><br>\n|;
となっていますが、最初の1行にあたる部分をplayer_dataに用意していなかったり、そのまま貼り付けたりしただけだと相手の状態で判定されてしまいます。
そのため、$pavではなく$avにする必要があります。

> それと表示関連なのですが
> 戦闘実績などを表示しているのですが
> 相手と接触した直後には空欄になってしまい・・・
> 戦闘などアクションを起こしたあとだときちんと表示されます。
> 接触直後に表示するにはどうしたらよいでしょうか・・・。
>
> 2つともSub Player's DataとSub Partner's Dataを
> 見比べてやってはいるのですが・・うまくいきません・・。
>
> よろしくお願いします。

戦闘実績というものをどのように実現しているかにもよりますが$valueに値が入っているとした場合、まずはcontact_check、contact_action、player_data内のget_userの後でprint "<hr>contact_check='$value'<hr>";などのようにして値を表示させ、値が表示されることと正常時との違いを確認してみてください。
スレッド一覧


1588● Re[2]:キャラデータの表示。[ moon ] 2008 12/29 17:57
> 戦闘実績というものをどのように実現しているかにもよりますが$valueに値が入っているとした場合、まずはcontact_check、contact_action、player_data内のget_userの後でprint "<hr>contact_check='$value'<hr>";などのようにして値を表示させ、値が表示されることと正常時との違いを確認してみてください。

上記の補足です。
contact_checkでの表示はprintではなくpush(@msg, "〜");で行う必要があります。
スレッド一覧


1589● Re[3]:キャラデータの表示。[ rien ] 2008 12/29 19:46
お返事ありがとうございます。
状態異常の方ですが・・
なかなかうまくいかず・・
今の状態は
$av_clr = $dedclr if $av eq 'dead'; $av_clr = $pznclr if $av eq 'poison';
    print qq|状態:<font color=$av_clr><B>$av</B></font><br>\n|;(Player's)

$av_clr = $dedclr if $pav eq 'dead'; $av_clr = $pznclr if $pav eq 'poison';
    print qq|状態:<font color=$av_clr>$pav</font><br>\n|;(Partner's)
このようになっていて
aliveからpoisonの相手に接触するとaliveが紫になります。
逆にpoisonからaliveの相手に接触しても色は変わりません・・。

実績のほうなのですが
contact_checkを表示させると
接触元のIDが出ました。
この時は全部0001だったのですが。。

そのあとPartner'sに記述が足りないみたいで
if ($wn && $sp =~ /Tf/) { $prt = &rate($wn,$lz,$kl,$dt) } else { $rt = 0 }
if ($wn && $sp =~ /Tv/) { $psellrt = &rate_sub($wn,$lz,$kl,$dt,$xi,$ak,$dd) } else { $sellrt = 0 }
これを直前に入れてみたのですが
これだと同じ職同士だけ見れる感じでした。
戦闘だと販売実績は空欄になり(非戦接触時
非戦だと戦闘実績が空欄になりました(戦闘職接触時

戦闘実績はレートで
販売実績はいのそうさんの改造を導入しました。

お手数おかけしますがよろしくお願いします。
スレッド一覧


1590● Re[4]:キャラデータの表示。[ moon ] 2008 12/29 20:36
> お返事ありがとうございます。
> 状態異常の方ですが・・
> なかなかうまくいかず・・
> 今の状態は
> $av_clr = $dedclr if $av eq 'dead'; $av_clr = $pznclr if $av eq 'poison';
>     print qq|状態:<font color=$av_clr><B>$av</B></font><br>\n|;(Player's)
>
> $av_clr = $dedclr if $pav eq 'dead'; $av_clr = $pznclr if $pav eq 'poison';
>     print qq|状態:<font color=$av_clr>$pav</font><br>\n|;(Partner's)
> このようになっていて
> aliveからpoisonの相手に接触するとaliveが紫になります。
> 逆にpoisonからaliveの相手に接触しても色は変わりません・・。

poisonからaliveに接触するとpoisonの色が紫にならないのですか?
aliveがpoisonに接触すると紫、poisonがaliveに接触すると紫、の場合は以下が原因です。
  $av_clr = $dedclr if $av eq 'dead'; $av_clr = $pznclr if $av eq 'poison';
ここで自分がaliveだと$av_clrが代入されないのでpartner_dataで代入された相手の色のままとなってしまいます。
以下のように変更してみてください。
  ・設定部分に追加する
    $alvclr = 'black'; # alive時の色
  ・sub player_data内
    $av_clr = $av eq 'dead' ? $dedclr : $av eq 'poison' ? $pznclr : $alvclr;
  ・sub partner_data内
    $av_clr = $pav eq 'dead' ? $dedclr : $pav eq 'poison' ? $pznclr : $alvclr;

> 実績のほうなのですが
> contact_checkを表示させると
> 接触元のIDが出ました。
> この時は全部0001だったのですが。。
>
> そのあとPartner'sに記述が足りないみたいで
> if ($wn && $sp =~ /Tf/) { $prt = &rate($wn,$lz,$kl,$dt) } else { $rt = 0 }
> if ($wn && $sp =~ /Tv/) { $psellrt = &rate_sub($wn,$lz,$kl,$dt,$xi,$ak,$dd) } else { $sellrt = 0 }
> これを直前に入れてみたのですが
> これだと同じ職同士だけ見れる感じでした。
> 戦闘だと販売実績は空欄になり(非戦接触時
> 非戦だと戦闘実績が空欄になりました(戦闘職接触時
>
> 戦闘実績はレートで
> 販売実績はいのそうさんの改造を導入しました。
>
> お手数おかけしますがよろしくお願いします。

いまいち状況が掴めないのですが、
  if ($wn && $sp =~ /Tf/) { $prt = &rate($wn,$lz,$kl,$dt) } else { $rt = 0 }
  if ($wn && $sp =~ /Tv/) { $psellrt = &rate_sub($wn,$lz,$kl,$dt,$xi,$ak,$dd) } else { $sellrt = 0 }
この箇所で$prtと$rtが混在、$psellrtと$sellrtが混在しているためなのではないでしょうか。
条件によって$prtか$rtのどちらか、$psellrtと$sellrtのどちらかしか代入されていません。
スレッド一覧


1591● Re[5]:キャラデータの表示。[ rien ] 2008 12/29 22:17
> いまいち状況が掴めないのですが、
>   if ($wn && $sp =~ /Tf/) { $prt = &rate($wn,$lz,$kl,$dt) } else { $rt = 0 }
>   if ($wn && $sp =~ /Tv/) { $psellrt = &rate_sub($wn,$lz,$kl,$dt,$xi,$ak,$dd) } else { $sellrt = 0 }
> この箇所で$prtと$rtが混在、$psellrtと$sellrtが混在しているためなのではないでしょうか。
> 条件によって$prtか$rtのどちらか、$psellrtと$sellrtのどちらかしか代入されていません。


お返事ありがとうございます。
状態異常の表示の方はきちんと表示されました。
私の説明がうまくできなくて・・
分かりづらくてすみません。。

実績の方はいまだ・・分からずです
販売実績はいのそうさんではなくてsugar4さんでした
申し訳ないです。

Sub Partner's Data の戦闘実績の表示部分の上に
こう記載してみたのですが・・・

if ($pwn && $psp =~ /Tf/) { $prt = &rate($pwn,$plz,$pkl,$pdt) } else { $prt = 0 }
if ($pwn && $psp =~ /Tv/) { $psellrt = &rate_sub($pwn,$plz,$pkl,$pdt,$pxi,$pak,$pdd) } else { $psellrt = 0 }

これだと表示自体はされるのですが
戦闘実績は問題なかったです。
販売実績の方はリストと違う数値が出てしまいました・・。
606→879に・・
どこをどう直せばよいのかわからなくて・・
ここの記述自体が間違っているのでしょうか??
スレッド一覧


1592● Re[6]:キャラデータの表示。[ moon ] 2008 12/29 23:30
> 実績の方はいまだ・・分からずです
> 販売実績はいのそうさんではなくてsugar4さんでした
> 申し訳ないです。
>
> Sub Partner's Data の戦闘実績の表示部分の上に
> こう記載してみたのですが・・・
>
> if ($pwn && $psp =~ /Tf/) { $prt = &rate($pwn,$plz,$pkl,$pdt) } else { $prt = 0 }
> if ($pwn && $psp =~ /Tv/) { $psellrt = &rate_sub($pwn,$plz,$pkl,$pdt,$pxi,$pak,$pdd) } else { $psellrt = 0 }
>
> これだと表示自体はされるのですが
> 戦闘実績は問題なかったです。
> 販売実績の方はリストと違う数値が出てしまいました・・。
> 606→879に・・
> どこをどう直せばよいのかわからなくて・・
> ここの記述自体が間違っているのでしょうか??

rate_subが改造方法通りに以下のようになっていると引数が利用されていないため一部のパラメータが必ず自分のものが使用されてしまいます。
  sub rate_sub {
    local($wn,$lz,$kl,$dt,$sellrt) = @_;
    $sellrt = int((($wn*3+ $lz)/($xi)) * 100) - ($lz * 5) - ($dt)*2 -($kl *10)+($ak+$dd)*50;
    return $sellrt;
  }
以下のように変更して試してみてください。
  sub rate_sub {
    local($wn,$lz,$kl,$dt,$xi,$ak,$dd) = @_; # ここを変更
    $sellrt = int((($wn*3+ $lz)/($xi)) * 100) - ($lz * 5) - ($dt)*2 -($kl *10)+($ak+$dd)*50;
    return $sellrt;
  }

あと、この修正に関連してすべてのrate_sub呼び出し時の引数を確認したほうが良いです。
勝利数、敗北数、殺害数、死亡数、最大所持数、攻撃力、防御力の順番になっていない場合はこの順番に修正する必要があります。(少なくともリスト表示の改造では順番が異なっています。)
スレッド一覧


1593● Re[7]:キャラデータの表示。[ rien ] 2008 12/30 00:17
> rate_subが改造方法通りに以下のようになっていると引数が利用されていないため一部のパラメータが必ず自分のものが使用されてしまいます。
>   sub rate_sub {
>     local($wn,$lz,$kl,$dt,$sellrt) = @_;
>     $sellrt = int((($wn*3+ $lz)/($xi)) * 100) - ($lz * 5) - ($dt)*2 -($kl *10)+($ak+$dd)*50;
>     return $sellrt;
>   }
> 以下のように変更して試してみてください。
>   sub rate_sub {
>     local($wn,$lz,$kl,$dt,$xi,$ak,$dd) = @_; # ここを変更
>     $sellrt = int((($wn*3+ $lz)/($xi)) * 100) - ($lz * 5) - ($dt)*2 -($kl *10)+($ak+$dd)*50;
>     return $sellrt;
>   }
>
> あと、この修正に関連してすべてのrate_sub呼び出し時の引数を確認したほうが良いです。
> 勝利数、敗北数、殺害数、死亡数、最大所持数、攻撃力、防御力の順番になっていない場合はこの順番に修正する必要があります。(少なくともリスト表示の改造では順番が異なっています。)


お返事ありがとうございます。
とても分かりやすい説明をしていただきありがとうございます。
リストのほうも順番が変わってたので直しました。
それできちんと表示できています。
ありがとうございました。

すみません
もう1つ聞きたいことが・・・あります。
SOSのトップページなどに画像を貼り付けたり
背景を色ではなくて壁紙にする方法がよくわからなくて・・・
トップでprint qqを使って画像を貼り付けたのですが(ラインの部分として
サーバーエラーになってしまったり・・・。
普通のHTMLとは記述が違っていたりしますか??
すごい初歩的なことでごめんなさい。
スレッド一覧


1594● Re[8]:キャラデータの表示。[ moon ] 2008 12/30 00:38
> すみません
> もう1つ聞きたいことが・・・あります。
> SOSのトップページなどに画像を貼り付けたり
> 背景を色ではなくて壁紙にする方法がよくわからなくて・・・
> トップでprint qqを使って画像を貼り付けたのですが(ラインの部分として
> サーバーエラーになってしまったり・・・。
> 普通のHTMLとは記述が違っていたりしますか??
> すごい初歩的なことでごめんなさい。

HTMLのbody要素に属性として指定する場合は設定部分(init.cgi)の$bodyと$body2を変更すれば良いです。
スタイルシートで指定する場合は、other.plのsub styleを変更します。

メインは上記ですがqst.cgiとufs2.cgiにもbody要素などの定義がありますので必要ならこれらも変更します。
スレッド一覧


1595● Re[9]:キャラデータの表示。[ rien ] 2008 12/30 01:19
いつも早々のお返事とても感謝しています。
スタイルシート・・あまりくわしくないので
BODYの方をすこし変更してみようと思います。

丁寧に教えてくださり、ありがとうございます。
頑張ってやってみます^^
スレッド一覧

CGIROOM