Jump to content
  • 0

[HELP]Vote Reward error


Question

Posted

Hello everyone i got a new error with the vote reward from Insanne http://maxcheaters.com/forum/index.php?topic=234816.0 i fixed the tables so that i can get the reward everything is working perfect but the system has an error i tink when he read's how many votes left and how many need for the next reward like example look the pic bellow. If someone can help pls tell me how to fix :D

 

errowj.png

 

10 answers to this question

Recommended Posts

  • 0
Posted

# ---------------------------------------------------------------------------

# Vote Reward System

# ---------------------------------------------------------------------------

# Set it "True" if you want to Enable Vote Reward System.

EnableVoteReward = True

 

# If you enable Vote Reward System you must fill your Html Patch.

# e.g. VoteHtmlPatch = http://l2.hopzone.net / http://l2topzone.net

# Html Patch for Your Vote Site

# Works with TopZone & HopZone

 

ServerNameForVotes = L2LibertyJustice

VoteHtmlPatch = http://l2topzone.com/lineage2/server-info/6808/L2Pharos.html

VoteReward1Id = 9627

VoteReward2Id = 10639

VoteReward3Id = 6577

VoteReward4Id = 6578

VoteReward1Count = 3

VoteReward2Count = 2

VoteReward3Count = 2

VoteReward4Count = 2

VotesForReward = 5

 

# Max a-beep-t of reward items that you want to stop reward

# the player that have more than "MaxRewardCountForStack".

MaxRewardCountForStackItem1 = 500

MaxRewardCountForStackItem2 = 500

MaxRewardCountForStackItem3 = 500

MaxRewardCountForStackItem4 = 500

 

# DelayForNextReward in seconds

DelayForNextReward = 700

 

# Enable TopZone Vote Reward

# Default = False

EnableTopzoneReward = True

 

# Enable HopZone Vote Reward

# Default = False

EnableHopzoneReward = False

 

Here :D this link is not from my server is just for testing

  • 0
Posted
package com.l2jserver.gameserver.instancemanager;

   

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.URL;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

 

import com.l2jserver.gameserver.model.item.instance.L2ItemInstance;

import com.l2jserver.Config;

import com.l2jserver.L2DatabaseFactory;

import com.l2jserver.gameserver.ThreadPoolManager;

import com.l2jserver.gameserver.model.L2World;

import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

import com.l2jserver.gameserver.network.clientpackets.Say2;

import com.l2jserver.gameserver.network.serverpackets.CreatureSay;

import com.l2jserver.gameserver.util.Broadcast;

   

public class AutoVoteRewardHandler

{

  private static Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());

 

  private static final int initialCheck  = 1 * 1000;

  private static final int delayForCheck = Config.DELAY_FOR_NEXT_REWARD * 1000;

 

  private static int lastVoteCount = 0;

     

  private AutoVoteRewardHandler()

  {

      _log.info("Vote Reward System: Vote reward system initiated.");

      if (Config.VOTE_REWARD_ENABLE)

          load();

      ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);

  }

     

  private class AutoReward implements Runnable

{

@Override

public void run()

{

int votes = getVotes(Config.VOTE_HTML_PATCH);

System.out.println("Server Votes: " + votes);

if (votes != 0 && getLastVoteCount() != 0 && votes >= getLastVoteCount() + Config.VOTES_FOR_REWARD)

{

Connection con = null;

try

{

con = L2DatabaseFactory.getInstance().getConnection();

PreparedStatement statement = con.prepareStatement("SELECT c.charId, c.char_name FROM characters AS c LEFT JOIN accounts AS a ON c.account_name = a.login WHERE c.online > 0 GROUP BY a.lastIP ORDER BY c.level DESC");

ResultSet rset = statement.executeQuery();

L2PcInstance player = null;

L2ItemInstance item = null;

L2ItemInstance item2 = null;

L2ItemInstance item3 = null;

L2ItemInstance item4 = null;

while (rset.next())

{

player = L2World.getInstance().getPlayer(rset.getInt("charId"));

if (player != null && !player.getClient().isDetached())

{

item = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);

if (item == null || item.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)

player.addItem("reward", Config.VOTE_REWARD1_ID, Config.VOTE_REWARD1_COUNT, player, true);

item2 = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);

 

if (item2 == null || item2.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)

player.addItem("reward", Config.VOTE_REWARD2_ID, Config.VOTE_REWARD2_COUNT, player, true);

 

L2ItemInstance item32 = item3;

if (item32 == null || item32.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)

player.addItem("reward", Config.VOTE_REWARD3_ID, Config.VOTE_REWARD3_COUNT, player, true);

 

L2ItemInstance item42 = item4;

if (item42 == null || item42.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)

player.addItem("reward", Config.VOTE_REWARD4_ID, Config.VOTE_REWARD4_COUNT, player, true);

}

}

setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);

statement.close();

_log.info("Vote Reward System: Reward for votes now!");

            Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Reward for players! Thanks for Vote."));

}

