Jump to content

extr3me

Members
  • Posts

    332
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by extr3me

  1. GL with your server man :X THIS WILL BE THE BEST ROMANIAN SERVER
  2. it's work i tested him lol :|
  3. private static final int initialCheck is the first check of votes on hopzone/topzone private static final int delayForCheck this is deley between every check of votes
  4. lol yes work FINE ;) all work on it
  5. Hy all MXC Users this is an hopzone and topzone vote reward for freya with sql to save all vote count on server restart ;) HF with it Index: java/com/l2jserver/Config.java =================================================================== --- java/com/l2jserver/Config.java (revision 4422) +++ java/com/l2jserver/Config.java (working copy) @@ -620,6 +625,8 @@ //-------------------------------------------------- // L2JMods Settings //-------------------------------------------------- + public static boolean L2JMOD_VOTE_ENGINE_ENABLE; + public static boolean L2JMOD_VOTE_ENGINE_SAVE; public static boolean L2JMOD_CHAMPION_ENABLE; public static boolean L2JMOD_CHAMPION_PASSIVE; public static int L2JMOD_CHAMPION_FREQUENCY; @@ -2162,6 +2174,8 @@ is = new FileInputStream(new File(L2JMOD_CONFIG_FILE)); L2JModSettings.load(is); + L2JMOD_VOTE_ENGINE_ENABLE = Boolean.parseBoolean(L2JModSettings.getProperty("EnableAutoVoteEngine", "false")); + L2JMOD_VOTE_ENGINE_SAVE = Boolean.parseBoolean(L2JModSettings.getProperty("AutoVoteEngineSaveLoad", "false")); L2JMOD_CHAMPION_ENABLE = Boolean.parseBoolean(L2JModSettings.getProperty("ChampionEnable", "false")); L2JMOD_CHAMPION_PASSIVE = Boolean.parseBoolean(L2JModSettings.getProperty("ChampionPassive", "false")); L2JMOD_CHAMPION_FREQUENCY = Integer.parseInt(L2JModSettings.getProperty("ChampionFrequency", "0")); @@ -3071,8 +3085,11 @@ else if (pName.equalsIgnoreCase("AltSubclassEverywhere")) ALT_GAME_SUBCLASS_EVERYWHERE = Boolean.parseBoolean(pValue); else if (pName.equalsIgnoreCase("AltMembersCanWithdrawFromClanWH")) ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH = Boolean.parseBoolean(pValue); else if (pName.equalsIgnoreCase("DwarfRecipeLimit")) DWARF_RECIPE_LIMIT = Integer.parseInt(pValue); - else if (pName.equalsIgnoreCase("CommonRecipeLimit")) COMMON_RECIPE_LIMIT = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("CommonRecipeLimit")) COMMON_RECIPE_LIMIT = Integer.parseInt(pValue); + else if (pName.equalsIgnoreCase("EnableAutoVoteEngine")) L2JMOD_VOTE_ENGINE_ENABLE = Boolean.parseBoolean(pValue); + else if (pName.equalsIgnoreCase("AutoVoteEngineSaveLoad")) L2JMOD_VOTE_ENGINE_SAVE = Boolean.parseBoolean(pValue); + else if (pName.equalsIgnoreCase("ChampionEnable")) L2JMOD_CHAMPION_ENABLE = Boolean.parseBoolean(pValue); else if (pName.equalsIgnoreCase("ChampionFrequency")) L2JMOD_CHAMPION_FREQUENCY = Integer.parseInt(pValue); else if (pName.equalsIgnoreCase("ChampionMinLevel")) L2JMOD_CHAMP_MIN_LVL = Integer.parseInt(pValue); Index: java/com/l2jserver/gameserver/GameServer.java =================================================================== --- java/com/l2jserver/gameserver/GameServer.java (revision 4422) +++ java/com/l2jserver/gameserver/GameServer.java (working copy) @@ -87,6 +89,7 @@ import com.l2jserver.gameserver.instancemanager.AirShipManager; import com.l2jserver.gameserver.instancemanager.AntiFeedManager; import com.l2jserver.gameserver.instancemanager.AuctionManager; +import com.l2jserver.gameserver.instancemanager.AutoVoteRewardManager; import com.l2jserver.gameserver.instancemanager.BoatManager; import com.l2jserver.gameserver.instancemanager.CastleManager; import com.l2jserver.gameserver.instancemanager.CastleManorManager; @@ -478,6 +488,9 @@ _log.info("Server Loaded in " + ((serverLoadEnd - serverLoadStart) / 1000) + " seconds"); AutoAnnounceTaskManager.getInstance(); + + if (Config.L2JMOD_VOTE_ENGINE_ENABLE) + AutoVoteRewardManager.getInstance(); } Index: java/com/l2jserver/gameserver/Shutdown.java =================================================================== --- java/com/l2jserver/gameserver/Shutdown.java (revision 4422) +++ java/com/l2jserver/gameserver/Shutdown.java (working copy) @@ -20,8 +20,10 @@ import com.l2jserver.Config; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.datatables.ClanTable; import com.l2jserver.gameserver.datatables.OfflineTradersTable; +import com.l2jserver.gameserver.instancemanager.AutoVoteRewardManager; import com.l2jserver.gameserver.instancemanager.CastleManorManager; import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager; import com.l2jserver.gameserver.instancemanager.GrandBossManager; @@ -538,12 +540,19 @@ ClanTable.getInstance().storeClanScore(); _log.info("Clan System: Data saved!!"); + if (Config.L2JMOD_VOTE_ENGINE_SAVE && Config.L2JMOD_VOTE_ENGINE_ENABLE) + AutoVoteRewardManager.getInstance().save(); + Index: java/com/l2jserver/gameserver/instancemanager/AutoVoteRewardManager.java =================================================================== --- java/com/l2jserver/gameserver/instancemanager/AutoVoteRewardManager.java (revision 0) +++ java/com/l2jserver/gameserver/instancemanager/AutoVoteRewardManager.java (revision 0) @@ -0,0 +1,220 @@ +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.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/L2WorldPvP/74078.html"; + private static final int initialCheck = 1 * 1000; + private static final int delayForCheck = 1800 * 1000; + private static final int[] itemId = { 20034, 57 }; + private static final int[] itemCount = { 2, 1000 }; + private static final int votesRequiredForReward = 8; + + 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://L2TopZone.com"); + + 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); + isr = new InputStreamReader(url.openStream()); + 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(); + } +} \ No newline at end of file Index: java/config/l2jmods.properties =================================================================== --- java/config/l2jmods.properties (revision 4422) +++ java/config/l2jmods.properties (working copy) @@ -418,3 +417,14 @@ will be 1+2=3. Use 0 or negative value for unlimited number of connections. Default: 127.0.0.1,0 (no limits from localhost) DualboxCheckWhitelist = 127.0.0.1,0 + +--------------------------------------------------------------------------- +Auto Vote Event Manager +--------------------------------------------------------------------------- +Enable +Default: False +EnableAutoVoteEngine = False + +Save and Load votes count on start/shutdown to database +Default: False +AutoVoteEngineSaveLoad = False And The Sql to save votes count on restart server becouse all vote reward reset votes on server restart -- ---------------------------- -- Table structure for `votes` -- ---------------------------- DROP TABLE IF EXISTS `votes`; CREATE TABLE `votes` ( `id` int(6) NOT NULL, `vote` int(6) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of votes -- ---------------------------- INSERT INTO votes VALUES ('1', '0');
  6. lol enter and you will see ;)
  7. lol enter and you will see ;)
  8. the server is not on hopzone ;) becouse of that he don't have many players but server is ok and uptime 100%
  9. the server is not on hopzone ;) becouse of that he don't have many players but server is ok and uptime 100%
  10. Thx To All For Good Words ;) i wait for you on server
  11. Thx To All For Good Words ;) i wait for you on server
  12. Try To Use WinSCP to connect to your host ;) you can edit file and see folders and with right click on file you have a lot of commands
  13. Update Topic New Server 100x Opened Join Us ;)
  14. try with another mysql server maybe 5.0 or 5.1
  15. la voi ca la voi da la noi o intreaba unu pe profa daca mai e virgina si ea de colo : da ce mata mai e virgina ?:))
  16. spam mare ;):D
  17. yes they get reward , i will try to make it just for one ip but not promising anything
  18. lol make it with 1 vote for test :| or put the url from other server :|
  19. :| change imports and test it :|
  20. Thx All For Good Words ;)
  21. se baga careva pe game browseru meu ? www.star-ogame.com
  22. interesant atunci astept ;) si ma bag si yo :D
×
×
  • Create New...