Untitled
package l2e.scripts.custom; import l2e.commons.apache.ArrayUtils; import l2e.gameserver.model.actor.Npc; import l2e.gameserver.model.actor.Player; import l2e.scripts.ai.AbstractNpcAI; public class MonumentOfHeroes extends AbstractNpcAI { private static final int[] MONUMENTS = { 31690, 31769, 31770, 31771, 31772 }; private static final int WINGS_OF_DESTINY_CIRCLET = 6842; private static final int[] WEAPONS = { 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 9388, 9389, 9390, }; private static final int HERO_CLOAK = 9999; // **REPLACE 9999 WITH THE ACTUAL CLOAK ID** private MonumentOfHeroes(String name, String descr) { super(name, descr); addStartNpc(MONUMENTS); addTalkId(MONUMENTS); addFirstTalkId(MONUMENTS); } @Override public String onAdvEvent(String event, Npc npc, Player player) { String htmltext = ""; switch (event) { case "HeroWeapon": if (!player.isHero()) { htmltext = "no_hero_weapon.htm"; } else if (hasAtLeastOneQuestItem(player, WEAPONS)) { htmltext = "already_have_weapon.htm"; } else { htmltext = "weapon_list.htm"; } break; case "HeroCirclet": if (!player.isHero()) { htmltext = "no_hero_circlet.htm"; } else if (hasQuestItems(player, WINGS_OF_DESTINY_CIRCLET)) { htmltext = "already_have_circlet.htm"; } else { giveItems(player, WINGS_OF_DESTINY_CIRCLET, 1); htmltext = "circlet_given.htm"; } break; case "HeroCloak": if (!player.isHero()) { htmltext = "no_hero_cloak.htm"; } else if (hasQuestItems(player, HERO_CLOAK)) { htmltext = "already_have_cloak.htm"; } else { giveItems(player, HERO_CLOAK, 1); htmltext = "cloak_given.htm"; } break; default: try { int weaponId = Integer.parseInt(event); if (ArrayUtils.contains(WEAPONS, weaponId)) { giveItems(player, weaponId, 1); htmltext = "weapon_given.htm"; } else { htmltext = "invalid_weapon.htm"; } } catch (NumberFormatException e) { htmltext = "invalid_weapon.htm"; } break; } return htmltext; } @Override public String onTalk(Npc npc, Player player) { return getHtmlPath(player, npc); } @Override public String onFirstTalk(Npc npc, Player player) { return getHtmlPath(player, npc); } private String getHtmlPath(Player player, Npc npc) { if (!player.isHero()) { return "no_hero.htm"; } return "monument.htm"; } public static void main(String[] args) { new MonumentOfHeroes(MonumentOfHeroes.class.getSimpleName(), "custom"); } }
Leave a Comment