avatar_Fire

Как скрыть игроков в топ-100 неактивных более 3 дней

Автор Fire, 2009 Авг. 12, 11:41

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Ключевые слова [SEO] mu onlineВеб-сайтыскриптпомощь в вебе

Fire

Ищу скрипт,который скрывает игроков в топ 100, которые более 3х дней не заходят в игру

GrInYa

напиши в цыкле:

$last_time = time()-259200;
if (time($myrow['DisConnectTM']) > $last_time)
{

echo "твоя часть таблицы каторая отвечает за определёново пероснажа в топе";

}

worldhero

с начало ищем акк которые заходили недавно.
пихаем их в массив
потом циклом, вытаскиваем чаров по уровню и подходящим акк из массива.
это самый оптимальный вариант.
можно предварительно перед топом делать запрос к базе - вытаскивая дату от акк и пихать в новый столбес в таблице чаров дату захода, и уже от туда делать сравнения и запрос.

на тебе целых 2 способа

Deathless

Цитата: worldhero от 2009 Сен. 16, 05:14  с начало ищем акк которые заходили недавно.
пихаем их в массив
потом циклом, вытаскиваем чаров по уровню и подходящим акк из массива.
это самый оптимальный вариант.
можно предварительно перед топом делать запрос к базе - вытаскивая дату от акк и пихать в новый столбес в таблице чаров дату захода, и уже от туда делать сравнения и запрос.

на тебе целых 2 способа ;)

Вые6нулся!  :lol:

worldhero

на выебнулся, только к базе не забудь подключиться ;) :

$time=time();
$dater1=date("Y", $time);
$dater2=date("m", $time);
$dater3=date("d", $time);
$dater4=$dater3-3;
if ($dater4<0) {$dater2=$dater2-1; $dater4=31-$dater3;}
if (strlen($dater4) <2) {$dater4='0'.$dater4;}
if (strlen($dater2) <2) {$dater2='0'.$dater2;}
$userdate3=$dater1.$dater2.$dater4;
if ((eregi("([^0-9])", $stp))) { die("Введены недопустимые символы!<br>");}
$god= stripslashes($_GET['god']);

if (empty($god)) { $god='all'; } else
{
if ($god<>'all' and $god<>'dw' and $god<>'dk' and $god<>'elf' and $god<>'sm' and $god<>'mg' and $god<>'dl' ) {
$god='all';
}
}

if ($god=='all')
{$tabtop=mssql_query("select * from Character where CtlCode='0' and AccountID!='admin' order by Resets desc, cLevel desc");}
if ($god=='dw')
{$tabtop=mssql_query("select * from Character where CtlCode='0' and AccountID!='admin' and (Class='0' or Class='1' or Class='2') order by Resets desc, cLevel desc");}
if ($god=='dk')
{$tabtop=mssql_query("select * from Character where CtlCode='0' and AccountID!='admin' and (Class='16' or Class='17' or Class='18') order by Resets desc, cLevel desc");}
if ($god=='elf')
{$tabtop=mssql_query("select * from Character where CtlCode='0' and AccountID!='admin' and (Class='32' or Class='33' or Class='34') order by Resets desc, cLevel desc");}
if ($god=='sm')
{$tabtop=mssql_query("select * from Character where CtlCode='0' and AccountID!='admin' and (Class='80' or Class='81' or Class='82') order by Resets desc, cLevel desc");}
if ($god=='mg')
{$tabtop=mssql_query("select * from Character where CtlCode='0' and AccountID!='admin' and (Class='48' or Class='50' ) order by Resets desc, cLevel desc");}
if ($god=='dl')
{$tabtop=mssql_query("select * from Character where CtlCode='0' and AccountID!='admin' and (Class='64' or Class='66' ) order by Resets desc, cLevel desc");}




$koltop=mssql_num_rows($tabtop);
?>
<style type="text/css">

