/* * Copyright (C) 2004-2015 L2J DataPack * * This file is part of L2J DataPack. * * L2J DataPack is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * L2J DataPack is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package gracia.AI.NPC.Seyo; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.network.NpcStringId; import com.l2jserver.gameserver.network.clientpackets.Say2; /** * Seyo AI. * @author St3eT */ public final class Seyo extends AbstractNpcAI { // NPC private static final int SEYO = 32737; // Item private static final int STONE_FRAGMENT = 15486; // Spirit Stone Fragment // Misc private static final NpcStringId[] TEXT = { NpcStringId.NO_ONE_ELSE_DONT_WORRY_I_DONT_BITE_HAHA, NpcStringId.OK_MASTER_OF_LUCK_THATS_YOU_HAHA_WELL_ANYONE_CAN_COME_AFTER_ALL, NpcStringId.SHEDDING_BLOOD_IS_A_GIVEN_ON_THE_BATTLEFIELD_AT_LEAST_ITS_SAFE_HERE, NpcStringId.OK_WHOS_NEXT_IT_ALL_DEPENDS_ON_YOUR_FATE_AND_LUCK_RIGHT_AT_LEAST_COME_AND_TAKE_A_LOOK, NpcStringId.THERE_WAS_SOMEONE_WHO_WON_10000_FROM_ME_A_WARRIOR_SHOULDNT_JUST_BE_GOOD_AT_FIGHTING_RIGHT_YOUVE_GOTTA_BE_GOOD_IN_EVERYTHING }; public Seyo() { super(Seyo.class.getSimpleName(), "gracia/AI/NPC"); addStartNpc(SEYO); addTalkId(SEYO); addFirstTalkId(SEYO); } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = null; if (npc == null) { return htmltext; } switch (event) { case "TRICKERY_TIMER": { if (npc.isScriptValue(1)) { npc.setScriptValue(0); broadcastNpcSay(npc, Say2.NPC_ALL, TEXT[getRandom(TEXT.length)]); } break; } case "give1": { if (npc.isScriptValue(1)) { htmltext = "32737-04.html"; } else if (!hasQuestItems(player, STONE_FRAGMENT)) { htmltext = "32737-01.html"; } else { npc.setScriptValue(1); takeItems(player, STONE_FRAGMENT, 1); if (getRandom(100) == 0) { giveItems(player, STONE_FRAGMENT, 100); broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.AMAZING_S1_TOOK_100_OF_THESE_SOUL_STONE_FRAGMENTS_WHAT_A_COMPLETE_SWINDLER, player.getName()); } else { broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HMM_HEY_DID_YOU_GIVE_S1_SOMETHING_BUT_IT_WAS_JUST_1_HAHA, player.getName()); } startQuestTimer("TRICKERY_TIMER", 5000, npc, null); } break; } case "give5": { if (npc.isScriptValue(1)) { htmltext = "32737-04.html"; } else if (getQuestItemsCount(player, STONE_FRAGMENT) < 5) { htmltext = "32737-02.html"; } else { npc.setScriptValue(1); takeItems(player, STONE_FRAGMENT, 5); final int chance = getRandom(100); if (chance < 20) { broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.AHEM_S1_HAS_NO_LUCK_AT_ALL_TRY_PRAYING, player.getName()); } else if (chance < 80) { giveItems(player, STONE_FRAGMENT, 1); broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.ITS_BETTER_THAN_LOSING_IT_ALL_RIGHT_OR_DOES_THIS_FEEL_WORSE); } else { final int itemCount = getRandom(10, 16); giveItems(player, STONE_FRAGMENT, itemCount); broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.S1_PULLED_ONE_WITH_S2_DIGITS_LUCKY_NOT_BAD, player.getName(), String.valueOf(itemCount)); } startQuestTimer("TRICKERY_TIMER", 5000, npc, null); } break; } case "give20": { if (npc.isScriptValue(1)) { htmltext = "32737-04.html"; } else if (getQuestItemsCount(player, STONE_FRAGMENT) < 20) { htmltext = "32737-03.html"; } else { npc.setScriptValue(1); takeItems(player, STONE_FRAGMENT, 20); final int chance = getRandom(10000); if (chance == 0) { giveItems(player, STONE_FRAGMENT, 10000); broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.AH_ITS_OVER_WHAT_KIND_OF_GUY_IS_THAT_DAMN_FINE_YOU_S1_TAKE_IT_AND_GET_OUTTA_HERE, player.getName()); } else if (chance < 10) { giveItems(player, STONE_FRAGMENT, 1); broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_DONT_FEEL_BAD_RIGHT_ARE_YOU_SAD_BUT_DONT_CRY); } else { giveItems(player, STONE_FRAGMENT, getRandom(1, 100)); broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.A_BIG_PIECE_IS_MADE_UP_OF_LITTLE_PIECES_SO_HERES_A_LITTLE_PIECE); } startQuestTimer("TRICKERY_TIMER", 5000, npc, null); } break; } } return htmltext; } }