Olympiad rework.
Contributed by facab.
This commit is contained in:
@@ -19,7 +19,6 @@ package ai.others.OlyBuffer;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
@@ -66,41 +65,37 @@ public final class OlyBuffer extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "guardian":
|
||||
{
|
||||
htmltext = applyBuffs(npc, player, KNIGHT.getSkill());
|
||||
applyBuffs(npc, player, KNIGHT);
|
||||
break;
|
||||
}
|
||||
case "berserker":
|
||||
{
|
||||
htmltext = applyBuffs(npc, player, WARRIOR.getSkill());
|
||||
applyBuffs(npc, player, WARRIOR);
|
||||
break;
|
||||
}
|
||||
case "magician":
|
||||
{
|
||||
htmltext = applyBuffs(npc, player, WIZARD.getSkill());
|
||||
applyBuffs(npc, player, WIZARD);
|
||||
break;
|
||||
}
|
||||
}
|
||||
npc.setScriptValue(1);
|
||||
htmltext = "olympiad_master003.htm";
|
||||
getTimers().addTimer("DELETE_ME", 5000, evnt -> npc.deleteMe());
|
||||
|
||||
return htmltext;
|
||||
return "olympiad_master003.htm";
|
||||
}
|
||||
|
||||
private String applyBuffs(Npc npc, PlayerInstance player, Skill skill)
|
||||
private void applyBuffs(Npc npc, PlayerInstance player, SkillHolder skill)
|
||||
{
|
||||
for (SkillHolder holder : BUFFS)
|
||||
{
|
||||
SkillCaster.triggerCast(npc, player, holder.getSkill());
|
||||
}
|
||||
SkillCaster.triggerCast(npc, player, skill);
|
||||
return null;
|
||||
SkillCaster.triggerCast(npc, player, skill.getSkill());
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<tr><td height=15></td></tr>
|
||||
<tr><td align=center><font color="bea27b">(Round %olympiad_round%, Week %olympiad_week%, Number of current participants: %olympiad_participant%)</font></td></tr>
|
||||
<tr><td height=34></td></tr>
|
||||
<tr><td align=center><button action="bypass -h Quest OlyManager register1v1class" msg="1481" value="1 vs 1 Match" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Fight1None_Down" fore="L2UI_CT1.OlympiadWnd_DF_Fight1None"></td></tr>
|
||||
<tr><td align=center><button action="bypass -h Quest OlyManager register1v1" msg="1481" value="1 vs 1 Match" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Fight1None_Down" fore="L2UI_CT1.OlympiadWnd_DF_Fight1None"></td></tr>
|
||||
<tr><td align=center><button action="bypass -h Quest OlyManager index" value="Back" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Back_Down" fore="L2UI_CT1.OlympiadWnd_DF_Back"></td></tr>
|
||||
<tr><td height=80></td></tr>
|
||||
</table>
|
||||
|
||||
@@ -116,18 +116,16 @@ public final class OlyManager extends AbstractNpcAI implements IBypassHandler
|
||||
{
|
||||
switch (LocalDate.now().get(WeekFields.of(DayOfWeek.MONDAY, 7).weekOfMonth()))
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
case 3: // First 3 weeks of month is 1v1 + 1v1 class matches
|
||||
{
|
||||
htmltext = getHtm(player, "OlyManager-joinMatch.html");
|
||||
break;
|
||||
}
|
||||
default:// Rest is only 1v1 class matches
|
||||
case 1: // First week is class and non-class battles
|
||||
{
|
||||
htmltext = getHtm(player, "OlyManager-joinMatchClass.html");
|
||||
break;
|
||||
}
|
||||
default:// Rest is only 1v1 non-class matches
|
||||
{
|
||||
htmltext = getHtm(player, "OlyManager-joinMatch.html");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
htmltext = htmltext.replace("%olympiad_round%", String.valueOf(Olympiad.getInstance().getPeriod()));
|
||||
@@ -159,10 +157,11 @@ public final class OlyManager extends AbstractNpcAI implements IBypassHandler
|
||||
{
|
||||
OlympiadManager.getInstance().registerNoble(player, CompetitionType.NON_CLASSED);
|
||||
}
|
||||
else
|
||||
else if (LocalDate.now().get(WeekFields.of(DayOfWeek.MONDAY, 7).weekOfMonth()) == 1) // Only first week is class match possible
|
||||
{
|
||||
OlympiadManager.getInstance().registerNoble(player, CompetitionType.CLASSED);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "unregister":
|
||||
|
||||
Reference in New Issue
Block a user