Jump to content

Recommended Posts

Posted

ok then ty.

offtopic// is it possible instead of anouncements how many votes left to get reward ,to have a message in big letters on screen,an exshowscreenmessage,like most servers have?and what has to be replaced.

Posted

It's exactly the same instead of announcement you'll use ExShowScreenMessage method.

player.sendPacket(new ExShowScreenMessage("L2Name Hopzone : " + newVoteCount + " Votes Next reward will be on " + (getLastVoteCount()+  votesForReward) + " Votes." , 3500, SMPOS.TOP_CENTER, true));

Posted

krash i am not good at java tried to put the lines but i get errors could you please use this and put the lines were needed

package com.l2jserver.gameserver.instancemanager;
    
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
    
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
    
public class AutoVoteRewardManager
{
   private static Logger _log = Logger.getLogger(AutoVoteRewardManager.class.getName());
       
   private static final String http = "http://l2.hopzone.net/lineage2/moreinfo/L2Empire/88729.html";
   private static final int initialCheck  = 1 * 1000;
   private static final int delayForCheck = 900 * 1000;
   private static final int[] itemId    = { 14721, 3794 };
   private static final int[] itemCount = { 50, 250 };
   private static final int votesRequiredForReward = 30;

   private static List<String> _ips = new ArrayList<String>();
   private static int lastVoteCount = 0;
      
   private AutoVoteRewardManager()
   {
       _log.info("AutoVoteRewardManager: Vote reward system initiated.");
       if (Config.L2JMOD_VOTE_ENGINE_SAVE)
           load();
       ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
   }
      
   private class AutoReward implements Runnable
   {
       public void run()
       {
           int votes = getVotes();
           _log.info("AutoVoteRewardManager: We now have " + votes + "/"+(getLastVoteCount()+votesRequiredForReward)+" vote(s). Next check in "+(delayForCheck/1000)+" sec.");
           Announcements.getInstance().announceToAll("Vote on http://l2.gamesempire.ro/");

           if (votes >= getLastVoteCount() + votesRequiredForReward)
           {
               Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
               {
                   for (L2PcInstance onlinePlayer : pls)
                   {
                       if (onlinePlayer.isOnline() && !onlinePlayer.getClient().isDetached() && !_ips.contains(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress()))
                       {
                           for (int i = 0; i < itemId.length; i++)
                           {
                               onlinePlayer.addItem("vote_reward", itemId[i], itemCount[i], onlinePlayer, true);
                           }
                  
                           _ips.add(onlinePlayer.getClient().getConnection().getInetAddress().getHostAddress());
                       }
                   }
               }
               _log.info("AutoVoteRewardManager: Reward for votes now!");
               Announcements.getInstance().announceToAll("Reward for players! Thanks for Vote.");
               setLastVoteCount(getLastVoteCount() + votesRequiredForReward);
           }
                
           if (getLastVoteCount() == 0)
           {
               setLastVoteCount(votes);
           }
           else if ((getLastVoteCount() + votesRequiredForReward) - votes > votesRequiredForReward || votes > (getLastVoteCount() + votesRequiredForReward))
           {
               setLastVoteCount(votes);
           }
              
           Announcements.getInstance().announceToAll("We have " + votes + " vote(s). Next reward on " + (getLastVoteCount()+votesRequiredForReward) + " vote.");
           _ips.clear();
       }
   }
      
   private int getVotes()
   {
       URL url = null;
       InputStreamReader isr = null;
       BufferedReader in = null;
       try
       {
           url = new URL(http);
           URLConnection con = url.openConnection();
           con.addRequestProperty("User-Agent", "Mozilla/4.76"); 
           isr = new InputStreamReader(con.getInputStream());
           in = new BufferedReader(isr);
           String inputLine;
           while ((inputLine = in.readLine()) != null)
           {
               // for top-zone
               //if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))
               //{
                 //return Integer.valueOf(inputLine.split(">")[5].replace("</font", ""));
               //}
              
               //for hopzone
               if (inputLine.contains("moreinfo_total_rank_text"))
                  return Integer.valueOf(inputLine.split(">")[2].replace("</div", ""));
           }
       }
       catch (IOException e)
       {
           _log.warning("AutoVoteRewardHandler: "+e);
       }
       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;
   }
   
   private void load()
   {
       int votes = 0;
       Connection con = null;
       try
       {
           con = L2DatabaseFactory.getInstance().getConnection();
           PreparedStatement statement = con.prepareStatement("SELECT vote FROM votes LIMIT 1");
           ResultSet rset = statement.executeQuery();

           while (rset.next())
           {
               votes = rset.getInt("vote");
           }
           rset.close();
           statement.close();
       }
       catch (Exception e)
       {
           _log.log(Level.WARNING, "data error on vote: ", e);
       }
       finally
       {
           L2DatabaseFactory.close(con);
       }
      
       setLastVoteCount(votes);
   }
   
   public void save()
   {
       Connection con = null;
       try
       {
           con = L2DatabaseFactory.getInstance().getConnection();
           PreparedStatement statement = con.prepareStatement("UPDATE votes SET vote = ? WHERE id=1");
           statement.setInt(1, getLastVoteCount());
           statement.execute();
           statement.close();
       }
       catch (Exception e)
       {
           _log.log(Level.WARNING, "data error on vote: ", e);
       }
       finally
       {
           L2DatabaseFactory.close(con);
       }
   }
  
   public static AutoVoteRewardManager getInstance()
   {
       return SingletonHolder._instance;
   }
      
