Jump to content
  • 0

Topzone Problem :/ Acis Project


Blast0

Question

Hello guys, can you say what the problem is with that?
I have updated all the system, and implemented anarchy
latest updates+system, but anyway there is an error in 
gameserver: there was a problem on getting  for getting votes from server with rank 78..
Hmm, maybe my configs are bad?:
# Vote reward for Topzone.
AllowTopzoneVoteReward = True
# Vote reward server link. Put your server link instead of this one.
TopzoneServerLink = http://l2topzone.com/lineage2/server-info/10815/Line2agenetNetwork.html/
# First page of servers list link.
TopzoneFirstPageLink = http://l2topzone.com/lineage2/server-list/top.html/
# Votes for next reward needed.
TopzoneVotesDifference = 1
# Rank needed for server to be on first page.
TopzoneFirstPageRankNeeded = 78
# Minutes between rewards.
# Eg. You put 5 it checks every 5 minutes for reward.
TopzoneRewardCheckTime = 1
# Small reward(s).
TopzoneSmallReward = 57,100000000;
# Big reward(s).
TopzoneBigReward = 3470,1;
# Hopzone reward max dual boxes reward.
# For example if you put 2 and someone has 3 boxes open 2 will be rewarded.
TopzoneDuaboxesAllowed = 1
# Game server console report.
# If set to true, game server console will get a report of
# current vote count, votes needed for next reward and votes needed for first page.
AllowTopzoneGameServerReport = True

I think they are good..
Can you guys help me and suggest what to do?

That's the code:


 

/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package net.sf.l2j.gameserver.model.entity;

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

import net.sf.l2j.Config;
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 Anarchy
 *
 */
public class VoteRewardTopzone
{
	// Configurations.
	private static String topzoneUrl = Config.TOPZONE_SERVER_LINK;
	private static String page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
	private static int voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
	private static int firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
	private static int checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
	
	// Don't-touch variables.
	private static int lastVotes = 0;
	private static Map<String, Integer> playerIps = new HashMap<>();
	
	public static void updateConfigurations()
	{
		topzoneUrl = Config.TOPZONE_SERVER_LINK;
		page1Url = Config.TOPZONE_FIRST_PAGE_LINK;
		voteRewardVotesDifference = Config.TOPZONE_VOTES_DIFFERENCE;
		firstPageRankNeeded = Config.TOPZONE_FIRST_PAGE_RANK_NEEDED;
		checkTime = 60*1000*Config.TOPZONE_REWARD_CHECK_TIME;
	}
	
	public static void getInstance()
	{
		System.out.println("Vote reward system initialized.");
		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
		{
			@Override
			public void run()
			{
				if (Config.ALLOW_TOPZONE_VOTE_REWARD)
				{
					reward();
				}
				else
				{
					return;
				}
			}
		}, checkTime/2, checkTime);
	}
	
	static void reward()
	{
		int firstPageVotes = getFirstPageRankVotes();
		int currentVotes = getVotes();
		
		if (firstPageVotes == -1 || currentVotes == -1)
		{
			if (firstPageVotes == -1)
			{
				System.out.println("There was a problem on getting votes from server with rank "+firstPageRankNeeded+".");
			}
			if (currentVotes == -1)
			{
				System.out.println("There was a problem on getting server votes.");
			}
			
			return;
		}
		
		if (lastVotes == 0)
		{
			lastVotes = currentVotes;
			Announcements.announceToAll("Vote reward: Current vote count is "+currentVotes+".");
			Announcements.announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward.");
			if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
			{
				System.out.println("Server votes on topzone: "+currentVotes);
				System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
			}
			if (firstPageVotes-lastVotes <= 0)
			{
				Announcements.announceToAll("Vote reward: We are in the first page of topzone, so the reward will be big.");
				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
				{
					System.out.println("Server is on the first page of topzone.");
				}
			}
			else
			{
				Announcements.announceToAll("Vote reward: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the first page of topzone for big reward.");
				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
				{
					System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
				}
			}
			Announcements.announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
			return;
		}
		
		if (currentVotes >= lastVotes+voteRewardVotesDifference)
		{
			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
			if (firstPageVotes-currentVotes <= 0)
			{
				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
				{
					System.out.println("Server votes on topzone: "+currentVotes);
					System.out.println("Server is on the first page of topzone.");
					System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
				}
				Announcements.announceToAll("Vote reward: Everyone has been rewarded with big reward.");
				Announcements.announceToAll("Vote reward: Current vote count is "+currentVotes+".");
				Announcements.announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
				for (L2PcInstance p : pls)
				{
					boolean canReward = false;
					String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
					if (playerIps.containsKey(pIp))
					{
						int count = playerIps.get(pIp);
						if (count < Config.TOPZONE_DUALBOXES_ALLOWED)
						{
							playerIps.remove(pIp);
							playerIps.put(pIp, count+1);
							canReward = true;
						}
					}
					else
					{
						canReward = true;
						playerIps.put(pIp, 1);
					}
					if (canReward)
					{
						for (int i : Config.TOPZONE_BIG_REWARD.keySet())
						{
							p.addItem("Vote reward.", i, Config.TOPZONE_BIG_REWARD.get(i), p, true);
						}
					}
					else
					{
						p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
					}
				}
				playerIps.clear();
			}
			else
			{
				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
				{
					System.out.println("Server votes on topzone: "+currentVotes);
					System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
					System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
				}
				Announcements.announceToAll("Vote reward: Everyone has been rewarded with small reward.");
				Announcements.announceToAll("Vote reward: Current vote count is "+currentVotes+".");
				Announcements.announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
				Announcements.announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
				for (L2PcInstance p : pls)
				{
					boolean canReward = false;
					String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
					if (playerIps.containsKey(pIp))
					{
						int count = playerIps.get(pIp);
						if (count < Config.TOPZONE_DUALBOXES_ALLOWED)
						{
							playerIps.remove(pIp);
							playerIps.put(pIp, count+1);
							canReward = true;
						}
					}
					else
					{
						canReward = true;
						playerIps.put(pIp, 1);
					}
					if (canReward)
					{
						for (int i : Config.TOPZONE_SMALL_REWARD.keySet())
						{
							p.addItem("Vote reward.", i, Config.TOPZONE_SMALL_REWARD.get(i), p, true);
						}
					}
					else
					{
						p.sendMessage("Already "+Config.TOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
					}
				}
				playerIps.clear();
			}
			
			lastVotes = currentVotes;
		}
		else
		{
			if (firstPageVotes-currentVotes <= 0)
			{
				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
				{
					System.out.println("Server votes on topzone: "+currentVotes);
					System.out.println("Server is on the first page of topzone.");
					System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
				}
				Announcements.announceToAll("Vote reward: Current vote count is "+currentVotes+".");
				Announcements.announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward.");
				Announcements.announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
			}
			else
			{
				if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
				{
					System.out.println("Server votes on topzone: "+currentVotes);
					System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
					System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
				}

				Announcements.announceToAll("Vote reward: Current vote count is "+currentVotes+".");
				Announcements.announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
				Announcements.announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
				Announcements.announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
			}
		}
	}
	
	private static int getFirstPageRankVotes()
	{
		InputStreamReader isr = null;
		BufferedReader br = null;
		
		try
		{
			URLConnection con = new URL(page1Url).openConnection();
			 con.addRequestProperty("User-Agent", "Mozilla/4.76");
			isr = new InputStreamReader(con.getInputStream());
			br = new BufferedReader(isr);
			
			String line;
			int i = 0;
			while ((line = br.readLine()) != null)
			{
				if (line.contains("<td><div align=\"center\">"+firstPageRankNeeded+"</div></td>"))
				{
					i++;
				}
				if (line.contains("<td><div align=\"center\">") && i == 1)
				{
					i++;
				}
				if (line.contains("<td><div align=\"center\">") && i == 2)
				{
					i = 0;
					int votes = Integer.valueOf(line.split(">")[2].replace("</div", ""));
					return votes;
				}
			}
			
			br.close();
			isr.close();
		}
		catch (Exception e)
		{
			System.out.println(e);
			System.out.println("Error while getting server vote count.");
		}
		
		return -1;
	}
	
	private static int getVotes()
	{
		InputStreamReader isr = null;
		BufferedReader br = null;
		
		try
		{
			URLConnection con = new URL(topzoneUrl).openConnection();
			 con.addRequestProperty("User-Agent", "Mozilla/4.76");
			isr = new InputStreamReader(con.getInputStream());
			br = new BufferedReader(isr);
			
			boolean got = false;
			
			String line;
			while ((line = br.readLine()) != null)
			{
				if (line.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\"") && !got)
				{
					got = true;
					int votes = Integer.valueOf(line.split("=\"font-size:14px;color:#018BC1;\">")[1].replace("</font></b></div></td></tr>", ""));
					return votes;
				}
			}
			
			br.close();
			isr.close();
		}
		catch (Exception e)
		{
			System.out.println(e);
			System.out.println("Error while getting server vote count.");
		}
		
		return -1;
	}
}

