Jump to content
  • 0

[REQUEST]New hopzone votereward system.


Question

Posted

hello.

 

since you all notice that hopzone have a new update (template)

the hopzone votereward system doesn't work

if anyone has a fixed vote reward system or any update ffor an available one.

please do a reply with it!

 

 

ps: free only no spamming please.

 

BEST REGARDS!

LordOfDarkness

 

PS2 : here is my vote reward if some one want to rework it.

package net.sf.l2j.gameserver.model.entity.event;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Collection;
import java.net.URLConnection;


import net.sf.l2j.gameserver.model.entity.Announcements;
import net.sf.l2j.gameserver.thread.ThreadPoolManager;

import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;



public class vote
{
private int			initialCheck			= 60 * 1000;																																																	// 60 seconds = 1 minutes
private int			delayForCheck			= 600 * 1000;																																																	// 300 seconds = 10 minutes
private String		HOPZONE					= "http://l2.hopzone.net(server link deleted due to protection.";
private int			HopZonereward1Id		= 7570;
private int			HopZonereward1Count		= 5;
private int			HopZonereward2Id		= 8752;
private int			HopZonereward2Count		= 2;
private int			HopZonevotesForReward	= 4;
private int			HopZonemaxRewardStack	= 5000;
private int			HopZonelastVoteCount	= 0;

private vote()
{
    System.out.println("---------------------------------");
	System.out.println("Vote Reward System Initiated.");
	System.out.println("---------------------------------");
	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
}

private class AutoReward implements Runnable
{
	public void run()
	{
		System.out.println("Vote Count Check.");
		HopzoneCheck();
	}
	private void HopzoneCheck()
	{
		int hopZone = getHopZoneVotes();
		System.out.println("Hopzone Votes:" + hopZone);
		if (hopZone != 0 && getLastHopzoneVoteCount() != 0 && hopZone >= getLastHopzoneVoteCount() + HopZonevotesForReward)
		{
			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
			for (L2PcInstance player : pls)
			{
				if (player != null &&!player._fake)
				{
					L2ItemInstance item1 = player.getInventory().getItemByItemId(HopZonereward1Id);
					if (item1 == null || item1.getCount() < HopZonemaxRewardStack)
					{
						player.addItem("reward", HopZonereward1Id, HopZonereward1Count, player, true);
					}
					L2ItemInstance item2 = player.getInventory().getItemByItemId(HopZonereward2Id);
					if (item2 == null || item2.getCount() < HopZonemaxRewardStack)
					{
						player.addItem("reward", HopZonereward2Id, HopZonereward2Count, player, true);
					}

				}
			}	
			setLastHopzoneVoteCount(getLastHopzoneVoteCount() + HopZonevotesForReward);
		}
		Announcements.getInstance().announceToAll("Lineage 2 Senior  current hopzone votes: " + hopZone + ".");
		Announcements.getInstance().announceToAll("Next reward will be given at: " + (getLastHopzoneVoteCount() + HopZonevotesForReward) + " votes.");
		if (getLastHopzoneVoteCount() == 0)
		{
			setLastHopzoneVoteCount(hopZone);
		}
	}
}
private int getHopZoneVotes()
{
	URL url = null;
	InputStreamReader isr = null;
	BufferedReader in = null;
	try
	{
		url = new URL(HOPZONE);
		URLConnection con = url.openConnection();
		con.addRequestProperty("User-Agent", "Mozilla/4.76"); 
		isr = new InputStreamReader(con.getInputStream());
		in = new BufferedReader(isr);
		String inputLine;
		int voteCount = 0;
		while ((inputLine = in.readLine()) != null)
		{
			if (inputLine.contains("moreinfo_total_rank_text"))
			{
				voteCount = Integer.valueOf(inputLine.split(">")[2].replace("</div", ""));
				break;
			}
		}
		return voteCount;
	}
	catch (IOException e)
	{
		e.printStackTrace();
		return 0;
	}
	finally
	{
		try
		{
			in.close();
		}
		catch (IOException e)
		{}
		try
		{
			isr.close();
		}
		catch (IOException e)
		{}
	}
}



private void setLastHopzoneVoteCount(int voteCount)
{
	HopZonelastVoteCount = voteCount;
}

private int getLastHopzoneVoteCount()
{
	return HopZonelastVoteCount;
}



public static vote getInstance()
{
	return SingletonHolder._instance;
}

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

2 answers to this question

Recommended Posts

