2
0
Эх сурвалжийг харах

BETA: Retail-like soulshot recharge.

Patch by: FinalDestination
Tested by: angkor_tm, Konstantinos, St3eT

Thanks to: angkor_tm for the videos from before/after/retail!!
Zoey76 11 жил өмнө
parent
commit
a5e2199bd4

+ 11 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -1047,9 +1047,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 			setCurrentCp(getCurrentCp() - 10);
 		}
 		
-		// Recharge any active auto soulshot tasks for current L2Character instance.
-		rechargeShots(true, false);
-		
 		// Verify if soulshots are charged.
 		final boolean wasSSCharged = isChargedShot(ShotType.SOULSHOTS);
 		// Get the Attack Speed of the L2Character (delay (in milliseconds) before next attack)
@@ -1636,8 +1633,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		
 		stopEffectsOnAction();
 		
-		rechargeShots(skill.useSoulShot(), skill.useSpiritShot());
-		
 		// Set the target of the skill in function of Skill Type and Target Type
 		L2Character target = null;
 		// Get all possible targets of the skill in a table in function of the skill target type
@@ -5167,6 +5162,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		{
 			activeWeapon.getSkillEffects(this, target, crit);
 		}
+		
+		// Recharge any active auto-soulshot tasks for current creature.
+		rechargeShots(true, false);
 	}
 	
 	/**
@@ -5851,6 +5849,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 				}
 			}
 			
+			rechargeShots(skill.useSoulShot(), skill.useSpiritShot());
+			
 			final StatusUpdate su = new StatusUpdate(this);
 			boolean isSendStatus = false;
 			
@@ -5914,12 +5914,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 				}
 			}
 			
-			// On each repeat restore shots before cast
-			if (mut.getCount() > 0)
-			{
-				rechargeShots(mut.getSkill().useSoulShot(), mut.getSkill().useSpiritShot());
-			}
-			
 			// Launch the magic skill in order to calculate its effects
 			callSkill(mut.getSkill(), mut.getTargets());
 		}
@@ -5971,6 +5965,12 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		final Skill skill = mut.getSkill();
 		final L2Object target = mut.getTargets().length > 0 ? mut.getTargets()[0] : null;
 		
+		// On each repeat recharge shots before cast.
+		if (mut.getCount() > 0)
+		{
+			rechargeShots(mut.getSkill().useSoulShot(), mut.getSkill().useSpiritShot());
+		}
+		
 		// Attack target after skill use
 		if ((skill.nextActionIsAttack()) && (getTarget() instanceof L2Character) && (getTarget() != this) && (target != null) && (getTarget() == target) && target.canBeAttacked())
 		{