Jump to content

Recommended Posts

Posted

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.

Posted

The idia is pretty old, but since noone shared that kind of system already...

I will give you +1 karma after recieve a reply from expirianced cheater that this works. [i'm not able to test this at the moment]

Posted

Today I had some extra time and I checked the code.

Had some errors, but now it's all fixed and working 100% !

First post updated!

 

Happy New Year!

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Migrating a legacy Interlude server to PostgreSQL while adding real observability is basically forcing 2006 MMO engineering to attend a 2026 infrastructure conference at gunpoint. PS: which revision of aCis? PS: 🧻what was broken during this whatever you call it.    AAC Guard beign asked to adapt to this be like: - Creating bugs since early 2018
    • OH MY LORDDDDDDDDDDDDDDDDDDDDD   FINALLY
    • TG Support: https://t.me/buyingproxysup | Channel: https://t.me/buyingproxycom Discord support: #buyingproxy | Server: Join the BuyingProxy Discord Server!  Create your free account here
    • I came out of my cave as I do once every 5 years. By now, I know nobody really cares about L2, but I still find it fun to experiment. Everything you see here will be free and open source. I have no interest in selling anything.   Long story short, I like to revisit Interlude and apply what I've learned to see how far I can push it. Here's Outerlude, a public fork of aCis for the modern age.   Video demo:   Work that has been done:   Redone the netcode from scratch to be async The NPC AI was completely redone based on Finite State Machines Moved to PostgreSQL and using some of its cool features Lots of config that should be hot reloadable has moved to the database OpenTelemetry instrumentation, where it makes sense, and a Grafana dashboard A built-in REST API for server management A built-in MCP Server for LLMs Nidrah AI, an AI Agent to make managing the server easier Real-time server map view Chat auditing and live snooping A new Fake Players Engine with a Node logic system and a new LLM planner for any behavior Just watch the video   If there is interest in this and I'm happy with it, or I get bored (which I always do), I will open-source it. Let me know what you think and if there is some feature you'd like me to implement.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..