   @SuppressWarnings("synthetic-access")
   private static class SingletonHolder
   {
       protected static final AutoVoteRewardManager _instance = new AutoVoteRewardManager();
   }
}

Posted

It's exactly the same instead of announcement you'll use ExShowScreenMessage method.

player.sendPacket(new ExShowScreenMessage("L2Name Hopzone : " + newVoteCount + " Votes Next reward will be on " + (getLastVoteCount()+  votesForReward) + " Votes." , 3500, SMPOS.TOP_CENTER, true));

I don't have errors.
Posted

url = new URL(Config.VOTE_HTML_PATCH);
				HttpURLConnection connection = (HttpURLConnection) url.openConnection();
				connection.addRequestProperty("User-Agent", "Mozilla/5.0.1"); 
				isr = new InputStreamReader(url.openStream());
				in = new BufferedReader(isr);
				String inputLine;
				int voteCount = 0;

 

Don't work for me, error 403.

Posted

public static int getVotes()
   {
       URL url = null;
       InputStreamReader isr = null;
       BufferedReader in = null;
       try
       {
           url = new URL(http);
           URLConnection con = url.openConnection();
           con.addRequestProperty("User-Agent", "Mozilla/4.76"); 
           isr = new InputStreamReader(con.getInputStream());
           in = new BufferedReader(isr);
           String inputLine;
           while ((inputLine = in.readLine()) != null)
           {
               // for top-zone
               //if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))
               //{
                 //return Integer.valueOf(inputLine.split(">")[5].replace("</font", ""));
               //}
              
               //for hopzone
               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;
   }

 

this method works for me

  • 2 weeks later...

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
Reply to this topic...

×   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

    • https://www.l2jbrasil.com/topic/149147-daily-reward-tested-on-l2jsunrise/  to h5 sunrise
    • https://www.l2jbrasil.com/topic/149147-daily-reward-tested-on-l2jsunrise/   
    • A lot of people say L2 is dead, and ACIS is still in development. But seriously, you’ve got the skills and knowledge why not make your own game with a clean brand new client from scratch? The only thing missing is client devs, and you can find plenty here or on freelance sites. Stop treating it like a hobby and turn it into something that can actually make money and people happy, you have the name just move forward, even AI can help you script quests, me first I would totally play any game you made similar to l2 anyway 🍪 have one i know you like them
    • Would it be possible to update the guide? The images are offline! 😞
    • In the fast-paced world of digital marketing, having the right tools makes all the difference. If you're searching for a reliable SMM panel Nigeria, GoUpSocial is here to take your online presence to the next level. Built for influencers, marketers, startups, and content creators, our platform is the ultimate solution for smart and scalable social media growth. With GoUpSocial, you get more than just numbers—you get engagement that drives real impact. As a trusted Nigerian SMM panel, we help you gain visibility across top platforms like Instagram, TikTok, YouTube, Facebook, and Twitter—all at the most competitive prices in the market. Experience the Power of the Best SMM Panel in Nigeria We understand that quality matters just as much as affordability. That’s why GoUpSocial has become the go-to platform for users seeking the best SMM panel in Nigeria. Here’s what makes us the preferred choice: 🚀 Real-Time Delivery: Get your orders processed and completed in minutes, not hours. 💼 All-in-One Dashboard: Manage all your campaigns with ease from a clean, simple interface. 💡 Effective Strategies: Our tools are tailored for organic-looking growth and high user engagement. 🧾 Transparent Pricing: No hidden fees—just straightforward, affordable packages. 👩‍💻 Expert Support: Our team is available 24/7 to guide you through every step of the process. Whether you need more followers, likes, views, or overall engagement, our SMM panel Nigeria services deliver measurable and meaningful results. Why We’re the Nigeria Fastest and Cheapest SMM Panel GoUpSocial isn’t just another provider—it’s the Nigeria fastest and cheapest SMM panel built with performance and value in mind. We combine automation, intelligent targeting, and local market understanding to help you scale effortlessly. Need to boost a campaign today? Our platform supports instant order processing, real-time tracking, and localized engagement strategies—making it ideal for any influencer or business operating in Nigeria. Plus, as the cheapest SMM panel in Nigeria, we make sure that even clients with limited budgets can access top-quality services without compromise. A Nigerian SMM Panel Built for 2025 and Beyond As social media algorithms evolve, traditional methods of gaining reach and engagement no longer work. That’s why we’ve built the SMM panel Nigeria 2025—a next-gen platform optimized for today’s challenges. From smart delivery settings to niche-specific targeting, GoUpSocial provides you with every advantage in a competitive digital world. Our system adapts to the latest platform changes, helping you stay relevant, visible, and in control. Looking for a localized service? Our SMM panel for Nigerian followers helps you connect directly with your audience—boosting both credibility and conversions. All-in-One Online Panel in Nigeria for Every Social Goal No matter your objective—brand awareness, follower growth, or engagement improvement—GoUpSocial is the online panel in Nigeria that offers it all. With flexible services, dynamic campaigns, and secure systems, we give you the tools to succeed in a crowded online space. And because we’re committed to your growth, our platform is continually updated to reflect the best practices of modern digital marketing. Take the Leap with the Best Nigerian SMM Panel Ready to grow smarter? With GoUpSocial, you don’t just gain social proof—you build real influence. As the cheapest Nigeria SMM panel, we combine speed, quality, and affordability in one seamless platform. Whether you're an aspiring influencer, a marketing agency, or a brand aiming for greater reach, GoUpSocial is the ultimate Nigerian SMM panel to help you reach your full potential. 👉 Sign up today and unlock the next level of social media growth with GoUpSocial.
  • 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