Please can someone help me with that?

 

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

 


        try
        {
            URL url = new URL(Config.VOTE_LINK_TOPZONE);
            URLConnection con = url.openConnection();
            con.addRequestProperty("User-Agent", "L2TopZone");
            is = con.getInputStream();
            isr = new InputStreamReader(is);
            in = new BufferedReader(isr);
            String inputLine;
            while ((inputLine = in.readLine()) != null)
            {
                if (inputLine.contains("Votes"))
                {
                    String votesLine = inputLine ;
                    
                    votes = Integer.valueOf(votesLine.split(">")[3].replace("</div", ""));
                    break;
                }
            }
        }

 

Dont even dare to say "it's not working" since I checked and it is working ;)

Link to comment
Share on other sites

  • 0

im not sure: try:
 

 

            {
                if (line.contains("<td><div align=\"center\">"+firstPageRankNeeded+"</div></td>"))
                {
                    i++;
                }
                if (line.contains("<td><div align=\"center\">") && i == 1)
                {
                    i++;
                }
                if (line.contains("<td><div align=\"center\">") && i == 2)
                {
                    i = 0;
                    int votes = Integer.valueOf(line.split(">")[2].replace("</div", ""));
                    return votes;
                }
            }

replace with
 

 

            {
                if (line.contains("<div class=\"slr\">"+firstPageRankNeeded+"<div class=\"votes\">Votes:<br><span>"))
                {
                    int votes = Integer.valueOf(line.split("<div class=\"slr\">"+firstPageRankNeeded+"<div class=\"votes\">Votes:<br><span>")[1].replace("</span></div></div>", ""));
                    return votes;
                }
            }

*IM NOT SURE*!

Edited by Chucky™
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Posts

    • i tryed to copy the admin    serverinfo.htm  to the communityboard.  the command  %onlineALL%  but it does not work.   any advice?   <html><title>Admin Server Info</title><body> <center> <table width=270> <tr> <td width=45><button value="Main" action="bypass -h admin_admin" width=45 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> <td width=180><center>Server Info</center></td> <td width=45><button value="Back" action="bypass -h admin_admin4" width=45 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> </tr> </table> <br> <font color="LEVEL">General:<font><br1> <table width="270" border="0" bgcolor="444444"> <tr> <td>OS:</td> <td><font color="00FF00">%os_name%</font></td> </tr> <tr> <td>OS version:</td> <td><font color="00FF00">%os_ver%</font></td> </tr> <tr> <td>Server slots:</td> <td><font color="00FF00">%slots%</font></td> </tr> <tr> <td>Server UpTime:</td> <td><font color="00FF00">%serverUpTime%</font></td> </tr> <tr> <td>Server Time:</td> <td><font color="00FF00">%serverTime%</font></td> </tr> <tr> <td>Game Time:</td> <td><font color="00FF00">%gameTime% (%dayNight%)</font></td> </tr> <tr> <td>Pathfinding:</td> <td><font color="00FF00">%geodata%</font></td> </tr> </table> <br> <font color="LEVEL">Players:<font><br1> <table width="270" border="0" bgcolor="444444"> <tr> <td>Total players count:</td> <td><font color="00FF00">%onlineAll%</font></td> </tr> <tr> <td>Offline trade count:</td> <td><font color="00FF00">%offlineTrade%</font></td> </tr> <tr> <td>Online GM count:</td> <td><font color="00FF00">%onlineGM%</font></td> </tr> <tr> <td>Real player count:</td> <td><font color="00FF00">%onlineReal%</font></td> </tr> </table> <br> <font color="LEVEL">Memory:<font><br1> <table width="270" border="0" bgcolor="444444"> <tr> <td>Used Memory:</td> <td><font color="00FF00">%usedMem% MB</font></td> </tr> <tr> <td>Free Memory:</td> <td><font color="00FF00">%freeMem% MB</font></td> </tr> <tr> <td>Total Memory:</td> <td><font color="00FF00">%totalMem% MB</font></td> </tr> </table> </center> </body></html>  
    • IntelliJ IDE has native support for Gradle, as far as I'm aware.
    • please is any one here that can  take the surces from grable to normal eclipse and reshare it here cause i don't have any clue how to install them On Eclipse 😕  if is any one here that can understand how those surces can be instaled please any help gonna be perfect iven i can  pay bay paypal. thanks
    • Wts A/S grade gear (armors weapons jewelery) Great Wolf with top eq Kokabora lvl 55+  Baium zaken frintezza   ADENA - 1kk - 0.25$ (big stock)   I can sell grand khavatarii with noblesse and subclass with email (can be with gear or clear)    Payment by PayPal, can use middleman   PM here  
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock