- 0
Help Topzone Votes Check Problem
-
Posts
-
## [1.4.0] - 2026-01-28 ### ✨ New Features - **Vote System**: Lineage 2 servers can now use our vote–reward system. Players vote on the website and claim rewards in-game (1 vote = 1 claim) - **Vote Page**: On each server’s page (`/servers/<server>`), a **“Vote for Server”** button opens a dedicated vote page with cooldown info and optional Turnstile verification - **By Votes View**: The **“By Votes”** tab on the main page shows **actual vote counts** per server - **API Documentation**: New **API Docs** page at `/docs` (and footer link) with HMAC auth, endpoints, and examples for game server integration - **Vote API (My Servers)**: Server owners can open **“Vote API”** in My Servers to manage credentials, cooldown, allowed IPs, and open the docs ### 🔄 Improvements - **Server Pages**: Single-server data is cached and loads faster; server pages can be opened by ID or by name (e.g. `/servers/my-server-name`) - **API Root**: Visiting the API root redirects to the docs URL configured in admin (default: site docs page) - **Admin Panel**: New **“Vote System”** tab for global settings (Turnstile, API security, default cooldown, docs URL) ### 🔐 Security & Reliability - Turnstile (CAPTCHA) support for vote submissions to reduce abuse - HMAC-protected game server API for secure vote check/claim and stats
-
By wanbrotherz · Posted
"I recently purchased the account panel from this developer and wanted to leave a positive review. The transaction was smooth, and the developer demonstrated exceptional professionalism throughout the process. What truly sets them apart is their outstanding post-sale support. They are responsive, patient, and genuinely helpful when addressing questions or issues. It's clear they care about their customers' experience beyond just the initial sale. I am thoroughly satisfied and grateful for the service. This is a trustworthy seller who provides real value through both a quality product and reliable support. 100% recommended." -
Server owners, Top.MaxCheaters.com is now live and accepting Lineage 2 server listings. There is no voting, no rankings manipulation, and no paid advantages. Visibility is clean and equal, and early listings naturally appear at the top while the platform grows. If your server is active, it should already be listed. Submit here https://Top.MaxCheaters.com This platform is part of the MaxCheaters.com network and is being built as a long-term reference point for the Lineage 2 community. — MaxCheaters.com Team
-
By L2ElixirOfficial · Posted
⚙️ General Changed “No Carrier” title to “Disconnected” to avoid confusion after abnormal DC. On-screen Clan War kill notifications will no longer appear during Sieges, Epics, or Events. Bladedancer or SwordSinger classes can now log in even when Max Clients (2) is reached, you cannot have both at the same time. The max is 3 clients. Duels will now be aborted if a monster aggros players during a duel (retail-like behavior). Players can no longer send party requests to blocked players (retail-like). Fixed Researcher Euclie NPC dialogue HTML error. Changed Clan leave/kick penalty from 12 hours to 3 hours. 🧙 Skills Adjusted Decrease Atk. Spd. & Decrease Speed land rates in Varka & FoG. Fixed augmented weapons not getting cooldown when entering Olympiad. 🎉 Events New Team vs Team map added. New Save the King map added (old TvT map). Mounts disabled during Events. Letter Collector Event enabled Monsters drop letters until Feb. 13th Louie the Cat in Giran until Feb. 16th Inventory slots +10 during event period 📜 Quests Fixed “Possessor of a Precious Soul Part 1” rare stuck issue when exceeding max quest items. Fixed Seven Signs applying Strife buff/debuff every Monday until restart. 🏆 Milestones New milestone: “Defeat 700 Monsters in Varka” 🎁 Rewards: 200 Varka’s Mane + Daily Coin 🌍 NEW EXP Bonus Zones Hot Springs added Varka Silenos added (hidden spots excluded) As always, thank you for your support! L2Elixir keeps evolving, improving, and growing every day 💙 Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs -
This is a bump: https://databay.com/
-
-
Topics

Question
'Baggos'
Hello everybody...
I'm tryning to pass a topzone reward system (Anarchy's voting system).
Bellow, I will give the code, when it's the time to check the votes count, then, I get this error: "There is a problem on getting votes from server with rank 15".
I've change a lot of times the links, with xzone guide. But still nothing...
I use acis 340 rev.
Code:
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 net.sf.l2j.Config; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.util.Broadcast; /** * @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 HashMap<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("Topzone - 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 Topzone votes from server with rank "+firstPageRankNeeded+"."); } if (currentVotes == -1) { System.out.println("There was a problem on getting Topzone server votes."); } return; } if (lastVotes == 0) { lastVotes = currentVotes; Broadcast.announceToOnlinePlayers("Topzone: Current vote count is "+currentVotes+"."); Broadcast.announceToOnlinePlayers("Topzone: 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) { Broadcast.announceToOnlinePlayers("Topzone: We are in the top "+firstPageRankNeeded+" of topzone, so the reward will be big."); if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server is on the top "+firstPageRankNeeded+" of topzone."); } } else { Broadcast.announceToOnlinePlayers("Topzone: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward."); if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes)); } } 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 top "+firstPageRankNeeded+" of topzone."); System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes)); } Broadcast.announceToOnlinePlayers("Topzone: Everyone has been rewarded with big reward."); Broadcast.announceToOnlinePlayers("Topzone: Current vote count is "+currentVotes+"."); 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 top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes)); System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes)); } Broadcast.announceToOnlinePlayers("Topzone: Everyone has been rewarded with small reward."); Broadcast.announceToOnlinePlayers("Topzone: Current vote count is "+currentVotes+"."); Broadcast.announceToOnlinePlayers("Topzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward."); 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 top "+firstPageRankNeeded+" of topzone."); System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes)); } Broadcast.announceToOnlinePlayers("Topzone: Current vote count is "+currentVotes+"."); Broadcast.announceToOnlinePlayers("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward."); } else { if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT) { System.out.println("Server votes on topzone: "+currentVotes); System.out.println("Server votes needed for top "+firstPageRankNeeded+": "+(firstPageVotes-lastVotes)); System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes)); } Broadcast.announceToOnlinePlayers("Topzone: Current vote count is "+currentVotes+"."); Broadcast.announceToOnlinePlayers("Topzone: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward."); Broadcast.announceToOnlinePlayers("Topzone: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the top "+firstPageRankNeeded+" of topzone for big reward."); } } } private static int getFirstPageRankVotes() { InputStreamReader isr = null; BufferedReader br = null; try { URLConnection con = new URL(page1Url).openConnection(); con.addRequestProperty("User-Agent", "L2TopZone"); isr = new InputStreamReader(con.getInputStream()); br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { if(line.contains("<div class=\"slr\">"+firstPageRankNeeded)) { int votes = Integer.valueOf(line.split(">")[4].replace("</span", "")); 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", "L2TopZone"); isr = new InputStreamReader(con.getInputStream()); br = new BufferedReader(isr); boolean got = false; String line; while ((line = br.readLine()) != null) { if (line.contains("<div class=\"rank\"><div class=\"votes2\">Votes:<br>") && !got) { got = true; int votes = Integer.valueOf(line.split("<div class=\"rank\"><div class=\"votes2\">Votes:<br>")[1].replace("</div></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; } }Config:
Either I put "http://l2topzone.com/totalvotes.php?id=8703"
either " http://l2topzone.com/lineage/server-info/11179/la2dream " It's the same shit error...
Thank advance..
Edited by 'Baggos'1 answer 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