def __init__(self, id, name, descr):
     JQuest.__init__(self, id, name, descr)
     # All of these are overridden in the subclasses
     self.NPC = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
     self.Items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
     self.Mob = [0, 1, 2]
     self.classid = 0
     self.prevclass = 0
     self.qn = "SagasSuperclass"
     self.X = [0, 1, 2]
     self.Y = [0, 1, 2]
     self.Z = [0, 1, 2]
     self.Text = [
         0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
     ]
     self.Spawn_List = []
     #all these are not overridden by the subclasses (either cause they are constant or used only for this script)
     self.CREATED = State('Start', self)
     self.STARTED = State('Started', self)
     self.COMPLETED = State('Completed', self)
Esempio n. 2
0
 def __init__(self,id,name,descr):
     JQuest.__init__(self,id,name,descr)
     # All of these are overridden in the subclasses
     self.NPC = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
     self.Items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
     self.Mob = [0, 1, 2]
     self.classid = 0
     self.prevclass = 0
     self.qn = "SagasSuperclass"
     self.X = [0, 1, 2]
     self.Y = [0, 1, 2]
     self.Z = [0, 1, 2]
     self.Text = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
     self.Spawn_List = []
     #all these are not overridden by the subclasses (either cause they are constant or used only for this script)
     self.CREATED     = State('Start', self)
     self.STARTED     = State('Started', self)
     self.COMPLETED   = State('Completed', self)
Esempio n. 3
0
       elif npcId == 30143 :
          if st.getQuestItemsCount(UNDRES_LETTER_ID) :
             if not st.getQuestItemsCount(GARMIELS_SCRIPTURE_ID) :
                st.giveItems(GARMIELS_SCRIPTURE_ID,1)
                htmltext = "30143-01.htm"
             else :
                htmltext = "30143-02.htm"
       if st.getQuestItemsCount(UNDRES_LETTER_ID) and (st.getQuestItemsCount(CEREMONIAL_DAGGER_ID) + st.getQuestItemsCount(DREVIANT_WINE_ID) + st.getQuestItemsCount(GARMIELS_SCRIPTURE_ID) >= 3) :
         st.set("cond","2")
         st.playSound("ItemSound.quest_middle")
   return htmltext

QUEST       = Quest(166,qn,"Dark Mass")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30130)

QUEST.addTalkId(30130)

QUEST.addTalkId(30135)
QUEST.addTalkId(30139)
QUEST.addTalkId(30143)

STARTED.addQuestDrop(30135,CEREMONIAL_DAGGER_ID,1)
STARTED.addQuestDrop(30139,DREVIANT_WINE_ID,1)
STARTED.addQuestDrop(30143,GARMIELS_SCRIPTURE_ID,1)
Esempio n. 4
0
         elif ItemsCount_BP > 0 : 
           htmltext = "30048-10.htm" 
           st.takeItems(BAULS_POTION,-1) 
           st.giveItems(NECKLACE,1) 
           st.addExpAndSp(5672,446)
           st.set("cond","0") 
           st.set("onlyone","1") 
           st.setState(COMPLETED)
           st.playSound("ItemSound.quest_finish") 
         else: 
           htmltext = "30048-07.htm" 
   return htmltext

QUEST     = Quest(1,qn,"Letters of Love") 
CREATED   = State('Start',     QUEST) 
STARTING  = State('Starting',  QUEST) 
STARTED   = State('Started',   QUEST) 
COMPLETED = State('Completed', QUEST) 

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(DARIN) 

QUEST.addTalkId(DARIN) 

QUEST.addTalkId(ROXXY) 
QUEST.addTalkId(BAULRO) 

STARTED.addQuestDrop(DARIN,DARINGS_LETTER,1) 
STARTED.addQuestDrop(DARIN,RAPUNZELS_KERCHIEF,1) 
STARTED.addQuestDrop(DARIN,DARINGS_RECEIPT,1) 
STARTED.addQuestDrop(DARIN,BAULS_POTION,1) 
Esempio n. 5
0
            partyMember = self.getRandomPartyMember(player, "14")
            if partyMember:
                st = partyMember.getQuestState(qn)
                chance = st.getRandom(100)
                if CRIMSON_MOSS_CHANCE >= chance and st.getQuestItemsCount(
                        CRIMSON_MOSS) < 5:
                    st.giveItems(CRIMSON_MOSS, 1)
                    st.playSound("ItemSound.quest_itemget")
                    if st.getQuestItemsCount(CRIMSON_MOSS) == 5:
                        st.set("cond", "15")
                        st.playSound("ItemSound.quest_middle")
        return


QUEST = Quest(241, qn, "Possessor Of A Precious Soul - 1")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(TALIEN)
QUEST.addTalkId(TALIEN)

QUEST.addTalkId(STEDMIEL)
QUEST.addTalkId(GABRIELLE)
QUEST.addTalkId(GILMORE)
QUEST.addTalkId(KANTABILON)
QUEST.addTalkId(NOEL)
QUEST.addTalkId(RAHORAKTI)
QUEST.addTalkId(CARADINE)
QUEST.addTalkId(VIRGIL)
Esempio n. 6
0
    def onKill(self, npc, player, isPet):
        partyMember = self.getRandomPartyMemberState(player, STARTED)
        if not partyMember: return
        st = partyMember.getQuestState(qn)
        chance = CHANCE[npc.getNpcId()] * Config.RATE_DROP_QUEST
        numItems, chance = divmod(chance, MAX)
        if st.getRandom(MAX) < chance:
            numItems = numItems + 1
        if numItems != 0:
            st.giveItems(ANCIENT_SCROLL, int(numItems))
            st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(385, qn, "Yoke of the Past")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)

for npcId in range(31095, 31126):
    if npcId in [31111, 31112, 31113]:
        continue
    QUEST.addTalkId(npcId)
    QUEST.addStartNpc(npcId)

for mobs in range(21208, 21256):
    QUEST.addKillId(mobs)

STARTED.addQuestDrop(20986, ANCIENT_SCROLL, 1)
Esempio n. 7
0
              else :
                  htmltext = "31370-05.htm"
          #else:
              #htmltext="<html><body>This quest has already been completed</body></html>"
    return htmltext

 def onKill(self,npc,player,isPet):
    partyMembers = [player]
    party = player.getParty()
    if party :
       partyMembers = party.getPartyMembers().toArray()
       for member in partyMembers :
           pst = member.getQuestState(qn)
           if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, member, True) :
              giveReward(pst,npc)
    else :
       pst = player.getQuestState(qn)
       if pst :
          giveReward(pst,npc)
    return

QUEST       = Quest(607,qn,"Prove Your Courage!")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(Kadun)
QUEST.addTalkId(Kadun)

STARTED.addQuestDrop(Shadith,Shadith_Head,1)
QUEST.addKillId(Shadith)
Esempio n. 8
0
   return htmltext

 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return 
   
   count = st.getQuestItemsCount(BRACELET)
   cond = st.getInt("cond")
   if st.getRandom(100) < CHANCE + ((npc.getNpcId() - 20579)*5) and count < 60 and cond == 1:
     st.giveItems(BRACELET,1)
     if count == 59 :
        st.playSound("ItemSound.quest_middle")
        st.set("cond","2")
     else :
        st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(300,qn,"Hunting Leto Lizardman")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(RATH)

QUEST.addTalkId(RATH)

for mob in range(20577,20581)+[20582] :
    QUEST.addKillId(mob)

STARTED.addQuestDrop(RATH,BRACELET,1)
Esempio n. 9
0
     if not hair :
       htmltext = "30111-3.htm"
     else :
       st.giveItems(ADENA,12070+500*hair)
       st.takeItems(HAIR,-1)
       htmltext = "30111-4.htm"
   return htmltext

 def onKill(self,npc,player,isPet):
   partyMember = self.getRandomPartyMemberState(player,STARTED)
   if not partyMember : return
   st = partyMember.getQuestState(qn)
   
   if st.getRandom(100) < CHANCE + ((npc.getNpcId() - 20985) * 2) :
     st.giveItems(HAIR,1)
     st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(366,qn,"Silver Haired Shaman")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(DIETER)

QUEST.addTalkId(DIETER)

for mob in range(20986,20989) :
    QUEST.addKillId(mob)

STARTED.addQuestDrop(DIETER,HAIR,1)
Esempio n. 10
0
                if n < 72:
                    st.giveItems(MONSTER_EYE_CARCASS, 1)
                else:
                    st.giveItems(MONSTER_EYE_LENS, 1)
        elif npcId == 20070:
            if n < 50:
                st.giveItems(BASILISK_GIZZARD, 1)
                st.playSound("ItemSound.quest_itemget")
        elif npcId == 20072:
            if n < 53:
                st.giveItems(BASILISK_GIZZARD, 1)
                st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(328, qn, "Sense For Business")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(30436)
QUEST.addTalkId(30436)

for i in [20055, 20059, 20067, 20068, 20070, 20072]:
    QUEST.addKillId(i)

STARTED.addQuestDrop(20055, MONSTER_EYE_CARCASS, 1)
STARTED.addQuestDrop(20055, MONSTER_EYE_LENS, 1)
STARTED.addQuestDrop(20070, BASILISK_GIZZARD, 1)
Esempio n. 11
0
            if count == maxcount - 1:
                st.playSound("Itemsound.quest_middle")
                itemcount = 0
                for id in [
                        WEIRD_BEES_NEEDLE, MARSH_SPIDERS_WEB, BLOOD_OF_LEECH
                ]:
                    itemcount += st.getQuestItemsCount(id)
                if npcId == 27133 or itemcount > 29:
                    st.set("progress", str(progress + 1))
            else:
                st.playSound("Itemsound.quest_itemget")
        return


QUEST = Quest(231, qn, "Test Of Maestro")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30531)

QUEST.addTalkId(30531)

for npcId in [30532, 30533, 30535, 30536, 30556, 30671, 30672, 30673, 30675]:
    QUEST.addTalkId(npcId)

for mobId in [20225, 20229, 20233, 27133]:
    QUEST.addKillId(mobId)
Esempio n. 12
0
            qty = 0
            for i in DROP[npcId]:
                if i[0] <= chance < i[1]:
                    qty = i[2]
            if qty:
                if count + qty > 50:
                    qty = 50 - count
                if count + qty == 50:
                    st.playSound("ItemSound.quest_middle")
                    st.set("cond", "2")
                else:
                    st.playSound("ItemSound.quest_itemget")
                st.giveItems(WOLF_CLAW, qty)
        return


QUEST = Quest(264, qn, "Keen Claws")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30136)

QUEST.addTalkId(30136)

QUEST.addKillId(20003)
QUEST.addKillId(20456)

STARTED.addQuestDrop(20003, WOLF_CLAW, 1)
Esempio n. 13
0
        st.playSound("ItemSound.quest_itemget")
        if st.getRandom(100) < chance:
            n = st.getRandom(100)
            if n < 25:
                st.giveItems(CLAY_URN_FRAGMENT, 1)
            elif n < 50:
                st.giveItems(BRASS_TRINKET_PIECE, 1)
            elif n < 75:
                st.giveItems(BRONZE_MIRROR_PIECE, 1)
            else:
                st.giveItems(JADE_NECKLACE_BEAD, 1)
        return


QUEST = Quest(327, qn, "Reclaim The Land")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30597)

QUEST.addTalkId(30597)

QUEST.addTalkId(30034)
QUEST.addTalkId(30313)
QUEST.addTalkId(30597)

for i in range(20495, 20502):
    QUEST.addKillId(i)
Esempio n. 14
0
   if st :
      if st.getState() == STARTED :
         count = st.getQuestItemsCount(ORC_GOODS)
         if st.getInt("cond") == 1 and count < 120 :
            chance = DROP_CHANCE * Config.RATE_DROP_QUEST
            numItems, chance = divmod(chance,100)
            if st.getRandom(100) < chance : 
               numItems += 1
            if numItems :
               if count + numItems >= 120 :
                  numItems = 120 - count
                  st.playSound("ItemSound.quest_middle")
                  st.set("cond","2")
               else:
                  st.playSound("ItemSound.quest_itemget")   
               st.giveItems(ORC_GOODS,int(numItems))       
   return


QUEST       = Quest(644, qn, "Grave Robber Annihilation")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(KARUDA)
QUEST.addTalkId(KARUDA) 

for i in MOBS :
  QUEST.addKillId(i)

STARTED.addQuestDrop(KARUDA,ORC_GOODS,1)
Esempio n. 15
0
     if st.getQuestItemsCount(AMBER_BEAD_ID) < 70 :
      if st.getRandom(100) < 50 and player.getClassId().getId() == 0x36: #and IsSpoiled() == 1 :
        st.giveItems(AMBER_BEAD_ID,1)
        st.playSound("Itemsound.quest_itemget")
      if st.getRandom(100) < 50 :
        if st.getQuestItemsCount(AMBER_BEAD_ID) < 69 :
          st.giveItems(AMBER_BEAD_ID,1)
          st.playSound("Itemsound.quest_itemget")
        else:
          st.giveItems(AMBER_BEAD_ID,1)
          st.playSound("ItemSound.quest_middle")

   return

QUEST       = Quest(216,qn,"Trial Of Guildsman")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30103)

QUEST.addTalkId(30103)

QUEST.addTalkId(30210)
QUEST.addTalkId(30283)
QUEST.addTalkId(30298)
QUEST.addTalkId(30688)
Esempio n. 16
0
        if st.getState() != STARTED: return

        if st.getInt("cond") == 2:
            if st.getRandom(100) < 20:
                if st.getQuestItemsCount(ANCIENT_SCROLL) == 0:
                    st.giveItems(ANCIENT_SCROLL, 1)
                    st.playSound("Itemsound.quest_itemget")
                elif st.getQuestItemsCount(ANCIENT_CLAY_TABLET) == 0:
                    st.giveItems(ANCIENT_CLAY_TABLET, 1)
                    st.playSound("ItemSound.quest_middle")
                    st.set("cond", "3")
        return


QUEST = Quest(106, qn, "Forgotten Truth")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30358)

QUEST.addTalkId(30358)

QUEST.addTalkId(30133)

QUEST.addKillId(27070)

STARTED.addQuestDrop(30133, KARTAS_TRANSLATION, 1)
STARTED.addQuestDrop(30358, ONYX_TALISMAN1, 1)
Esempio n. 17
0
       chance = MOBS4[npcId]
       drop = 3
   elif npcId in MOBS5.keys() :
       chance = MOBS5[npcId]
       drop = 4
   elif npcId in MOBSspecial.keys() :
       chance,drop = MOBSspecial[npcId]
   if st.getRandom(1000) <= chance :
       drop += 1
   if drop != 0 : 
       st.giveItems(SWEET_FLUID,drop*int(Config.RATE_DROP_QUEST))
       st.playSound("ItemSound.quest_itemget")  
   return

QUEST       = Quest(426,qn,"Quest for Fishing Shot")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)

for npc in range(31562,31580)+[31616,31696,31697]:
    QUEST.addStartNpc(npc)
    QUEST.addTalkId(npc)

for mob in MOBS1.keys():
    QUEST.addKillId(mob)
for mob in MOBS2.keys():
    QUEST.addKillId(mob)
for mob in MOBS3.keys():
    QUEST.addKillId(mob)
for mob in MOBS4.keys():
Esempio n. 18
0
                if st.getQuestItemsCount(ENCHT_GARGOYLES_NAIL_ID) < 5:
                    st.playSound("ItemSound.quest_itemget")
                else:
                    st.playSound("ItemSound.quest_middle")
                    if st.getQuestItemsCount(
                            GHOULS_SKIN_ID) == 10 and st.getQuestItemsCount(
                                MEDUSAS_BLOOD_ID
                            ) == 12 and st.getQuestItemsCount(
                                FETTEREDSOULS_ICHOR_ID
                            ) == 5 and st.getQuestItemsCount(
                                ENCHT_GARGOYLES_NAIL_ID) == 5:
                        st.set("cond", "29")
        return


QUEST = Quest(214, qn, "Trial Of Scholar")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC[0])

for npcId in NPC:
    for i in range(2674, 2721):
        QUEST.addTalkId(npcId)
        STARTED.addQuestDrop(npcId, i, 1)

for mobId in MOBS:
    QUEST.addKillId(mobId)
Esempio n. 19
0
class Quest(JQuest):
    def __init__(self, id, name, descr):
        JQuest.__init__(self, id, name, descr)

    def onFirstTalk(self, npc, player):
        st = player.getQuestState(qn)
        if not st: st = self.newQuestState(player)

        baiumStatus = GrandBossManager.getInstance().getBossStatus(29020)
        if baiumStatus != 2 and st.getQuestItemsCount(4295):
            st.exitQuest(1)
            return "31862.htm"
        else:
            npc.showChatWindow(player)
            st.exitQuest(1)
            return
        return


QUEST = Quest(-1, qn, "custom")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(31862)

QUEST.addFirstTalkId(31862)

QUEST.addTalkId(31862)
Esempio n. 20
0
                    st.playSound("ItemSound.quest_itemget")
        elif npcId == 20047:
            st.set("id", "0")
            if st.getInt("cond") != 0 and st.getQuestItemsCount(
                    LUCKY_POTPOURI) != 0 and st.getQuestItemsCount(
                        AMETHYST) < 2 and st.getRandom(100) < 40:
                st.giveItems(AMETHYST, 1)
                if st.getQuestItemsCount(AMETHYST) == 2:
                    st.playSound("ItemSound.quest_middle")
                else:
                    st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(408, qn, "Path To Elvenwizard")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30414)

QUEST.addTalkId(30414)

QUEST.addTalkId(30157)
QUEST.addTalkId(30371)
QUEST.addTalkId(30423)

QUEST.addKillId(20019)
QUEST.addKillId(20466)
Esempio n. 21
0

QUEST = Quest(230, qn, "Test Of Summoner")
CREATED = State("Start", QUEST)
PROGRESS = State("Progress", QUEST)
COMPLETED = State("Completed", QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC[1])

# adds all npcs, mobs to the progress state
for npcId in NPC:
    QUEST.addTalkId(npcId)
for mobId in DROPLIST_LARA.keys():
    QUEST.addKillId(mobId)
for mobId in DROPLIST_SUMMON.keys():
    QUEST.addKillId(mobId)
    QUEST.addAttackId(mobId)
# for summonId in PLAYER_SUMMONS:
#   PROGRESS.addKillId(summonId)

# this will add the player to the list of notified objects in onDeath Part
# addNotifyOfDeath(st.getPlayer())

# This is just to formal add the drops, in case that a player abort this quest.. the items should disappear
STARTED = State("Started", QUEST)

for item in range(3337, 3390):
    STARTED.addQuestDrop(30063, item, 1)
Esempio n. 22
0
                count = st.getQuestItemsCount(item)
                if st.getRandom(100) < chance:
                    numItems += 1
                if numItems:
                    if count + numItems >= REQUIRED_SPIDER_LEGS:
                        numItems = REQUIRED_SPIDER_LEGS - count
                        st.playSound("ItemSound.quest_middle")
                    else:
                        st.playSound("ItemSound.quest_itemget")
                    st.giveItems(item, int(numItems))
        return


# Quest class and state definition
QUEST = Quest(419, qn, "Wolf Collar")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
SLAYED = State('Slayed', QUEST)
TALKED = State('Talked', QUEST)
COMPLETED = State('Completed', QUEST)

# Quest initialization
QUEST.setInitialState(CREATED)
# Quest NPC starter initialization
QUEST.addStartNpc(PET_MANAGER_MARTIN)

# Quest Item Drop initialization
for item in range(3417, 3428):
    STARTED.addQuestDrop(PET_MANAGER_MARTIN, item, 1)

# Quest mob initialization
Esempio n. 23
0
       htmltext = npc+"-01.htm"
       count = 0
       for item in NPC_GIFTS.values():
         count += st.getQuestItemsCount(item)
       if count == 6 :
         st.set("cond","2")
         st.set("id","2")
         st.playSound("ItemSound.quest_middle")
       else :
         st.playSound("ItemSound.quest_itemget")
   return htmltext

QUEST     = Quest(4,qn,"Long Live the Paagrio Lord")
CREATED   = State('Start',     QUEST)
STARTING  = State('Starting',  QUEST)
STARTED   = State('Started',   QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30578)

QUEST.addTalkId(30578)

QUEST.addTalkId(30559)
QUEST.addTalkId(30560)
QUEST.addTalkId(30562)
QUEST.addTalkId(30566)
QUEST.addTalkId(30578)
QUEST.addTalkId(30585)
QUEST.addTalkId(30587)
Esempio n. 24
0
                    htmltext = "30405-02.htm"
        return htmltext

    def onKill(self, npc, player, isPet):
        st = player.getQuestState(qn)
        if not st: return
        if st.getState() != STARTED: return

        npcId = npc.getNpcId()
        st.giveItems(GIANT_SPIDER_SKIN, 1)
        st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(259, qn, "Ranchers Plea")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30497)