</style>
<a href="?id=<?=$id?>&god=all">ALL</a> / <a href="?id=<?=$id?>&god=dw">DW,SM,GM</a> / <a href="?id=<?=$id?>&god=dk">DK,BK,BM</a> / <a href="?id=<?=$id?>&god=elf">EL,ME,HE</a> / <a href="?id=<?=$id?>&god=mg">MG,DM</a> / <a href="?id=<?=$id?>&god=dl">DL,LE</a>
<table width="100%" border="0" cellspacing="3" cellpadding="0">
<tr>
<td><span class="стиль172">#</span></td>
<td>Char</td>
<td>Class</td>
<td>Level (Reset)</td>
<td>Guild</td>
<td>Status</td>
</tr>
<? $kolichistvo_vseg=0;
for ($topk=1; $topk<=$koltop && $topk<=100 && $kolichistvo_vseg<$koltop; ++$topk) {
$arraytop=mssql_fetch_array($tabtop);
$charname=$arraytop['Name'];
$accounttop=$arraytop['AccountID'];
ini_set('mssql.datetimeconvert', 0);
$ishem_acc=mssql_query("select * from MEMB_STAT where memb___id='$accounttop'");
$ishem_array=mssql_fetch_array($ishem_acc);
$datedsacc=(string) $ishem_array['DisConnectTM'];
$datedsacc1=substr($datedsacc,0,4);
$datedsacc2=substr($datedsacc,5,2);
$datedsacc3=substr($datedsacc,8,2);
$datedsacc_god=$datedsacc1.$datedsacc2.$datedsacc3;
if ($datedsacc_god>=$userdate3) {$accounttop_norma=1;} else {$accounttop_norma=0;}
if ($accounttop_norma==0) {$topk=$topk-1; $kolichistvo_vseg=$kolichistvo_vseg+1;
} else {
$classtop=$arraytop['Class'];
$levelandreset=$arraytop['cLevel']." (".$arraytop['Resets'].")";
if ($classtop==0) {$classname='Dark Wizard';}
if ($classtop==1) {$classname='Soul Master';}
if ($classtop==2) {$classname='Grand Master';}
if ($classtop==16) {$classname='Dark Knight';}
if ($classtop==17) {$classname='Blade Knight';}
if ($classtop==18) {$classname='Blade Master';}
if ($classtop==32) {$classname='Elf';}
if ($classtop==33) {$classname='Muse Elf';}
if ($classtop==34) {$classname='High Elf';}
if ($classtop==80) {$classname='Summoner';}
if ($classtop==81) {$classname='Bloody Summoner';}
if ($classtop==82) {$classname='Dimension Summoner';}
if ($classtop==48) {$classname='Mage Gladiator';}
if ($classtop==50) {$classname='Duel Master';}
if ($classtop==64) {$classname='Dark Lord';}
if ($classtop==66) {$classname='Lord Empeorer';}
$tabtopguild=mssql_query("select * from GuildMember where Name='$charname'");
$koltopguild=mssql_num_rows($tabtopguild);
if ($koltopguild==0) {$guilds='-';} else {
$guildarrays=mssql_fetch_array ($tabtopguild);
$guilds=$guildarrays['G_Name'];}
$tabonline=mssql_query("select * from MEMB_STAT  where memb___id='$accounttop' and ConnectStat='1' ");
$kolonline=mssql_num_rows($tabonline);
if ($kolonline==0) {$stonline='<span class="стиль174">OFF</span>';} else {
$tabonline2=mssql_query("select * from AccountCharacter  where Id='$accounttop' and GameIDC='$charname' ");
$kolonline2=mssql_num_rows($tabonline2);
if ($kolonline2==0) {$stonline='<span class="стиль174">OFF</span>';}
else {$stonline='<span class="стиль173">ON</span>';}
}
$charname= str_replace ('>','?',$charname);
$charname= str_replace ('<','?',$charname);
?>

<tr>
<td><span class="стиль172"><?=$topk?></span></td>
<td><?=$charname?></td>
<td><?=$classname?></td>
<td><?=$levelandreset?></td>
<td><?=$guilds?></td>
<td><?=$stonline?></td>
</tr> <? $kolonline='0'; $kolonline2='0';
}
} ?>
</table>



GrInYa

Цитата: worldhero от 2009 Сен. 16, 07:14  это самый оптимальный вариант.

хз но я бы не сказал што ето самый оптимальный вариант, так как дата последнево визита есть в базу в MEMB_STAT, а там можно сразу вытошить с базы через запрос только те персонажи каторые были в последние 3 в онлайне,и потом отоброжать их

запрос может быть примерно таким

select name from character c,memb_stat ms where c.accountid=ms.memb___id and time(DisConnectTM)>(time()-259200)

worldhero

вариант хороший, но строить mssql код в query, не по мне это - лучше уж сделать 2 запроса и проверку чем 1 но с непонятным для людей кодом.
все делается для большей части населения  мы же не пишем свой движок сайта "где только в админке меняй параметры и все."

Deathless


worldhero

не какой
кстати сам я не догадался бы сделать как предложил(а) GrInYa
и намотал на ус и спс оставил ;)
но все же, 2 запроса на сайте меньше кушают чем 1 большой в mssql поэтому - остаюсь при своем мнении
(хотя прям очень удобно выглядит)

Deathless

Цитата: worldhero от 2009 Сен. 25, 12:03  предложил(а) GrInYa
Что за сомнения? Аватарка с девушкой или ник уменьшительно-ласкательный?  :lol:

0daybox


GrInYa

Цитата: Demka от 2009 Сен. 25, 16:23  Что за сомнения? Аватарка с девушкой или ник уменьшительно-ласкательный?  :lol:
:lol:

PS: Я Мужщина

по мне быстрее будет отправить 1 запрос к базу чем отправить 2 ;) но каму как угодно.


ПС: с одной стороы настояший кодер славен тем што может написать код так как не думают другие, штоб тежело было разобраца в нём, а с другой стороны славен тем што быстро и легко может разобраца в чужом коде

Deathless

Большой код - большая затрата времени на его обработку, не так ли?

GrInYa

да но ето дело рук мастера , вить не один кодер не хочет штоб ево идею использовали другие, и пишет код по китайски  , а за нево получает большие деньги

Похожие темы (5)