All pastes #25848 Raw Edit

DraX

public text v1 · immutable
#25848 ·published 2005-10-18 14:33 UTC
rendered paste body
#
# Created by DraX on 2005.10.13
# NOTE: This is ONLY for Testing!
#

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

# Quest Npc´s
SIR_KRISTOF_RODEMAI  = 7756
STATUE_OF_OFFERING   = 7757
WITCH_ATHREA         = 7758
WITCH_KALIS          = 7759

# Quest Item´s
HERB_OF_HARIT_ID     = 3832
HERB_OF_VANOR_ID     = 3833
HERB_OF_OEL_MAHUM_ID = 3834
BLOOD_OF_EVA_ID      = 3835
ATHREAS_COIN_ID      = 3836
SYMBOL_OF_LOYALTY_ID = 3837

class Quest (JQuest) :

 def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

 def onEvent (self,event,st):

   htmltext = event

   if event == "7756-02.htm": htmltext = "7756-02.htm"

   elif event == "7756-04.htm":
     st.setState(COMPLETED)
     st.exitQuest(1)
     htmltext = "7756-04.htm"

   elif event == "7756-03.htm":
     st.setState(PART2)
     st.set("cond","1")
     st.playSound("ItemSound.quest_accept")
     htmltext = "7756-03.htm"



   elif event == "7759-02.htm": htmltext = "7759-02.htm"

   elif event == "7759-03.htm":
     st.setState(PART3)
     st.set("cond","2")
     htmltext = "7759-03.htm"

   elif event == "7759-04.htm": htmltext = "7759-04.htm"

   elif event == "7759-07.htm":
     st.setState(PART4)
     st.set("cond","3")
     #
     # cast poisen effect on clanleader //TODO
     #
     # reduce clanleaders HP with 50hp/sec
     # clanleader should not walkable at this point
     # 
     htmltext = "7759-07.htm"

   return htmltext

 def onTalk (Self,npcId,st):

   if npcId == SIR_KRISTOF_RODEMAI:
     if st.getPlayer().getClan() == None or st.getPlayer().isClanLeader() == 0:
       st.exitQuest(1) 
       return "7756-10.htm"
     else:
       if st.getPlayer().getClan().getLevel() <= 2: # clanlevel is under 3!
         st.exitQuest(1)
         return "7756-08.htm"
       elif st.getPlayer().getClan().getLevel() >= 4: # clanlevel is too high!
         st.exitQuest(1)
         return "7756-09.htm"
       elif st.getState() == PART2 or st.getState() == PART3: # talk to witch kalis, and not me!
         return "7756-back_without_.htm"
       else: # all ok, lets start.
         st.setState(STARTED)
         st.set("cond","0")
         return "7756-01.htm"




   if npcId == WITCH_KALIS:
     st.getPlayer.addSkill(7029)
     if st.getPlayer().getClan() == None: # player is not in a clan right now!
       st.exitQuest(1)
       return "no_quest.htm"
     else:
       if st.getPlayer().isClanLeader() == 1: # player is clanleader!
         if st.getState() == PART2: # part1 are already done.
           return "7759-01.htm"
         elif st.getState() == PART3:
           if (items in inventory) == 1:
             return "7759-06.htm" #back with symbols  
           else:
             return "fehlt was" 
         elif st.getState() == PART4:
           if st.getQuestItemsCount(HERB_OF_HARIT_ID) == 0 or st.getQuestItemsCount(HERB_OF_VANOR_ID) == 0 or st.getQuestItemsCount(HERB_OF_OEL_MAHUM_ID) == 0 or st.getQuestItemsCount(BLOOD_OF_EVA_ID) == 0:
             return "7759-10.htm" #back without ingredients and blood of eva
           #elif clanleader died ... (we should test, if poisen effect there!)
           #  st.setState(PART3)
           #  st.set("cond","2")
           #  return "7759-09.htm"
           else:
             #
             # disable poisen effect on clanleader //TODO
             #
             # clanleader should normal walk at this point
             # 
             #st.giveItems(XXX,1)
             return "7759-08.htm"  
         else: # clanleader must talk to sir_kristof_rodemai before!
           st.exitQuest(1)
           return "no_quest.htm"





   if npcId == STATUE_OF_OFFERING:
     if st.getPlayer().getClan() == None: # player is not in a clan right now!
       st.exitQuest(1)
       return "7757-06.htm"
     else: # player is in a clan.
       if st.getPlayer().isClanLeader() == 1: # player is clanleader!
         if st.getState() == PART3:           # part2 are already done.
           return "7757-only_clan_mates.htm"
         else:
           st.exitQuest(1)
           return "no_quest.htm"
       else: # player is in a clan but no clanleader!
         if st.getPlayer().getLevel() <= 39: # player is too low, to give his live
           st.exitQuest(1)
           return "7757-02.htm"
         else:
           return #fake for now



QUEST       = Quest(501,"501_ProofOfClanAlliance","Proof Of Clan Alliance")
CREATED     = State('Start',     QUEST)
STARTED     = State('Started',   QUEST)
PART2       = State('Part2',     QUEST)
PART3       = State('Part3',     QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(SIR_KRISTOF_RODEMAI)
QUEST.addStartNpc(WITCH_KALIS)
QUEST.addStartNpc(STATUE_OF_OFFERING)

STARTED.addTalkId(SIR_KRISTOF_RODEMAI)
STARTED.addTalkId(WITCH_KALIS)
STARTED.addTalkId(STATUE_OF_OFFERING)

PART3.addQuestDrop(STATUE_OF_OFFERING,SYMBOL_OF_LOYALTY_ID,1)

print "importing TEST: 501 ProofOfClanAlliance ...done"