QUEST.addTalkId(30497)

QUEST.addTalkId(30405)

QUEST.addKillId(20103)
QUEST.addKillId(20106)
QUEST.addKillId(20108)

STARTED.addQuestDrop(20103, GIANT_SPIDER_SKIN, 1)
Esempio n. 25
0
   numItems,chance = divmod(100*Config.RATE_DROP_QUEST,100)
   item,count = MOB[npcId]
   if item :
      if st.getRandom(100) <chance :
         numItems = numItems + 1
      prevItems = st.getQuestItemsCount(item)
      if prevItems < count :
         if prevItems + numItems > count :
            numItems = count - prevItems
         if int(numItems) != 0 :
            st.giveItems(item,int(numItems))
         if (st.getQuestItemsCount(LEAF) != 80 and st.getQuestItemsCount(STONE) != 100) :
            st.playSound("ItemSound.quest_itemget")
         else :
            st.playSound("ItemSound.quest_middle")
            st.set("cond","2")
   return

QUEST       = Quest(379,qn,"Fantasy Wine")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(HARLAN)
QUEST.addTalkId(HARLAN)

QUEST.addKillId(ENKU_CHAMPION)
QUEST.addKillId(ENKU_SHAMAN)

STARTED.addQuestDrop(HARLAN,LEAF,1)
STARTED.addQuestDrop(HARLAN,STONE,1)
Esempio n. 26
0
        st.giveItems(MARSH_SPIDER_FEELER,1)
        st.playSound("ItemSound.quest_middle")
        st.set("dudaStat","3")
    elif int(st.get(var)) == value and random < chance and count < maxcount:
      st.giveItems(item,1)
      if count == maxcount-1:
        st.playSound("ItemSound.quest_middle")
        if newValue == 1 and st.getQuestItemsCount(RAGNA_ORC_HEAD) and st.getQuestItemsCount(RAGNA_CHIEF_NOTICE):
          st.set(var,"2")
        else:
          st.set(var,str(newValue))
      else:
        st.playSound("ItemSound.quest_itemget")
    return

QUEST     = Quest(232,qn,"Test Of Lord")
CREATED   = State('Start', QUEST)
STARTED   = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC[4])

for npcId in NPC:
  QUEST.addTalkId(npcId)

for mobId in MOBS:
  QUEST.addKillId(mobId)

for item in range(3391,3417):
  STARTED.addQuestDrop(NPC[4],item,1)
Esempio n. 27
0
                    for item in range(3698,3707) :
                        if st.getQuestItemsCount(item) :
                            st.giveItems(item+1,1)
                            st.takeItems(item,-1)
                            if item >= 3703 :
                                st.playSound("ItemSound.quest_jackpot")
                            break
            else :
                for item in range(3698,3707) :
                    st.takeItems(item,-1)
                st.giveItems(3708,1)
        return

QUEST = Quest(335,qn,"The Song of the Hunter")

CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(Grey)
QUEST.addTalkId(Grey)
QUEST.addTalkId(Tor)
QUEST.addTalkId(Cybellin)

npcs = []
for npc in Level_1.keys() + Level_2.keys() + Tor_requests_1.keys() + Tor_requests_2.keys() + Tor_requests_tospawn.keys() + Mobs :
    if npc not in npcs :
        QUEST.addKillId(npc)
        npcs.append(npc)
Esempio n. 28
0
            st.giveItems(KAILS_COIN,1)
            if album or clover :
               st.playSound("ItemSound.quest_middle")
            else :
               st.playSound("ItemSound.quest_itemget")
      elif npcId == VEGUS and not (clover + album) and st.getInt("id") :
         if st.getRandom(100) < VEGUS_CHANCE :
            st.giveItems(CLOVER_COIN,1)
            if coin :
               st.playSound("ItemSound.quest_middle")
            else :
               st.playSound("ItemSound.quest_itemget")
      return

QUEST       = Quest(QuestNumber, str(QuestNumber)+"_"+QuestName, QuestDescription)
CREATED     = State('Start',     QUEST)
STARTED     = State('Started',   QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(SORINT)

QUEST.addTalkId(SORINT)

QUEST.addTalkId(SANDRA)

QUEST.addKillId(ANCIENT_GARGOYLE)
QUEST.addKillId(VEGUS)

STARTED.addQuestDrop(KAILS_COIN, SORINT,1)
STARTED.addQuestDrop(COIN_ALBUM, SORINT,1)
STARTED.addQuestDrop(CLOVER_COIN,SORINT,1)
Esempio n. 29
0
                else:
                    st.giveItems(ZOMBIE_LIVER1_ID, 1)
            elif npcId == 20458:
                st.playSound("ItemSound.quest_itemget")
                if n < 42:
                    st.giveItems(ZOMBIE_HEAD1_ID, 1)
                elif n < 67:
                    st.giveItems(ZOMBIE_HEART1_ID, 1)
                else:
                    st.giveItems(ZOMBIE_LIVER1_ID, 1)
        return


QUEST = Quest(325, qn, "Grim Collector")
CREATED = State("Start", QUEST)
STARTED = State("Started", QUEST)
COMPLETED = State("Completed", QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30336)
QUEST.addTalkId(30336)

QUEST.addTalkId(30342)
QUEST.addTalkId(30434)

for i in [20026, 20029, 20035, 20042, 20045, 20457, 20458, 20051, 20514, 20515]:
    QUEST.addKillId(i)

STARTED.addQuestDrop(20026, ZOMBIE_HEAD1_ID, 1)
STARTED.addQuestDrop(20026, ZOMBIE_HEART1_ID, 1)
STARTED.addQuestDrop(20026, ZOMBIE_LIVER1_ID, 1)
Esempio n. 30
0
                st.takeItems(M_EGG, 1)
                st.giveItems(57, 71318)
                st.setState(COMPLETED)
                st.set("cond", "0")
                st.playSound("ItemSound.quest_finish")
        elif npcId == KARAKAWEI:
            if cond == 4:
                htmltext = "32117-01.htm"
                if id == MIDDLE:
                    htmltext = "32117-02.htm"
            elif cond == 5:
                htmltext = "32117-04.htm"
        elif npcId == MANTARASA and cond == 5:
            htmltext = "32118-01.htm"
        return htmltext


QUEST = Quest(124, qn, "Meeting The Elroki")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
MIDDLE = State('Middle', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(MARQUEZ)
QUEST.addTalkId(MARQUEZ)
QUEST.addTalkId(MUSHIKA)
QUEST.addTalkId(ASAMAH)
QUEST.addTalkId(KARAKAWEI)
QUEST.addTalkId(MANTARASA)
Esempio n. 31
0
            st.playSound("ItemSound.quest_itemget")
   elif npcId == 20458 :
        st.set("id","0")
        if st.getInt("cond") and st.getQuestItemsCount(PENITENTS_MARK) == 1 and st.getQuestItemsCount(ASHEN_BONES)<10 :
          st.giveItems(ASHEN_BONES,1)
          if st.getQuestItemsCount(ASHEN_BONES) == 10 :
            st.playSound("ItemSound.quest_middle")
            st.set("cond","6")
          else:
            st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(413,qn,"Path To Shillien Oracle")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30330)

QUEST.addTalkId(30330)

QUEST.addTalkId(30375)
QUEST.addTalkId(30377)

QUEST.addKillId(20457)
QUEST.addKillId(20458)
QUEST.addKillId(20514)
QUEST.addKillId(20515)
Esempio n. 32
0
         else:
               st.exitQuest(1)
        elif id == STARTED :
           if npcId == 31547 and cond == 1 and st.getQuestItemsCount(SPECIAL_DRINK) :
                 htmltext = "31547-0.htm"
           elif npcId == 31546 and cond == 2 and st.getQuestItemsCount(SPECIAL_DRINK) :
                 htmltext = "31546-0.htm"
           elif npcId == 31545 and cond == 3 and st.getQuestItemsCount(SPECIAL_DRINK) :
                 htmltext = "31545-0.htm"
           elif npcId == 31544 and cond == 4 and st.getQuestItemsCount(SPECIAL_DRINK) :
                 htmltext = "31544-0.htm"
           elif npcId == 31543 and cond == 5 and st.getQuestItemsCount(SPECIAL_DRINK) :
                 htmltext = "31543-0.htm"
           elif npcId == 31521 and cond == 6 and st.getQuestItemsCount(FEE_OF_DRINK) == 5 :
                 htmltext = "31521-2.htm"
   return htmltext

QUEST       = Quest(622,qn,"Delivery of special liquor")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(31521)

QUEST.addTalkId(31521)

for i in range(31543,31548):
    QUEST.addTalkId(i)

STARTED.addQuestDrop(31521,SPECIAL_DRINK,1)
STARTED.addQuestDrop(31521,FEE_OF_DRINK,1)
Esempio n. 33
0
   if not st : return 
   if st.getState() != STARTED : return 
   
   npcId = npc.getNpcId()
   if npcId == 27020 :
     if st.getQuestItemsCount(VAROOL_FOULCLAWS_FANG) == 0 and st.getRandom(10)>7:
       st.giveItems(VAROOL_FOULCLAWS_FANG,1)
       st.playSound("ItemSound.quest_middle")
   elif st.getRandom(10)>5 :
     st.giveItems(WERERAT_FANG,1)
     st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(316,qn,"Destroy Plaguebringers")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30155)

QUEST.addTalkId(30155)

QUEST.addKillId(20040)
QUEST.addKillId(20047)
QUEST.addKillId(27020)

STARTED.addQuestDrop(20040,WERERAT_FANG,1)
STARTED.addQuestDrop(27020,VAROOL_FOULCLAWS_FANG,1)
Esempio n. 34
0
        if not partyMember: return
        st = partyMember.getQuestState(qn)
        if st:
            count = st.getQuestItemsCount(TARLK_EYE)
            if st.getInt("cond") == 1 and count < 100:
                chance = 33 * Config.RATE_DROP_QUEST
                numItems, chance = divmod(chance, 100)
                if st.getRandom(100) < chance:
                    numItems += 1
                if numItems:
                    if count + numItems >= 100:
                        numItems = 100 - count
                        st.playSound("ItemSound.quest_middle")
                        st.set("cond", "2")
                    else:
                        st.playSound("ItemSound.quest_itemget")
                    st.giveItems(TARLK_EYE, 1)
        return


QUEST = Quest(52, qn, "Willie's Special Bait")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(WILLIE)
QUEST.addTalkId(WILLIE)

QUEST.addKillId(TARLK_BASILISK)
STARTED.addQuestDrop(TARLK_BASILISK, TARLK_EYE, 1)
Esempio n. 35
0
   chance = st.getRandom(100)
   if st.getInt("cond") == 2 :
     if npcId in [21106,21102] and chance < 79 :
       st.giveItems(WATCHING_EYES,1)
       st.playSound("ItemSound.quest_itemget")
     elif npcId == ROUGH_HEWN_ROCK_GOLEM and chance < 75 :
       st.giveItems(ROUGHLY_HEWN_ROCK_GOLEM_SHARD,1)
       st.playSound("ItemSound.quest_itemget")
     elif npcId in [20781,21104,21107,21105] and chance < 67 :
       st.giveItems(DELU_LIZARDMAN_SCALE,1)
       st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(660,qn,"Aiding the Floran Village")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(MARIA)

QUEST.addTalkId(MARIA)
QUEST.addTalkId(ALEX)

QUEST.addKillId(CARSED_SEER)
QUEST.addKillId(PLAIN_WATCMAN)
QUEST.addKillId(ROUGH_HEWN_ROCK_GOLEM)
QUEST.addKillId(DELU_LIZARDMAN_SHAMAN)
QUEST.addKillId(DELU_LIZARDMAN_SAPPLIER)
QUEST.addKillId(DELU_LIZARDMAN_COMMANDER)
QUEST.addKillId(DELU_LIZARDMAN_SPESIAL_AGENT)
Esempio n. 36
0
   st = partyMember.getQuestState(qn)
   if st :
     if st.getState() == STARTED :
       count = st.getQuestItemsCount(PROOF_OF_AVENGER)
       if st.getInt("cond") == 1 and count < 100 :
         chance = DROP_CHANCE * Config.RATE_DROP_QUEST
         numItems, chance = divmod(chance,100)
         if st.getRandom(100) < chance : 
           numItems = numItems + 1
         if numItems :
           if count + numItems >= 100 :
             numItems = 100 - count
             st.playSound("ItemSound.quest_middle")
             st.set("cond","2")
           else:
             st.playSound("ItemSound.quest_itemget")   
           st.giveItems(PROOF_OF_AVENGER,int(numItems))       
   return

QUEST       = Quest(601,qn,"Watching Eyes")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(EYE_OF_ARGOS)
QUEST.addTalkId(EYE_OF_ARGOS)

for i in MOBS :
  QUEST.addKillId(i)

STARTED.addQuestDrop(EYE_OF_ARGOS,PROOF_OF_AVENGER,1)
Esempio n. 37
0
         else :
            htmltext = "30935-01.htm"
     return htmltext

 def onKill(self,npc,player,isPet):
     st = player.getQuestState(qn)
     if not st : return 
     if st.getState() != STARTED : return 
   
     npcId = npc.getNpcId()
     if st.getRandom(100) < CHANCE :
         st.giveItems(ORB,1)
         st.playSound("ItemSound.quest_itemget")
     return

QUEST       = Quest(343,qn,"Under The Shadow Of The Ivory Tower")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30834)

QUEST.addTalkId(30834)
QUEST.addTalkId(30835)
QUEST.addTalkId(30935)
QUEST.addTalkId(30934)

for i in range(20563,20567) :
    QUEST.addKillId(i)

STARTED.addQuestDrop(30834,ORB,1)
Esempio n. 38
0
         htmltext = "30371-01.htm"
         st.takeItems(ANDELLRIAS_LETTER,1)
         st.giveItems(MOTHERTREE_FRUIT,1)
         st.set("cond", "2")
     elif cond == 2 :
       if npcId == 30362 and st.getQuestItemsCount(MOTHERTREE_FRUIT) :
         htmltext = "30362-06.htm"
         st.giveItems(ADENA,100)
         st.takeItems(MOTHERTREE_FRUIT,1)
         st.addExpAndSp(1000,0)
         st.unset("cond")
         st.setState(COMPLETED)
         st.playSound("ItemSound.quest_finish")
       elif npcId == 30371 and st.getQuestItemsCount(MOTHERTREE_FRUIT) :
         htmltext = "30371-02.htm"
   return htmltext

QUEST       = Quest(161,qn,"Fruits Of Mothertree")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30362)

QUEST.addTalkId(30362)

QUEST.addTalkId(30371)

STARTED.addQuestDrop(30371,MOTHERTREE_FRUIT,1)
STARTED.addQuestDrop(30362,ANDELLRIAS_LETTER,1)
Esempio n. 39
0
            if st.getQuestItemsCount(FAIRY_BREATH) == 0:
                htmltext = "30634-04.htm"
            else:
                htmltext = "30634-05.htm"
        return htmltext

    def onKill(self, npc, player, isPet):
        st = player.getQuestState(qn)
        if not st: return
        npcId = npc.getNpcId()
        if st.getInt("cond") == 1:
            chance = st.getRandom(100)
            if npcId in MOBS and chance < 90:
                st.giveItems(FAIRY_BREATH, 1)
                st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(659, qn, "I'd Rather Be Collecting Fairy Breath")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(GALATEA)
QUEST.addTalkId(GALATEA)

for mob in MOBS:
    QUEST.addKillId(mob)

STARTED.addQuestDrop(GALATEA, FAIRY_BREATH, 1)
Esempio n. 40
0
     partyMember = self.getRandomPartyMember(player,"1")
     if not partyMember : return
     st = partyMember.getQuestState(qn)
     if st :
        count = st.getQuestItemsCount(CRIMSON_DRAKE_HEART)
        if st.getInt("cond") == 1 and count < 100 :
           chance = 33 * Config.RATE_DROP_QUEST
           numItems, chance = divmod(chance,100)
           if st.getRandom(100) < chance : 
              numItems += 1
           if numItems :
              if count + numItems >= 100 :
                 numItems = 100 - count
                 st.playSound("ItemSound.quest_middle")
                 st.set("cond","2")
              else:
                 st.playSound("ItemSound.quest_itemget")
              st.giveItems(CRIMSON_DRAKE_HEART,1)
     return

QUEST       = Quest(53, qn, "Linnaeus Special Bait")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(LINNAEUS)
QUEST.addTalkId(LINNAEUS)

QUEST.addKillId(CRIMSON_DRAKE)
STARTED.addQuestDrop(LINNAEUS,CRIMSON_DRAKE_HEART,1)
Esempio n. 41
0
        if st.getInt("cond") == 1 : 
          if st.getQuestItemsCount(HATOSS_ORDER1_ID) and st.getQuestItemsCount(LETTER_TO_HUMAN_ID) == 0 : 
            st.giveItems(LETTER_TO_HUMAN_ID,1) 
            st.playSound("ItemSound.quest_itemget") 
          if st.getQuestItemsCount(HATOSS_ORDER2_ID) and st.getQuestItemsCount(LETTER_TO_DARKELF_ID) == 0 : 
            st.giveItems(LETTER_TO_DARKELF_ID,1) 
            st.playSound("ItemSound.quest_itemget") 
          if st.getQuestItemsCount(HATOSS_ORDER3_ID) and st.getQuestItemsCount(LETTER_TO_ELF_ID) == 0 : 
            st.giveItems(LETTER_TO_ELF_ID,1) 
            st.playSound("ItemSound.quest_itemget") 
   return 

QUEST       = Quest(107,qn,"Merciless Punishment") 
CREATED     = State('Start', QUEST) 
STARTING     = State('Starting', QUEST) 
STARTED     = State('Started', QUEST) 
COMPLETED   = State('Completed', QUEST) 


QUEST.setInitialState(CREATED) 
QUEST.addStartNpc(30568) 

QUEST.addTalkId(30568) 

QUEST.addTalkId(30580) 

QUEST.addKillId(27041) 

STARTED.addQuestDrop(30568,HATOSS_ORDER2_ID,1) 
STARTED.addQuestDrop(27041,LETTER_TO_DARKELF_ID,1) 
STARTED.addQuestDrop(27041,LETTER_TO_HUMAN_ID,1) 
Esempio n. 42
0
         st.playSound("ItemSound.quest_finish")
      else :
         htmltext = "30305-05.htm"
   return htmltext

 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return

   npcId = npc.getNpcId()
   if st.getInt("cond") == 1 :
      st.giveItems(NIGHTMARE_CRYSTAL,1)
      st.playSound("ItemSound.quest_middle")
      st.set("cond","2")
   return

QUEST       = Quest(170,qn,"Dangerous Allure")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30305)

QUEST.addTalkId(30305)

QUEST.addKillId(27022)
STARTED.addQuestDrop(27022,NIGHTMARE_CRYSTAL,1)
Esempio n. 43
0
       if cm_sponsor :
         if cm_sponsor.isOnline():
           sponsor = cm_sponsor.getPlayerInstance()
           if sponsor :
             if player.isInsideRadius(sponsor, 1100, 1, 0) :
               enabled=True
    if st.getInt("cond") == cond and count < max and st.getRandom(100) < chance and enabled :
       st.giveItems(item,1)
       if count == max-1:
          st.set("cond",str(cond+1))
          st.playSound("ItemSound.quest_middle")
       else :
          st.playSound("ItemSound.quest_itemget")
    return
     

QUEST     = Quest(123,qn,"The Leader And The Follower") 
CREATED   = State('Start',     QUEST) 
PROGRESS  = State('Progress',   QUEST) 
COMPLETED = State('Completed', QUEST) 

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NEWYEAR) 

QUEST.addTalkId(NEWYEAR)

for mob in DROPLIST.keys():
    QUEST.addKillId(mob)

PROGRESS.addQuestDrop(NEWYEAR,BLOOD,1)
PROGRESS.addQuestDrop(NEWYEAR,LEG,1)
Esempio n. 44
0
                else:
                    st.playSound("ItemSound.quest_itemget")
        elif npcId == 20021:  # Red Bear
            st.set("id", "0")
            # Only get a RED_SOIL if we are on the quest for the Earth Snake
            if st.getInt("cond") == 11:
                st.giveItems(RED_SOIL, 1)
                st.playSound("ItemSound.quest_middle")
                st.set("cond", "12")
        return


QUEST = Quest(404, qn, "Path To Wizard")
CREATED = State("Start", QUEST)
STARTING = State("Starting", QUEST)
STARTED = State("Started", QUEST)
COMPLETED = State("Completed", QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30391)

QUEST.addTalkId(30391)

QUEST.addTalkId(30409)
QUEST.addTalkId(30410)
QUEST.addTalkId(30411)
QUEST.addTalkId(30412)
QUEST.addTalkId(30413)

QUEST.addKillId(20021)
Esempio n. 45
0
          st.giveItems(BREKA_OVERLORD_SKULL_ID,1)
          st.playSound("Itemsound.quest_itemget")
   elif npcId == 20582 :
      if st.getInt("cond") and st.getQuestItemsCount(PALUS_CHARM_ID) and st.getQuestItemsCount(ARKENIAS_NOTE_ID) and st.getQuestItemsCount(RED_FAIRY_DUST_ID) == 0 and st.getQuestItemsCount(PIXY_GARNET_ID) and st.getQuestItemsCount(LETO_OVERLORD_SKULL_ID) < 10 :
        if st.getQuestItemsCount(LETO_OVERLORD_SKULL_ID) == 9 :
          st.giveItems(LETO_OVERLORD_SKULL_ID,1)
          st.playSound("Itemsound.quest_middle")
        else:
          st.giveItems(LETO_OVERLORD_SKULL_ID,1)
          st.playSound("Itemsound.quest_itemget")
   return

QUEST       = Quest(219,qn,"Testimony Of Fate")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30476)

QUEST.addTalkId(30476)

QUEST.addTalkId(31845)
QUEST.addTalkId(31850)
QUEST.addTalkId(30114)
QUEST.addTalkId(30210)
QUEST.addTalkId(30358)
QUEST.addTalkId(30419)
QUEST.addTalkId(30463)
Esempio n. 46
0
    if st.getInt("cond") and st.getQuestItemsCount(RING_OF_TESTIMONY2_ID) == 1 and st.getQuestItemsCount(INPICIO_SAC_ID) <10  :
     if st.getRandom(100)<50 :
      st.giveItems(INPICIO_SAC_ID,1)
      st.playSound("ItemSound.quest_middle")
   elif npcId == 20233 :
    st.set("id","0")
    if st.getInt("cond") and st.getQuestItemsCount(RING_OF_TESTIMONY2_ID) == 1 and st.getQuestItemsCount(SPIDER_THORN_ID) <10  :
     if st.getRandom(100)<50 :
      st.giveItems(SPIDER_THORN_ID,1)
      st.playSound("ItemSound.quest_middle")
   return

QUEST       = Quest(221,qn,"Testimony Of Prosperity")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30104)

QUEST.addTalkId(30104)

QUEST.addTalkId(30005)
QUEST.addTalkId(30368)
QUEST.addTalkId(30466)
QUEST.addTalkId(30517)
QUEST.addTalkId(30519)
QUEST.addTalkId(30531)
QUEST.addTalkId(30532)
Esempio n. 47
0
            )
        elif npcId == MIRABEL and cond == 1:
            htmltext = "30146-04.htm"
        elif id == STARTED:
            if npcId == ARIEL and cond:
                if st.getQuestItemsCount(ARIELS_RECOMMENDATION) == 0:
                    htmltext = "30148-01.htm"
                else:
                    htmltext = "30148-03.htm"
            elif npcId == ASTERIOS and cond == 2 and st.getQuestItemsCount(ARIELS_RECOMMENDATION) > 0:
                htmltext = "30154-01.htm"
            elif npcId == MIRABEL and cond == 3:
                htmltext = "30146-05.htm"
        return htmltext


QUEST = Quest(7, qn, "A Trip Begins")
CREATED = State("Start", QUEST)
STARTED = State("Started", QUEST)
COMPLETED = State("Completed", QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(MIRABEL)

QUEST.addTalkId(MIRABEL)

QUEST.addTalkId(ARIEL)
QUEST.addTalkId(ASTERIOS)

STARTED.addQuestDrop(MIRABEL, ARIELS_RECOMMENDATION, 1)
Esempio n. 48
0
                        st.set("cond", "4")
                    else:
                        st.playSound("ItemSound.quest_itemget")
                    st.giveItems(BONE_FRAGMENT1_ID, numItems)
        elif npcId in [20015, 20020]:
            if st.getQuestItemsCount(PRESERVE_OIL_ID) == 1:
                if st.getRandom(10) < 3 * Config.RATE_DROP_QUEST:
                    st.set("cond", "7")
                    st.giveItems(ZOMBIE_HEAD_ID, 1)
                    st.playSound("ItemSound.quest_middle")
                    st.takeItems(PRESERVE_OIL_ID, 1)
        return


QUEST = Quest(103, qn, "Spirit Of Craftsman")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30307)

QUEST.addTalkId(30307)

QUEST.addTalkId(30132)
QUEST.addTalkId(30144)

QUEST.addKillId(20015)
QUEST.addKillId(20020)
QUEST.addKillId(20455)
QUEST.addKillId(20517)
Esempio n. 49
0
        if not st: return
        if st.getState() != STARTED: return

        count = st.getQuestItemsCount(MARAKU_WEREWOLF_HEAD)
        if count < 40:
            if count < 39:
                st.playSound("ItemSound.quest_itemget")
            else:
                st.playSound("ItemSound.quest_middle")
                st.set("cond", "2")
            st.giveItems(MARAKU_WEREWOLF_HEAD, 1)
            if st.getRandom(100) <= 15:
                st.giveItems(MARAKU_WOLFMEN_TOTEM, 1)
        return


QUEST = Quest(274, qn, "Against Wolf Men")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30569)

QUEST.addTalkId(30569)

QUEST.addKillId(20363)
QUEST.addKillId(20364)

STARTED.addQuestDrop(20363, MARAKU_WEREWOLF_HEAD, 1)
Esempio n. 50
0
                #else:
                #htmltext="<html><body>This quest has already been completed</body></html>"
        return htmltext

    def onKill(self, npc, player, isPet):
        partyMembers = [player]
        party = player.getParty()
        if party:
            partyMembers = party.getPartyMembers().toArray()
            for member in partyMembers:
                pst = member.getQuestState(qn)
                if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player,
                                               member, True):
                    giveReward(pst, npc)
        else:
            pst = player.getQuestState(qn)
            if pst:
                giveReward(pst, npc)
        return


QUEST = Quest(607, qn, "Prove Your Courage!")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(Kadun)
QUEST.addTalkId(Kadun)

STARTED.addQuestDrop(Shadith, Shadith_Head, 1)
QUEST.addKillId(Shadith)
Esempio n. 51
0
           htmltext = "30048-09.htm" 
         elif ItemsCount_BP > 0 : 
           htmltext = "30048-10.htm" 
           st.takeItems(BAULS_POTION,-1) 
           st.giveItems(NECKLACE,1) 
           st.addExpAndSp(5672,446)
           st.set("cond","0") 
           st.set("onlyone","1") 
           st.setState(COMPLETED)
           st.playSound("ItemSound.quest_finish") 
         else: 
           htmltext = "30048-07.htm" 
   return htmltext

