Olympiad rework.

Contributed by facab.
This commit is contained in:
MobiusDevelopment
2019-06-07 10:02:50 +00:00
parent a0a9880858
commit 479b69ddb2
134 changed files with 6651 additions and 3676 deletions

View File

@@ -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)

View File

@@ -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>

View File

@@ -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":