No.1817 購入ランキングについて |
いつもお世話になっております。
購入ランキングについて試行錯誤して、カウントと表示は上手くいくようになり、いよいよリスト表示をさせようと思ったのですが何故かうまく動作してくれず…
ついでにログイン回数のリストも作ろうと思ったのですが、そちらも順位の順番に並ばず…
ログイン回数順の方は、よくわからない順番で並んでいました。
購入ランキングの回数と金額のリストの方は、ID順に並んでいる感じです。
何が悪いのかいろいろ悩んではいるのですが全く分からず、相談に来ました。
いつもお手数をおかけして恐縮ではございますが、診て頂けると助かります…
▼list_order.pl内
$now = time - $def_dl * 86400;
&get_file; &list_in;
$Fm{'ps'} = $admpas;
$TfSkip = "AttackPoint-DefensePoint-ItemBreak-Rate-Bounty-StealFiguar-StolenFigure-Fighter";
$TvSkip = "BuyFigure-BuyPrice";
foreach (0 .. $#lstlines)
{
($id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db,$av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,
$fe,$cm,$is,$ht,$fg,$rw,$kl,$sex,$itemmakemax,$list,$saying,$tep,$lasttm,$itbreak,$buyfig,$buymon,$steal,$stolen,$karma,$attribute,$fighter,$cm_length,$Dlv,$login,$buybuy) = split(/<>/,$lstlines[$_]);
next if $Fm{order} ne 'ID' && $sp =~ /-NPC-/;
if ($TfSkip =~ /$Fm{order}/ && $sp !~ /Tf/){next;}
if ($TvSkip =~ /$Fm{order}/ && $sp !~ /Tv/){next;}
$att = $ak + $ab; $def = $dd + $db; $itbreak = 0 if $itbreak !~ /[0-9]/; $buyfig = 0 if $buyfig !~ /[0-9]/; $buymon = 0 if $buymon !~ /[0-9]/; $steal = 0 if $steal !~ /[0-9]/; $stolen = 0 if $stolen !~ /[0-9]/;
if ($Fm{'listtyper'} eq "action")
{
if (($Fm{'idbef'} || $Fm{'idaft'}) && $id =~ /[a-zA-Z]/){next;}
if ($Fm{'idbef'} && $Fm{'idbef'} > $id){next;}
if ($Fm{'idaft'} && $Fm{'idaft'} < $id){next;}
if ($Fm{'mnbef'} && $Fm{'mnbef'} > $mn){next;}
if ($Fm{'mnaft'} && $Fm{'mnaft'} < $mn){next;}
if ($Fm{'rwbef'} && $Fm{'rwbef'} > $rw){next;}
if ($Fm{'rwaft'} && $Fm{'rwaft'} < $rw){next;}
if ($Fm{'atbef'} && $Fm{'atbef'} > $att){next;}
if ($Fm{'ataft'} && $Fm{'ataft'} < $att){next;}
if ($Fm{'defbef'} && $Fm{'defbef'} > $def){next;}
if ($Fm{'defaft'} && $Fm{'defaft'} < $def){next;}
if ($Fm{'dlvbef'} && $Fm{'Dlvbef'} > $Dlv){next;}
if ($Fm{'dlvaft'} && $Fm{'Dlvaft'} < $Dlv){next;}
if ($Fm{'loginbef'} && $Fm{'loginbef'} > $login){next;}
if ($Fm{'loginaft'} && $Fm{'loginaft'} < $login){next;}
if ($Fm{'buy_countbef'} && $Fm{'buy_countbef'} > $buy_count){next;}
if ($Fm{'buy_countaft'} && $Fm{'buy_countaft'} < $buy_count){next;}
if ($Fm{'buy_totalbef'} && $Fm{'buy_totalbef'} > $buy_total){next;}
if ($Fm{'buy_totalaft'} && $Fm{'buy_totalaft'} < $buy_total){next;}
if ($Fm{'mdbef'} && $Fm{'mdbef'} > $md){next;}
if ($Fm{'mdaft'} && $Fm{'mdaft'} < $md){next;}
if ($Fm{'av_alive'} && $av eq "alive"){next;}
if ($Fm{'av_poison'} && $av eq "poison"){next;}
if ($Fm{'av_withgost'} && $av eq "with ghost"){next;}
if ($Fm{'av_dead'} && $av eq "dead"){next;}
if ($Fm{'ss_ns'} && $fg eq "NS"){next;}
if ($Fm{'ss_hs'} && $fg eq "HS"){next;}
if ($Fm{'ss_ss'} && ($fg eq "SS" || $fg eq "DISCOVERS")){next;}
if ($Fm{'ss_sn'} && ($fg ne "NS" && $fg ne "HS" && $fg ne "SS" && $fg ne "DISCOVERS")){next;}
if ($sp =~ /Pb/){ $utype = 3; }
elsif ($ps eq "$admpas" && $id ne "$ad_id"){ $utype = 5; }
elsif ( $sp =~ /Tf/ && $sp =~ /Tv/) { $utype = 4; }
elsif ( $sp =~ /Tf/) { $utype = 1; }
else { $utype = 2; }
if ($Fm{'typef'} && $utype == 1){next;}
if ($Fm{'typev'} && $utype == 2){next;}
if ($Fm{'typep'} && $utype == 3){next;}
if ($Fm{'typefv'} && $utype == 4){next;}
if ($Fm{'typenpc'} && $utype == 5){next;}
if ($Fm{'listnameha'} && index($nm,$Fm{'listnameha'}) == -1){next;}
if ($Fm{'listcomha'} && index($cm,$Fm{'listcomha'}) == -1){next;}
if ($Fm{'play_setell'}){
$stell_check = lc($Fm{'play_setell'});
if($is !~ /$stell_check/){next}
}
}
if ($itemmakemax !~ /[0-9]/) {$itemmakemax = 0;}
if($Fm{'order'} eq "Delete"){
if($ps eq $admpas || $sp =~ /-ND-/){ $time1 = "無期"; }
else{
if(!$del_tms || !$lasttm){$times = ($def_dl * 86400) - time + $tm;}
else{$times = ($def_dl * 86400) - time + $lasttm;}
$time1 = int(($times) / 86400); $times -= ($time1 * 86400);
$time2 = int(($times) / 3600); $times -= ($time2 * 3600); $time2 = sprintf("%02d",$time2);
$time3 = int(($times) / 60); $times -= ($time3 * 60); $time3 = sprintf("%02d",$time3); $times = sprintf("%02d",$times);
$times = "$time1日$time2:$time3:$times";
$time1 = "<!--$lasttm-->$times" if $lasttm;
$time1 = "<!--$tm-->$times" if !$lasttm;
}
}
if($Fm{'order'} eq "Rate" || $Fm{'mode'} eq '' || $Fm{'mode'} eq 'norm_save' || $Fm{'mode'} eq 'hide_save' || $Fm{'mode'} eq 'levy'){ if ($wn) { $rt = &rate($wn,$lz,$kl,$dt) } else { $rt = 0 } }
if ($Fm{'mode'} eq '' || $Fm{'mode'} eq 'norm_save' || $Fm{'mode'} eq 'hide_save' || $Fm{'mode'} eq 'levy' || $Fm{'mode'} eq 'con_game')
{
&find_del; &find_best;
if ($fg eq '' || $fg =~ /B/) { $playernow++; $playernow_name .= '<br>' if $playernow_name; $playernow_name .= "<img src=../wakiyaku/itmimg/N_etc/2011-12-23_3-141.gif><b><FONT color=#F0E68C>$nm</FONT></b> が走ってるみたいです。"; }
}
$cm_length = length($cm);
%order =
(
'ID',$id,
'Name',$nm,
'Rate',$rt,
'Money',$mn,
'Bounty',$rw,
'Job',$jb,
'AttackPoint',$att,
'DefensePoint',$def,
'Delete',$time1,
'DlvMaster',$Dlv,
'LoginCount',$login,
'BuyCount',$buy_count,
'BuyMoney',$buy_total,
'Mdcoins',$md,
'ItemMake',$itemmakemax,
'ItemBreak',$itbreak,
'BuyFigure',$buymon,
'BuyPrice',$buyfig,
'StealFigure',$steal,
'StolenFigure',$stolen,
'Fighter',$fighter,
'Comment',$cm_length
);
if ($sp =~ /-NPC-/){ next }
push (@odrlines,"$order{$Fm{'order'}}<>$lstlines[$_]");
}
if ($Fm{'order'} ne 'Name' && $Fm{'order'} ne 'Job' && $Fm{'order'} ne 'ID' && $Fm{'order'} ne 'Delete' && $Fm{'order'} ne 'Dlv' && $Fm{'order'} ne 'Mdcoins')
{
@odrlines = sort({$b <=> $a} @odrlines);
}
else
{
@odrlines = sort(@odrlines);
}
1;
▼関連発言
│
└◆1817:購入ランキングについて [YOUME] 11/11 10:48
└◆1818:Re:購入ランキングについて [moon] 11/11 20:38
└◆1819:Re[2]:購入ランキングについて [YOUME] 11/12 13:31<-last
◇題名は、短くわかりやすく書いてください。 ◇過去に同じ内容が投稿されていないか検索してから書き込んで下さい。 ◇管理人の判断により相応しくない投稿は削除します。 |