rendered paste body# Christmas quest made by eyerobot
# Run the following query
# REPLACE INTO `npc` VALUES ('13006', '13006', 'Christmas Tree', '1', 'Christmas Event', '1', 'Deco.x_mas_tree', '24.00', '40.00', '40', 'male', 'L2Monster', '40', '9000', '1493', '11.85', '2.78', '40', '43', '30', '21', '20', '10', '0', '0', '5', '470', '5', '470', '278', '500', '333', '0', '0', '0', '33', '132', null, '0', '0', '0', 'LAST_HIT');
import sys
from net.sf.l2j.gameserver.datatables import EventDroplist
from net.sf.l2j.gameserver import Announcements
from net.sf.l2j.gameserver.script import DateRange
from java.util import GregorianCalendar
from java.util import Iterator
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
qn = "998_xmas"
NPCID = 31863 # santa trainee - Spawn them where you like
temp1 = GregorianCalendar(2007,11,22) #From dec 22 2007
StartDate = temp1.getTime()
temp1.set(2008,0,1) #To jan 1 2008
EndDate = temp1.getTime()
EventDates = DateRange(StartDate, EndDate)
DropsCommon = [5557, 5558] # gule, vetvicky - bezne moby
DropsMed = [5556, 5583, 5584, 5585, 5586, 5587] # hviezda a echo krystaly - bezne moby
DropsRare = [5562, 5563, 5564, 5565, 5566, 5559] # kvetinac - bezne moby
count = [1,1]
chanceCommon = 100000
chanceMed = 20000
chanceRare = 10000
EventDroplist.getInstance().addGlobalDrop(DropsCommon, count, chanceCommon, EventDates)
EventDroplist.getInstance().addGlobalDrop(DropsMed, count, chanceMed, EventDates)
EventDroplist.getInstance().addGlobalDrop(DropsRare, count, chanceRare, EventDates)
Announcements.getInstance().addEventAnnouncement(EventDates,['Stastne a vesele Vianoce! Navstivte pomocnika Santa Clausa'])
REWARD1 = 1463 #Soulshot D grade - drop zo stromceka co musi najprv hrac zlozit
REWARD2 = 1464 #Soulshot C grade - drop zo stromceka co musi najprv hrac zlozit
REWARD3 = 1465 #Soulshot B grade - drop zo stromceka co musi najprv hrac zlozit
REWARD4 = 3948 #B Spiritshot D grade - drop zo stromceka co musi najprv hrac zlozit
REWARD5 = 3949 #B Spiritshot C grade - drop zo stromceka co musi najprv hrac zlozit
REWARD6 = 3950 #B Spiritshot B grade - drop zo stromceka co musi najprv hrac zlozit
REWARD7 = 6403 #Star Shard - drop zo stromceka co musi najprv hrac zlozit
REWARD8 = 6406 #Firework - drop zo stromceka co musi najprv hrac zlozit
REWARD9 = 6407 #Large Firework - drop zo stromceka co musi najprv hrac zlozit
REWARD10 = 5234 #Mystery Potion - drop zo stromceka co musi najprv hrac zlozit
REWARD_AMOUNT1 = 1000
REWARD_AMOUNT2 = 750
REWARD_AMOUNT3 = 500
REWARD_AMOUNT4 = 500
REWARD_AMOUNT5 = 250
REWARD_AMOUNT6 = 100
REWARD_AMOUNT7 = 75
REWARD_AMOUNT8 = 50
REWARD_AMOUNT9 = 25
REWARD_AMOUNT10 = 5
REWARD_DROP_CHANCE = 75
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
htmltext = "<html><head><body>Stastne a vesele Vianoce !<br>Dones mi 1 hviezdu, 10 guli, 15 vetviciek, 1 kvetinac a urobim ti tvoj vlastny vianocny stromcek.</body></html>"
if npcId == 31863 :
if st.getQuestItemsCount(5556) >= 1 and st.getQuestItemsCount(5557) >= 10 and st.getQuestItemsCount(5558) >= 15 and st.getQuestItemsCount(5559) >= 1 :
st.giveItems(5560,1) # christmas tree item
st.takeItems(5556,1)
st.takeItems(5557,10)
st.takeItems(5558,15)
st.takeItems(5559,1)
htmltext = "<html><head><body></body>Gratulujem ti k stromceku a prajem ti vela stastia! Co s nim mas robit urcite vies.</html>"
st.setState(STARTED)
return htmltext
return htmltext
def onKill(self,npc,player,isPet):
st = player.getQuestState(qn)
if not st : return
if st.getState() != STARTED : return
if st.getRandom(100) <= REWARD_DROP_CHANCE :
rr = st.getRandom(9)
if rr == 0 : #randomize the drop reward
st.giveItems(REWARD1,REWARD_AMOUNT1)
st.playSound("ItemSound.quest_itemget")
elif rr == 1 :
st.giveItems(REWARD2,REWARD_AMOUNT2)
st.playSound("ItemSound.quest_itemget")
elif rr == 2 :
st.giveItems(REWARD3,REWARD_AMOUNT3)
st.playSound("ItemSound.quest_itemget")
elif rr == 3 :
st.giveItems(REWARD4,REWARD_AMOUNT4)
st.playSound("ItemSound.quest_itemget")
elif rr == 4 :
st.giveItems(REWARD5,REWARD_AMOUNT5)
st.playSound("ItemSound.quest_itemget")
elif rr == 5 :
st.giveItems(REWARD6,REWARD_AMOUNT6)
st.playSound("ItemSound.quest_itemget")
elif rr == 6 :
st.giveItems(REWARD7,REWARD_AMOUNT7)
st.playSound("ItemSound.quest_itemget")
elif rr == 7 :
st.giveItems(REWARD8,REWARD_AMOUNT8)
st.playSound("ItemSound.quest_itemget")
elif rr == 8 :
st.giveItems(REWARD9,REWARD_AMOUNT9)
st.playSound("ItemSound.quest_itemget")
elif rr == 9 :
st.giveItems(REWARD10,REWARD_AMOUNT10)
st.playSound("ItemSound.quest_itemget")
QUEST = Quest(998,qn,"xmas")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPCID)
QUEST.addTalkId(NPCID)
for mobId in [13006]: #christmas tree
QUEST.addKillId(mobId)
print "imported quest: 998: xmas"