catch (SQLException e)

{

e.printStackTrace();

}

finally

{

L2DatabaseFactory.close(con);

}

 

setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);

}

Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Server votes: " + votes + " | Next Reward on " + (getLastVoteCount() + Config.VOTES_FOR_REWARD) + " Votes."));

if (getLastVoteCount() == 0)

setLastVoteCount(votes);

}

}

     

  private int getVotes(String urlString)

  {

      URL url = null;

      InputStreamReader isr = null;

      BufferedReader in = null;

      try

      {

          url = new URL(urlString);

          isr = new InputStreamReader(url.openStream());

          in = new BufferedReader(isr);

          String inputLine;

          while ((inputLine = in.readLine()) != null)

          {

          if (Config.VOTE_REWARD_TOPZONE_ENABLE)

          {

          // for TopZone

          if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))

          {

          return Integer.valueOf(inputLine.split(">")[5].replace("</font", ""));

          }

          }

          if (Config.VOTE_REWARD_HOPZONE_ENABLE)

          {

          // for HopZone

          if (inputLine.contains("rank anonymous tooltip"))

          {

          @SuppressWarnings("unused")

          int Sub = 12;

          switch (inputLine.length())

          {

          case 116:

          Sub = 13;

          break;

          case 117:

          Sub = 14;

          break;

          case 118:

          Sub = 15;

          break;

          case 119:

          Sub = 16;

          break;

          }

          return Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));

          }

              }

          }

      }

      catch (IOException e)

      {

          _log.warning("Vote Reward System: "+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 AutoVoteRewardHandler getInstance()

  {

      return SingletonHolder._instance;

  }

     

  @SuppressWarnings("synthetic-access")

  private static class SingletonHolder

  {

      protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();

  }

}

Guest
This topic is now closed to further replies.


  • Posts

    • New Products! Hurry up and grab the best GMAIL accounts at low prices with creation years from 2005–2022! Old Gmail.com accounts (with 2FA enabled) | Registered with MIX IP | Age: from 2005 to 2022 (choose the year you prefer) | Accounts may contain messages | Format: email:password:submail | No SMS verification required | IMAP enabled | Submail included | Price from: $0.9 We also offer email accounts for Outlook, Firstmail, Rambler, Onet, Gazeta.pl, GMX, Yahoo, Proton, and Web.de. Buy now in our store via website or bot! Active Links: Digital Goods Store (Website): Go Store Telegram Bot: Go – convenient access to the store directly through Telegram messenger. Other Services: Telegram Bot for purchasing Telegram Stars: Go – fast and profitable way to buy Telegram Stars. SMM Panel: Go – promote your social media accounts. We would like to present you the current list of promotions and special offers for purchasing our products and services: 1. Promo code OCTOBER2025 (8% discount) for purchases in our store (Website, Bot) during September! You can also use the first-time promo code: SOCNET (15% discount). 2. Get $1 to your store balance or a 10–20% discount — simply post your username after registration on our website using the following format "SEND ME BONUS, MY USERNAME IS..." – post it in our forum thread! 3. Get $1 for your first SMM Panel trial — just open a ticket titled “Get Trial Bonus” on our website (Support). 4. Weekly Telegram Stars giveaways in our Telegram channel and in our Stars purchasing bot! News: ➡ Telegram Channel: https://t.me/accsforyou_shop ➡ WhatsApp Channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord Server: https://discord.gg/y9AStFFsrh Contacts & Support: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
    • 🌟 NEW LINEAGEII VALEBORN HIGH FIVE x10 SERVER IS COMING! 🌟   🔥 Start Date: October 29th — ⏰ 16:00 GMT ⚔️ Rates: 10x 🎁 Bonuses for All Players! 🎉 New Exclusive Events! 💰 All for Adena! 🏪 Active Market! ⬇️ Download Available Now!   🏰 Welcome to Lineage2 ValeBorn – High Five x10 Return to the classic High Five era, fully restored and enhanced for the ultimate Lineage2 experience!   💫 Enjoy tons of new events and powerful commands that will make your adventure smoother and more exciting than ever. ⚖️ All classes and skills have been carefully rebalanced, bringing back fair and intense PvP battles!   👑 Face the mighty Grand Bosses – Tauti and Lindvior, and seize their exclusive legendary jewels. ✨ Discover unique features unseen on any other Lineage2 server and dive deep into an epic medieval adventure!   💸 ACTIVE MARKET SYSTEM Do you miss the old days when farming Adena meant everything? On ValeBorn, everything revolves around Adena! 🪙 You can buy nearly everything using Adena through our special Gold Bar system — just like the golden age of Lineage2!   🎁 BONUS START EVENT Dear warriors, adventurers, and heroes — We’ve prepared valuable starting bonuses for all new players! Join us from day one and claim your exclusive rewards.   ⚔️ Lineage2 ValeBorn – High Five x10 🌍 The true return to the roots. The legend reborn.   👉 Download & Join Now!
  • 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