  • 0
Posted

Here you go :D

 

/*
* This is a script completely developed by Rain^ (?)
* You are not allowed to sell any copies of it.
* Since 2.0 (by Zoey76 for L2J Forums):
* Added logger instead of System.out.println()
* Moved to Datapack.
* Reworked AutoReward class.
* Reworked getVotes() method.
* Time is in minutes instead of milliseconds.
* Uses different a-beep-t for each item.
* Only rewards online players, not offline shops.
* Rewarded players count.
*/
package custom.VoteEngine;

import java.io.*;
import java.net.*;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;

import net.sf.l2j.gameserver.Announcements;
import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

/**
* @author Zoey76
* @version 2.0
*/
public class AutoVoteRewardHandler
{
protected static final Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());
//URL from your server site at HopZone.net
//Example: [url=http://l2.hopzone.net/lineage2/moreinfo/YourServer/ID.html]http://l2.hopzone.net/lineage2/moreinfo/YourServer/ID.html[/url]
private final static String _url = "http://l2.hopzone.net/lineage2/moreinfo/L2WorldPvP/74078.html";//Add your URL from HopZone here!
//Reward all online players each '_votesRequiredForReward' votes.
private final int _votesRequiredForReward = 1;//
//Initial check, time in minutes:
//Default: 1 minute
private final int initialCheck = 1;
//Delay interval, time in minutes (do not set it too low):
//Default: 10 minutes
private final int delayForCheck = 1;

//Item Id, A-beep-t.
private final static int[][] ITEMs =
{
	{ 5575, 10 }, //10 Event - Apiga(s)
	{ 57, 1000000 }, //1 million Adena
};

//Do not change
private int _lastVoteCount = 0;

private AutoVoteRewardHandler()
{
	_log.info("[AutoVoteRewardHandler]: Vote Reward System Initiated.");
	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck * 60000, delayForCheck * 60000);
}

private class AutoReward implements Runnable
{
	public void run()
	{
		int votes = getVotes();
		int rewardedPlayers = 0;
		if (votes > -1)
		{
			if  ((getLastVoteCount() != 0) && (votes >= (getLastVoteCount() + _votesRequiredForReward)))
			{
				Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
				for (L2PcInstance player : pls)
				{
					if ((player != null) && !player.getClient().isDetached())
					{
						for (int[] reward : ITEMs)
						{
							if (player.getInventory().validateCapacityByItemId(reward[0]))
							{
								player.addItem("reward", reward[0], reward[1], player, true);
							}
						}
						rewardedPlayers++;
					}
				}
				setLastVoteCount(getLastVoteCount() + _votesRequiredForReward);
			}
			else if (getLastVoteCount() == 0)
			{
				setLastVoteCount(votes);
			}
			_log.info("[AutoVoteRewardHandler]: Server Votes: " + votes + ", Rewarded players: " + rewardedPlayers);
			Announcements.getInstance().announceToAll("Server Votes: " + votes + " | Next Reward on " + (getLastVoteCount() + _votesRequiredForReward) + " votes!");
		}
		else
		{
			_log.log(Level.WARNING, "[AutoVoteRewardHandler]: Error retreiving server votes count!");
		}
	}
}

private static int getVotes()
{
       		InputStreamReader isr = null;
	BufferedReader in = null;
	int votes = -1;
	try
	{
	URLConnection conn = new URL(_url).openConnection();
	conn.addRequestProperty("User-Agent", "Mozilla/4.76");
	isr = new InputStreamReader(conn.getInputStream());
         	in = new BufferedReader(isr);
		String inputLine;
		while (((inputLine = in.readLine()) != null) && (votes == -1))
		{
			if (inputLine.contains("Anonymous User Votes"))
			{
				try
				{
					votes = Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
				}
				catch (Exception e)
				{
				}
			}
		}
		in.close();
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, "[AutoVoteRewardHandler]: " + e.getMessage(), e);
	}
	return votes;
}

private void setLastVoteCount(int voteCount)
{
	_lastVoteCount = voteCount;
}

private int getLastVoteCount()
{
	return _lastVoteCount;
}

public static AutoVoteRewardHandler getInstance()
{
	return SingletonHolder._instance;
}

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

public static void main(String[] args)
{
	//System.out.println("Server votes: " + getVotes());//Just a test.
	AutoVoteRewardHandler.getInstance();
}
}

  • 0
Posted

http://l2.hopzone.net/lineage2/moreinfo/YourServer/ID.html thats the old link for hopzone,

theres a new template in hopzone is it going to work with the new link hopzone has?

 

EDIT:I got error with the values what do i do?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   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...