rendered paste body# 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 = "<html><head><body>Hohoho! Merry Christmas!!</body></html>"
return htmltext
def onTalk (self,npc,st):
npcId = npc.getNpcId()
htmltext = "<html><head><body>Hohoho! Merry Christmas!!</body></html>"
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)