import sys from java.util import Iterator from net.sf.l2j.gameserver import SkillTable from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest print "importing custom: Leyla the NPC Buffer" BUFFERNPCID = 8334 BUFFPRICE = 250000 AAID = 57 def getAACount(st) : return st.getQuestItemsCount(AAID) def applyTax(st) : if st.getPlayer().getLevel() <= 40 : return else : clan = st.getPlayer().getClan() if clan : if clan.getHasCastle() > 0 : return elif st.getQuestItemsCount(AAID) >= BUFFPRICE : st.takeItems(AAID,BUFFPRICE) return else : if st.getQuestItemsCount(AAID) >= BUFFPRICE : st.takeItems(AAID,BUFFPRICE) return else : st.exitQuest(1) return "2.htm" class Quest (JQuest): def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st): if event == "back" : return "1.htm" elif event == "fighter" : return "fighter.htm" elif event == "mage" : return "mage.htm" elif event == "prophecy" : return "prophecy.htm" elif event == "etc" : return "etc.htm" elif event == "songs" : return "songs.htm" elif event == "dances" : return "dances.htm" elif event == "chants" : return "chants.htm" elif event == "acumen" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False) return "mage.htm" elif event == "empower" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False) return "mage.htm" elif event == "concentration" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False) return "mage.htm" elif event == "focus" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False) return "fighter.htm" elif event == "deathwhisper" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False) return "fighter.htm" elif event == "haste" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False) return "fighter.htm" elif event == "guidance" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False) return "fighter.htm" elif event == "vampiricrage" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False) return "fighter.htm" elif event == "might" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False) return "fighter.htm" elif event == "powater" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4392,1),False,False) return "prophecy.htm" elif event == "pofire" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4393,1),False,False) return "prophecy.htm" elif event == "powind" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4394,1),False,False) return "prophecy.htm" elif event == "mentalshield" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False) return "resistance.htm" elif event == "berserk" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False) return "etc.htm" elif event == "bodybless" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False) return "etc.htm" elif event == "soulbless" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False) return "etc.htm" elif event == "shield" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False) return "etc.htm" elif event == "magicbarrier" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False) return "etc.htm" elif event == "agility" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4391,1),False,False) return "etc.htm" elif event == "blessshield" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False) return "etc.htm" elif event == "decreaseweight" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False) return "etc.htm" elif event == "windwalk" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False) return "etc.htm" elif event == "songofearth" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6001,1),False,False) return "songs.htm" elif event == "songoflife" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6002,1),False,False) return "songs.htm" elif event == "songofwater" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6003,1),False,False) return "songs.htm" elif event == "songofwarding" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6004,1),False,False) return "songs.htm" elif event == "songofwind" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6005,1),False,False) return "songs.htm" elif event == "songofhunter" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6006,1),False,False) return "songs.htm" elif event == "songofinvocation" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6007,1),False,False) return "songs.htm" elif event == "danceofwarrior" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6008,1),False,False) return "dances.htm" elif event == "danceofinspiration" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6009,1),False,False) return "dances.htm" elif event == "danceofmystic" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6010,1),False,False) return "dances.htm" elif event == "danceoffire" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6011,1),False,False) return "dances.htm" elif event == "danceoffury" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6012,1),False,False) return "dances.htm" elif event == "danceofconcentration" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6013,1),False,False) return "dances.htm" elif event == "danceoflight" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6014,1),False,False) return "dances.htm" elif event == "songofvitality" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6015,1),False,False) return "songs.htm" elif event == "songofvengeance" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6016,1),False,False) return "songs.htm" elif event == "danceofvampire" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6017,1),False,False) return "dances.htm" elif event == "songofchampion" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6018,1),False,False) return "songs.htm" elif event == "danceofsiren" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6019,1),False,False) return "dances.htm" elif event == "chantofflame" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6020,3),False,False) return "chants.htm" elif event == "powerofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6021,3),False,False) return "chants.htm" elif event == "wisdomofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6022,3),False,False) return "chants.htm" elif event == "blessingofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6023,3),False,False) return "chants.htm" elif event == "chantoffire" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6024,3),False,False) return "chants.htm" elif event == "chantofbattle" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6025,3),False,False) return "chants.htm" elif event == "gloryofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6026,3),False,False) return "chants.htm" elif event == "chantofshielding" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6027,3),False,False) return "chants.htm" elif event == "sightofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6028,3),False,False) return "chants.htm" elif event == "shieldofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6029,3),False,False) return "chants.htm" elif event == "chantoffury" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6030,2),False,False) return "chants.htm" elif event == "chantofevasion" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6031,3),False,False) return "chants.htm" elif event == "chantofrage" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6032,3),False,False) return "chants.htm" elif event == "tactofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6033,3),False,False) return "chants.htm" elif event == "rageofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6034,2),False,False) return "chants.htm" elif event == "speedofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6035,2),False,False) return "chants.htm" elif event == "chantofrevenge" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6036,3),False,False) return "chants.htm" elif event == "chantofpredator" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6038,3),False,False) return "chants.htm" elif event == "chantofeagle" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6039,3),False,False) return "chants.htm" elif event == "chantofvampire" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6040,4),False,False) return "chants.htm" elif event == "chantofvictory" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6041,1),False,False) return "chants.htm" elif event == "chantofspirit" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6042,1),False,False) return "chants.htm" elif event == "eyeofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6043,1),False,False) return "chants.htm" elif event == "soulofpaagrio" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6044,1),False,False) return "chants.htm" elif event == "songofflameguard" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6045,1),False,False) return "songs.htm" elif event == "danceofaquaguard" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6046,1),False,False) return "dances.htm" elif event == "songofstormguard" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6047,1),False,False) return "songs.htm" elif event == "danceofearthguard" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6048,1),False,False) return "dances.htm" elif event == "songofmeditation" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6049,1),False,False) return "songs.htm" elif event == "songofrenewal" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6050,1),False,False) return "songs.htm" elif event == "danceofprotection" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6051,1),False,False) return "dances.htm" elif event == "arcaneprotection" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6052,1),False,False) return "etc.htm" elif event == "divineprotection" : applyTax(st) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(6053,1),False,False) return "etc.htm" def onTalk (self,npc,st): if st.getPlayer().getLevel() <= 40 : return "1.htm" else : clan = st.getPlayer().getClan() if clan : if clan.getHasCastle() > 0 : return "1.htm" elif st.getQuestItemsCount(AAID) >= BUFFPRICE : return "1.htm" else : if st.getQuestItemsCount(AAID) >= BUFFPRICE : return "1.htm" else : st.exitQuest(1) return "2.htm" QUEST = Quest(1200, "npcbuff", "NPC BUFFS") CREATED = State('Start', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(BUFFERNPCID) CREATED.addTalkId(BUFFERNPCID)