Jump to content

[Share] Top 10 PVP script.


Recommended Posts

 

 

config.php

<?php
$database_info = array(
	'host' => 'localhost',  
	'user' => 'root',
	'password' => 'some_password',
	'l2jdb' => 'l2jdb'
);


?>

 

databaseinfo.php

<?php


@mysql_connect($database_info['host'], $database_info['user'], $database_info['password']) or die(mysql_error());
@mysql_select_db($database_info['l2jdb']) or die(mysql_error());
?>

 

toppvp.php

<?php
// Connection
include 'config.php';
include 'databaseinfo.php';
?>

<?php
echo "<table>";

$query = "SELECT * FROM characters WHERE accesslevel = 0 ORDER BY pvpkills DESC limit 10"; //change 10 to whatever amount you want to show on your website.
//Connection CMD
$result = mysql_query($query) or die(mysql_error());

// loops results
while ($row = mysql_fetch_array($result)) 

{
//Adding Variables like a boss!
$name = $row['char_name'];
$level = $row['level'];
$pvpscore = $row['pvpkills']; 
$pkscore = $row['pkkills'];



// Inserting data into the table
echo "

<tr>
<td>$name</td>
<td>$level</td>
   <td>$pvpscore</td>
<td>$pkscore</td>
</tr>";

}

echo "</table>";

//closing mysql connection
mysql_close();
?>

 

You will need to add the HTML table yourself, it is all set up though, it displays as NAME LEVEL PVP PK

 

Enjoy.

 

Link to comment
Share on other sites

Oh by the way, if you are going to use this, make sure to create a new account that can only READ from the tables and not write, also turn off Global Variables because it will be prone to SQL injection.

 

Using the admin account for a php script is a bit of a stupid idea in the first place ::)

Link to comment
Share on other sites

This is quite a basic script, but it can cause huge bandwidth spikes. Let's talk about optimization and assume that there's 10000 views per hour. That means that you resend that query 10000 times an hour. That makes it 240000 requests per day. But would you believe that you can do the same thing only with 96 query requests per day? That would take a huge load off the server and might increase the performance. Here's how I would do it:

I'd use the same script, but set it up for a cron job to execute it automatically every 15 minutes but instead of outputting the data (and destroying it afterward), I'd save it to a simple text file and on each page request acces it with fopen() function, loop through the file and parse strings with $array_name = explode(" ",$string); function. Data output would be the same. I'd do the same with TOP 200 script, account creation and anything that would create a huge load on the server.

Cheers.

Link to comment
Share on other sites

  • 1 month later...
  • 8 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock