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