All pastes #65783 Raw Edit

Mine

public java v1 · immutable
#65783 ·published 2006-06-15 11:07 UTC
rendered paste body
Index: F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/Config.java===================================================================--- F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/Config.java	(revision 272)+++ F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/Config.java	(working copy)@@ -533,6 +533,10 @@          /** Store skills cooltime on char exit/relogin */     public static boolean STORE_SKILL_COOLTIME;+    +    /** Store skills cooldown time on char exit/relogin */+    public static boolean STORE_SKILL_COOLDOWN;+         /** Show licence or not just after login (if false, will directly go to the Server List */ 	public static boolean SHOW_LICENCE;     /** Force GameGuard authorization in loginserver */ @@ -588,7 +592,9 @@     public static boolean GAMEGUARD_PROHIBITACTION;  	public static int DWARF_RECIPE_LIMIT; -	public static int COMMON_RECIPE_LIMIT; +	public static int COMMON_RECIPE_LIMIT;+    +    public static boolean GEODATA_ENABLED;  	public static void load() 	{@@ -765,7 +771,9 @@                 GMAUDIT = Boolean.valueOf(serverSettings.getProperty("GMAudit", "False"));                  GAMEGUARD_ENFORCE = Boolean.valueOf(serverSettings.getProperty("GameGuardEnforce", "False")); -                GAMEGUARD_PROHIBITACTION = Boolean.valueOf(serverSettings.getProperty("GameGuardProhibitAction", "False"));+                GAMEGUARD_PROHIBITACTION = Boolean.valueOf(serverSettings.getProperty("GameGuardProhibitAction", "False"));+                +                GEODATA_ENABLED             = Boolean.valueOf(serverSettings.getProperty("GeodataEnabled", "False"));  	        } 	        catch (Exception e)@@ -894,6 +902,7 @@ 	            MAX_PVTSTORE_SLOTS_OTHER = Integer.parseInt(otherSettings.getProperty("MaxPvtStoreSlotsOther", "4")); 	             	            STORE_SKILL_COOLTIME = Boolean.parseBoolean(otherSettings.getProperty("StoreSkillCooltime", "true"));+                STORE_SKILL_COOLDOWN = Boolean.parseBoolean(otherSettings.getProperty("StoreSkillCooldown", "true"));                  	            PET_RENT_NPC =  otherSettings.getProperty("ListPetRentNpc", "7827"); 	            LIST_PET_RENT_NPC = new FastList<Integer>();Index: F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java===================================================================--- F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(revision 272)+++ F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(working copy)@@ -26,9 +26,9 @@ import java.sql.ResultSet; import java.util.Calendar; import java.util.Collections;+import java.util.Iterator; import java.util.LinkedList; import java.util.List;-import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.WeakHashMap;@@ -44,17 +44,16 @@ import javolution.util.FastSet; import net.sf.l2j.Config; import net.sf.l2j.L2DatabaseFactory;-import net.sf.l2j.gameserver.ai.CtrlEvent; import net.sf.l2j.gameserver.CharTemplateTable; import net.sf.l2j.gameserver.ClanTable; import net.sf.l2j.gameserver.ClientScheduler; import net.sf.l2j.gameserver.Connection;-import net.sf.l2j.gameserver.model.L2Fishing; import net.sf.l2j.gameserver.GameTimeController; import net.sf.l2j.gameserver.GmListTable; import net.sf.l2j.gameserver.HennaTable; import net.sf.l2j.gameserver.ItemTable; import net.sf.l2j.gameserver.LoginServerThread;+import net.sf.l2j.gameserver.MapRegionTable; import net.sf.l2j.gameserver.RecipeController; import net.sf.l2j.gameserver.SevenSigns; import net.sf.l2j.gameserver.SevenSignsFestival;@@ -62,25 +61,26 @@ import net.sf.l2j.gameserver.SkillTreeTable; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.Universe;+import net.sf.l2j.gameserver.ai.CtrlEvent; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.ai.L2CharacterAI; import net.sf.l2j.gameserver.ai.L2PlayerAI; import net.sf.l2j.gameserver.cache.HtmCache;-import net.sf.l2j.gameserver.communitybbs.BB.Forum; -import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager; -import net.sf.l2j.gameserver.model.TradeList;+import net.sf.l2j.gameserver.communitybbs.BB.Forum;+import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager; import net.sf.l2j.gameserver.handler.IItemHandler; import net.sf.l2j.gameserver.handler.ItemHandler; import net.sf.l2j.gameserver.handler.skillhandlers.SiegeFlag; import net.sf.l2j.gameserver.handler.skillhandlers.TakeCastle; import net.sf.l2j.gameserver.instancemanager.ArenaManager;+import net.sf.l2j.gameserver.instancemanager.CastleManager; import net.sf.l2j.gameserver.instancemanager.QuestManager; import net.sf.l2j.gameserver.instancemanager.SiegeManager; import net.sf.l2j.gameserver.instancemanager.ZoneManager;-import net.sf.l2j.gameserver.instancemanager.CastleManager; import net.sf.l2j.gameserver.lib.Rnd; import net.sf.l2j.gameserver.model.BlockList; import net.sf.l2j.gameserver.model.Inventory;+import net.sf.l2j.gameserver.model.ItemContainer; import net.sf.l2j.gameserver.model.L2Attackable; import net.sf.l2j.gameserver.model.L2CharPosition; import net.sf.l2j.gameserver.model.L2Character;@@ -88,8 +88,7 @@ import net.sf.l2j.gameserver.model.L2ClanMember; import net.sf.l2j.gameserver.model.L2DropData; import net.sf.l2j.gameserver.model.L2Effect;-import net.sf.l2j.gameserver.model.entity.L2Event;-import net.sf.l2j.gameserver.model.ItemContainer;+import net.sf.l2j.gameserver.model.L2Fishing; import net.sf.l2j.gameserver.model.L2HennaInstance; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.L2Macro;@@ -109,6 +108,7 @@ import net.sf.l2j.gameserver.model.PcWarehouse; import net.sf.l2j.gameserver.model.PetInventory; import net.sf.l2j.gameserver.model.ShortCuts;+import net.sf.l2j.gameserver.model.TradeList; import net.sf.l2j.gameserver.model.L2Skill.SkillTargetType; import net.sf.l2j.gameserver.model.L2Skill.SkillType; import net.sf.l2j.gameserver.model.actor.knownlist.PcKnownList;@@ -118,6 +118,7 @@ import net.sf.l2j.gameserver.model.base.Race; import net.sf.l2j.gameserver.model.base.SubClass; import net.sf.l2j.gameserver.model.entity.Castle;+import net.sf.l2j.gameserver.model.entity.L2Event; import net.sf.l2j.gameserver.model.entity.Siege; import net.sf.l2j.gameserver.model.entity.Zone; import net.sf.l2j.gameserver.model.entity.ZoneType;@@ -127,7 +128,6 @@ import net.sf.l2j.gameserver.serverpackets.ActionFailed; import net.sf.l2j.gameserver.serverpackets.ChangeWaitType; import net.sf.l2j.gameserver.serverpackets.CharInfo;-import net.sf.l2j.gameserver.serverpackets.CreatureSay; import net.sf.l2j.gameserver.serverpackets.ExFishingEnd; import net.sf.l2j.gameserver.serverpackets.ExFishingStart; import net.sf.l2j.gameserver.serverpackets.HennaInfo;@@ -154,7 +154,6 @@ import net.sf.l2j.gameserver.serverpackets.StatusUpdate; import net.sf.l2j.gameserver.serverpackets.StopMove; import net.sf.l2j.gameserver.serverpackets.SystemMessage;-import net.sf.l2j.gameserver.serverpackets.TargetSelected; import net.sf.l2j.gameserver.serverpackets.TradeStart; import net.sf.l2j.gameserver.serverpackets.UserInfo; import net.sf.l2j.gameserver.skills.Stats;@@ -168,7 +167,6 @@ import net.sf.l2j.gameserver.templates.L2WeaponType; import net.sf.l2j.gameserver.util.Broadcast; import net.sf.l2j.gameserver.util.Util;-import net.sf.l2j.gameserver.MapRegionTable; import net.sf.l2j.util.Point3D;  @@ -180,7 +178,8 @@  */ public final class L2PcInstance extends L2PlayableInstance {-	private static final String RESTORE_SKILLS_FOR_CHAR = "SELECT skill_id,skill_level FROM character_skills WHERE char_obj_id=? AND class_index=?";+    private static final String STORE_SKILL_COOLDOWN = "INSERT INTO character_skills(reuse_delay) VALUES(?) WHERE skill_id = ? AND char_obj_id=? AND class_index=?";+	private static final String RESTORE_SKILLS_FOR_CHAR = "SELECT skill_id,skill_level,reuse_delay FROM character_skills WHERE char_obj_id=? AND class_index=?"; 	private static final String ADD_NEW_SKILL = "INSERT INTO character_skills (char_obj_id,skill_id,skill_level,skill_name,class_index) VALUES (?,?,?,?,?)"; 	private static final String UPDATE_CHARACTER_SKILL_LEVEL = "UPDATE character_skills SET skill_level=? WHERE skill_id=? AND char_obj_id=? AND class_index=?"; 	private static final String DELETE_SKILL_FROM_CHAR = "DELETE FROM character_skills WHERE skill_id=? AND char_obj_id=? AND class_index=?";@@ -730,6 +729,30 @@ 		return _ai; 	} 	+    public synchronized void saveSkillCooldown(int skillId, int cooltime)+    {+        java.sql.Connection con = null;+        +        try+        {+            con = L2DatabaseFactory.getInstance().getConnection();+            PreparedStatement statement;++            statement = con.prepareStatement(STORE_SKILL_COOLDOWN);+            statement.setInt(1, cooltime);+            statement.setInt(2, skillId);+            statement.setInt(3, getObjectId());+            statement.setInt(4, getClassIndex());+            statement.execute();+            statement.close();+            con.close();+        }+        catch(Exception e)+        {+            _log.warning("error while saving skill cooldown time: "+e);+            e.printStackTrace();+        }+    } 	 	/** 	 * Calculate a destination to explore the area and set the AI Intension to AI_INTENTION_MOVE_TO.<BR><BR>@@ -5113,6 +5136,7 @@ 			{ 				int id = rset.getInt("skill_id"); 				int level = rset.getInt("skill_level");+                int cooldown = rset.getInt("reuse_delay"); 				 				if (id > 9000) 					continue; // fake skills for base stats@@ -5122,6 +5146,12 @@ 				 				// Add the L2Skill object to the L2Character _skills and its Func objects to the calculator set of the L2Character 				super.addSkill(skill);+                +                if(cooldown > 0 && Config.STORE_SKILL_COOLDOWN)+                {+                    disableSkill(id);+                    ClientScheduler.getInstance().scheduleMed(new EnableSkill(id), cooldown);+                } 			} 			 			rset.close();Index: F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/L2Character.java===================================================================--- F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/L2Character.java	(revision 272)+++ F:/eclipse-31m7/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/L2Character.java	(working copy)@@ -1072,6 +1072,9 @@ 		{ 			disableSkill(skill.getId()); 			ClientScheduler.getInstance().scheduleMed(new EnableSkill(skill.getId()), reuseDelay);+            +            if(this instanceof L2PcInstance && Config.STORE_SKILL_COOLDOWN)+                ((L2PcInstance)this).saveSkillCooldown(skill.getId(),reuseDelay); 		} 		 		// launch the magic in skillTime milliseconds@@ -1503,7 +1506,7 @@ 	} 	 	/** Task lauching the function enableSkill() */-	class EnableSkill implements Runnable+	protected class EnableSkill implements Runnable 	{ 		int _skillId;