I thought that I should help the Administrators of servers with Vote Reward System, to reward only the players that voted, not all players at once!
Now, with CraneTop.ro it is possible!
FOR FREE!
How it works ? Simple! Every time a user votes for your server, he gets one random code.
Then, he goes back to your server's Vote Reward System, enters the code, and get the reward! That simple!
So... how can you do that?
1. Go to Profile and set Reward System to ON.
Now, every time a user votes for your website, he will receive a random code, so that he can get his reward.
2. Now you must do some new section in your website, or add the code below, to your Vote Reward System if you have one.
It's not necessarily to have Vote Reward System on your website! Read further!
3. Website part
You must add the following form in your website:
<form action="check.php" method="post">
Character Name: <input type="text" name="char"><br />
Reward Code: <input type="text" name="code"><br />
<input type="submit" value="Submit">
</form>
Now, create a new file named "check.php" and add the following content in:
<?php
##########################################
$host = "localhost";
$user = "root";
$password = "";
$dbname = "l2jdb";
$serverid = 'YOUR SERVER ID';
$connection = mysql_connect($host,$user,$password) or die("I can not connect to MySQL!");
mysql_select_db($dbname, $connection) or die("I can not find give database!");
##########################################
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_POST['char']))
$char = mysql_real_escape_string($_POST['char']);
if(isset($_POST['code']))
$code = intval($_POST['code']);
$url = "http://www.cranetop.ro/check/" .$serverid. "/" .$ip. "/" .$code;
$myresult = file_get_contents($url);
$check = mysql_query("SELECT `last_code` FROM characters WHERE `char_name`='$char'");
$check2 = mysql_query("SELECT * FROM characters WHERE `char_name`='$char' AND `reward_time`>DATE_SUB(NOW(), INTERVAL 12 HOUR)");
if(mysql_num_rows($check)>0) {
if(mysql_num_rows($check2)>0) {
echo "You have already received a prize in the last 12 hours!";
} else {
while($row = mysql_fetch_array($check))
$lastcode = $row['last_code'];
if($code != $lastcode) {
switch($myresult) {
case 'Y':
mysql_query("UPDATE characters SET vote=`vote`+1, `last_code`='$code', `reward_time`=NOW() WHERE `char_name`='$char'");
echo "Thank you for voting!";
break;
case 'X':
echo "The code you have entered is not valid!";
break;
case 'N':
echo "You must vote in order to get rewarded!";
break;
}
} else { echo "You have already used this reward code!";}
}
} else { echo "Character name is incorrect!";}
?>
That's all you must do in the website part.
4. MySQL Part
Now you must do some little changes to your game server's database, and run the following MySQL command:
ALTER TABLE characters
ADD (`vote` int(10) NOT NULL,
`last_code` int(6) NOT NULL,
`reward_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00');
5. L2JServer side
http://pastebin.com/KpXQV3aX
6. L2J DataPack side
http://pastebin.com/n8d3aJeW
TESTED AND WORKING 100% !!
I made the patch for the latest version from l2j trunk folder.
You are free to change the files as you want, I just made a working example for you to have.