Jump to content
  • 0

Vote Reward Problem Fix dont work!


Kolibri

Question

Γεια σας παιδια εχω θεμα με το "VOTE REWARD" απο topzone. Δοκιμασα τα φιξ που προτινουν καποιοι αλλα το δικο μου δεν εχει καν αυτες τις γραμμες του κωδικα εχω αυτο εδω....

======================================
confings
===================================

# Vote reward for Topzone.
AllowTopzoneVoteReward = True
# Vote reward server link.
TopzoneServerLink = http://l2topzone.com/lineage2/server-info/6296/L2ToxiccomProMMORPG.html/
# First page of servers list link.
TopzoneFirstPageLink = http://l2topzone.com/lineage2/server-list/top.html/
# Votes for next reward needed.
TopzoneVotesDifference = 5
# Rank needed for server to be on first page.
TopzoneFirstPageRankNeeded = 15
# Minutes between rewards.
# Eg. You put 5 it checks every 5 minutes for reward.
TopzoneRewardCheckTime = 5
# 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

================================================
Config.java
=================================================
    
    public static boolean ALLOW_TOPZONE_VOTE_REWARD;
    public static String TOPZONE_SERVER_LINK;
    public static String TOPZONE_FIRST_PAGE_LINK;
    public static int TOPZONE_VOTES_DIFFERENCE;
    public static int TOPZONE_FIRST_PAGE_RANK_NEEDED;
    public static int TOPZONE_REWARD_CHECK_TIME;
public static Map<Integer, Integer> TOPZONE_SMALL_REWARD = new FastMap<Integer, Integer>();
public static Map<Integer, Integer> TOPZONE_BIG_REWARD = new FastMap<Integer, Integer>();
public static int TOPZONE_DUALBOXES_ALLOWED;
    public static boolean ALLOW_TOPZONE_GAME_SERVER_REPORT;






                ALLOW_TOPZONE_VOTE_REWARD = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneVoteReward", "false"));
                TOPZONE_SERVER_LINK = elcardia.getProperty("TopzoneServerLink", "http://l2.topzone.net/lineage2/details/74078/L2World-Servers/");
                TOPZONE_FIRST_PAGE_LINK = elcardia.getProperty("TopzoneFirstPageLink", "http://l2.topzone.net/lineage2/");
                TOPZONE_VOTES_DIFFERENCE = Integer.parseInt(elcardia.getProperty("TopzoneVotesDifference", "5"));
               	TOPZONE_FIRST_PAGE_RANK_NEEDED = Integer.parseInt(elcardia.getProperty("TopzoneFirstPageRankNeeded", "15"));
               	TOPZONE_REWARD_CHECK_TIME = Integer.parseInt(elcardia.getProperty("TopzoneRewardCheckTime", "5"));
                String TOPZONE_SMALL_REWARD_VALUE = elcardia.getProperty("TopzoneSmallReward", "57,100000000;");
                String[] topzone_small_reward_splitted_1 = TOPZONE_SMALL_REWARD_VALUE.split(";");
                for (String i : topzone_small_reward_splitted_1)
                {
                	String[] topzone_small_reward_splitted_2 = i.split(",");
                	TOPZONE_SMALL_REWARD.put(Integer.parseInt(topzone_small_reward_splitted_2[0]), Integer.parseInt(topzone_small_reward_splitted_2[1]));
                }
                String TOPZONE_BIG_REWARD_VALUE = elcardia.getProperty("TopzoneBigReward", "3470,1;");
                String[] topzone_big_reward_splitted_1 = TOPZONE_BIG_REWARD_VALUE.split(";");
                for (String i : topzone_big_reward_splitted_1)
                {
                	String[] topzone_big_reward_splitted_2 = i.split(",");
                	TOPZONE_BIG_REWARD.put(Integer.parseInt(topzone_big_reward_splitted_2[0]), Integer.parseInt(topzone_big_reward_splitted_2[1]));
                }
                TOPZONE_DUALBOXES_ALLOWED = Integer.parseInt(elcardia.getProperty("TopzoneDualboxesAllowed", "1"));
                ALLOW_TOPZONE_GAME_SERVER_REPORT = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneGameServerReport", "false"));






===================================================
GameServer.java
===================================================

	if (Config.ALLOW_TOPZONE_VOTE_REWARD)
	{
		VoteRewardTopzone.getInstance();
	}




==================================================================
VoteRewardTopzone.java
==================================================================
/*
* 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 javolution.util.FastMap;

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 FastMap<String, Integer> playerIps = new FastMap<String, Integer>();

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);
}

private 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.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
		Announcements.getInstance().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.getInstance().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.getInstance().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.getInstance().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.getInstance().announceToAll("Vote reward: Everyone has been rewarded with big reward.");
			Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
			Announcements.getInstance().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.getInstance().announceToAll("Vote reward: Everyone has been rewarded with small reward.");
			Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
			Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
			Announcements.getInstance().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.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
			Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward.");
			Announcements.getInstance().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.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
			Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
			Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
			Announcements.getInstance().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;
}
}

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Αυτο εδω :

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();
        }

καντω ετσι:

private static int getVotes()

{
int votes = -1;
URL url = null;
URLConnection con = null;
InputStream is = null;
InputStreamReader isr = null;
BufferedReader in = null;
try
{
url = new URL(Config.TOPZONE_SERVER_LINK);
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)
{
Εδω αν θες βαλε ενα δικο σου σφαλμα πχ announce,log console οτι θες...
}
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 -1;
}
Edited by Kwstakis
Link to comment
Share on other sites

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.



  • Posts

    • I didnt say i dont know anything but i couldnt find a place to start. a guy here mentioned l2jmobius which is a good place to start. so i searched for it and its actually what i wanted. Now i just need to find a clean client to start. I know how to program and how to do changed to client but its hard to find clean clients. I dont really want to make my server exactly like gracia final. I just want to test out the clients and decide which one works better for me. I dont really like the awakening classes and the newest races. Can you please provide me with a couple of links of different clients so i can test them out before i start my project? As i said i cant really find any clean install client. Thank you in advance
    • OUR OFFICIAL WEBSITE / FORUM - MILLENNIUM-HOOK.NET CHEAT DESCRIPTION: Our cheat for Fortnite game has proven itself in the best way among players, the cheat has good optimization, a beautiful visual appearance and has extensive functionality. And reliable protection and HWID Spoofer give our cheat even more advantages over competitors! SUPPORTED ANTI-CHEATS: (read more on official website) - Easy Anti-Cheat (EAC): Undetected & Safe - BattlEye AC: Undetected & Safe - Hyperion AC: Undetected & Safe Our Fortnite cheat has a limited number of slots to ensure greater product security! (Available slots check on official website) FEATURES: AIMBOT: - Aim bone - Silent aim - Smooth - Fov - Distance - Key ESP: - Players - Loot - Vehicles - Traps - Other MISC: - No bloom - No spread - Vehicle flight - Instarevive - Aim while Jumping - Teleport to players within 4m (10m with pickaxe) or teleport downed players to you. - Teleport key - Fov changer REQUIREMENTS: - Included HWID Spoofer: Yes - Stream Bypass: No (Engineering works. Will be available again soon). - Supported game modes: Windowed, Borderless - Supported platforms: Steam / Uplay / Epic Games - Supported CPU: Intel & AMD - Supported OS: Windows 10 (1903,1909,2004,20H2,21H1, 22H2), Windows 11 (All version). Supported OS change and are added periodically. More check on official website.   IN-GAME SCREENSHOTS:   - Check on the official website.
    • OUR OFFICIAL WEBSITE / FORUM - MILLENNIUM-HOOK.NET CHEAT DESCRIPTION: We are offering the best in market Division 2 hacks without detection. If you are wondering where to get the best cheats and hacks for The Division 2, you are at the right place! Our private TD2  hack has been completely undetected since we released it! Also, our cheat has all the most necessary functions such as aimbot, esp, etc. And the limited slots will give even more security to our product. SUPPORTED ANTI-CHEATS: (read more on official website) - Easy Anti-Cheat (EAC): Undetected & Safe - FairFight AC: Undetected & Safe Our The Division 2 cheat has a limited number of slots to ensure greater product security! (Available slots check on official website) FEATURES: AIMBOT: - Enable aim - No recoil - Silent aim - Aim distance - Aim fov - Draw aim fov - Fov change - Weakspot - Aim hitbox - Head - Neck - Chest - Random ESP: - Enable visuals - Enable radar - Skeleton - Weakspot - Pre-rendering - ESP distance - Radar distance - Auto - Enemy - Name - Blacklist - Whitelist - Custom color - Clear whitelist - Clear blacklist MISC: - Auto fire/Triggerbot - Rapid of fire rate - Shotgun of fire rate - Magic bullets - Fast reload - Unlimited ammo - Shoot in safehouse - Accelerate - Noclip REQUIREMENTS: - Included HWID Spoofer: Yes - Stream Bypass: Yes - Supported game modes: Windowed, Borderless - Supported platforms: Steam / Uplay / Epic Games - Supported CPU: Intel & AMD - Supported OS: Windows 10 (1903,1909,2004,20H2,21H1, 22H2), Windows 11 (All version). Supported OS change and are added periodically. More check on official website.   IN-GAME SCREENSHOTS:   - Check on the official website.
    • 50% discount for the next 3 copies Price 150 , will try for test server not guaranteed
    • Welcome to my store :  https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10$ 2017 Discord Account :3.99 $ 2018 Discord Account : 3.50$ 2019 Discord Account : 2.70 $ 2020 Discord Account :1.50$ 2021 Discord Account :0.99$ 2022 Discord Account :0.70$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11 Welcome to my store :  https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10$ 2017 Discord Account :3.99 $ 2018 Discord Account : 3.50$ 2019 Discord Account : 2.70 $ 2020 Discord Account :1.50$ 2021 Discord Account :0.99$ 2022 Discord Account :0.70$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11
  • Topics

×
×
  • Create New...