発言者: moon
発言日: 2003 08/02 23:53
> ある特定のプレイヤーの階級を出したいのです。(player_dataやpartner_dataで表示させます)
> ただ、組織毎に団長が一人、副団長が一人、特攻隊長が一人、そのほかは団員。といった感じにしたいのです。
暑くていつもより頭が回っていないのでまだ理解できていないのですが、自分と相手の階級のみを表示したいということですか?
自分はともかく相手の階級を表示するのは、No.707で書いたようにアイディアで乗り切るか負荷を覚悟で求める処理をするかの選択ですよ。
負荷が低いようなアイディアは思い付かないので、相手に対しても自分と同じ処理を適用するということで話を進めます。
sub partner_dataの先頭に、
&get_file;
&list_in;
if($sp =~ /S\d/){
$group = $&;
$rt = &rate($wn, $lz, $kl, $dt);
$rank = 0;
}
else{
$group = $rank = '';
}
if($psp =~ /S\d/){
$pgroup = $&;
$prt = &rate($pwn, $plz, $pkl, $pdt);
$prank = 0;
}
else{
$pgroup = $prank = '';
}
foreach(@lstlines){
($rid, $rnm, $rps, $rjb, $rig, $rsp, $rbp, 〜) = split(/<>/, $_); # 〜には$wn、$lz、$kl、$dtに対応する値(左記と同じ名前付けだと$rwnなど)が含まれるように。
if($id ne $rid && $rank ne '' && $rank < 3 && index($rsp, $group) >= 0 && $rt < &rate($rwn, $rlz, $rkl, $rdt)){
$rank++;
last if($rank >= 3 && $prank >= 3);
}
if($pid ne $rid && $prank ne '' && $prank < 3 && index($rsp, $pgroup) >= 0 && $prt < &rate($rwn, $rlz, $rkl, $rdt)){
$prank++;
last if($prank >= 3 && $rank >= 3);
}
}
を追加し、自分の階級と同様な処理で$prankを使って階級表示を行えばとりあえず相手の階級も表示されると思います。
# 本来無いはずのファイル読み込みとループなので負荷を本当に気を付けたほうが良いです。
▼関連発言
│
└◆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