فهرست منبع

BETA: Fixing trigger skills behaviour from weapon:
* "Bad" magic can only trigger "bad" magic.
* "Good" magic can only trigger "good" magic.
* Reported by: facheme
* Reviewed by: MELERIX, Nos, !UnAfraid
* Fixed little typo from [9816].
* Patch by: MELERIX

Adry_85 12 سال پیش
والد
کامیت
4d4b635399

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -112,7 +112,6 @@ import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2ClanMember;
 import com.l2jserver.gameserver.model.L2ContactList;
 import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
-import com.l2jserver.gameserver.model.Macro;
 import com.l2jserver.gameserver.model.L2ManufactureItem;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Party;
@@ -129,6 +128,7 @@ import com.l2jserver.gameserver.model.L2Transformation;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.L2WorldRegion;
 import com.l2jserver.gameserver.model.Location;
+import com.l2jserver.gameserver.model.Macro;
 import com.l2jserver.gameserver.model.MacroList;
 import com.l2jserver.gameserver.model.PartyMatchRoom;
 import com.l2jserver.gameserver.model.PartyMatchRoomList;

+ 4 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Weapon.java

@@ -385,11 +385,13 @@ public final class L2Weapon extends L2Item
 		}
 		
 		final L2Skill onMagicSkill = _skillsOnMagic.getSkill();
-		// No Trigger if Offensive Skill
-		if (trigger.isOffensive() && onMagicSkill.isOffensive())
+		
+		// Trigger only if both are good or bad magic.
+		if (trigger.isBad() != onMagicSkill.isBad())
 		{
 			return false;
 		}
+		
 		// No Trigger if not Magic Skill
 		if (!trigger.isMagic() && !onMagicSkill.isMagic())
 		{

+ 5 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/L2Skill.java

@@ -969,6 +969,11 @@ public abstract class L2Skill implements IChanceSkillTrigger
 		return _stayOnSubclassChange;
 	}
 	
+	public final boolean isBad()
+	{
+		return _effectPoint < 0;
+	}
+	
 	public boolean checkCondition(L2Character activeChar, L2Object target, boolean itemOrWeapon)
 	{
 		if (activeChar.canOverrideCond(PcCondOverride.SKILL_CONDITIONS) && !Config.GM_SKILL_RESTRICTION)