Skip to content
Snippets Groups Projects
Commit 98fb9376 authored by Zoey76's avatar Zoey76
Browse files

BETA: Datapack for [L5149].

parent d9216703
No related branches found
No related tags found
No related merge requests found
...@@ -18,9 +18,9 @@ import com.l2jserver.gameserver.ai.CtrlIntention; ...@@ -18,9 +18,9 @@ import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.handler.IItemHandler; import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.actor.L2Playable; import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance.TimeStamp;
import com.l2jserver.gameserver.model.actor.instance.L2PetInstance; import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
import com.l2jserver.gameserver.model.actor.instance.L2ServitorInstance; import com.l2jserver.gameserver.model.actor.instance.L2ServitorInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance.TimeStamp;
import com.l2jserver.gameserver.model.entity.TvTEvent; import com.l2jserver.gameserver.model.entity.TvTEvent;
import com.l2jserver.gameserver.model.holders.SkillHolder; import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
......
...@@ -40,7 +40,6 @@ public class StealBuffs implements ISkillHandler ...@@ -40,7 +40,6 @@ public class StealBuffs implements ISkillHandler
}; };
/** /**
*
* @see com.l2jserver.gameserver.handler.ISkillHandler#useSkill(com.l2jserver.gameserver.model.actor.L2Character, com.l2jserver.gameserver.model.skills.L2Skill, com.l2jserver.gameserver.model.L2Object[]) * @see com.l2jserver.gameserver.handler.ISkillHandler#useSkill(com.l2jserver.gameserver.model.actor.L2Character, com.l2jserver.gameserver.model.skills.L2Skill, com.l2jserver.gameserver.model.L2Object[])
*/ */
@Override @Override
...@@ -53,9 +52,13 @@ public class StealBuffs implements ISkillHandler ...@@ -53,9 +52,13 @@ public class StealBuffs implements ISkillHandler
if (skill.isMagic()) if (skill.isMagic())
{ {
if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT) if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT)
{
weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE); weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE);
}
else if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_SPIRITSHOT) else if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_SPIRITSHOT)
{
weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE); weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE);
}
} }
} }
else if (activeChar instanceof L2Summon) else if (activeChar instanceof L2Summon)
...@@ -65,29 +68,41 @@ public class StealBuffs implements ISkillHandler ...@@ -65,29 +68,41 @@ public class StealBuffs implements ISkillHandler
if (skill.isMagic()) if (skill.isMagic())
{ {
if (activeSummon.getChargedSpiritShot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT) if (activeSummon.getChargedSpiritShot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT)
{
activeSummon.setChargedSpiritShot(L2ItemInstance.CHARGED_NONE); activeSummon.setChargedSpiritShot(L2ItemInstance.CHARGED_NONE);
}
else if (activeSummon.getChargedSpiritShot() == L2ItemInstance.CHARGED_SPIRITSHOT) else if (activeSummon.getChargedSpiritShot() == L2ItemInstance.CHARGED_SPIRITSHOT)
{
activeSummon.setChargedSpiritShot(L2ItemInstance.CHARGED_NONE); activeSummon.setChargedSpiritShot(L2ItemInstance.CHARGED_NONE);
}
} }
} }
else if (activeChar instanceof L2Npc) else if (activeChar instanceof L2Npc)
{
((L2Npc) activeChar)._spiritshotcharged = false; ((L2Npc) activeChar)._spiritshotcharged = false;
}
L2Character target; L2Character target;
L2Effect effect; L2Effect effect;
int count = (int)skill.getPower(); int count = (int) skill.getPower();
for (L2Object obj: targets) for (L2Object obj : targets)
{ {
if (!(obj instanceof L2Character)) if (!(obj instanceof L2Character))
{
continue; continue;
target = (L2Character)obj; }
target = (L2Character) obj;
if (target.isDead()) if (target.isDead())
{
continue; continue;
}
if (!(target instanceof L2PcInstance)) if (!(target instanceof L2PcInstance))
{
continue; continue;
}
Env env; Env env;
int lastSkillId = 0; int lastSkillId = 0;
...@@ -98,7 +113,9 @@ public class StealBuffs implements ISkillHandler ...@@ -98,7 +113,9 @@ public class StealBuffs implements ISkillHandler
{ {
effect = effects[i]; effect = effects[i];
if (effect == null) if (effect == null)
{
continue; continue;
}
if (!effect.canBeStolen()) // remove effect if can't be stolen if (!effect.canBeStolen()) // remove effect if can't be stolen
{ {
...@@ -108,7 +125,7 @@ public class StealBuffs implements ISkillHandler ...@@ -108,7 +125,7 @@ public class StealBuffs implements ISkillHandler
// if eff time is smaller than 5 sec, will not be stolen, just to save CPU, // if eff time is smaller than 5 sec, will not be stolen, just to save CPU,
// avoid synchronization(?) problems and NPEs // avoid synchronization(?) problems and NPEs
if (effect.getAbnormalTime() - effect.getTime() < 5) if ((effect.getAbnormalTime() - effect.getTime()) < 5)
{ {
effects[i] = null; effects[i] = null;
continue; continue;
...@@ -116,7 +133,9 @@ public class StealBuffs implements ISkillHandler ...@@ -116,7 +133,9 @@ public class StealBuffs implements ISkillHandler
// first pass - only dances/songs // first pass - only dances/songs
if (!effect.getSkill().isDance()) if (!effect.getSkill().isDance())
{
continue; continue;
}
if (effect.getSkill().getId() != lastSkillId) if (effect.getSkill().getId() != lastSkillId)
{ {
...@@ -126,7 +145,9 @@ public class StealBuffs implements ISkillHandler ...@@ -126,7 +145,9 @@ public class StealBuffs implements ISkillHandler
toSteal.add(effect); toSteal.add(effect);
if (count == 0) if (count == 0)
{
break; break;
}
} }
if (count > 0) // second pass if (count > 0) // second pass
...@@ -136,11 +157,15 @@ public class StealBuffs implements ISkillHandler ...@@ -136,11 +157,15 @@ public class StealBuffs implements ISkillHandler
{ {
effect = effects[i]; effect = effects[i];
if (effect == null) if (effect == null)
{
continue; continue;
}
// second pass - all except dances/songs // second pass - all except dances/songs
if (effect.getSkill().isDance()) if (effect.getSkill().isDance())
{
continue; continue;
}
if (effect.getSkill().getId() != lastSkillId) if (effect.getSkill().getId() != lastSkillId)
{ {
...@@ -150,27 +175,31 @@ public class StealBuffs implements ISkillHandler ...@@ -150,27 +175,31 @@ public class StealBuffs implements ISkillHandler
toSteal.add(effect); toSteal.add(effect);
if (count == 0) if (count == 0)
{
break; break;
}
} }
} }
if (toSteal.size() == 0) if (toSteal.size() == 0)
{
continue; continue;
}
// stealing effects // stealing effects
for (L2Effect eff : toSteal) for (L2Effect eff : toSteal)
{ {
env = new Env(); env = new Env();
env.player = target; env.setCharacter(target);
env.target = activeChar; env.setTarget(activeChar);
env.skill = eff.getSkill(); env.setSkill(eff.getSkill());
try try
{ {
effect = eff.getEffectTemplate().getStolenEffect(env, eff); effect = eff.getEffectTemplate().getStolenEffect(env, eff);
if (effect != null) if (effect != null)
{ {
effect.scheduleEffect(); effect.scheduleEffect();
if (effect.getShowIcon() && activeChar instanceof L2PcInstance) if (effect.getShowIcon() && (activeChar instanceof L2PcInstance))
{ {
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT); SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
sm.addSkillName(effect); sm.addSkillName(effect);
...@@ -186,7 +215,7 @@ public class StealBuffs implements ISkillHandler ...@@ -186,7 +215,7 @@ public class StealBuffs implements ISkillHandler
} }
} }
//Possibility of a lethal strike // Possibility of a lethal strike
Formulas.calcLethalHit(activeChar, target, skill); Formulas.calcLethalHit(activeChar, target, skill);
} }
...@@ -194,9 +223,9 @@ public class StealBuffs implements ISkillHandler ...@@ -194,9 +223,9 @@ public class StealBuffs implements ISkillHandler
{ {
// Applying self-effects // Applying self-effects
effect = activeChar.getFirstEffect(skill.getId()); effect = activeChar.getFirstEffect(skill.getId());
if (effect != null && effect.isSelfEffect()) if ((effect != null) && effect.isSelfEffect())
{ {
//Replace old effect with new one. // Replace old effect with new one.
effect.exit(); effect.exit();
} }
skill.getEffectsSelf(activeChar); skill.getEffectsSelf(activeChar);
...@@ -204,7 +233,6 @@ public class StealBuffs implements ISkillHandler ...@@ -204,7 +233,6 @@ public class StealBuffs implements ISkillHandler
} }
/** /**
*
* @see com.l2jserver.gameserver.handler.ISkillHandler#getSkillIds() * @see com.l2jserver.gameserver.handler.ISkillHandler#getSkillIds()
*/ */
@Override @Override
...@@ -213,4 +241,4 @@ public class StealBuffs implements ISkillHandler ...@@ -213,4 +241,4 @@ public class StealBuffs implements ISkillHandler
return SKILL_IDS; return SKILL_IDS;
} }
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment