Code: Select all
import sysfrom com.l2jserver.gameserver.network.serverpackets import CreatureSayfrom java.lang import Systemfrom com.l2jserver.gameserver.model.base import Experiencefrom com.l2jserver.gameserver.model.quest import Statefrom com.l2jserver.gameserver.model.quest import QuestStatefrom com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuestfrom com.l2jserver.gameserver.model.actor.instance import L2PcInstance ##VariablesQuestName = "36601_Delevel"ADENA = 57COST1 = 10000 ##cost per level, price=10k*charlvlCOST2 = 10000 ##cost per vitality level, price=10k*vitlvlNpcId = 36601QuestId = 36601MINLEVEL = 20MAXKARMA = 0 ## 0=don't allow karma, more=max value class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onAdvEvent(self,event,npc,player): st = player.getQuestState(QuestName) if not st: return htmltext = event PRICE1 = COST1*player.getLevel() PRICE2 = COST2*player.getVitalityLevel() VITALITY = player.getVitalityPoints() if event == "1" : if st.getQuestItemsCount(ADENA) < PRICE1 : player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Sorry, "+player.getName()+", You don't have enough money!")) return "" elif st.getPlayer().getLevel() < MINLEVEL : player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Sorry, "+player.getName()+", Your level is too low!")) return "2.htm" elif st.getPlayer().getKarma() > MAXKARMA : player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager", "I don't offer my services to Karma players!")) return "" else: st.takeItems(ADENA,PRICE1) player.getStat().removeExpAndSp((st.getPlayer().getExp() - Experience.LEVEL[st.getPlayer().getStat().getLevel() - 1]),0) player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager", "Congratulations, "+player.getName()+", Your level has been decreased!")) st.setState(State.COMPLETED) st.exitQuest(1) htmltext = st.showHtmlFile("1.htm").replace("MINLEVEL", str(MINLEVEL)) htmltext = htmltext.replace("MAXKARMA", str(MAXKARMA)) htmltext = htmltext.replace("LVEL", str(player.getLevel())) htmltext = htmltext.replace("PRICE1", str(COST1*player.getLevel())) htmltext = htmltext.replace("VITLVL", str(player.getVitalityLevel())) htmltext = htmltext.replace("PRICE2", str(COST2*player.getVitalityLevel())) return htmltext if htmltext != event: st.setState(State.COMPLETED) st.exitQuest(1) elif event =="2" : if st.getQuestItemsCount(ADENA) < PRICE2 : player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Sorry, "+player.getName()+", You don't have enough money!")) return "" elif st.getPlayer().getLevel() < MINLEVEL : player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Sorry, "+player.getName()+", Your level is too low!")) return "2.htm" elif st.getPlayer().getKarma() > MAXKARMA : player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager", "I don't offer my services to Karma players!")) return "" elif VITALITY<240 : player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Sorry, "+player.getName()+", Your Vitality level is too low!")) return "" elif 20000>=VITALITY>17000 : st.takeItems(ADENA,PRICE2) player.setVitalityPoints(13001,1) player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Congratulations, "+player.getName()+", Your Vitality has been decreased!")) return "" elif 17000>VITALITY>13000 : st.takeItems(ADENA,PRICE2) player.setVitalityPoints(2001,1) player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Congratulations, "+player.getName()+", Your Vitality has been decreased!")) return "" elif 13000>VITALITY>2000 : st.takeItems(ADENA,PRICE2) player.setVitalityPoints(241,1) player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Congratulations, "+player.getName()+", Your Vitality has been decreased!")) return "" elif 2000>VITALITY>240 : st.takeItems(ADENA,PRICE2) player.setVitalityPoints(1,1) player.sendPacket(CreatureSay(npc.getObjectId(),0,"Delevel Manager","Congratulations, "+player.getName()+", Your Vitality has been decreased!")) return "" return htmltext def onTalk (self,npc,player): st = player.getQuestState(QuestName) if (player.getLevel())<20 : return "2.htm" else: st.setState(State.STARTED) htmltext = st.showHtmlFile("1.htm").replace("MINLEVEL", str(MINLEVEL)) htmltext = htmltext.replace("MAXKARMA", str(MAXKARMA)) htmltext = htmltext.replace("LVEL", str(player.getLevel())) htmltext = htmltext.replace("PRICE1", str(COST1*player.getLevel())) htmltext = htmltext.replace("VITLVL", str(player.getVitalityLevel())) htmltext = htmltext.replace("PRICE2", str(COST2*player.getVitalityLevel())) return htmltext QUEST = Quest(QuestId,QuestName,"custom")QUEST.addStartNpc(NpcId)QUEST.addTalkId(NpcId) print " "print "=================================="print "Delevel Manager Successfuly Loaded"print "=================================="print " "