Hi everyone, it is known that the Classic Interlude project was not meant to be "Interlude with better graphics", but I'm sure that many of us see it that way. I have been gathering information about the Interlude skilldata for a while, because as you may well know, it was never leaked, so it is all about going back and reading posts from 2006-07 in different forums and "databases" availables here and there.
I will share server and client modifications made during this time, and I hope it can be useful for some of you.
Server modificationsSkills' descriptions were the only thing not modified because it would be pointless to do it.
L2J_Mobius_Classic_Interlude\dist\game\data\stats\skills00000-00099.xml00100-00199.xml00200-00299.xml00300-00399.xml00400-00499.xml01000-01099.xml01100-01199.xml Updated 21/10
01200-01299.xml01300-01399.xml Updated 21/10
01400-01499.xml04000-04099.xml (cubics)04100-04199.xml (cubics)04500-04599.xml (cubics)TO DO: - Find better information about how skill enchantment option "Power" affects skills like Aggression, Aura of Hate, Arrest and Shackle.
- Skills that require Seed of Fire/Water/Wind need to be improved, a new effect may be needed.
L2J_Mobius_Classic_Interlude\dist\game\data\stats\cubicscubic-01.xmlcubic-02.xmlcubic-03.xmlcubic-04.xmlcubic-05.xmlcubic-06.xmlcubic-07.xmlcubic-08.xmlcubic-09.xmlL2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.javaTo adapt the new reuseDelay change this:
public int getReuseTime(Skill skill)
{
if (skill.isStaticReuse() || skill.isStatic())
{
return skill.getReuseDelay();
}
// Interlude adjustment.
// final int speedModifier = 333f / (skill.isMagic() ? _creature.getMAtkSpd() : _creature.getPAtkSpd());
// return (int) (skill.getReuseDelay() * getReuseTypeValue(skill.getMagicType()) * speedModifier);
return (int) (skill.getReuseDelay() * getReuseTypeValue(skill.getMagicType()));
}
to this:
public int getReuseTime(Skill skill)
{
if (skill.isStaticReuse() || skill.isStatic())
{
return skill.getReuseDelay();
}
final float speedModifier = (skill.isMagic() ? 333f : 300f) / (skill.isMagic() ? _creature.getMAtkSpd() : _creature.getPAtkSpd());
return (int) (skill.getReuseDelay() * getReuseTypeValue(skill.getMagicType()) * speedModifier);
}
L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skill/SkillCaster.javaTo fix the issue of toggles not consuming mana when being activated change this:
@Override
public void run()
{
final boolean instantCast = (_castingType == SkillCastingType.SIMULTANEOUS) || _skill.isAbnormalInstant() || _skill.isWithoutAction() || _skill.isToggle();
// Skills with instant cast are never launched.
if (instantCast)
{
triggerCast(_caster.get(), _target.get(), _skill, _item, false);
return;
}
long nextTaskDelay = 0;
boolean hasNextPhase = false;
switch (_phase++)
{
case 0: // Start skill casting.
{
hasNextPhase = startCasting();
nextTaskDelay = _hitTime;
break;
}
case 1: // Launch the skill.
{
hasNextPhase = launchSkill();
nextTaskDelay = _cancelTime;
break;
}
case 2: // Finish launching and apply effects.
{
hasNextPhase = finishSkill();
nextTaskDelay = _coolTime;
break;
}
}
// Reschedule next task if we have such.
if (hasNextPhase)
{
_task = ThreadPool.schedule(this, nextTaskDelay);
}
else
{
// Stop casting if there is no next phase.
stopCasting(false);
}
}
to this:
@Override
public void run()
{
final boolean instantCast = (_castingType == SkillCastingType.SIMULTANEOUS) || _skill.isAbnormalInstant() || _skill.isWithoutAction();
// Skills with instant cast are never launched.
if (instantCast)
{
triggerCast(_caster.get(), _target.get(), _skill, _item, false);
return;
}
long nextTaskDelay = 0;
boolean hasNextPhase = false;
switch (_phase++)
{
case 0: // Start skill casting.
{
hasNextPhase = startCasting();
nextTaskDelay = _hitTime;
break;
}
case 1: // Launch the skill.
{
hasNextPhase = launchSkill();
nextTaskDelay = _skill.isToggle() ? 0 : _cancelTime;
break;
}
case 2: // Finish launching and apply effects.
{
hasNextPhase = finishSkill();
nextTaskDelay = _coolTime;
break;
}
}
// Reschedule next task if we have such.
if (hasNextPhase)
{
_task = ThreadPool.schedule(this, nextTaskDelay);
}
else
{
// Stop casting if there is no next phase.
stopCasting(false);
}
}
L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Summon.javaTo fix the problem of Necromancer's summons not working change this:
if (!effected.isPlayer())
{
return;
}
final Player player = effected.getActingPlayer();
to this:
if (!effector.isPlayer())
{
return;
}
final Player player = effector.getActingPlayer();
L2J_Mobius_Classic_Interlude/dist/game/data/skillTrees/2ndClass/ElvenElder.xmlAdd missing skill Major Heal lvl 11 to Elven Elders
<skill skillId="1401" skillLevel="11" skillName="Major Heal" levelUpSp="1100000" getLevel="74" />
Client modificationsMSConditionData_Classic Skillgrp_Classic SkillName_Classic-eu I will post the sources I used if I get the permission to do it, as I said, it includes posts from different forums.