Jump to content
  • 0

Topzone Vote Reward System


Question

Posted

Im using retail frozen vote reward system and before some hours xzone changed Topzone interface and now he told me that

"If you vote system reward is based on latest 40 votes then we will send you the new link where you can see the votes. If is based on total number of votes then you must contact the script owner to help you solve the problem."

Recommended Posts

  • 0
Posted

[2:11:54 πμ] Χρηστάκης Γάματα: powerpak

[2:11:57 πμ] Χρηστάκης Γάματα: im Using L2jFrozen

[2:12:03 πμ] Χρηστάκης Γάματα: and they're vote reward system

[2:12:50 πμ] l2topzone: then that person that have made the vote sytem reward need to know how to fix the problem, they need only to move the location where the script read total votes

  • 0
Posted

The old vote reward take votes from 40 Votes..!

Now its 100....how we can change it on source code?

What do you mean it take votes from 40 Votes?

  • 0
Posted

package com.l2jfrozen.gameserver.handler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.logging.Logger;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.Announcements;
import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;

public class AutoVoteRewardHandler
{
protected static final Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());

private int hopzoneVotesCount = 0;
private int topzoneVotesCount = 0;
protected List<String> already_rewarded;

protected static boolean topzone = false;
protected static boolean hopzone = false;

private AutoVoteRewardHandler()
{
	_log.info("Vote Reward System Initiated.");

	if(hopzone){
		int hopzone_votes = getHopZoneVotes();

		if(hopzone_votes == -1){
			hopzone_votes = 0;
		}

		setHopZoneVoteCount(hopzone_votes);
	}

	if(topzone){
		int topzone_votes = getTopZoneVotes();

		if(topzone_votes == -1){
			topzone_votes = 0;
		}

		setTopZoneVoteCount(topzone_votes);
	}

	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), PowerPakConfig.VOTES_SYSYEM_INITIAL_DELAY, PowerPakConfig.VOTES_SYSYEM_STEP_DELAY);
}

protected class AutoReward implements Runnable
{
	@Override
	public void run()
	{
		int minutes = (PowerPakConfig.VOTES_SYSYEM_STEP_DELAY/1000)/60;

		if(hopzone){
			int hopzone_votes = getHopZoneVotes();

			if(hopzone_votes != -1){
				_log.info("[AutoVoteReward] Server HOPZONE Votes: " + hopzone_votes);
				Announcements.getInstance().gameAnnounceToAll("Actual HOPZONE Votes are " + hopzone_votes + "...");

				if (hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
				{
					already_rewarded = new ArrayList<String>();

					Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();

					Announcements.getInstance().gameAnnounceToAll("Great Work!All L2Heredion online players are rewarded!");

					//L2ItemInstance item;
					for (L2PcInstance player : pls)
					{
						if (player != null && !player.isOffline() && player.isOnline()==1)
						{
							if(player._active_boxes<=1 || (player._active_boxes>1 && checkSingleBox(player))){

								Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
								for (Integer i : items)
								{
									//item = player.getInventory().getItemByItemId(i);

									//TODO: check on maxstack for item
									player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);

								}

							}
						}
					}
					setHopZoneVoteCount(hopzone_votes);
				}
				Announcements.getInstance().gameAnnounceToAll("Next Reward at " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!!");
				//site web
				Announcements.getInstance().gameAnnounceToAll("Website: "+PowerPakConfig.SERVER_WEB_SITE);

			}

		}

		if(topzone && hopzone && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY>0)
			try
			{
				Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY/2);
			}
			catch(InterruptedException e)
			{
				if(Config.ENABLE_ALL_EXCEPTIONS)
					e.printStackTrace();
			}

		if(topzone){
			int topzone_votes = getTopZoneVotes();

			if(topzone_votes != -1){

				_log.info("[AutoVoteReward] Server TOPZONE Votes: " + topzone_votes);
				Announcements.getInstance().gameAnnounceToAll("Actual TOPZONE Votes are " + topzone_votes + "...");

				if (topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
				{
					already_rewarded = new ArrayList<String>();

					Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();

					Announcements.getInstance().gameAnnounceToAll("Great Work!All L2Heredion online players are rewarded!");

					//L2ItemInstance item;
					for (L2PcInstance player : pls)
					{
						if (player != null && !player.isOffline() && player.isOnline()==1)
						{
							if(player._active_boxes<=1 || (player._active_boxes>1 && checkSingleBox(player))){

								Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
								for (Integer i : items)
								{
									//item = player.getInventory().getItemByItemId(i);

									//TODO: check on maxstack for item
									player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);

								}

							}
						}
					}
					setTopZoneVoteCount(topzone_votes);
				}

				Announcements.getInstance().gameAnnounceToAll("Next Reward at " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!!");
				//site web
				Announcements.getInstance().gameAnnounceToAll("WebSite: "+PowerPakConfig.SERVER_WEB_SITE);

			}


		}

	}
}

protected boolean checkSingleBox(L2PcInstance player){

	if(player.getClient()!=null && player.getClient().getConnection()!=null && !player.getClient().getConnection().isClosed() && !player.isOffline()){

		String playerip = player.getClient().getConnection().getInetAddress().getHostAddress();

		if(already_rewarded.contains(playerip))
			return false;
		already_rewarded.add(playerip);
		return true;
	}

	//if no connection (maybe offline shop) dnt reward
	return false;
}

protected int getHopZoneVotes()
{
	int votes = -1;
	URL url = null;
	URLConnection con = null;
	InputStream is = null;
	InputStreamReader isr = null;
	BufferedReader in = null;
	try
	{
		url = new URL(PowerPakConfig.VOTES_SITE_HOPZONE_URL);
		con = url.openConnection();    
		con.addRequestProperty("User-Agent", "Mozilla/4.76");
		is = con.getInputStream();
		isr = new InputStreamReader(is);		    
		in = new BufferedReader(isr);
		String inputLine;
		while ((inputLine = in.readLine()) != null)
		{
			if (inputLine.contains("rank anonymous tooltip"))
			{
				votes = Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
				break;
			}
		}
	}
	catch (Exception e)
	{
		_log.info("HOPZONE is offline or something is wrong in link");
		Announcements.getInstance().gameAnnounceToAll("HOPZONE is offline. We will check the reward as soon as it will be online");
		//e.printStackTrace();
	}
	finally
	{
		if(in!=null)
			try
			{
				in.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(isr!=null)
			try
			{
				isr.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(is!=null)
			try
			{
				is.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}

	}
	return votes;
}

protected int getTopZoneVotes()
{
	int votes = -1;
	URL url = null;
	URLConnection con = null;
	InputStream is = null;
	InputStreamReader isr = null;
	BufferedReader in = null;
	try
	{
		url = new URL(PowerPakConfig.VOTES_SITE_TOPZONE_URL);
		con = url.openConnection();    
		con.addRequestProperty("User-Agent", "Mozilla/4.76");
		is = con.getInputStream();
		isr = new InputStreamReader(is);		    
		in = new BufferedReader(isr);
		String inputLine;
		while ((inputLine = in.readLine()) != null)
		{
			if (inputLine.contains("Votes"))
			{
				String votesLine = in.readLine() ;

				votes = Integer.valueOf(votesLine.split(">")[5].replace("</font", ""));
				break;
			}
		}
	}
	catch (Exception e)
	{
		_log.info("[AutoVoteReward] Server TOPZONE is offline or something is wrong in link");
		Announcements.getInstance().gameAnnounceToAll("TOPZONE is offline. We will check the reward as soon as it will be online");
		//e.printStackTrace();
	}
	finally
	{
		if(in!=null)
			try
			{
				in.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(isr!=null)
			try
			{
				isr.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(is!=null)
			try
			{
				is.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
	}
	return votes;
}

protected void setHopZoneVoteCount(int voteCount)
{
	hopzoneVotesCount = voteCount;
}

protected int getHopZoneVoteCount()
{
	return hopzoneVotesCount;
}

protected void setTopZoneVoteCount(int voteCount)
{
	topzoneVotesCount = voteCount;
}

protected int getTopZoneVoteCount()
{
	return topzoneVotesCount;
}

public static AutoVoteRewardHandler getInstance()
{
	if(PowerPakConfig.VOTES_SITE_HOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_HOPZONE_URL.equals("")){
		hopzone = true;
	}

	if(PowerPakConfig.VOTES_SITE_TOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_TOPZONE_URL.equals("")){
		topzone = true;
	}

	if(topzone || hopzone)
		return SingletonHolder._instance;
	return null;
}

@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
	protected static final AutoVoteRewardHandler    _instance       = new AutoVoteRewardHandler();
}
}

 

What do you mean it take votes from 40 Votes?

before xzone change l2 topzone sites,our vote systems count 40 lastest vote!now xzone changed lastest votes page to 100!

  • 0
Posted

package com.l2jfrozen.gameserver.handler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.logging.Logger;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.Announcements;
import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;

public class AutoVoteRewardHandler
{
protected static final Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());

private int hopzoneVotesCount = 0;
private int topzoneVotesCount = 0;
protected List<String> already_rewarded;

protected static boolean topzone = false;
protected static boolean hopzone = false;

private AutoVoteRewardHandler()
{
	_log.info("Vote Reward System Initiated.");

	if(hopzone){
		int hopzone_votes = getHopZoneVotes();

		if(hopzone_votes == -1){
			hopzone_votes = 0;
		}

		setHopZoneVoteCount(hopzone_votes);
	}

	if(topzone){
		int topzone_votes = getTopZoneVotes();

		if(topzone_votes == -1){
			topzone_votes = 0;
		}

		setTopZoneVoteCount(topzone_votes);
	}

	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), PowerPakConfig.VOTES_SYSYEM_INITIAL_DELAY, PowerPakConfig.VOTES_SYSYEM_STEP_DELAY);
}

protected class AutoReward implements Runnable
{
	@Override
	public void run()
	{
		int minutes = (PowerPakConfig.VOTES_SYSYEM_STEP_DELAY/1000)/60;

		if(hopzone){
			int hopzone_votes = getHopZoneVotes();

			if(hopzone_votes != -1){
				_log.info("[AutoVoteReward] Server HOPZONE Votes: " + hopzone_votes);
				Announcements.getInstance().gameAnnounceToAll("Actual HOPZONE Votes are " + hopzone_votes + "...");

				if (hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
				{
					already_rewarded = new ArrayList<String>();

					Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();

					Announcements.getInstance().gameAnnounceToAll("Great Work!All L2Heredion online players are rewarded!");

					//L2ItemInstance item;
					for (L2PcInstance player : pls)
					{
						if (player != null && !player.isOffline() && player.isOnline()==1)
						{
							if(player._active_boxes<=1 || (player._active_boxes>1 && checkSingleBox(player))){

								Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
								for (Integer i : items)
								{
									//item = player.getInventory().getItemByItemId(i);

									//TODO: check on maxstack for item
									player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);

								}

							}
						}
					}
					setHopZoneVoteCount(hopzone_votes);
				}
				Announcements.getInstance().gameAnnounceToAll("Next Reward at " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!!");
				//site web
				Announcements.getInstance().gameAnnounceToAll("Website: "+PowerPakConfig.SERVER_WEB_SITE);

			}

		}

		if(topzone && hopzone && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY>0)
			try
			{
				Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY/2);
			}
			catch(InterruptedException e)
			{
				if(Config.ENABLE_ALL_EXCEPTIONS)
					e.printStackTrace();
			}

		if(topzone){
			int topzone_votes = getTopZoneVotes();

			if(topzone_votes != -1){

				_log.info("[AutoVoteReward] Server TOPZONE Votes: " + topzone_votes);
				Announcements.getInstance().gameAnnounceToAll("Actual TOPZONE Votes are " + topzone_votes + "...");

				if (topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
				{
					already_rewarded = new ArrayList<String>();

					Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();

					Announcements.getInstance().gameAnnounceToAll("Great Work!All L2Heredion online players are rewarded!");

					//L2ItemInstance item;
					for (L2PcInstance player : pls)
					{
						if (player != null && !player.isOffline() && player.isOnline()==1)
						{
							if(player._active_boxes<=1 || (player._active_boxes>1 && checkSingleBox(player))){

								Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
								for (Integer i : items)
								{
									//item = player.getInventory().getItemByItemId(i);

									//TODO: check on maxstack for item
									player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);

								}

							}
						}
					}
					setTopZoneVoteCount(topzone_votes);
				}

				Announcements.getInstance().gameAnnounceToAll("Next Reward at " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!!");
				//site web
				Announcements.getInstance().gameAnnounceToAll("WebSite: "+PowerPakConfig.SERVER_WEB_SITE);

			}


		}

	}
}

protected boolean checkSingleBox(L2PcInstance player){

	if(player.getClient()!=null && player.getClient().getConnection()!=null && !player.getClient().getConnection().isClosed() && !player.isOffline()){

		String playerip = player.getClient().getConnection().getInetAddress().getHostAddress();

		if(already_rewarded.contains(playerip))
			return false;
		already_rewarded.add(playerip);
		return true;
	}

	//if no connection (maybe offline shop) dnt reward
	return false;
}

protected int getHopZoneVotes()
{
	int votes = -1;
	URL url = null;
	URLConnection con = null;
	InputStream is = null;
	InputStreamReader isr = null;
	BufferedReader in = null;
	try
	{
		url = new URL(PowerPakConfig.VOTES_SITE_HOPZONE_URL);
		con = url.openConnection();    
		con.addRequestProperty("User-Agent", "Mozilla/4.76");
		is = con.getInputStream();
		isr = new InputStreamReader(is);		    
		in = new BufferedReader(isr);
		String inputLine;
		while ((inputLine = in.readLine()) != null)
		{
			if (inputLine.contains("rank anonymous tooltip"))
			{
				votes = Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
				break;
			}
		}
	}
	catch (Exception e)
	{
		_log.info("HOPZONE is offline or something is wrong in link");
		Announcements.getInstance().gameAnnounceToAll("HOPZONE is offline. We will check the reward as soon as it will be online");
		//e.printStackTrace();
	}
	finally
	{
		if(in!=null)
			try
			{
				in.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(isr!=null)
			try
			{
				isr.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(is!=null)
			try
			{
				is.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}

	}
	return votes;
}

protected int getTopZoneVotes()
{
	int votes = -1;
	URL url = null;
	URLConnection con = null;
	InputStream is = null;
	InputStreamReader isr = null;
	BufferedReader in = null;
	try
	{
		url = new URL(PowerPakConfig.VOTES_SITE_TOPZONE_URL);
		con = url.openConnection();    
		con.addRequestProperty("User-Agent", "Mozilla/4.76");
		is = con.getInputStream();
		isr = new InputStreamReader(is);		    
		in = new BufferedReader(isr);
		String inputLine;
		while ((inputLine = in.readLine()) != null)
		{
			if (inputLine.contains("Votes"))
			{
				String votesLine = in.readLine() ;

				votes = Integer.valueOf(votesLine.split(">")[5].replace("</font", ""));
				break;
			}
		}
	}
	catch (Exception e)
	{
		_log.info("[AutoVoteReward] Server TOPZONE is offline or something is wrong in link");
		Announcements.getInstance().gameAnnounceToAll("TOPZONE is offline. We will check the reward as soon as it will be online");
		//e.printStackTrace();
	}
	finally
	{
		if(in!=null)
			try
			{
				in.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(isr!=null)
			try
			{
				isr.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
		if(is!=null)
			try
			{
				is.close();
			}
			catch(IOException e1)
			{
				e1.printStackTrace();
			}
	}
	return votes;
}

protected void setHopZoneVoteCount(int voteCount)
{
	hopzoneVotesCount = voteCount;
}

protected int getHopZoneVoteCount()
{
	return hopzoneVotesCount;
}

protected void setTopZoneVoteCount(int voteCount)
{
	topzoneVotesCount = voteCount;
}

protected int getTopZoneVoteCount()
{
	return topzoneVotesCount;
}

public static AutoVoteRewardHandler getInstance()
{
	if(PowerPakConfig.VOTES_SITE_HOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_HOPZONE_URL.equals("")){
		hopzone = true;
	}

	if(PowerPakConfig.VOTES_SITE_TOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_TOPZONE_URL.equals("")){
		topzone = true;
	}

	if(topzone || hopzone)
		return SingletonHolder._instance;
	return null;
}

@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
	protected static final AutoVoteRewardHandler    _instance       = new AutoVoteRewardHandler();
}
}

before xzone change l2 topzone sites,our vote systems count 40 lastest vote!now xzone changed lastest votes page to 100!

oh sorry i forgot that it rewards all online players :P

  • 0
Posted

Hello, try to replace this line

 

votes = Integer.valueOf(votesLine.split(">")[5].replace("</font", ""));

 

with

 

votes = Integer.valueOf(votesLine.split(">")[5].replace("</div", ""));

  • 0
Posted

Hello, try to replace this line

 

votes = Integer.valueOf(votesLine.split(">")[5].replace("</font", ""));

 

with

 

votes = Integer.valueOf(votesLine.split(">")[5].replace("</div", ""));

 

Have some one try this solution if working?

  • 0
Posted

xzone, your code shouldn't work.

 

Omg guys, Its very easy and it can be done in many ways open your god damned browser what the source code at the part of votes , notice the changes of the css/html/php whatever change has been made , change the core and in about 3 minutes + compile you are ready to go.

Notice changes in PHP? (lol)

 

Nobody can see the PHP changes expect the actual website owner.

 

And why would CSS changes matter, do you know what you're talking about?

 

As for the fix, there was a code error aswell. (instead of actually getting the votes line, it was getting the next one)

 

Change this:

String votesLine = in.readLine();

 

To this:

String votesLine = inputLine;

 

And your votes line should be like that:

 

votes = Integer.valueOf(votesLine.split(">")[3].replace("</div", ""));

 

  • 0
Posted

Try to stay on-topic...

And test what @MikeJ said, coz it's that.

About php changes I guess he means the generated Html from the php, ofc u can't see php...

Guest
This topic is now closed to further replies.


×
×
  • Create New...