▼スレッド
│
└◇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
> 表示場所はplayer's dataとリストとpartner dataです。スレッド一覧
ふと読み直したらここの「リスト」を読み飛ばしていたらしく、考えていたのですが少し書いてみたところ整理するのが面倒そうです。
> ありがとうございました。(^^
> できました!
> それで、できたのはそれでよかったのですが
> ># ('団長', '副団長', '特攻隊長', '団員')[$rank]という感じで階級を得て表示
> というのを
> @ranking = ('団長', '副団長', '特攻隊長', '団員');
> print qq|ランク:<b>$ranking[$rank]</b><br>\n|
> というかんじでやってみたのですが、moonさんの仰っているのと違うのかな?と思ったのですが。
> なにはともあれ、表示されたのでよかったです。
> ありがとうございました!
> (本当にいつもありがとうございますm(_ _)m)
動作としては同じはずですが、変な動作だったのでしょうか?
> > 表示場所はplayer's dataとリストとpartner dataです。スレッド一覧
>
> ふと読み直したらここの「リスト」を読み飛ばしていたらしく、考えていたのですが少し書いてみたところ整理するのが面倒そうです。
プレイヤーデータとパートナーだけで十分です〜(^^
> 動作としては同じはずですが、変な動作だったのでしょうか?
いえ。違う方法もあるのかな?と思っただけです(^^;
ありがとうございました!
> > > 表示場所はplayer's dataとリストとpartner dataです。スレッド一覧
> >
> > ふと読み直したらここの「リスト」を読み飛ばしていたらしく、考えていたのですが少し書いてみたところ整理するのが面倒そうです。
> プレイヤーデータとパートナーだけで十分です〜(^^
> > 動作としては同じはずですが、変な動作だったのでしょうか?
> いえ。違う方法もあるのかな?と思っただけです(^^;
> ありがとうございました!
了解しました。
前述の理由により相手の階級は求めていないので、自分の階級しか分からないんですよね・・・。
まあ、そこはアイディアもしくは負荷に対する覚悟で乗り切ってください。(笑)
> > > > 表示場所はplayer's dataとリストとpartner dataです。スレッド一覧
> > >
> > > ふと読み直したらここの「リスト」を読み飛ばしていたらしく、考えていたのですが少し書いてみたところ整理するのが面倒そうです。
> > プレイヤーデータとパートナーだけで十分です〜(^^
> > > 動作としては同じはずですが、変な動作だったのでしょうか?
> > いえ。違う方法もあるのかな?と思っただけです(^^;
> > ありがとうございました!
>
> 了解しました。
> 前述の理由により相手の階級は求めていないので、自分の階級しか分からないんですよね・・・。
> まあ、そこはアイディアもしくは負荷に対する覚悟で乗り切ってください。(笑)
新たな質問なのですが、
勢力別でランクを出したい場合はどのようにすればいいのでしょうか??
if($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S1/){$rank++;}
elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S3/){$rank++;}
elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S5/){$rank++;}
elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S7/){$rank++;}
elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S8/){$rank++;}
のようにしたのですが上手くいきません。
S1,S3,S5,S7,S8が各組織を表す記号です。(^^;
> 新たな質問なのですが、スレッド一覧
> 勢力別でランクを出したい場合はどのようにすればいいのでしょうか??
> if($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S1/){$rank++;}
> elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S3/){$rank++;}
> elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S5/){$rank++;}
> elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S7/){$rank++;}
> elsif($rank ne '' && $rank < 3 && index($psp, $group) >= 0 && $rt < &rate($pwn, $plz, $pkl, $pdt )&& $sp =~ /Tf/&& $sp =~ /S8/){$rank++;}
> のようにしたのですが上手くいきません。
> S1,S3,S5,S7,S8が各組織を表す記号です。(^^;
どこでの話でしょうか?
勢力別で出したいのは分かるのですが、$rankや$groupが共用されているので出したい結果が見えてこないです。
# スクリプトの書き方からすると、ある特定の一人の組織内での階級を求めようとしているように思うのですが。(つまり先ほど書いたのと似たような処理・・・)
> # スクリプトの書き方からすると、ある特定の一人の組織内での階級を求めようとしているように思うのですが。(つまり先ほど書いたのと似たような処理・・・)スレッド一覧
補足すると、ある特定のプレイヤーの階級だけを出したいのではなく一度に全ての組織の全階級を求めたいのでしょうか、ということです。
もしそうだとすると、前述の通り少し面倒な処理になりそうなので考えるのに躊躇しています・・・。
>>どこでの話でしょうか?スレッド一覧
ええと、normal_actionのforeach内です(^^;;
難しくてよくわからないのですが(苦笑)
> > # スクリプトの書き方からすると、ある特定の一人の組織内での階級を求めようとしているように思うのですが。(つまり先ほど書いたのと似たような処理・・・)
>
> 補足すると、ある特定のプレイヤーの階級だけを出したいのではなく一度に全ての組織の全階級を求めたいのでしょうか、ということです。
> もしそうだとすると、前述の通り少し面倒な処理になりそうなので考えるのに躊躇しています・・・。
ある特定のプレイヤーの階級を出したいのです。(player_dataやpartner_dataで表示させます)
ただ、組織毎に団長が一人、副団長が一人、特攻隊長が一人、そのほかは団員。といった感じにしたいのです。
> ある特定のプレイヤーの階級を出したいのです。(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を使って階級表示を行えばとりあえず相手の階級も表示されると思います。
# 本来無いはずのファイル読み込みとループなので負荷を本当に気を付けたほうが良いです。
少しでも負荷を減らすために少し修正します。スレッド一覧
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 = '';
}
if($rank ne '' || $prank ne ''){ # 上記を前に出し、両者が共に組織に属していない場合はループを行わないように変更した。
&get_file;
&list_in;
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);
}
}
}
説明が下手ですみませんm(_ _)mスレッド一覧
partner_dataへの表示方法ありがとうございました。
>>> ただ、組織毎に団長が一人、副団長が一人、特攻隊長が一人、そのほかは団員。といった感じにしたいのです。
ということについてなのですが、
> 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);
> }
これだと、組織に関係無く団長、副団長、特攻隊長が決まってしまうのではないでしょうか??(ちがったらすみません)
組織1に団長一人、副団長一人、特攻隊長一人
組織2に団長一人、副団長一人、特攻隊長一人
…
という感じにするのは難しいのでしょうか?(^^;
何度も何度も本当にすみません。