私設SoS2オーナー応援BBS

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

No.703  Re[3]:find_bestについて
発言者: moon
発言日: 2003 08/02 15:00
> 組織に所属している人のレートから、階級を表示したいのです(^^;
> (各組織ごとに)
> 1番レートが高い人が団長次が副団長、その次が特攻隊長でその他は団員という感じです(^^;;
> 表示場所はplayer's dataとリストとpartner dataです。
> ご迷惑をお掛けしますm(_ _)m

う〜ん。
下記以外は、負荷を考えるとお勧めできないですけれどね・・・。

一番増加する負荷が少ないと思うのは、プレイヤーデータだけが表示される場面だけでの表示なのでとりあえずこの場合だけを書きます。

sub normal_actionで、
  foreach $line (@lstlines) {
    ($pid,$pnm,$pps,$pjb,$pig,$psp,$pbp,$others) = split(/<>/,$line);
    if ($Fm{'id'} eq $pid) { $mysp = $psp; $mybp = $pbp }
    else { print qq|<option value="$pid">$pid:$pnm($pjb)\n| }
  }
を、
  @rcdlines = &get_user("$Fm{'id'}"); # 追加
  if($sp =~ /S\d/){$group = $&; $rt = &rate($wn, $lz, $kl, $dt); $rank = 0;}else{$group = $rank = '';} # 追加
  foreach $line (@lstlines) {
    ($pid,$pnm,$pps,$pjb,$pig,$psp,$pbp,〜,$others) = split(/<>/,$line); # $pwn、$plz、$pkl、$pdtが取得されていないなら取得できるように変更。
    if ($Fm{'id'} eq $pid) { $mysp = $psp; $mybp = $pbp }
    else {
      $rank++ if($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt)); # 追加
      print qq|<option value="$pid">$pid:$pnm($pjb)\n|
    }
  }
そして、sub player_dataで、
  if($rank ne ''){
    # ('団長', '副団長', '特攻隊長', '団員')[$rank]という感じで階級を得て表示
  }
  else{
    # 所属していない場合の表示
  }
と表示処理を行います。
処理の確認どころか文法チェックさえやっていないので間違いがあるかもしれませんが適宜指摘してください。

# 相手のステータス画面でも同様にループさせて判定を繰り返せば階級を表示させることは可能ですが、オリジナルではループが無い箇所なのでそれだけファイル読み込みやループ処理でかなり負荷が増加するはずです。

▼関連発言

700:find_bestについて [masaki] 08/02 11:08
 ├701:Re:find_bestについて [moon] 08/02 13:01
 │└702:Re[2]:find_bestについて [masaki] 08/02 14:06
 │ └703:Re[3]:find_bestについて [moon] 08/02 15:00
 │  └704:Re[4]:find_bestについて [masaki] 08/02 17:29
 │   └705:Re[5]:find_bestについて [moon] 08/02 17:38
 │    └706:Re[6]:find_bestについて [masaki] 08/02 18:55
 │     └707:Re[7]:find_bestについて [moon] 08/02 19:49
 │      └708:Re[8]:find_bestについて [masaki] 08/02 22:07
 │       └709:Re[9]:find_bestについて [moon] 08/02 22:27
 │        └710:Re[10]:find_bestについて [moon] 08/02 22:40
 │         └711:Re[11]:find_bestについて [masaki] 08/02 23:07
 │          └712:Re[12]:find_bestについて [moon] 08/02 23:53
 │           └713:組織内の階級 [moon] 08/03 00:05
 │            └714:Re:組織内の階級 [masaki] 08/03 07:28
 └715:組織内の階級 No.714から [moon] 08/03 10:13
  └716:補足 [moon] 08/03 10:16
   └717:Re:補足 [masaki] 08/03 11:01
    └718:Re[2]:補足 [masaki] 08/03 13:09<-last

Pass 保存


CGIROOM