Bleadd Posted July 3, 2011 Posted July 3, 2011 http://maxcheaters.com/forum/index.php?topic=205872.0 +package com.l2jserver.gameserver.instancemanager; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collection; + + +import com.l2jserver.gameserver.Announcements; +import com.l2jserver.gameserver.ThreadPoolManager; +import com.l2jserver.gameserver.model.L2ItemInstance; +import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; + +public class AutoVoteRewardHandler +{ + private final String HOPZONE = "http://l2.hopzone.net/lineage2/moreinfo/L2Worldx20x1000PvP/74078.html"; + // 60 * 1000(1000milliseconds = 1 second) = 60seconds + private final int initialCheck = 60 * 1000; + // 1800 * 1000(1000milliseconds = 1 second) = 1800seconds = 30minutes + private final int delayForCheck = 120 * 1000; + private final int[] itemId = {57, 5000, 6500 }; + private final int[] itemCount = { 1000, 5, 4}; + private final int[] maxStack = { 1, 1, 1 }; + private final int votesRequiredForReward = 1; + // do not change + private int lastVoteCount = 0; + private static ArrayList<String> _listedIps; + + private AutoVoteRewardHandler() + { + System.out.println("Vote Reward System Initiated."); + ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck); + } + + private class AutoReward implements Runnable + { + @Override + public void run() + { + int votes = getVotes(); + System.out.println("Server Votes: " + votes); + if (votes != 0 && getLastVoteCount() != 0 && votes >= getLastVoteCount() + votesRequiredForReward) + { + Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values(); + int onlinePlayers = 0; + for (L2PcInstance pl : pls) + { + if (pl.isOnline() && !pl.getClient().isDetached()) + { + onlinePlayers++; + } + } + _listedIps = new ArrayList<String>(onlinePlayers); + L2ItemInstance item; + for (L2PcInstance player : pls) + { + if (player != null && player.isOnline() && !player.getClient().isDetached()) + { + for (int i = 0; i < itemId.length; i++) + { + item = player.getInventory().getItemByItemId(itemId[i]); + if (item == null || item.getCount() < maxStack[i]) + { + String host = player.getClient().getConnection().getInetAddress().getHostAddress(); + if (host != null && !_listedIps.contains(host)) + _listedIps.add(host); + else + return; + + player.addItem("reward", itemId[i], itemCount[i], player, true); + } + } + } + } + setLastVoteCount(getLastVoteCount() + votesRequiredForReward); + } + Announcements.getInstance().announceToAll("Server Votes: " + votes + " | Next Reward on " + (getLastVoteCount() + votesRequiredForReward) + " Votes."); + if (getLastVoteCount() == 0) + { + setLastVoteCount(votes); + } + } + } + + private int getVotes() + { + URL url = null; + InputStreamReader isr = null; + BufferedReader in = null; + try + { + url = new URL(HOPZONE); + isr = new InputStreamReader(url.openStream()); + in = new BufferedReader(isr); + String inputLine; + while ((inputLine = in.readLine()) != null) + { + if (inputLine.contains("moreinfo_total_rank_text")) + { + return Integer.valueOf(inputLine.split(">")[2].replace("</div", "")); + } + } + } + catch (IOException e) + { + e.printStackTrace(); + } + finally + { + try + { + in.close(); + } + catch (IOException e) + { + } + try + { + isr.close(); + } + catch (IOException e) + { + } + } + return 0; + } + + 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(); + } +} I use this system. So the system work but once. This system reward me with 1000 adena (just for try ^^) and after he continue check the votes. When the time come to give a second reward, he don't give reward but he continue to check votes. How can i fix it? Thanks anyway for answer =)
0 FFs Posted July 5, 2011 Posted July 5, 2011 Sometimes, HopZone dont work, so, thats your problem, not code problem.
0 Bleadd Posted July 5, 2011 Author Posted July 5, 2011 Sure.. The system run since 2 days and reward only once. And is Hopzone.. OK Thanks for spam man =)
0 FFs Posted July 5, 2011 Posted July 5, 2011 Sure.. The system run since 2 days and reward only once. And is Hopzone.. OK Thanks for spam man =) Its just an opinion, and i tryed to help, and if u think i'm a spammer, please, get a life :)
0 jim100 Posted July 6, 2011 Posted July 6, 2011 Hello i am l2j starter.I have l2jserver already compiled pack..how can i add this vote system?
0 Bleadd Posted July 9, 2011 Author Posted July 9, 2011 You must compile yourself and add .Java modifications in the core.
Question
Bleadd
http://maxcheaters.com/forum/index.php?topic=205872.0
+package com.l2jserver.gameserver.instancemanager; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collection; + + +import com.l2jserver.gameserver.Announcements; +import com.l2jserver.gameserver.ThreadPoolManager; +import com.l2jserver.gameserver.model.L2ItemInstance; +import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; + +public class AutoVoteRewardHandler +{ + private final String HOPZONE = "http://l2.hopzone.net/lineage2/moreinfo/L2Worldx20x1000PvP/74078.html"; + // 60 * 1000(1000milliseconds = 1 second) = 60seconds + private final int initialCheck = 60 * 1000; + // 1800 * 1000(1000milliseconds = 1 second) = 1800seconds = 30minutes + private final int delayForCheck = 120 * 1000; + private final int[] itemId = {57, 5000, 6500 }; + private final int[] itemCount = { 1000, 5, 4}; + private final int[] maxStack = { 1, 1, 1 }; + private final int votesRequiredForReward = 1; + // do not change + private int lastVoteCount = 0; + private static ArrayList<String> _listedIps; + + private AutoVoteRewardHandler() + { + System.out.println("Vote Reward System Initiated."); + ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck); + } + + private class AutoReward implements Runnable + { + @Override + public void run() + { + int votes = getVotes(); + System.out.println("Server Votes: " + votes); + if (votes != 0 && getLastVoteCount() != 0 && votes >= getLastVoteCount() + votesRequiredForReward) + { + Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values(); + int onlinePlayers = 0; + for (L2PcInstance pl : pls) + { + if (pl.isOnline() && !pl.getClient().isDetached()) + { + onlinePlayers++; + } + } + _listedIps = new ArrayList<String>(onlinePlayers); + L2ItemInstance item; + for (L2PcInstance player : pls) + { + if (player != null && player.isOnline() && !player.getClient().isDetached()) + { + for (int i = 0; i < itemId.length; i++) + { + item = player.getInventory().getItemByItemId(itemId[i]); + if (item == null || item.getCount() < maxStack[i]) + { + String host = player.getClient().getConnection().getInetAddress().getHostAddress(); + if (host != null && !_listedIps.contains(host)) + _listedIps.add(host); + else + return; + + player.addItem("reward", itemId[i], itemCount[i], player, true); + } + } + } + } + setLastVoteCount(getLastVoteCount() + votesRequiredForReward); + } + Announcements.getInstance().announceToAll("Server Votes: " + votes + " | Next Reward on " + (getLastVoteCount() + votesRequiredForReward) + " Votes."); + if (getLastVoteCount() == 0) + { + setLastVoteCount(votes); + } + } + } + + private int getVotes() + { + URL url = null; + InputStreamReader isr = null; + BufferedReader in = null; + try + { + url = new URL(HOPZONE); + isr = new InputStreamReader(url.openStream()); + in = new BufferedReader(isr); + String inputLine; + while ((inputLine = in.readLine()) != null) + { + if (inputLine.contains("moreinfo_total_rank_text")) + { + return Integer.valueOf(inputLine.split(">")[2].replace("</div", "")); + } + } + } + catch (IOException e) + { + e.printStackTrace(); + } + finally + { + try + { + in.close(); + } + catch (IOException e) + { + } + try + { + isr.close(); + } + catch (IOException e) + { + } + } + return 0; + } + + 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(); + } +}I use this system.
So the system work but once.
This system reward me with 1000 adena (just for try ^^) and after he continue check the votes. When the time come to give a second reward, he don't give reward but he continue to check votes.
How can i fix it?
Thanks anyway for answer =)
6 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now