Jump to content
  • 0

Vote Rewards


Cronia

Question

Kalispera paidia An Mpori kai 3eri kapoios na me voithisei pws tha kanw o kathe enas p kani vote na perni atomika to rewar...An mporite na me voithisete...Episeis an iparxi kai npc p na mporis na kanis vote eki mesa k na perni mono aytos p kani vote to reward...Eyxaristw poly

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Kalispera paidia An Mpori kai 3eri kapoios na me voithisei pws tha kanw o kathe enas p kani vote na perni atomika to rewar...An mporite na me voithisete...Episeis an iparxi kai npc p na mporis na kanis vote eki mesa k na perni mono aytos p kani vote to reward...Eyxaristw poly

Δύσκολα θα πάρεις τέτοιον κώδικα δωρεάν.

Link to comment
Share on other sites

  • 0

Auto Reward Code:

### Eclipse Workspace Patch 1.0
#P L2jFrozen_GameServer
Index: head-src/com/l2jfrozen/gameserver/managers/AutoRewardManager.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/managers/AutoRewardManager.java   (revision 0)
+++ head-src/com/l2jfrozen/gameserver/managers/AutoRewardManager.java   (revision 0)
@@ -0,0 +1,76 @@
+/*
+ * Copyright © 2013 AdminsProL2
+ * 
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package com.l2jfrozen.gameserver.managers;
+
+import java.util.Collection;
+import java.util.Set;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.model.L2World;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.network.serverpackets.ExShowScreenMessage;
+import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+
+
+/**
+ *@author fissban && CaFi
+ */
+public class AutoRewardManager
+{
+   static final int initialCheck = Config.AUTO_REWARD_DELAY * 60000;
+   static final int delayForCheck = Config.AUTO_REWARD_DELAY * 60000;
+   
+   AutoRewardManager()
+   {
+      if (Config.ALLOW_AUTO_REWARDER)
+      {
+         ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);   
+      }
+   }
+   
+   protected class AutoReward implements Runnable
+   {
+      @Override
+      public void run()
+      {
+         Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
+         
+         for (L2PcInstance player : pls)
+         {
+            player.sendPacket(new ExShowScreenMessage("Felicitaciones has sido premiado, proximo Reward en: " + delayForCheck, 6000));
+            
+            Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
+            for (Integer i : items)
+            {
+               player.addItem("AutoReward", i, Config.AUTO_REWARDS_LIST.get(i), player, true);
+            }
+         }
+      }
+   }
+   
+   public static AutoRewardManager getInstance()
+   {
+      return SingletonHolder._instance;
+   }
+   
+   static class SingletonHolder
+   {
+      protected static final AutoRewardManager _instance = new AutoRewardManager();
+   }
+}
Index: head-src/com/l2jfrozen/FService.java
===================================================================
--- head-src/com/l2jfrozen/FService.java   (revision 1004)
+++ head-src/com/l2jfrozen/FService.java   (working copy)
@@ -53,6 +53,7 @@
    public static final String CRAFTING = "./config/functions/crafting.properties";
    public static final String DEVELOPER = "./config/functions/developer.properties";
    public static final String L2JFROZEN_CONFIG_FILE = "./config/functions/l2jfrozen.properties";
+   public static final String ADMINSPROL2_CONFIG_FILE = "./config/functions/AdminsProL2.properties";
    public static final String PHYSICS_CONFIGURATION_FILE = "./config/functions/physics.properties";
    public static final String PVP_CONFIG_FILE = "./config/functions/pvp.properties";
    public static final String POWERPAK_FILE = "./config/powerpak/powerpak.properties";
Index: head-src/com/l2jfrozen/Config.java
===================================================================
--- head-src/com/l2jfrozen/Config.java   (revision 1004)
+++ head-src/com/l2jfrozen/Config.java   (working copy)
@@ -2525,7 +2525,37 @@
       }
    }
 
+    //============================================================
+    public static boolean ALLOW_AUTO_REWARDER;
+    public static int AUTO_REWARD_DELAY;
+    public static FastMap<Integer, Integer> AUTO_REWARDS_LIST;
+    public static String AUTO_REWARDS;
+       
    //============================================================
+   public static void loadAdminsProL2Config()
+   {
+      final String ADMINSPROL2 = FService.ADMINSPROL2_CONFIG_FILE;
+   
+      try
+      {
+         Properties AdminsProL2Settings = new Properties();
+         InputStream is = new FileInputStream(new File(ADMINSPROL2));
+         AdminsProL2Settings.load(is);
+         is.close();
+            
+          ALLOW_AUTO_REWARDER = Boolean.parseBoolean(AdminsProL2Settings.getProperty("AllowAutoRewarder", "True"));
+          AUTO_REWARD_DELAY = Integer.parseInt(AdminsProL2Settings.getProperty("AutoRewardDelay", "1200"));
+          AUTO_REWARDS = AdminsProL2Settings.getProperty("VotesRewards", "");
+          AUTO_REWARDS_LIST = new FastMap<Integer, Integer>();
+      }
+      catch(Exception e)
+      {
+         e.printStackTrace();
+         throw new Error("Failed to Load " + ADMINSPROL2 + " File.");
+      }
+   }
+   
+   //============================================================
    public static int KARMA_MIN_KARMA;
    public static int KARMA_MAX_KARMA;
    public static int KARMA_XP_DIVIDER;
Index: head-src/com/l2jfrozen/gameserver/GameServer.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/GameServer.java   (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/GameServer.java   (working copy)
@@ -87,6 +87,7 @@
 import com.l2jfrozen.gameserver.handler.VoicedCommandHandler;
 import com.l2jfrozen.gameserver.idfactory.IdFactory;
 import com.l2jfrozen.gameserver.managers.AuctionManager;
+import com.l2jfrozen.gameserver.managers.AutoRewardManager;
 import com.l2jfrozen.gameserver.managers.AutoSaveManager;
 import com.l2jfrozen.gameserver.managers.AwayManager;
 import com.l2jfrozen.gameserver.managers.BoatManager;
@@ -565,6 +566,9 @@
       if ((Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) && Config.RESTORE_OFFLINERS)
          OfflineTradeTable.restoreOfflineTraders();
       
+      Util.printSection("L2jAdmins");
+      AutoRewardManager.getInstance();
+      
       Util.printSection("Info");
       _log.info("Operating System: " + Util.getOSName() + " " + Util.getOSVersion() + " " + Util.getOSArch());
       _log.info("Available CPUs: " + Util.getAvailableProcessors());
Index: config/functions/Adminsprol2.properties
===================================================================
--- config/functions/Adminsprol2.properties   (revision 0)
+++ config/functions/Adminsprol2.properties   (revision 0)
@@ -0,0 +1,10 @@
+#============================================================#
+#                        Server Config                      #
+#============================================================#
+
+# Auto rewarder.
+AllowAutoRewarder = True
+# Delay for reward. (in seconds)
+AutoRewardDelay = 1200
+# ID of item reward.
+AutoRewards= 6392,20;
 
Code Vote RewardTopzone/Hopzone:
 
### Eclipse Workspace Patch 1.0
#P L2jFrozen_GameServer
Index: head-src/com/l2jfrozen/Config.java
===================================================================
--- head-src/com/l2jfrozen/Config.java (revision 938)
+++ head-src/com/l2jfrozen/Config.java (working copy)
@@ -878,6 +878,89 @@
  throw new Error("Failed to Load " + OTHER + " File.");
  }
  }
+
+ public static boolean ALLOW_HOPZONE_VOTE_REWARD;
+    public static String HOPZONE_SERVER_LINK;
+    public static String HOPZONE_FIRST_PAGE_LINK;
+    public static int HOPZONE_VOTES_DIFFERENCE;
+    public static int HOPZONE_FIRST_PAGE_RANK_NEEDED;
+    public static int HOPZONE_REWARD_CHECK_TIME;
+ public static Map<Integer, Integer> HOPZONE_SMALL_REWARD = new FastMap<Integer, Integer>();
+ public static Map<Integer, Integer> HOPZONE_BIG_REWARD = new FastMap<Integer, Integer>();
+ public static int HOPZONE_DUALBOXES_ALLOWED;
+    public static boolean ALLOW_HOPZONE_GAME_SERVER_REPORT;
+    public static boolean ALLOW_TOPZONE_VOTE_REWARD;
+    public static String TOPZONE_SERVER_LINK;
+    public static String TOPZONE_FIRST_PAGE_LINK;
+    public static int TOPZONE_VOTES_DIFFERENCE;
+    public static int TOPZONE_FIRST_PAGE_RANK_NEEDED;
+    public static int TOPZONE_REWARD_CHECK_TIME;
+ public static Map<Integer, Integer> TOPZONE_SMALL_REWARD = new FastMap<Integer, Integer>();
+ public static Map<Integer, Integer> TOPZONE_BIG_REWARD = new FastMap<Integer, Integer>();
+ public static int TOPZONE_DUALBOXES_ALLOWED;
+    public static boolean ALLOW_TOPZONE_GAME_SERVER_REPORT;
+    
+ public static void loadVoteConfig()
+ {
+ final String VOTE = FService.VOTE_FILE;
+ try
+ {
+ Properties elcardia = new Properties();
+ InputStream is = new FileInputStream(new File(VOTE));
+ elcardia.load(is);
+ is.close();
+
+ ALLOW_HOPZONE_VOTE_REWARD = Boolean.parseBoolean(elcardia.getProperty("AllowHopzoneVoteReward", "false"));
+ HOPZONE_SERVER_LINK = elcardia.getProperty("HopzoneServerLink", "http://l2.hopzone.net/lineage2/details/74078/L2World-Servers/");
+ HOPZONE_FIRST_PAGE_LINK = elcardia.getProperty("HopzoneFirstPageLink", "http://l2.hopzone.net/lineage2/");
+ HOPZONE_VOTES_DIFFERENCE = Integer.parseInt(elcardia.getProperty("HopzoneVotesDifference", "5"));
+ HOPZONE_FIRST_PAGE_RANK_NEEDED = Integer.parseInt(elcardia.getProperty("HopzoneFirstPageRankNeeded", "15"));
+ HOPZONE_REWARD_CHECK_TIME = Integer.parseInt(elcardia.getProperty("HopzoneRewardCheckTime", "5"));
+ String HOPZONE_SMALL_REWARD_VALUE = elcardia.getProperty("HopzoneSmallReward", "57,100000000;");
+ String[] hopzone_small_reward_splitted_1 = HOPZONE_SMALL_REWARD_VALUE.split(";");
+ for (String i : hopzone_small_reward_splitted_1)
+ {
+ String[] hopzone_small_reward_splitted_2 = i.split(",");
+ HOPZONE_SMALL_REWARD.put(Integer.parseInt(hopzone_small_reward_splitted_2[0]), Integer.parseInt(hopzone_small_reward_splitted_2[1]));
+ }
+ String HOPZONE_BIG_REWARD_VALUE = elcardia.getProperty("HopzoneBigReward", "3470,1;");
+ String[] hopzone_big_reward_splitted_1 = HOPZONE_BIG_REWARD_VALUE.split(";");
+ for (String i : hopzone_big_reward_splitted_1)
+ {
+ String[] hopzone_big_reward_splitted_2 = i.split(",");
+ HOPZONE_BIG_REWARD.put(Integer.parseInt(hopzone_big_reward_splitted_2[0]), Integer.parseInt(hopzone_big_reward_splitted_2[1]));
+ }
+ HOPZONE_DUALBOXES_ALLOWED = Integer.parseInt(elcardia.getProperty("HopzoneDualboxesAllowed", "1"));
+ ALLOW_HOPZONE_GAME_SERVER_REPORT = Boolean.parseBoolean(elcardia.getProperty("AllowHopzoneGameServerReport", "false"));
+ ALLOW_TOPZONE_VOTE_REWARD = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneVoteReward", "false"));
+ TOPZONE_SERVER_LINK = elcardia.getProperty("TopzoneServerLink", "http://l2.topzone.net/lineage2/details/74078/L2World-Servers/");
+ TOPZONE_FIRST_PAGE_LINK = elcardia.getProperty("TopzoneFirstPageLink", "http://l2.topzone.net/lineage2/");
+ TOPZONE_VOTES_DIFFERENCE = Integer.parseInt(elcardia.getProperty("TopzoneVotesDifference", "5"));
+ TOPZONE_FIRST_PAGE_RANK_NEEDED = Integer.parseInt(elcardia.getProperty("TopzoneFirstPageRankNeeded", "15"));
+ TOPZONE_REWARD_CHECK_TIME = Integer.parseInt(elcardia.getProperty("TopzoneRewardCheckTime", "5"));
+ String TOPZONE_SMALL_REWARD_VALUE = elcardia.getProperty("TopzoneSmallReward", "57,100000000;");
+ String[] topzone_small_reward_splitted_1 = TOPZONE_SMALL_REWARD_VALUE.split(";");
+ for (String i : topzone_small_reward_splitted_1)
+ {
+ String[] topzone_small_reward_splitted_2 = i.split(",");
+ TOPZONE_SMALL_REWARD.put(Integer.parseInt(topzone_small_reward_splitted_2[0]), Integer.parseInt(topzone_small_reward_splitted_2[1]));
+ }
+ String TOPZONE_BIG_REWARD_VALUE = elcardia.getProperty("TopzoneBigReward", "3470,1;");
+ String[] topzone_big_reward_splitted_1 = TOPZONE_BIG_REWARD_VALUE.split(";");
+ for (String i : topzone_big_reward_splitted_1)
+ {
+ String[] topzone_big_reward_splitted_2 = i.split(",");
+ TOPZONE_BIG_REWARD.put(Integer.parseInt(topzone_big_reward_splitted_2[0]), Integer.parseInt(topzone_big_reward_splitted_2[1]));
+ }
+ TOPZONE_DUALBOXES_ALLOWED = Integer.parseInt(elcardia.getProperty("TopzoneDualboxesAllowed", "1"));
+ ALLOW_TOPZONE_GAME_SERVER_REPORT = Boolean.parseBoolean(elcardia.getProperty("AllowTopzoneGameServerReport", "false"));
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ throw new Error("Failed to Load " + VOTE + " File.");
+ }
+ }
 
  //============================================================
  public static float RATE_XP;
Index: head-src/com/l2jfrozen/gameserver/GameServer.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/GameServer.java (revision 938)
+++ head-src/com/l2jfrozen/gameserver/GameServer.java (working copy)
@@ -118,6 +118,8 @@
 import com.l2jfrozen.gameserver.model.entity.Announcements;
 import com.l2jfrozen.gameserver.model.entity.Hero;
 import com.l2jfrozen.gameserver.model.entity.MonsterRace;
+import com.l2jfrozen.gameserver.model.entity.VoteRewardHopzone;
+import com.l2jfrozen.gameserver.model.entity.VoteRewardTopzone;
 import com.l2jfrozen.gameserver.model.entity.event.manager.EventManager;
 import com.l2jfrozen.gameserver.model.entity.olympiad.Olympiad;
 import com.l2jfrozen.gameserver.model.entity.sevensigns.SevenSigns;
@@ -514,6 +516,11 @@
 
  Util.printSection("Custom Mods");
 
+ if (Config.ALLOW_HOPZONE_VOTE_REWARD)
+ VoteRewardHopzone.getInstance();
+ if (Config.ALLOW_TOPZONE_VOTE_REWARD)
+ VoteRewardTopzone.getInstance();
+
  if(Config.L2JMOD_ALLOW_WEDDING || Config.ALLOW_AWAY_STATUS || Config.PCB_ENABLE || Config.POWERPAK_ENABLED)
  {
  if(Config.L2JMOD_ALLOW_WEDDING)
Index: head-src/com/l2jfrozen/FService.java
===================================================================
--- head-src/com/l2jfrozen/FService.java (revision 938)
+++ head-src/com/l2jfrozen/FService.java (working copy)
@@ -48,6 +48,7 @@
  public static final String SIEGE_CONFIGURATION_FILE = "./config/head/siege.properties";
  public static final String ELIT_CLANHALL_CONFIG_FILE = "./config/head/elitclanhall.properties";
  public static final String BOSS_CONFIG_FILE = "./config/head/boss.properties";
+ public static final String VOTE_FILE = "./config/head/vote.properties";
 
  //functions
  public static final String ACCESS_CONFIGURATION_FILE = "./config/functions/access.properties";
Index: head-src/com/l2jfrozen/gameserver/model/entity/VoteRewardTopzone.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/entity/VoteRewardTopzone.java (revision 0)
+++ head-src/com/l2jfrozen/gameserver/model/entity/VoteRewardTopzone.java (revision 0)
@@ -0,0 +1,330 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jfrozen.gameserver.model.entity;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+
+import javolution.util.FastMap;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.model.entity.Announcements;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.model.L2World;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+/**
+ * @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 FastMap<String, Integer> playerIps = new FastMap<String, Integer>();
+
+ 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("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);
+ }
+
+ private 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 votes from server with rank "+firstPageRankNeeded+".");
+ }
+ if (currentVotes == -1)
+ {
+ System.out.println("There was a problem on getting server votes.");
+ }
+
+ return;
+ }
+
+ if (lastVotes == 0)
+ {
+ lastVotes = currentVotes;
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: 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)
+ {
+ Announcements.getInstance().announceToAll("Vote reward: We are in the first page of topzone, so the reward will be big.");
+ if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server is on the first page of topzone.");
+ }
+ }
+ else
+ {
+ Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the first page of topzone for big reward.");
+ if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
+ }
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ return;
+ }
+
+ if (currentVotes >= lastVotes+voteRewardVotesDifference)
+ {
+ Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
+ 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 first page of topzone.");
+ System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ 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 first page: "+(firstPageVotes-lastVotes));
+ System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with small reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ 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 first page of topzone.");
+ System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ }
+ else
+ {
+ if (Config.ALLOW_TOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes on topzone: "+currentVotes);
+ System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
+ System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of topzone for big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ }
+ }
+ }
+
+ private static int getFirstPageRankVotes()
+ {
+ InputStreamReader isr = null;
+ BufferedReader br = null;
+
+ try
+ {
+ URLConnection con = new URL(page1Url).openConnection();
+ con.addRequestProperty("User-Agent", "Mozilla/4.76");
+ isr = new InputStreamReader(con.getInputStream());
+ br = new BufferedReader(isr);
+
+ String line;
+ int i = 0;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.contains("<td><div align=\"center\">"+firstPageRankNeeded+"</div></td>"))
+ {
+ i++;
+ }
+ if (line.contains("<td><div align=\"center\">") && i == 1)
+ {
+ i++;
+ }
+ if (line.contains("<td><div align=\"center\">") && i == 2)
+ {
+ i = 0;
+ int votes = Integer.valueOf(line.split(">")[2].replace("</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;
+ }
+
+ private static int getVotes()
+ {
+ InputStreamReader isr = null;
+ BufferedReader br = null;
+
+ try
+ {
+ URLConnection con = new URL(topzoneUrl).openConnection();
+ con.addRequestProperty("User-Agent", "Mozilla/4.76");
+ isr = new InputStreamReader(con.getInputStream());
+ br = new BufferedReader(isr);
+
+ boolean got = false;
+
+ String line;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\"") && !got)
+ {
+ got = true;
+ int votes = Integer.valueOf(line.split("=\"font-size:14px;color:#018BC1;\">")[1].replace("</font></b></div></td></tr>", ""));
+ return votes;
+ }
+ }
+
+ br.close();
+ isr.close();
+ }
+ catch (Exception e)
+ {
+ System.out.println(e);
+ System.out.println("Error while getting server vote count.");
+ }
+
+ return -1;
+ }
+}
\ No newline at end of file
Index: config/head/vote.properties
===================================================================
--- config/head/vote.properties (revision 0)
+++ config/head/vote.properties (revision 0)
@@ -0,0 +1,49 @@
+# Vote reward for Hopzone.
+AllowHopzoneVoteReward = True
+# Vote reward server link.
+# First page of servers list link.
+HopzoneFirstPageLink = http://l2.hopzone.net/lineage2/
+# Votes for next reward needed.
+HopzoneVotesDifference = 5
+# Rank needed for server to be on first page.
+HopzoneFirstPageRankNeeded = 15
+# Minutes between rewards.
+# Eg. You put 5 it checks every 5 minutes for reward.
+HopzoneRewardCheckTime = 5
+# Small reward(s).
+HopzoneSmallReward = 57,100000000;
+# Big reward(s).
+HopzoneBigReward = 3470,1;
+# Hopzone reward max dual boxes reward.
+# For example if you put 2 and someone has 3 boxes open 2 will be rewarded.
+HopzoneDuaboxesAllowed = 1
+# Game server console report.
+# If set to true, game server console will get a report of
+# current vote count, votes needed for next reward and votes needed for first page.
+AllowHopzoneGameServerReport = True
+
+# Vote reward for Topzone.
+AllowTopzoneVoteReward = True
+# Vote reward server link.
+# First page of servers list link.
+# Votes for next reward needed.
+TopzoneVotesDifference = 5
+# Rank needed for server to be on first page.
+TopzoneFirstPageRankNeeded = 15
+# Minutes between rewards.
+# Eg. You put 5 it checks every 5 minutes for reward.
+TopzoneRewardCheckTime = 5
+# Small reward(s).
+TopzoneSmallReward = 57,100000000;
+# Big reward(s).
+TopzoneBigReward = 3470,1;
+# Hopzone reward max dual boxes reward.
+# For example if you put 2 and someone has 3 boxes open 2 will be rewarded.
+TopzoneDuaboxesAllowed = 1
+# Game server console report.
+# If set to true, game server console will get a report of
+# current vote count, votes needed for next reward and votes needed for first page.
+AllowTopzoneGameServerReport = True
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/model/entity/VoteRewardHopzone.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/entity/VoteRewardHopzone.java (revision 0)
+++ head-src/com/l2jfrozen/gameserver/model/entity/VoteRewardHopzone.java (revision 0)
@@ -0,0 +1,323 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jfrozen.gameserver.model.entity;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collection;
+
+import javolution.util.FastMap;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.model.entity.Announcements;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.model.L2World;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+/**
+ * @author Anarchy
+ *
+ */
+public class VoteRewardHopzone
+{
+ // Configurations.
+ private static String hopzoneUrl = Config.HOPZONE_SERVER_LINK;
+ private static String page1Url = Config.HOPZONE_FIRST_PAGE_LINK;
+ private static int voteRewardVotesDifference = Config.HOPZONE_VOTES_DIFFERENCE;
+ private static int firstPageRankNeeded = Config.HOPZONE_FIRST_PAGE_RANK_NEEDED;
+ private static int checkTime = 60*1000*Config.HOPZONE_REWARD_CHECK_TIME;
+
+ // Don't-touch variables.
+ private static int lastVotes = 0;
+ private static FastMap<String, Integer> playerIps = new FastMap<String, Integer>();
+
+ public static void updateConfigurations()
+ {
+ hopzoneUrl = Config.HOPZONE_SERVER_LINK;
+ page1Url = Config.HOPZONE_FIRST_PAGE_LINK;
+ voteRewardVotesDifference = Config.HOPZONE_VOTES_DIFFERENCE;
+ firstPageRankNeeded = Config.HOPZONE_FIRST_PAGE_RANK_NEEDED;
+ checkTime = 60*1000*Config.HOPZONE_REWARD_CHECK_TIME;
+ }
+
+ public static void getInstance()
+ {
+ System.out.println("Vote reward system initialized.");
+ ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ if (Config.ALLOW_HOPZONE_VOTE_REWARD)
+ {
+ reward();
+ }
+ else
+ {
+ return;
+ }
+ }
+ }, checkTime/2, checkTime);
+ }
+
+ private 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 votes from server with rank "+firstPageRankNeeded+".");
+ }
+ if (currentVotes == -1)
+ {
+ System.out.println("There was a problem on getting server votes.");
+ }
+
+ return;
+ }
+
+ if (lastVotes == 0)
+ {
+ lastVotes = currentVotes;
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for reward.");
+ if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes on hopzone: "+currentVotes);
+ System.out.println("Votes needed for reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ if (firstPageVotes-lastVotes <= 0)
+ {
+ Announcements.getInstance().announceToAll("Vote reward: We are in the first page of Hopzone, so the reward will be big.");
+ if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server is on the first page of hopzone.");
+ }
+ }
+ else
+ {
+ Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-lastVotes)+" vote(s) to get to the first page of Hopzone for big reward.");
+ if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
+ }
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ return;
+ }
+
+ if (currentVotes >= lastVotes+voteRewardVotesDifference)
+ {
+ Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
+ if (firstPageVotes-currentVotes <= 0)
+ {
+ if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes on hopzone: "+currentVotes);
+ System.out.println("Server is on the first page of hopzone.");
+ System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ 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.HOPZONE_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.HOPZONE_BIG_REWARD.keySet())
+ {
+ p.addItem("Vote reward.", i, Config.HOPZONE_BIG_REWARD.get(i), p, true);
+ }
+ }
+ else
+ {
+ p.sendMessage("Already "+Config.HOPZONE_DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
+ }
+ }
+ playerIps.clear();
+ }
+ else
+ {
+ if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes on hopzone: "+currentVotes);
+ System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
+ System.out.println("Votes needed for next reward: "+((currentVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Everyone has been rewarded with small reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of Hopzone for big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ 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.HOPZONE_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.HOPZONE_SMALL_REWARD.keySet())
+ {
+ p.addItem("Vote reward.", i, Config.HOPZONE_SMALL_REWARD.get(i), p, true);
+ }
+ }
+ else
+ {
+ p.sendMessage("Already "+Config.HOPZONE_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_HOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes on hopzone: "+currentVotes);
+ System.out.println("Server is on the first page of hopzone.");
+ System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ }
+ else
+ {
+ if (Config.ALLOW_HOPZONE_GAME_SERVER_REPORT)
+ {
+ System.out.println("Server votes on hopzone: "+currentVotes);
+ System.out.println("Server votes needed for first page: "+(firstPageVotes-lastVotes));
+ System.out.println("Votes needed for next reward: "+((lastVotes+voteRewardVotesDifference)-currentVotes));
+ }
+ Announcements.getInstance().announceToAll("Vote reward: Current vote count is "+currentVotes+".");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+((lastVotes+voteRewardVotesDifference)-currentVotes)+" vote(s) for small reward.");
+ Announcements.getInstance().announceToAll("Vote reward: We need "+(firstPageVotes-currentVotes)+" vote(s) to get to the first page of Hopzone for big reward.");
+ Announcements.getInstance().announceToAll("Vote reward: Type .menu to see what the big and what the small reward is.");
+ }
+ }
+ }
+
+ private static int getFirstPageRankVotes()
+ {
+ InputStreamReader isr = null;
+ BufferedReader br = null;
+
+ try
+ {
+ URLConnection con = new URL(page1Url).openConnection();
+ con.addRequestProperty("User-Agent", "Mozilla/4.76");
+ isr = new InputStreamReader(con.getInputStream());
+ br = new BufferedReader(isr);
+
+ String line;
+ int i = 0;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.contains("<span class=\"no\">"+firstPageRankNeeded+"</span>"))
+ {
+ i++;
+ }
+ if (line.contains("Anonymous Votes") && i == 1)
+ {
+ i = 0;
+ int votes = Integer.valueOf(line.split(">")[1].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(hopzoneUrl).openConnection();
+ con.addRequestProperty("User-Agent", "Mozilla/4.76");
+ isr = new InputStreamReader(con.getInputStream());
+ br = new BufferedReader(isr);
+
+ String line;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.contains("Anonymous User Votes"))
+ {
+ int votes = Integer.valueOf(line.split(">")[2].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;
+ }
+}
\ No newline at end of file
 
Link to comment
Share on other sites

  • 0

http://www.maxcheaters.com/topic/134612-vortex-vote-reward-engine-ingame-personal-system-100-secure/

 

to exw gia H5 ama thes sto deinw.

pantos ean exeis upomoni perase to L2JHellas.

to exei perasmeno mpwreis na to pareis mesa apo to source 

Edited by ExCaLiBuR®
Link to comment
Share on other sites

  • 0

File mou to thema m ine oti doulevw se frozen project...Kai epidi ton exw vali twra se eteria mou ipan oti prepei na ton parw sto pc m na tou valw code mesw eclipse k 3ana anevasma swsta???

Link to comment
Share on other sites

  • 0

File mou to thema m ine oti doulevw se frozen project...Kai epidi ton exw vali twra se eteria mou ipan oti prepei na ton parw sto pc m na tou valw code mesw eclipse k 3ana anevasma swsta???

oxi. ektos kai ean ekanes malakia kai esvises to source apo to pc sou.

apla ean thes na peraseis kapoion kwdika to pairnas sto pc sou kaneis compile

pairneis to .JAR kai sto stelneis sto dedicated

Link to comment
Share on other sites

  • 0

den exw svisi file tpt ta source iparxoun sto workspace alla poio .jar pernis egw thimame ekana apla extract ta files se ena fakelo server kai eftiaxna ta config

Link to comment
Share on other sites

  • 0

Epidi einai se alo pc to source tha sto stilw ayrio eyxaristw poly ek ton proterwn..An thelis mporis na me kani k skype(lampros.xiroudakis)pou exis mia alfa gnwsi apo oti vlepw

Link to comment
Share on other sites

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
Answer this question...

×   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.



×
×
  • Create New...