私設SoS2オーナー応援BBS

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

スレッド

└◇816:
Re[7]:現在の参加者表示 [mizuho] 10/10 10:25

 └◇818:Re[8]:現在の参加者表示 [moon] 10/10 19:35
  └◇819:できました! [mizuho] 10/11 16:45<-last


816● Re[7]:現在の参加者表示[ mizuho ] 2003 10/10 10:25
> > プレイ中に表示したいのであればsub player_data内が適当かと思います。(もちろんこの場合は参加者の表示は、右側のプレイヤーのパラメータ画面内になりますが。)
>
> 正確には、
>   print qq|<input type=hidden name=pass value="$ps">\n|;
> 以降です。

require './pl/list_order.pl';
&list_order;
if (!$playernow) { $playernow = 0 }
print qq|<br><b>現在プレイ中($playernow人):$current</b>\n|;

という感じで入れてみましたが、プレイ中の者がいても

現在プレイ中(0人):

という表示にしかなりませんでした。
高負荷になるということで、表示されるかどうかだけ試してみようかと思ったのですが、うまくいきません。
今後継続的な表示はあきらめるとして、原因だけでも知りたいのですが、何故だかわかるでしょうか?
スレッド一覧


818● Re[8]:現在の参加者表示[ moon ] 2003 10/10 19:35
> 今後継続的な表示はあきらめるとして、原因だけでも知りたいのですが、何故だかわかるでしょうか?

ちゃんと見てみたらsub player_dataが実行される状況ではlist_orderで参加者の判定は行わないので0人になるのが正常です。
参加者を表示するためには次のようなサブルーチンを追加してください。
&unlockは実行していないのでsub player_data以外で実行しても大丈夫です。

sub get_active{
  &get_file;
  &list_in;
  $playernow = 0;
  $current = '';
  my ($aid, $anm, $afg);
  foreach(0 .. $#lstlines){
    ($aid, $anm, $afg) = (split(/<>/, $lstlines[$_]))[0, 1, 27];
    if($afg eq '' || index($afg, 'B') != -1){
      $playernow++;
      $current .= "[$aid]$anm ";
    }
  }
}
スレッド一覧


819● できました![ mizuho ] 2003 10/11 16:45
試してみたら、表示されました!
ご丁寧にどうもありがとうございました♪
今後ともどうぞよろしくお願いしますm(_"_)m
スレッド一覧

CGIROOM