Tárgy számolás (K)

Indította Para, 2013-05-22, 12:27:57

2013-05-22, 12:27:57 Utolsó szerkesztés: 2013-06-17, 22:04:03 Szerző: [MOD]Aegist
Sziasztok.

Abban kérnék segítséget,hogy miféle módon tudom azt megoldani:

Mutassa hány tárgy van összesen a szerveren
Mutassa hány karakter van összesen a szerveren
Mutassa hány Account van összesen a szerveren
és hogy Mutassa 50017(PvP-pont) kinek van a legtöbb?

Remélem jó helyre nyitottam a témát.

Előre is köszönöm.

Szia. Jó helyre nyitottad. Ezt hogy érted? Hogy hol mutassa? Weboldaladon?

Igen, a weboldalon :D

Láttam régebben 1-2 szerver honlapján is..


Ahhoz, hogy mutassa, hogy kinél van a legtöbb, tárolnod kéne SQL-ben is, hogy kinek mennyi van. Ezt questel megoldhatod.

C++ programmer at Gameloft

Hát, és ehez questet tudsz mutatni?:D

2013-05-24, 20:28:23 #5 Utolsó szerkesztés: 2013-05-24, 20:46:12 Szerző: Virus
Helló!

Nekem így néz ki:


"index.php"
<!---Státusz--->
<div id="sidebar_top">
Szerver Adatok
</div>
<div id="sidebar_middle">
<?php
include 
"php/statusbar.php";
?>

</div>
<div id="sidebar_footer">
</div>


"statusbar.php"
<table>
<?PHP
$serverip = '[i]Ide a szervered IP címe[/i]';
        $ip = gethostbyname($serverip);
        $portlist=array(13000,13001,13002,13004,3306); // Nyitott portok
        $status=array('<tr><td width="57%" height="18">CH1</td>',
   '<tr><td width="57%" height="18">CH2</td>',
   '<tr><td width="57%" height="18">CH3</td>',
   '<tr><td width="57%" height="18">CH4</td>',
   '<tr><td width="57%" height="18">Adatb&aacute;zis</td>'); 
        $i=0;

    foreach  ($portlist as $port){
    echo "".$status[$i]."";
        $online = @fsockopen($ip, $port, $errno, $errstr, 1);
    if (!$online)
    {
        echo '<td width="6%">&raquo;</td><td width="37%"><font color="#990000">&nbsp; Karbantartás</font></td></tr>';

    }
    else
    {
        echo '<td>&raquo;</td><td><font color="#669900">&nbsp;El&eacute;rhet&ocirc;</font></td></tr>';
    }
        @fclose($online);
        $i++;
    }
?>

<?php
## Fiókok
mysql_select_db("account");
$query mysql_query("SELECT id FROM account");
$num mysql_num_rows($query);

## Karakterek
mysql_select_db("player");
$query mysql_query ("SELECT id FROM player WHERE player.name NOT LIKE '[%]%'");
$num2 mysql_num_rows($query);

## Céhek
mysql_select_db("player");
$query mysql_query ("SELECT id FROM guild");
$num3 mysql_num_rows($query);

## Tárgyak
mysql_select_db("player");
$query mysql_query ("SELECT id FROM item");
$num4 mysql_num_rows($query);

## Játékosok (24h)
mysql_select_db("player");
$exe mysql_query("SELECT COUNT(*) as count FROM player WHERE DATE_SUB(NOW(), INTERVAL 1440 MINUTE) < last_play;");
$player_online24 mysql_fetch_object($exe)->count+0;

## Játékosok
mysql_select_db("player");
$exe mysql_query("SELECT COUNT(*) as count FROM player WHERE DATE_SUB(NOW(), INTERVAL 15 MINUTE) < last_play;");
$player_online mysql_fetch_object($exe)->count+0;
?>

<table>
<br>
   <tr>
    <td>Aktiv játékos</td>
    <td>&raquo;</td>
    <td><font color="#336699"><?php echo $player_online ?></font></td>
  </tr>
  <tr>
    <td>Aktiv játékos</td>
    <td>&raquo;</td>
    <td><font color="#336699"><?php echo $player_online24 ?></font> (24h)</td>
  </tr>
  <tr>
    <td width="57%" height="18">Összes fiók</td>
    <td width="6%">&raquo;</td>
    <td width="37%"><font color="#336699"><?php echo $num;?></font></td>
  </tr>
  <tr>
    <td>Összes karakter</td>
    <td>&raquo;</td>
    <td><font color="#336699"> <?php echo $num2;?></font></td>
  </tr>
  <tr>
    <td>Öszes céh</td>
    <td>&raquo;</td>
    <td><font color="#336699"><?php echo $num3;?></font></td>
  </tr>
  <tr>
    <td>Öszes tárgy</td>
    <td>&raquo;</td>
    <td><font color="#336699"><?php echo $num4;?></font></td>
  </tr>
</td></tr>
</table>
</table>


Tartalmaz:

- Aktív játékos
- Aktív játékos az elmúlt 24 órában (24h)
- Összes fiók
- Összes karakter
- Összes céh
- Összes tárgy


A legtöbb PvP pont lekérésére még nem jöttem rá. :DDDD
Természetesen a diveket és a formázásokat kiveheted.

Csinálsz player táblázatban egy új oszlopot és questel pl. mp-nként ellenőrizteted, hogy hány db pontja van, majd egy queryvel beviszed az adott ember sorába.
Majd az alábbi queryvel le tudod kérdezni:
select top 1 name, pont from player where pont = max(pont) order by level desc;

C++ programmer at Gameloft