Pārlūkot izejas kodu

BETA: Skills rework:
* Added new effects !OpenCommonRecipeBook and !OpenDwarfRecipeBook.
* Unhardcoded static skills not trigger any chance skills.
* Removed old !SkillType.
Reviewed by: MELERIX, Zoey76

Adry_85 12 gadi atpakaļ
vecāks
revīzija
514958c63e

+ 2 - 0
L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java

@@ -110,6 +110,8 @@ public final class EffectMasterHandler
 		Mute.class,
 		NoblesseBless.class,
 		NpcKill.class,
+		OpenCommonRecipeBook.class,
+		OpenDwarfRecipeBook.class,
 		Paralyze.class,
 		Petrification.class,
 		PhoenixBless.class,

+ 0 - 2
L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java

@@ -207,7 +207,6 @@ import handlers.itemhandlers.TeleportBookmark;
 import handlers.skillhandlers.BallistaBomb;
 import handlers.skillhandlers.BeastSkills;
 import handlers.skillhandlers.Continuous;
-import handlers.skillhandlers.Craft;
 import handlers.skillhandlers.DeluxeKey;
 import handlers.skillhandlers.Detection;
 import handlers.skillhandlers.Disablers;
@@ -509,7 +508,6 @@ public class MasterHandler
 			BallistaBomb.class,
 			BeastSkills.class,
 			Continuous.class,
-			Craft.class,
 			DeluxeKey.class,
 			Detection.class,
 			Disablers.class,

+ 30 - 25
L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Craft.java → L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OpenCommonRecipeBook.java

@@ -16,49 +16,54 @@
  * 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 handlers.skillhandlers;
+package handlers.effecthandlers;
 
 import com.l2jserver.gameserver.RecipeController;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.model.L2Object;
-import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
+import com.l2jserver.gameserver.model.effects.EffectTemplate;
+import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.effects.L2EffectType;
+import com.l2jserver.gameserver.model.stats.Env;
 import com.l2jserver.gameserver.network.SystemMessageId;
 
 /**
- * @version $Revision: 1.1.2.2.2.4 $ $Date: 2005/04/06 16:13:48 $
+ * Open Common Recipe Book effect implementation.
+ * @author Adry_85
  */
-public class Craft implements ISkillHandler
+public class OpenCommonRecipeBook extends L2Effect
 {
-	private static final L2SkillType[] SKILL_IDS =
+	public OpenCommonRecipeBook(Env env, EffectTemplate template)
 	{
-		L2SkillType.COMMON_CRAFT,
-		L2SkillType.DWARVEN_CRAFT
-	};
+		super(env, template);
+	}
+	
+	@Override
+	public boolean calcSuccess()
+	{
+		return true;
+	}
+	
+	@Override
+	public L2EffectType getEffectType()
+	{
+		return L2EffectType.NONE;
+	}
 	
 	@Override
-	public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)
+	public boolean onStart()
 	{
-		if (!activeChar.isPlayer())
+		if (!getEffector().isPlayer())
 		{
-			return;
+			return false;
 		}
 		
-		L2PcInstance player = activeChar.getActingPlayer();
-		
+		L2PcInstance player = getEffector().getActingPlayer();
 		if (player.getPrivateStoreType() != L2PcInstance.STORE_PRIVATE_NONE)
 		{
 			player.sendPacket(SystemMessageId.CANNOT_CREATED_WHILE_ENGAGED_IN_TRADING);
-			return;
+			return false;
 		}
-		RecipeController.getInstance().requestBookOpen(player, (skill.getSkillType() == L2SkillType.DWARVEN_CRAFT));
-	}
-	
-	@Override
-	public L2SkillType[] getSkillIds()
-	{
-		return SKILL_IDS;
+		RecipeController.getInstance().requestBookOpen(player, false);
+		return true;
 	}
 }

+ 69 - 0
L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OpenDwarfRecipeBook.java

@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2004-2013 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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 handlers.effecthandlers;
+
+import com.l2jserver.gameserver.RecipeController;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.effects.EffectTemplate;
+import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.effects.L2EffectType;
+import com.l2jserver.gameserver.model.stats.Env;
+import com.l2jserver.gameserver.network.SystemMessageId;
+
+/**
+ * Open Dwarf Recipe Book effect implementation.
+ * @author Adry_85
+ */
+public class OpenDwarfRecipeBook extends L2Effect
+{
+	public OpenDwarfRecipeBook(Env env, EffectTemplate template)
+	{
+		super(env, template);
+	}
+	
+	@Override
+	public boolean calcSuccess()
+	{
+		return true;
+	}
+	
+	@Override
+	public L2EffectType getEffectType()
+	{
+		return L2EffectType.NONE;
+	}
+	
+	@Override
+	public boolean onStart()
+	{
+		if (!getEffector().isPlayer())
+		{
+			return false;
+		}
+		
+		L2PcInstance player = getEffector().getActingPlayer();
+		if (player.getPrivateStoreType() != L2PcInstance.STORE_PRIVATE_NONE)
+		{
+			player.sendPacket(SystemMessageId.CANNOT_CREATED_WHILE_ENGAGED_IN_TRADING);
+			return false;
+		}
+		RecipeController.getInstance().requestBookOpen(player, true);
+		return true;
+	}
+}

+ 10 - 4
L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml

@@ -463,18 +463,24 @@
 		<set name="targetType" val="SELF" />
 	</skill>
 	<skill id="1321" levels="1" name="Dwarven Craft">
-		<set name="hitTime" val="500" />
+		<!-- Confirmed CT2.5 -->
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
+		<set name="magicLvl" val="1" />
 		<set name="operateType" val="A1" />
-		<set name="skillType" val="DWARVEN_CRAFT" />
 		<set name="targetType" val="SELF" />
+		<for>
+			<effect name="OpenDwarfRecipeBook" noicon="1" val="0" />
+		</for>
 	</skill>
 	<skill id="1322" levels="1" name="Common Craft">
-		<set name="hitTime" val="500" />
+		<!-- Confirmed CT2.5 -->
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
+		<set name="magicLvl" val="1" />
 		<set name="operateType" val="A1" />
-		<set name="skillType" val="COMMON_CRAFT" />
 		<set name="targetType" val="SELF" />
+		<for>
+			<effect name="OpenCommonRecipeBook" noicon="1" val="0" />
+		</for>
 	</skill>
 	<skill id="1323" levels="1" name="Noblesse Blessing">
 		<!-- Confirmed CT2.5 -->