Jump to content
  • 0

[HELP]Vote Reward error


Sweetyass

Question

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

 

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

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

# 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

Link to comment
Share on other sites

  • 0
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();

  }

}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Posts

    • Helly everyone . I use L2jmobius interlude , i did everything , installed the db compiled the Build in eclipse Gameserver seems to lead OK , but it fails to connect to loginserver When i click to start the loginserver it says  "Loginserver terminated abnormally" This is wheat gameserver shows me :    [05/10 17:25:12] LoginServerThread: Connecting to login on 127.0.0.1:9014 [05/10 17:25:12] LoginServerThread: LoginServer not available, trying to reconnect... [05/10 17:25:17] LoginServerThread: Connecting to login on 127.0.0.1:9014 [05/10 17:25:17] LoginServerThread: LoginServer not available, trying to reconnect... [05/10 17:25:22] LoginServerThread: Connecting to login on 127.0.0.1:9014 [05/10 17:25:22] LoginServerThread: LoginServer not available, trying to reconnect...   And This is my login config file:   # --------------------------------------------------------------------------- # Login Server Settings # --------------------------------------------------------------------------- # This is the server configuration file. Here you can set up the connection information for your server. # This was written with the assumption that you are behind a router. # Dumbed Down Definitions... # LAN (LOCAL area network) - typically consists of computers connected to the same router as you. # WAN (WIDE area network) - typically consists of computers OUTSIDE of your router (ie. the internet). # x.x.x.x - Format of an IP address. Do not include the x'es into settings. Must be real numbers. # --------------------------------------------------------------------------- # Networking # --------------------------------------------------------------------------- # Bind ip of the LoginServer, use 0.0.0.0 to bind on all available IPs # WARNING: <u><b><font color="red">Please don't change default IPs here if you don't know what are you doing!</font></b></u> # WARNING: <u><b><font color="red">External/Internal IPs are now inside "ipconfig.xml" file.</font></b></u> # Default: 0.0.0.0 LoginserverHostname = 0.0.0.0 # Default: 2106 LoginserverPort = 2106 # The address on which login will listen for GameServers, use * to bind on all available IPs # WARNING: <u><b><font color="red">Please don't change default IPs here if you don't know what are you doing!</font></b></u> # WARNING: <u><b><font color="red">External/Internal IPs are now inside "ipconfig.xml" file.</font></b></u> # Default: 127.0.0.1 LoginHostname = 127.0.0.1 # The port on which login will listen for GameServers # Default: 9014 LoginPort = 9014 # --------------------------------------------------------------------------- # Database # --------------------------------------------------------------------------- # Specify the JDBC driver class for your database. # Default: org.mariadb.jdbc.Driver Driver = org.mariadb.jdbc.Driver # Database URL # Default: jdbc:mariadb://localhost/l2jmobiusinterlude?useUnicode=true&characterEncoding=utf-8&useSSL=false&connectTimeout=10000&interactiveClient=true&sessionVariables=wait_timeout=600,interactive_timeout=600&autoReconnect=true URL = jdbc:mariadb://localhost/l2jmobiusinterlude?useUnicode=true&characterEncoding=utf-8&useSSL=false&connectTimeout=10000&interactiveClient=true&sessionVariables=wait_timeout=600,interactive_timeout=600&autoReconnect=true # Database user info. Default is "root" but it's not recommended. Login = root # Database user password, leave empty for no password. Password = root # Maximum number of database connections to maintain in the pool. # Default: 5 MaximumDatabaseConnections = 5 # Determine whether database connections should be tested for availability. # Default: False TestDatabaseConnections = False # --------------------------------------------------------------------------- # Automatic Database Backup Settings # --------------------------------------------------------------------------- # Generate database backups when server restarts or shuts down.  BackupDatabase = False # Path to MySQL bin folder. Only necessary on Windows. MySqlBinLocation = C:/xampp/mysql/bin/ # Path where MySQL backups are stored. BackupPath = ../backup/ # Maximum number of days that backups will be kept. # Old files in backup folder will be deleted. # Set to 0 to disable. BackupDays = 30 # --------------------------------------------------------------------------- # Thread Configuration # --------------------------------------------------------------------------- # Defines the number of threads in the scheduled thread pool. # If set to -1, this will be determined by available processors divided by 2. ScheduledThreadPoolSize = 2 # Defines the number of threads in the instant thread pool. # If set to -1, this will be determined by available processors divided by 2. InstantThreadPoolSize = 2 # --------------------------------------------------------------------------- # Security # --------------------------------------------------------------------------- # How many times you can provide an invalid account/pass before the IP gets banned. # Default: 5 LoginTryBeforeBan = 5 # Time you won't be able to login back again after LoginTryBeforeBan tries to login. # Default: 900 (15 minutes) LoginBlockAfterBan = 900 # If set to True any GameServer can register on your login's free slots # Default: True AcceptNewGameServer = True # Flood Protection. All values are in milliseconds. # Default: True EnableFloodProtection = True # Default: 15 FastConnectionLimit = 15 # Default: 700 NormalConnectionTime = 700 # Default: 350 FastConnectionTime = 350 # Default: 50 MaxConnectionPerIP = 50 # --------------------------------------------------------------------------- # Misc Login Settings # --------------------------------------------------------------------------- # If False, the license (after the login) will not be shown. # Default: True ShowLicence = True # Default: True AutoCreateAccounts = True # Datapack root directory. # Defaults to current directory from which the server is started. DatapackRoot = . # --------------------------------------------------------------------------- # Scheduled Login Restart # --------------------------------------------------------------------------- # Enable disable scheduled login restart. # Default: False LoginRestartSchedule = False # Time in hours. # Default: 24 LoginRestartTime = 24    
    • or at least to tell you an update that sorry but still not at home.. 10 days is suspisious.. but he is long time offline from discord indeed... maybe something happened?
    • I never had problems with him. Again, Im not sure if he scammed or not. But 10+ days without answering after we already paid, its a bit sus. If you know you wouldnt be able to answer for a few days, after receiving and confirming the amount, why dont keep in touch? or just say "hey, dont send now because I will only be available after day x.".  
    • i used to ask him for stuff etc, i dont think he scammed ... if he does i will be suprised...
  • Topics

×
×
  • Create New...