# Special Christmas Event by Fulminus print "importing quests: 9998: XmasEvent" import sys 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 # event items XMAS_STAR = 5556 XMAS_BEAD = 5557 XMAS_BRANCH = 5558 XMAS_FLOWER = 5559 TOKEN_OF_LOVE = 5555 XMAS_TREE = 5560 XMAS_SPECIAL_TREE = 5561 #rewards CHRONO_CAMPANA = 5817 VARNISH_PURITY = 1887 SYNTHETIC_COKES = 1888 CRAFTED_LEATHER = 1894 METALIC_FIBER = 1895 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) : htmltext = event if event=="1" : htmltext = "rewards.htm" elif event=="2" : if st.getQuestItemsCount(CHRONO_CAMPANA) == 0 : st.giveItems(CHRONO_CAMPANA,1) htmltext = "chrono.htm" elif event=="3" : htmltext = "gremlins.htm" elif event=="4" : varnish=0 sCokes=0 cLeather=0 mFiber=0 for i in range(1, st.getQuestItemsCount(XMAS_BEAD)) : mFiber = mFiber + st.getRandom(4)+2 for i in range(1, st.getQuestItemsCount(XMAS_STAR)) : varnish = varnish + st.getRandom(4)+2 for i in range(1, st.getQuestItemsCount(XMAS_BRANCH)) : cLeather = cLeather + st.getRandom(4)+2 for i in range(1, st.getQuestItemsCount(XMAS_FLOWER)) : mFiber = mFiber + st.getRandom(4)+2 varnish = varnish + st.getRandom(4)+2 for i in range(1, st.getQuestItemsCount(TOKEN_OF_LOVE)) : sCokes = sCokes + st.getRandom(4)+2 cLeather = cLeather + st.getRandom(4)+2 for i in range(1, st.getQuestItemsCount(XMAS_TREE)) : varnish = varnish + st.getRandom(4)+2 cLeather = cLeather + st.getRandom(4)+2 mFiber = mFiber + st.getRandom(4)+2 for i in range(1, st.getQuestItemsCount(XMAS_SPECIAL_TREE)) : varnish = varnish + st.getRandom(4)+2 cLeather = cLeather + st.getRandom(4)+2 mFiber = mFiber + st.getRandom(4)+2 sCokes = sCokes + st.getRandom(4)+2 if varnish > 0 : st.giveItems(VARNISH_PURITY, varnish) if cLeather > 0: st.giveItems(CRAFTED_LEATHER, varnish) if mFiber > 0: st.giveItems(METALIC_FIBER, varnish) if sCokes > 0: st.giveItems(SYNTHETIC_COKES, varnish) st.takeItems(XMAS_BEAD, st.getQuestItemsCount(XMAS_BEAD)) st.takeItems(XMAS_STAR, st.getQuestItemsCount(XMAS_STAR)) st.takeItems(XMAS_BRANCH, st.getQuestItemsCount(XMAS_BRANCH)) st.takeItems(XMAS_FLOWER, st.getQuestItemsCount(XMAS_FLOWER)) st.takeItems(TOKEN_OF_LOVE, st.getQuestItemsCount(TOKEN_OF_LOVE)) st.takeItems(XMAS_TREE, st.getQuestItemsCount(XMAS_TREE)) st.takeItems(XMAS_SPECIAL_TREE, st.getQuestItemsCount(XMAS_SPECIAL_TREE)) htmltext = "Hohoho! Merry Christmas!!" return htmltext def onTalk (self,npc,st): npcId = npc.getNpcId() htmltext = "Hohoho! Merry Christmas!!" id = st.getState() if id == CREATED : st.setState(STARTING) st.set("cond","0") st.set("onlyone","0") st.set("id","0") if st.getQuestItemsCount(CHRONO_CAMPANA)== 0 : st.giveItems(CHRONO_CAMPANA,1) htmltext = "main.htm" return htmltext def onKill (self,npc,st): npcId = npc.getNpcId() if npcId == 1 : if st.getPlayer().getActiveWeaponItem().getItemId() == CHRONO_CAMPANA : soundPlayed = 0 if st.getRandom(100) < 15 : st.giveItems(XMAS_BEAD,1) st.playSound("ItemSound.quest_itemget") soundPlayed = 1 if st.getRandom(100) < 10 : st.giveItems(XMAS_STAR,1) if soundPlayed==0 : st.playSound("ItemSound.quest_itemget") soundPlayed = 1 if st.getRandom(100) < 7 : st.giveItems(XMAS_BRANCH,1) if soundPlayed==0 : st.playSound("ItemSound.quest_itemget") soundPlayed = 1 if st.getRandom(100) < 5 : st.giveItems(XMAS_FLOWER,1) if soundPlayed==0 : st.playSound("ItemSound.quest_itemget") soundPlayed = 1 if st.getRandom(100) < 3 : st.giveItems(TOKEN_OF_LOVE,1) if soundPlayed==0 : st.playSound("ItemSound.quest_itemget") soundPlayed = 1 if st.getRandom(100) < 1 : st.giveItems(XMAS_TREE,1) if soundPlayed==0 : st.playSound("ItemSound.quest_itemget") soundPlayed = 1 if st.getRandom(1000) < 8 : st.giveItems(XMAS_SPECIAL_TREE,1) if soundPlayed==0 : st.playSound("ItemSound.quest_itemget") soundPlayed = 1 return QUEST = Quest(9998,"9998_XmasEvent","Custom") CREATED = State('Start', QUEST) STARTING = State('Starting', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(12617) QUEST.addStartNpc(12618) QUEST.addStartNpc(7469) STARTING.addTalkId(12617) STARTING.addTalkId(12618) STARTED.addTalkId(12617) STARTED.addTalkId(12618) STARTING.addKillId(1)