QUEST     = Quest(1,qn,"Letters of Love") 
CREATED   = State('Start',     QUEST) 
STARTING  = State('Starting',  QUEST) 
STARTED   = State('Started',   QUEST) 
COMPLETED = State('Completed', QUEST) 

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(DARIN) 

QUEST.addTalkId(DARIN) 

QUEST.addTalkId(ROXXY) 
QUEST.addTalkId(BAULRO) 

STARTED.addQuestDrop(DARIN,DARINGS_LETTER,1) 
STARTED.addQuestDrop(DARIN,RAPUNZELS_KERCHIEF,1) 
STARTED.addQuestDrop(DARIN,DARINGS_RECEIPT,1) 
Esempio n. 52
0
     return htmltext

 def onKill(self,npc,player,isPet):
     partyMember = self.getRandomPartyMember(player, "1")
     if not partyMember: return
     st = partyMember.getQuestState(qn)
     if st :
       if st.getState() == STARTED :
         numItems, chance = divmod(100*Config.RATE_DROP_QUEST,100)
         if st.getRandom(100) < chance :
            numItems += 1
         st.giveItems(RELICS,int(numItems))
         st.playSound("ItemSound.quest_itemget")
         if st.getRandom(100) < (5*Config.RATE_DROP_QUEST) :
             st.giveItems(ENTRANCE,1)
             st.playSound("ItemSound.quest_middle")
     return

QUEST       = Quest(619, qn, "Relics of the Old Empire")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(GHOST)
QUEST.addTalkId(GHOST)

for mobId in MOBS :
  QUEST.addKillId(mobId)

STARTED.addQuestDrop(GHOST,RELICS,1)
STARTED.addQuestDrop(GHOST,ENTRANCE,1)
Esempio n. 53
0
        elif npcId == JASMINE and cond == 1:
            htmltext = "30134-04.htm"
        elif id == STARTED:
            if npcId == ROSELYN and cond:
                if st.getQuestItemsCount(ROSELYNS_NOTE) == 0:
                    htmltext = "30355-01.htm"
                else:
                    htmltext = "30355-03.htm"
            elif npcId == HARNE and cond == 2 and st.getQuestItemsCount(
                    ROSELYNS_NOTE) > 0:
                htmltext = "30144-01.htm"
            elif npcId == JASMINE and cond == 3:
                htmltext = "30134-05.htm"

        return htmltext


QUEST = Quest(8, qn, "An Adventure Begins")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(JASMINE)

QUEST.addTalkId(JASMINE)

QUEST.addTalkId(ROSELYN)
QUEST.addTalkId(HARNE)

STARTED.addQuestDrop(JASMINE, ROSELYNS_NOTE, 1)
Esempio n. 54
0
   elif cond == 9 and st.getQuestItemsCount(TANAPIS_ORDER1) and st.getQuestItemsCount(SCEPTER_OF_TANTOS) == 0 :
     if npcId in [ 20778, 20779 ] :
       st.playSound("Itemsound.quest_before_battle")
       #st.addSpawn(27086)
       st.addSpawn(27086, 11839,-106261,-3550,300000)
       return "Revenant of Tantos Chief has spawned at X=11839 Y=-106261 Z=-3550"
       # Alternate coord. set:
       #st.addSpawn(27086,11567,-106785,-3520)
     elif npcId == 27086 :
       st.giveItems(SCEPTER_OF_TANTOS,1)
       st.set("cond","10")
       st.playSound("Itemsound.quest_middle")
   return

QUEST       = Quest(220,qn,"Testimony Of Glory")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30514)

QUEST.addTalkId(30514)

QUEST.addTalkId(30501)
QUEST.addTalkId(30515)
QUEST.addTalkId(30565)
QUEST.addTalkId(30571)
QUEST.addTalkId(30615)
Esempio n. 55
0

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

    def onAdvEvent(self, event, npc, player):
        htmltext = event
        st = player.getQuestState(qn)
        if not st: return
        if event.isdigit():
            htmltext = None
            rbid = int(event)
            if rbid in RADAR.keys():
                x, y, z = RADAR[rbid]
                player.sendPacket(RadarControl(2, 2, x, y, z))
                player.sendPacket(RadarControl(0, 1, x, y, z))
            st.exitQuest(1)
        return htmltext

    def onTalk(Self, npc, player):
        return "info.htm"


QUEST = Quest(8000, qn, "custom")
CREATED = State('Start', QUEST)

QUEST.setInitialState(CREATED)
for i in NPC:
    QUEST.addStartNpc(i)
    QUEST.addTalkId(i)
Esempio n. 56
0
                        st.playSound("ItemSound.quest_middle")
                        st.set("cond", "2")
                    else:
                        st.playSound("ItemSound.quest_itemget")
            elif skulls < 3:
                st.giveItems(ELF_SKULL, 1)
                if bones == 10 and skulls == 2:
                    st.playSound("ItemSound.quest_middle")
                    st.set("cond", "2")
                else:
                    st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(162, qn, "Curse Of Fortress")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30147)

QUEST.addTalkId(30147)

QUEST.addKillId(20033)
QUEST.addKillId(20345)
QUEST.addKillId(20371)
QUEST.addKillId(20463)
QUEST.addKillId(20464)
QUEST.addKillId(20504)
Esempio n. 57
0
    return htmltext

  def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if st :
     if st.getState() == STARTED :
       count = st.getQuestItemsCount(GREY_STAR)
       if st.getInt("cond") == 7 and count < 1 and st.getRandom(100)<CHANCE :
          st.giveItems(GREY_STAR,1)
          st.playSound("ItemSound.quest_itemget")
          st.set("cond","8")
   return

QUEST=Quest(117,qn,"Ocean Of Distant Star")
CREATED=State('Start', QUEST)
STARTED=State('Started', QUEST)
COMPLETED=State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(ABEY)
QUEST.addTalkId (ABEY)

QUEST.addTalkId(GHOST)
QUEST.addTalkId(OBI)
QUEST.addTalkId(BOX)
QUEST.addTalkId(GHOST_F)

for MOBS in [22023,22024]:
  QUEST.addKillId(MOBS)

STARTED.addQuestDrop(OBI,GREY_STAR,1)
Esempio n. 58
0
                if cm_sponsor.isOnline():
                    sponsor = cm_sponsor.getPlayerInstance()
                    if sponsor:
                        if player.isInsideRadius(sponsor, 1100, 1, 0):
                            enabled = True
        if st.getInt("cond") == cond and count < max and st.getRandom(
                100) < chance and enabled:
            st.giveItems(item, 1)
            if count == max - 1:
                st.set("cond", str(cond + 1))
                st.playSound("ItemSound.quest_middle")
            else:
                st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(123, qn, "The Leader And The Follower")
CREATED = State('Start', QUEST)
PROGRESS = State('Progress', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NEWYEAR)

QUEST.addTalkId(NEWYEAR)

for mob in DROPLIST.keys():
    QUEST.addKillId(mob)

PROGRESS.addQuestDrop(NEWYEAR, BLOOD, 1)
PROGRESS.addQuestDrop(NEWYEAR, LEG, 1)