Exemple #1
0
        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)
Exemple #2
0
            if npcId == 30533 and st.getInt("cond")==1 :
                htmltext = "30533-04.htm"
            elif npcId == 30520 and st.getInt("cond") == 3 :
                htmltext = "30520-04.htm"
                st.set("cond","4")
            elif npcId == 30520 and st.getInt("cond") :
                if st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) == 0 :
                    htmltext = "30520-01.htm"
                else :
                    htmltext = "30520-03.htm"
            elif npcId == 30650 and st.getInt("cond")==2 :
                if st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) :
                    htmltext = "30650-01.htm"
            elif npcId == 30533 and st.getInt("cond")==4 :
                htmltext = "30533-05.htm"
    	return htmltext

QUEST       = Quest(10,qn,"Into The World")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30533)

QUEST.addTalkId(30533)
QUEST.addTalkId(30520)
QUEST.addTalkId(30650)

STARTED.addQuestDrop(30520,VERY_EXPENSIVE_NECKLACE,1)
Exemple #3
0
    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)

print "importing quests: 385: Yoke of the Past"
Exemple #4
0
     if st.getRandom(10)<chance :
       st.giveItems(item,1)
       st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(257,qn,"Guard Is Busy1")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30039)

QUEST.addTalkId(30039)

QUEST.addKillId(20130)
QUEST.addKillId(20131)
QUEST.addKillId(20132)
QUEST.addKillId(20342)
QUEST.addKillId(20343)
QUEST.addKillId(20006)
QUEST.addKillId(20093)
QUEST.addKillId(20096)
QUEST.addKillId(20098)

STARTED.addQuestDrop(20130,ORC_AMULET,1)
STARTED.addQuestDrop(20093,ORC_NECKLACE,1)
STARTED.addQuestDrop(20132,WEREWOLF_FANG,1)
STARTED.addQuestDrop(30039,GLUDIO_LORDS_MARK,1)
Exemple #5
0
       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) <= 5 :
       st.giveItems(MARAKU_WOLFMEN_TOTEM,1)
   return

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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(7569)

CREATED.addTalkId(7569)
STARTING.addTalkId(7569)
STARTED.addTalkId(7569)
COMPLETED.addTalkId(7569)

STARTED.addKillId(363)
STARTED.addKillId(364)

STARTED.addQuestDrop(363,MARAKU_WEREWOLF_HEAD,1)
STARTED.addQuestDrop(364,MARAKU_WEREWOLF_HEAD,1)

print "importing quests: 274: Against Wolf Men"
Exemple #6
0
                htmltext = "7095-0a.htm"
                st.exitQuest(1)
        elif cond == 1:
            if not st.getQuestItemsCount(TREASURE_CHEST):
                htmltext = "7095-2.htm"
            else:
                htmltext = "7095-4.htm"
        return htmltext

    def onKill(self, npc, st):
        chance = st.getRandom(100)
        if chance < CHANCE_OF_DROP:
            st.giveItems(TREASURE_CHEST, 1)
            st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(365, "365_DevilsLegacy", "Devil's Legacy")
CREATED = State("Start", QUEST)
STARTED = State("Started", QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(RANDOLF)
CREATED.addTalkId(RANDOLF)
STARTED.addTalkId(RANDOLF)
for mob in MOBS:
    STARTED.addKillId(mob)

STARTED.addQuestDrop(RANDOLF, TREASURE_CHEST, 1)
print "importing quests: 365: Devil's Legacy"
Exemple #7
0
      st.giveItems(BONE_FRAGMENT6,1)
      st.playSound("ItemSound.quest_itemget")
   elif npcId == 20022 :
    if st.getInt("cond") == 16 and st.getQuestItemsCount(BONE_FRAGMENT7) == 0 :
      st.giveItems(BONE_FRAGMENT7,1)
      st.playSound("ItemSound.quest_itemget")
   elif npcId == 20100 :
    if st.getInt("cond") == 16 and st.getQuestItemsCount(BONE_FRAGMENT8) == 0 :
      st.giveItems(BONE_FRAGMENT8,1)
      st.playSound("ItemSound.quest_itemget")
   return

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


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30118)

QUEST.addTalkId(30118)

for npcId in [30666,30667,30669,30670,30732,30668]:
 QUEST.addTalkId(npcId)
for mobId in [20100,20102,20104,20404,20022,27099,27128,27130,27129,27132,27131]:
 QUEST.addKillId(mobId)
for item in range(2822,2840)+[3037]:
 STARTED.addQuestDrop(20102,item,1)
Exemple #8
0
        elif npcId == ROXXY and cond == 1:
            htmltext = "30006-04.htm"
        elif id == STARTED:
            if npcId == BAULRO:
                if cond == 1:
                    htmltext = "30033-01.htm"
                elif cond == 2 and st.getQuestItemsCount(BAULRO_LETTER):
                    htmltext = "30033-03.htm"
            elif npcId == SIR_COLLIN and cond == 2 and st.getQuestItemsCount(
                    BAULRO_LETTER):
                htmltext = "30311-02.htm"
            elif npcId == ROXXY and cond == 3:
                htmltext = "30006-05.htm"
        return htmltext


QUEST = Quest(6, qn, "Step into the Future")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(ROXXY)

QUEST.addTalkId(ROXXY)

QUEST.addTalkId(BAULRO)
QUEST.addTalkId(SIR_COLLIN)

STARTED.addQuestDrop(ROXXY, BAULRO_LETTER, 1)
Exemple #9
0
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30523)

QUEST.addTalkId(30523)

QUEST.addTalkId(30516)
QUEST.addTalkId(30521)
QUEST.addTalkId(30522)
QUEST.addTalkId(30523)
QUEST.addTalkId(30526)
QUEST.addTalkId(30529)
QUEST.addTalkId(30555)

QUEST.addKillId(20323)
QUEST.addKillId(20324)
QUEST.addKillId(20480)

STARTED.addQuestDrop(30526, GEM_BOX1_ID, 1)
STARTED.addQuestDrop(20480, STAR_DIAMOND_ID, 1)
STARTED.addQuestDrop(30523, GOUPHS_CONTRACT_ID, 1)
STARTED.addQuestDrop(30516, REEPS_CONTRACT_ID, 1)
STARTED.addQuestDrop(30555, ELVEN_WINE_ID, 1)
STARTED.addQuestDrop(30526, BRONPS_CONTRACT_ID, 1)
STARTED.addQuestDrop(20323, AQUAMARINE_ID, 1)
STARTED.addQuestDrop(20323, CHRYSOBERYL_ID, 1)
STARTED.addQuestDrop(30523, COAL_PIECE_ID, 1)
STARTED.addQuestDrop(30529, BRONPS_DICE_ID, 1)
STARTED.addQuestDrop(30526, BRONPS_LETTER_ID, 1)
STARTED.addQuestDrop(30521, BERRY_TART_ID, 1)
STARTED.addQuestDrop(30522, BAT_DIAGRAM_ID, 1)
Exemple #10
0
                            st.set("cond", "6")
        return


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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30379)

QUEST.addTalkId(30379)

QUEST.addTalkId(30425)

QUEST.addKillId(27038)

for StolenItemId in STOLEN_ITEM.keys():
    STARTED.addQuestDrop(27038, STOLEN_ITEM[StolenItemId], 1)

for mobId in (20035, 20042, 20045, 20051, 20054, 20060):
    QUEST.addKillId(mobId)
    STARTED.addQuestDrop(mobId, SPATOIS_BONES, 1)

STARTED.addQuestDrop(30425, NETIS_BOW, 1)
STARTED.addQuestDrop(30425, NETIS_DAGGER, 1)
STARTED.addQuestDrop(30379, WANTED_BILL, 1)
STARTED.addQuestDrop(30425, HORSESHOE_OF_LIGHT, 1)
STARTED.addQuestDrop(30379, BEZIQUES_LETTER, 1)
Exemple #11
0
            if npcId == 30533 and st.getInt("cond")==1 :
                htmltext = "30533-04.htm"
            elif npcId == 30520 and st.getInt("cond") == 3 :
                htmltext = "30520-04.htm"
                st.set("cond","4")
            elif npcId == 30520 and st.getInt("cond") :
                if st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) == 0 :
                    htmltext = "30520-01.htm"
                else :
                    htmltext = "30520-03.htm"
            elif npcId == 30650 and st.getInt("cond")==2 :
                if st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) :
                    htmltext = "30650-01.htm"
            elif npcId == 30533 and st.getInt("cond")==4 :
                htmltext = "30533-05.htm"
    	return htmltext

QUEST       = Quest(10,qn,"Into The World")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30533)

QUEST.addTalkId(30533)
QUEST.addTalkId(30520)
QUEST.addTalkId(30650)

STARTED.addQuestDrop(30520,VERY_EXPENSIVE_NECKLACE,1)
Exemple #12
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)
Exemple #13
0
                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)
Exemple #14
0
        elif cond == 1:
            if not st.getQuestItemsCount(TREASURE_CHEST):
                htmltext = "30095-2.htm"
            else:
                htmltext = "30095-4.htm"
        return htmltext

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

        chance = st.getRandom(100)
        if chance < CHANCE_OF_DROP:
            st.giveItems(TREASURE_CHEST, 1)
            st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(365, qn, "Devil's Legacy")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(RANDOLF)
QUEST.addTalkId(RANDOLF)
for mob in MOBS:
    QUEST.addKillId(mob)

STARTED.addQuestDrop(RANDOLF, TREASURE_CHEST, 1)
Exemple #15
0
QUEST.addTalkId(30655)

QUEST.addKillId(20145)
QUEST.addKillId(20176)
QUEST.addKillId(20233)
QUEST.addKillId(27077)
QUEST.addKillId(20550)
QUEST.addKillId(20581)
QUEST.addKillId(20582)
QUEST.addKillId(20082)
QUEST.addKillId(20084)
QUEST.addKillId(20086)
QUEST.addKillId(20087)
QUEST.addKillId(20088)

STARTED.addQuestDrop(30154,CAMOMILE_CHARM_ID,1)
STARTED.addQuestDrop(30460,CARDIENS_LETTER_ID,1)
STARTED.addQuestDrop(30371,WATER_OF_LIFE_ID,1)
STARTED.addQuestDrop(30154,MOONFLOWER_CHARM_ID,1)
STARTED.addQuestDrop(30154,HIERARCHS_LETTER_ID,1)
STARTED.addQuestDrop(30419,STARDUST_ID,1)
STARTED.addQuestDrop(30300,PURE_MITHRIL_CUP_ID,1)
STARTED.addQuestDrop(30371,THALIAS_INSTRUCTIONS_ID,1)
STARTED.addQuestDrop(30655,ISAELS_LETTER_ID,1)
STARTED.addQuestDrop(27077,TEARS_OF_UNICORN_ID,1)
STARTED.addQuestDrop(30371,GRAIL_DIAGRAM_ID,1)
STARTED.addQuestDrop(30300,PUSHKINS_LIST_ID,1)
STARTED.addQuestDrop(30371,THALIAS_LETTER1_ID,1)
STARTED.addQuestDrop(30419,ARKENIAS_CONTRACT_ID,1)
STARTED.addQuestDrop(30375,ANDARIEL_SCRIPTURE_COPY_ID,1)
STARTED.addQuestDrop(30419,ARKENIAS_INSTRUCTIONS_ID,1)
Exemple #16
0
            chance = st.getRandom(10)
            for i in DROP[npcId]:
                if i[0] <= chance < i[1]:
                    qty = i[2]
            if count + qty > 100:
                qty = 100 - count
            if count + qty == 100:
                st.playSound("ItemSound.quest_middle")
                st.set("cond", "2")
            else:
                st.playSound("ItemSound.quest_itemget")
            st.giveItems(BAT_FANG, qty)
        return


QUEST = Quest(294, qn, "Covert Business")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30534)

QUEST.addTalkId(30534)

QUEST.addKillId(20370)
QUEST.addKillId(20480)

STARTED.addQuestDrop(20480, BAT_FANG, 1)
Exemple #17
0
           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(118,qn,"To Lead And Be Led") 
CREATED   = State('Start',     QUEST) 
PROGRESS  = State('Progress',   QUEST) 
COMPLETED = State('Completed', QUEST) 

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(PINTER) 

QUEST.addTalkId(PINTER)

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

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

print "importing quests: 118: To Lead And Be Led"
Exemple #18
0
 def onKill (self,npc,player):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return 
   
   count=st.getQuestItemsCount(ORCISH_ARROWHEAD)
   if count<10 and st.getRandom(100)<40 :
     st.giveItems(ORCISH_ARROWHEAD,1)
     if count == 9 :
       st.set("cond","2") 
       st.playSound("ItemSound.quest_middle")
     else:
       st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(303,qn,"Collect Arrowheads")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30029)

QUEST.addTalkId(30029)

QUEST.addKillId(20361)
STARTED.addQuestDrop(20361,ORCISH_ARROWHEAD,1)

print "importing quests: 303: Collect Arrowheads"
Exemple #19
0
          giveItem(itemList[0],maxcount,leader_st)
        else:
          if npcId == 27181:                # Imperial Gravekeeper
            leader_st.getPcSpawn().addSpawn(30765,120000,["Curse of the gods on the one that defiles the property of the empire!"],60000)
            leader_st.set("ImpGraveKeeper","3")
            self.ImpGraveKepperStat = 1
          elif npcId == 20668:
            leader_st.getPcSpawn().addSpawn(27179)
    return

QUEST     = Quest(503,qn,"Pursuit of Clan Ambition")
CREATED   = State('Start', QUEST)
PROGRESS  = State('Progress', QUEST)
COMPLETED = State('Completed', QUEST)

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

for npcId in NPC:
  QUEST.addTalkId(npcId)

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

QUEST.addAttackId(27181)

for i in range(3839,3848)+range(3866,3870):
    PROGRESS.addQuestDrop(27181,i,1)

print "importing quests: 503: " + qd
Exemple #20
0
                    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)
Exemple #21
0
            st.giveItems(CHAPTER_OF_WIND, 1)
            st.playSound("ItemSound.quest_itemget")
        elif chance in range(75, 90) and st.getQuestItemsCount(CHAPTER_OF_EARTH) == 0:
            st.giveItems(CHAPTER_OF_EARTH, 1)
            st.playSound("ItemSound.quest_itemget")
        if (
            st.getQuestItemsCount(CHAPTER_OF_FIRE)
            and st.getQuestItemsCount(CHAPTER_OF_WATER)
            and st.getQuestItemsCount(CHAPTER_OF_WIND)
            and st.getQuestItemsCount(CHAPTER_OF_EARTH)
        ):
            st.playSound("ItemSound.quest_middle")
        return


QUEST = Quest(370, "370_AWisemanSowsSeeds", "A Wiseman Sows Seeds")
CREATED = State("Start", QUEST)
STARTED = State("Started", QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(CASIAN)
CREATED.addTalkId(CASIAN)
STARTED.addTalkId(CASIAN)
for i in MOBS:
    STARTED.addKillId(i)

for i in range(5917, 5921):
    STARTED.addQuestDrop(CASIAN, i, 1)

print "importing quests: 370: A Wiseman Sows Seeds"
Exemple #22
0
     htmltext = "30847-4.htm"
     st.exitQuest(1)
   return htmltext

 def onKill (self,npc,player):
   partyMember = self.getRandomPartyMember(player,"1")
   if not partyMember : return
   st = partyMember.getQuestState(qn)
   
   count = st.getQuestItemsCount(REINFORCED_STEEL)
   if count < 5 :
     st.giveItems(REINFORCED_STEEL,1)
     if count == 4 :
       st.playSound("ItemSound.quest_middle")
       st.set("cond","2")
     else:
       st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(36,qn,"Make A Sewing Kit")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30847)
QUEST.addTalkId(30847)
QUEST.addKillId(20566)
STARTED.addQuestDrop(20566,REINFORCED_STEEL,1)

print "importing quests: 36: Make A Sewing Kit"
Exemple #23
0
     return htmltext

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

     npcId = npc.getNpcId()
     cond = st.getInt("cond")
     if cond==1 :
         st.dropQuestItems(BEAR_SKIN,1,20,CHANCE,1)
     return

QUEST       = Quest(341,qn,"Hunting For Wild Beasts")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30078)

QUEST.addTalkId(30078)

STARTED.addQuestDrop(30078,BEAR_SKIN,1)

QUEST.addKillId(20021)
QUEST.addKillId(20203)
QUEST.addKillId(20310)
QUEST.addKillId(20335)

print "importing quests: 341: Hunting For Wild Beasts"
Exemple #24
0
            else:
                st.giveItems(item, 1)
                st.playSound("ItemSound.quest_itemget")
        return


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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30629)

QUEST.addTalkId(30629)

for npcId in [30391, 30409, 30411, 30412, 30413, 30612]:
    QUEST.addTalkId(npcId)

for mobId in [
        20145, 20157, 20176, 20230, 20231, 20232, 20234, 27095, 27096, 27097,
        27098, 20553, 20564, 20565, 20566
]:
    QUEST.addKillId(mobId)

for item in range(2841, 2864):
    STARTED.addQuestDrop(30629, item, 1)

print "importing quests: 228: Test Of Magus"
Exemple #25
0
         st.giveItems(LIZARD_FANG,st.getRandom(5)+1)
         st.playSound("ItemSound.quest_itemget")
     if random<=CHANCE2 :
         st.giveItems(BARREL_OF_LEAGUE,1)
         st.set("cond","2")
     return

QUEST       = Quest(351,qn,"Black Swan")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30916)

QUEST.addTalkId(30916)
QUEST.addTalkId(30969)
QUEST.addTalkId(30897)

STARTED.addQuestDrop(30916,ORDER_OF_GOSTA,1)
STARTED.addQuestDrop(30916,BARREL_OF_LEAGUE,1)
STARTED.addQuestDrop(30916,LIZARD_FANG,1)

QUEST.addKillId(20784)
QUEST.addKillId(20785)
QUEST.addKillId(21639)
QUEST.addKillId(21640)
QUEST.addKillId(21642)
QUEST.addKillId(21643)

print "importing quests: 351: Black Swan"
Exemple #26
0
        chance = st.getRandom(100)
        count = st.getQuestItemsCount(MEDICINAL_HERB)
        if chance < CHANCE_FOR_DROP and st.getInt("cond") == 3:
            if count < 20:
                st.giveItems(MEDICINAL_HERB, 1)
                if count == 19:
                    st.playSound("ItemSound.quest_middle")
                    st.set("cond", "4")
                else:
                    st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(32, "32_AnObviousLie", "An Obvious Lie")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(MAXIMILIAN)
CREATED.addTalkId(MAXIMILIAN)
STARTED.addTalkId(MAXIMILIAN)
STARTED.addTalkId(GENTLER)
STARTED.addTalkId(MIKI_THE_CAT)
STARTED.addKillId(ALLIGATOR)

STARTED.addQuestDrop(ALLIGATOR, MEDICINAL_HERB, 1)
STARTED.addQuestDrop(GENTLER, MAP, 1)

print "importing quests: 32: An Obvious Lie"
Exemple #27
0
        st.playSound("Itemsound.quest_itemget")
    else:     
     st.giveItems(itemid,1)
     if count==maxcount-1:
      st.playSound("ItemSound.quest_middle")
      st.set("cond",str(cond+1))
      if npcId == 27093:
         st.giveItems(STRANGE_MAP,1)
     else:
      st.playSound("Itemsound.quest_itemget")
   if npcId==20781 and random<30 and count<maxcount:
     st.addSpawn(27094,npc.getX(),npc.getY(),npc.getZ(),npc.getHeading(),True,300000)
   return

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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30690)

for npcId in NPC:
 QUEST.addTalkId(npcId)

for mobId in MOB:
 QUEST.addKillId(mobId)

for item in range(2784,2809):
    STARTED.addQuestDrop(30690,item,1)
Exemple #28
0
QUEST.addTalkId(30656)

QUEST.addKillId(20144)
QUEST.addKillId(20190)
QUEST.addKillId(20191)
QUEST.addKillId(20200)
QUEST.addKillId(20201)
QUEST.addKillId(20270)
QUEST.addKillId(27119)
QUEST.addKillId(20577)
QUEST.addKillId(20578)
QUEST.addKillId(20579)
QUEST.addKillId(20580)
QUEST.addKillId(20581)
QUEST.addKillId(20582)

STARTED.addQuestDrop(30116, LETTER_OF_DUSTIN, 1)
STARTED.addQuestDrop(27119, KNIGHTS_TEAR, 1)
STARTED.addQuestDrop(30653, OLD_KNIGHT_SWORD, 1)
STARTED.addQuestDrop(30656, TEAR_OF_CONFESSION, 1)
STARTED.addQuestDrop(30654, MIRROR_OF_ORPIC, 1)
STARTED.addQuestDrop(20200, TALIANUSS_REPORT, 1)
STARTED.addQuestDrop(20577, MILITAS_ARTICLE, 1)
STARTED.addQuestDrop(20270, ATEBALTS_SKULL, 1)
STARTED.addQuestDrop(20270, ATEBALTS_RIBS, 1)
STARTED.addQuestDrop(20270, ATEBALTS_SHIN, 1)
STARTED.addQuestDrop(30311, LETTER_OF_WINDAWOOD, 1)
STARTED.addQuestDrop(30655, TEAR_OF_LOYALTY, 1)
STARTED.addQuestDrop(30116, SAINTS_ASHES_URN, 1)
STARTED.addQuestDrop(20200, REPORT_PIECE, 1)
Exemple #29
0
QUEST.addTalkId(30191)

QUEST.addTalkId(30031)
QUEST.addTalkId(30154)
QUEST.addTalkId(30358)
QUEST.addTalkId(30464)
QUEST.addTalkId(30515)
QUEST.addTalkId(30531)
QUEST.addTalkId(30565)
QUEST.addTalkId(30621)
QUEST.addTalkId(30657)

for i in DROPLIST.keys()+[20013,20019,20036,20044,20553] :
    QUEST.addKillId(i)

STARTED.addQuestDrop(30358,SCROLL_OF_DARKELF_TRUST_ID,1)
STARTED.addQuestDrop(30154,SCROLL_OF_ELF_TRUST_ID,1)
STARTED.addQuestDrop(30531,SCROLL_OF_DWARF_TRUST_ID,1)
STARTED.addQuestDrop(30565,SCROLL_OF_ORC_TRUST_ID,1)
STARTED.addQuestDrop(27120,BREATH_OF_WINDS_ID,1)
STARTED.addQuestDrop(27121,SEED_OF_VERDURE_ID,1)
STARTED.addQuestDrop(30154,ORDER_OF_OZZY_ID,1)
STARTED.addQuestDrop(30191,LETTER_TO_ELF_ID,1)
STARTED.addQuestDrop(30464,ORDER_OF_CLAYTON_ID,1)
STARTED.addQuestDrop(20550,BASILISK_PLASMA_ID,1)
STARTED.addQuestDrop(20157,STAKATO_ICHOR_ID,1)
STARTED.addQuestDrop(20082,HONEY_DEW_ID,1)
STARTED.addQuestDrop(30191,LETTER_TO_DARKELF_ID,1)
STARTED.addQuestDrop(30358,LETTER_OF_THIFIELL_ID,1)
STARTED.addQuestDrop(30191,LETTER_TO_SERESIN_ID,1)
STARTED.addQuestDrop(30657,LETTER_TO_ORC_ID,1)
Exemple #30
0
                if st.getInt("AGRIPEL") == 1 and st.getInt(
                        "DOMINIC") == 1 and st.getInt("BENEDICT") == 1:
                    htmltext = "31349-02.htm"
                    st.set("cond", "7")
                    st.playSound("ItemSound.quest_middle")
                    return htmltext
                htmltext = "31349-0" + str(st.getRandom(3)) + ".htm"
            elif cond == 7:
                htmltext = "31349-03.htm"
        elif npcId == 31328:
            if cond == 7:
                if st.getQuestItemsCount(7140) == 1:
                    htmltext = "31328-01.htm"
            elif cond == 0 and onlyone == 1:
                htmltext = "31328-06.htm"
        return htmltext


QUEST = Quest(21, qn, "Hidden Truth")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(31522)

for NPC in [31522, 31523, 31524, 31525, 31526, 31348, 31349, 31350, 31328]:
    QUEST.addTalkId(NPC)

STARTED.addQuestDrop(31526, 7140, 1)
Exemple #31
0
             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)
STARTED.addQuestDrop(30130,UNDRES_LETTER_ID,1)
Exemple #32
0
        npcId = npc.getNpcId()
        chance = (CHANCE + (npcId - 20234) * 2) * Config.RATE_DROP_QUEST
        bonus = int(divmod(chance, 100)[0])
        if st.getInt("cond") == 1 and st.getRandom(100) < chance:
            st.giveItems(ARTICLES_DEAD_HEROES, 1 + bonus)
            st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(344, qn, "1000 Years, the End of Lamentation")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(GILMORE)

QUEST.addTalkId(GILMORE)

QUEST.addTalkId(RODEMAI)
QUEST.addTalkId(ORVEN)
QUEST.addTalkId(GARVARENTZ)
QUEST.addTalkId(KAIEN)

for mob in range(20236, 20241):
    QUEST.addKillId(mob)

for item in range(4269, 4274):
    STARTED.addQuestDrop(GILMORE, item, 1)

print "importing quests: 344: 1000 Years, the End of Lamentation"
Exemple #33
0
           st.set("id","5") 
           st.playSound("ItemSound.quest_middle") 
       elif npcId == GREENIS and st.getQuestItemsCount(GREENIS_LETTER) : 
         htmltext = "30157-03.htm" 
       elif npcId == GREENIS and (st.getQuestItemsCount(ARUJIENS_LETTER1) or st.getQuestItemsCount(ARUJIENS_LETTER2) or st.getQuestItemsCount(ARUJIENS_LETTER3)) : 
         htmltext = "30157-01.htm" 
   return htmltext

QUEST     = Quest(2,qn,"What Women Want") 
CREATED   = State('Start',     QUEST) 
STARTED   = State('Started',   QUEST) 
COMPLETED = State('Completed', QUEST) 

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(ARUJIEN) 

QUEST.addTalkId(ARUJIEN) 

QUEST.addTalkId(MIRABEL) 
QUEST.addTalkId(HERBIEL) 
QUEST.addTalkId(GREENIS) 
QUEST.addTalkId(ARUJIEN) 

STARTED.addQuestDrop(ARUJIEN,GREENIS_LETTER,1) 
STARTED.addQuestDrop(ARUJIEN,ARUJIENS_LETTER3,1) 
STARTED.addQuestDrop(ARUJIEN,ARUJIENS_LETTER1,1) 
STARTED.addQuestDrop(ARUJIEN,ARUJIENS_LETTER2,1) 
STARTED.addQuestDrop(ARUJIEN,POETRY_BOOK,1) 

print "importing quests: 2: What Women Want" 
Exemple #34
0
class Quest(JQuest):
    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)

    # this function is called by subclasses in order to add their own NPCs
    def registerNPCs(self):
        self.addStartNpc(self.NPC[0])
        self.addAttackId(self.Mob[2])
        self.addFirstTalkId(self.NPC[4])
        for npc in self.NPC:
            self.addTalkId(npc)
        for mobid in self.Mob:
            self.addKillId(mobid)
        for item in self.Items:
            self.STARTED.addQuestDrop(self.NPC[0], item, 1)

    def Cast(self, npc, target, skillId, level):
        target.broadcastPacket(
            MagicSkillUser(target, target, skillId, level, 6000, 1))
        target.broadcastPacket(
            MagicSkillUser(npc, npc, skillId, level, 6000, 1))

    def FindTemplate(self, npcId):
        for spawn in SpawnTable.getInstance().getSpawnTable().values():
            if spawn.getNpcId() == npcId:
                npcinstance = spawn.getLastSpawn()
                break
        return npcinstance

    def AutoChat(self, npc, text):
        chars = npc.getKnownList().getKnownPlayers().values().toArray()
        if chars != None:
            for pc in chars:
                sm = CreatureSay(npc.getObjectId(), 0, npc.getName(), text)
                pc.sendPacket(sm)

    def AddSpawn(self, st, mob):
        name = st.getPlayer().getName()
        self.Spawn_List.append([mob.getObjectId(), name, mob])
        return

    def FindSpawn(self, player, npcObjectId):
        for mobId, playerName, mob in self.Spawn_List:
            if mobId == npcObjectId and playerName == player.getName():
                return mob
        return None

    def DeleteSpawn(self, st, mobid):
        name = st.getPlayer().getName()
        for npcId, playerName, mob in self.Spawn_List:
            if (mobid, name) == (npcId, playerName):
                self.Spawn_List.remove([mobid, name, mob])
                mob.decayMe()
                return
        return

    def giveHallishaMark(self, st2):
        if st2.getInt("spawned") == 0:
            if st2.getQuestItemsCount(self.Items[3]) >= 700:
                st2.takeItems(self.Items[3], 20)
                xx = int(st2.getPlayer().getX())
                yy = int(st2.getPlayer().getY())
                zz = int(st2.getPlayer().getZ())
                Archon = st2.addSpawn(self.Mob[1], xx, yy, zz)
                ArchonId = Archon.getObjectId()
                st2.set("Archon", str(ArchonId))
                self.AddSpawn(st2, Archon)
                st2.set("spawned", "1")
                st2.startQuestTimer("Archon Hellisha has despawned", 600000,
                                    Archon)
                self.AutoChat(
                    Archon, self.Text[13].replace('PLAYERNAME',
                                                  st2.getPlayer().getName()))
                Archon.addDamageHate(st2.getPlayer(), 0, 99999)
                Archon.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK,
                                            st2.getPlayer(), None)
            else:
                st2.giveItems(self.Items[3], 1)
        return

    def findRightState(self, player, mob):
        mobid = mob.getObjectId()
        name = player.getName()
        st1 = None
        if [mobid, name] in self.Spawn_List:
            st1 = L2World.getInstance().getPlayer(name)
        else:
            for entry in self.Spawn_List:
                if entry[0] == mobid:
                    name = entry[1]
                    st1 = L2World.getInstance().getPlayer(name)
                    break
        if st1:
            return st1.getQuestState(self.qn)
        return st1

    def onAdvEvent(self, event, npc, player):
        st = player.getQuestState(self.qn)
        if not st: return
        htmltext = ""  # simple initialization...if none of the events match, return nothing.
        cond = st.getInt("cond")
        id = st.getInt("id")
        player = st.getPlayer()
        if event == "accept":
            st.set("cond", "1")
            st.setState(self.STARTED)
            st.playSound("ItemSound.quest_accept")
            st.giveItems(self.Items[10], 1)
            htmltext = "0-03.htm"
        elif event == "0-1":
            if player.getLevel() < 76:
                htmltext = "0-02.htm"
                st.exitQuest(1)
            else:
                htmltext = "0-05.htm"
        elif event == "0-2":
            if player.getLevel() >= 76:
                st.setState(self.COMPLETED)
                st.set("cond", "0")
                htmltext = "0-07.htm"
                st.takeItems(self.Items[10], -1)
                st.addExpAndSp(2299404, 0)
                st.giveItems(57, 5000000)
                st.giveItems(6622, 1)
                player.setClassId(self.classid)
                if not player.isSubClassActive() and player.getBaseClass(
                ) == self.prevclass:
                    player.setBaseClass(self.classid)
                player.broadcastUserInfo()
                self.Cast(self.FindTemplate(self.NPC[0]), player, 4339, 1)
            else:
                st.takeItems(self.Items[10], -1)
                st.playSound("ItemSound.quest_middle")
                st.set("cond", "20")
                htmltext = "0-08.htm"
        elif event == "1-3":
            st.set("cond", "3")
            htmltext = "1-05.htm"
        elif event == "1-4":
            st.set("cond", "4")
            st.takeItems(self.Items[0], 1)
            if self.Items[11] != 0:
                st.takeItems(self.Items[11], 1)
            st.giveItems(self.Items[1], 1)
            htmltext = "1-06.htm"
        elif event == "2-1":
            st.set("cond", "2")
            htmltext = "2-05.htm"
        elif event == "2-2":
            st.set("cond", "5")
            st.takeItems(self.Items[1], 1)
            st.giveItems(self.Items[4], 1)
            htmltext = "2-06.htm"
        elif event == "3-5":
            htmltext = "3-07.htm"
        elif event == "3-6":
            st.set("cond", "11")
            htmltext = "3-02.htm"
        elif event == "3-7":
            st.set("cond", "12")
            htmltext = "3-03.htm"
        elif event == "3-8":
            st.set("cond", "13")
            st.takeItems(self.Items[2], 1)
            st.giveItems(self.Items[7], 1)
            htmltext = "3-08.htm"
        elif event == "4-1":
            htmltext = "4-010.htm"
        elif event == "4-2":
            st.giveItems(self.Items[9], 1)
            st.set("cond", "18")
            st.playSound("ItemSound.quest_middle")
            htmltext = "4-011.htm"
        elif event == "4-3":
            st.giveItems(self.Items[9], 1)
            st.set("cond", "18")
            Mob_2 = self.FindSpawn(player, st.getInt("Mob_2"))
            self.AutoChat(
                Mob_2, self.Text[13].replace('PLAYERNAME', player.getName()))
            st.set("Quest0", "0")
            self.DeleteSpawn(st, Mob_2.getObjectId())
            st.playSound("ItemSound.quest_middle")
            return
        elif event == "5-1":
            st.set("cond", "6")
            st.takeItems(self.Items[4], 1)
            self.Cast(self.FindTemplate(self.NPC[5]), player, 4546, 1)
            st.playSound("ItemSound.quest_middle")
            htmltext = "5-02.htm"
        elif event == "6-1":
            st.set("cond", "8")
            st.takeItems(self.Items[5], 1)
            self.Cast(self.FindTemplate(self.NPC[6]), player, 4546, 1)
            st.playSound("ItemSound.quest_middle")
            htmltext = "6-03.htm"
        elif event == "7-1":
            if st.getInt("spawned") == 1:
                htmltext = "7-03.htm"
            elif st.getInt("spawned") == 0:
                Mob_1 = st.addSpawn(self.Mob[0], self.X[0], self.Y[0],
                                    self.Z[0])
                st.set("Mob_1", str(Mob_1.getObjectId()))
                st.set("spawned", "1")
                st.startQuestTimer("Mob_1 Timer 1", 500, Mob_1)
                st.startQuestTimer("Mob_1 has despawned", 300000, Mob_1)
                self.AddSpawn(st, Mob_1)
                htmltext = "7-02.htm"
            else:
                htmltext = "7-04.htm"
        elif event == "7-2":
            st.set("cond", "10")
            st.takeItems(self.Items[6], 1)
            self.Cast(self.FindTemplate(self.NPC[7]), player, 4546, 1)
            st.playSound("ItemSound.quest_middle")
            htmltext = "7-06.htm"
        elif event == "8-1":
            st.set("cond", "14")
            st.takeItems(self.Items[7], 1)
            self.Cast(self.FindTemplate(self.NPC[8]), player, 4546, 1)
            st.playSound("ItemSound.quest_middle")
            htmltext = "8-02.htm"
        elif event == "9-1":
            st.set("cond", "17")
            st.takeItems(self.Items[8], 1)
            self.Cast(self.FindTemplate(self.NPC[9]), player, 4546, 1)
            st.playSound("ItemSound.quest_middle")
            htmltext = "9-03.htm"
        elif event == "10-1":
            if st.getInt("Quest0") == 0:
                Mob_3 = st.addSpawn(self.Mob[2], self.X[1], self.Y[1],
                                    self.Z[1])
                Mob_2 = st.addSpawn(self.NPC[4], self.X[2], self.Y[2],
                                    self.Z[2])
                self.AddSpawn(st, Mob_3)
                self.AddSpawn(st, Mob_2)
                st.set("Mob_3", str(Mob_3.getObjectId()))
                st.set("Mob_2", str(Mob_2.getObjectId()))
                st.set("Quest0", "1")
                st.set("Quest1", "45")
                st.startQuestTimer("Mob_3 Timer 1", 500, Mob_3)
                st.startQuestTimer("Mob_3 has despawned", 59000, Mob_3)
                st.startQuestTimer("Mob_2 Timer 1", 500, Mob_2)
                st.startQuestTimer("Mob_2 has despawned", 60000, Mob_2)
                htmltext = "10-02.htm"
            elif st.getInt("Quest1") == 45:
                htmltext = "10-03.htm"
            else:
                htmltext = "10-04.htm"
        elif event == "10-2":
            st.set("cond", "19")
            st.takeItems(self.Items[9], 1)
            self.Cast(self.FindTemplate(self.NPC[10]), player, 4546, 1)
            st.playSound("ItemSound.quest_middle")
            htmltext = "10-06.htm"
        elif event == "11-9":
            st.set("cond", "15")
            htmltext = "11-03.htm"
        elif event == "Mob_1 Timer 1":
            self.AutoChat(npc, self.Text[0].replace('PLAYERNAME',
                                                    player.getName()))
            return
        elif event == "Mob_1 has despawned":
            self.AutoChat(npc, self.Text[1].replace('PLAYERNAME',
                                                    player.getName()))
            self.DeleteSpawn(st, npc.getObjectId())
            st.set("spawned", "0")
            return
        elif event == "Archon of Hellisha has despawned":
            self.AutoChat(npc, self.Text[6].replace('PLAYERNAME',
                                                    player.getName()))
            self.DeleteSpawn(st, npc.getObjectId())
            st.set("spawned", "0")
            return
        elif event == "Mob_3 Timer 1":
            Mob_2 = self.FindSpawn(player, st.getInt("Mob_2"))
            if npc.getKnownList().knowsObject(Mob_2):
                npc.addDamageHate(Mob_2, 0, 99999)
                npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK,
                                         Mob_2, None)
                #Mob_2.addDamageHate(npc,0,99999)
                Mob_2.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK,
                                           npc, None)
                self.AutoChat(
                    npc, self.Text[14].replace('PLAYERNAME', player.getName()))
            else:
                st.startQuestTimer("Mob_3 Timer 1", 500, npc)
            return
        elif event == "Mob_3 has despawned":
            self.AutoChat(
                npc, self.Text[15].replace('PLAYERNAME', player.getName()))
            st.set("Quest0", "2")
            npc.reduceCurrentHp(9999999, npc)
            self.DeleteSpawn(st, npc.getObjectId())
            return
        elif event == "Mob_2 Timer 1":
            self.AutoChat(npc, self.Text[7].replace('PLAYERNAME',
                                                    player.getName()))
            st.startQuestTimer("Mob_2 Timer 2", 1500, npc)
            if st.getInt("Quest1") == 45:
                st.set("Quest1", "0")
            return
        elif event == "Mob_2 Timer 2":
            self.AutoChat(npc, self.Text[8].replace('PLAYERNAME',
                                                    player.getName()))
            st.startQuestTimer("Mob_2 Timer 3", 10000, npc)
            return
        elif event == "Mob_2 Timer 3":
            if st.getInt("Quest0") == 0:
                st.startQuestTimer("Mob_2 Timer 3", 13000, npc)
                if st.getRandom(2) == 0:
                    self.AutoChat(
                        npc, self.Text[9].replace('PLAYERNAME',
                                                  player.getName()))
                else:
                    self.AutoChat(
                        npc, self.Text[10].replace('PLAYERNAME',
                                                   player.getName()))
            return
        elif event == "Mob_2 has despawned":
            st.set("Quest1", str(st.getInt("Quest1") + 1))
            if st.getInt("Quest0") == 1 or st.getInt(
                    "Quest0") == 2 or st.getInt("Quest1") > 3:
                st.set("Quest0", "0")
                if st.getInt("Quest0") == 1:
                    self.AutoChat(
                        npc, self.Text[11].replace('PLAYERNAME',
                                                   player.getName()))
                else:
                    self.AutoChat(
                        npc, self.Text[12].replace('PLAYERNAME',
                                                   player.getName()))
                npc.reduceCurrentHp(9999999, npc)
                self.DeleteSpawn(st, npc.getObjectId())
            else:
                st.startQuestTimer("Mob_2 has despawned", 1000, npc)
            return
        return htmltext

    def onTalk(self, npc, player):
        htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>"
        st = player.getQuestState(self.qn)
        if st:
            npcId = npc.getNpcId()
            cond = st.getInt("cond")
            if st.getState() == self.COMPLETED and npcId == self.NPC[0]:
                htmltext == "<html><body>You have already completed this quest!</body></html>"
            elif player.getClassId().getId() == self.prevclass:
                if cond == 0:
                    if npcId == self.NPC[0]:
                        htmltext = "0-01.htm"
                elif cond == 1:
                    if npcId == self.NPC[0]:
                        htmltext = "0-04.htm"
                    elif npcId == self.NPC[2]:
                        htmltext = "2-01.htm"
                elif cond == 2:
                    if npcId == self.NPC[2]:
                        htmltext = "2-02.htm"
                    elif npcId == self.NPC[1]:
                        htmltext = "1-01.htm"
                elif cond == 3:
                    if npcId == self.NPC[1]:
                        if st.getQuestItemsCount(self.Items[0]):
                            if self.Items[11] == 0:
                                htmltext = "1-03.htm"
                            elif st.getQuestItemsCount(self.Items[11]):
                                htmltext = "1-03.htm"
                            else:
                                htmltext = "1-02.htm"
                        else:
                            htmltext = "1-02.htm"
                elif cond == 4:
                    if npcId == self.NPC[1]:
                        htmltext = "1-04.htm"
                    elif npcId == self.NPC[2]:
                        htmltext = "2-03.htm"
                elif cond == 5:
                    if npcId == self.NPC[2]:
                        htmltext = "2-04.htm"
                    elif npcId == self.NPC[5]:
                        htmltext = "5-01.htm"
                elif cond == 6:
                    if npcId == self.NPC[5]:
                        htmltext = "5-03.htm"
                    elif npcId == self.NPC[6]:
                        htmltext = "6-01.htm"
                elif cond == 7:
                    if npcId == self.NPC[6]:
                        htmltext = "6-02.htm"
                elif cond == 8:
                    if npcId == self.NPC[6]:
                        htmltext = "6-04.htm"
                    elif npcId == self.NPC[7]:
                        htmltext = "7-01.htm"
                elif cond == 9:
                    if npcId == self.NPC[7]:
                        htmltext = "7-05.htm"
                elif cond == 10:
                    if npcId == self.NPC[7]:
                        htmltext = "7-07.htm"
                    elif npcId == self.NPC[3]:
                        htmltext = "3-01.htm"
                elif cond == 11 or cond == 12:
                    if npcId == self.NPC[3]:
                        if st.getQuestItemsCount(self.Items[2]):
                            htmltext = "3-05.htm"
                        else:
                            htmltext = "3-04.htm"
                elif cond == 13:
                    if npcId == self.NPC[3]:
                        htmltext = "3-06.htm"
                    elif npcId == self.NPC[8]:
                        htmltext = "8-01.htm"
                elif cond == 14:
                    if npcId == self.NPC[8]:
                        htmltext = "8-03.htm"
                    elif npcId == self.NPC[11]:
                        htmltext = "11-01.htm"
                elif cond == 15:
                    if npcId == self.NPC[11]:
                        htmltext = "11-02.htm"
                    elif npcId == self.NPC[9]:
                        htmltext = "9-01.htm"
                elif cond == 16:
                    if npcId == self.NPC[9]:
                        htmltext = "9-02.htm"
                elif cond == 17:
                    if npcId == self.NPC[9]:
                        htmltext = "9-04.htm"
                    elif npcId == self.NPC[10]:
                        htmltext = "10-01.htm"
                elif cond == 18:
                    if npcId == self.NPC[10]:
                        htmltext = "10-05.htm"
                elif cond == 19:
                    if npcId == self.NPC[10]:
                        htmltext = "10-07.htm"
                    if npcId == self.NPC[0]:
                        htmltext = "0-06.htm"
                elif cond == 20:
                    if npcId == self.NPC[0]:
                        if player.getLevel() >= 76:
                            st.setState(self.COMPLETED)
                            st.set("cond", "0")
                            htmltext = "0-07.htm"
                            st.addExpAndSp(2299404, 0)
                            st.giveItems(57, 5000000)
                            st.giveItems(6622, 1)
                            player.setClassId(self.classid)
                            if not player.isSubClassActive(
                            ) and player.getBaseClass() == self.prevclass:
                                player.setBaseClass(self.classid)
                            player.broadcastUserInfo()
                            self.Cast(self.FindTemplate(self.NPC[0]), player,
                                      4339, 1)
                        else:
                            htmltext = "0-010.htm"
        return htmltext

    def onFirstTalk(self, npc, player):
        htmltext = ""
        st = player.getQuestState(self.qn)
        npcId = npc.getNpcId()
        if st:
            cond = st.getInt("cond")
            if npcId == self.NPC[4]:
                if cond == 17:
                    st2 = self.findRightState(player, npc)
                    if st2:
                        if st == st2:
                            if st.getInt("Tab") == 1:
                                if st.getInt("Quest0") == 0:
                                    htmltext = "4-04.htm"
                                elif st.getInt("Quest0") == 1:
                                    htmltext = "4-06.htm"
                            else:
                                if st.getInt("Quest0") == 0:
                                    htmltext = "4-01.htm"
                                elif st.getInt("Quest0") == 1:
                                    htmltext = "4-03.htm"
                        else:
                            if st.getInt("Tab") == 1:
                                if st.getInt("Quest0") == 0:
                                    htmltext = "4-05.htm"
                                elif st.getInt("Quest0") == 1:
                                    htmltext = "4-07.htm"
                            else:
                                if st.getInt("Quest0") == 0:
                                    htmltext = "4-02.htm"
                elif cond == 18:
                    htmltext = "4-08.htm"
        return htmltext

    def onAttack(self, npc, player, damage, isPet):
        st = player.getQuestState(self.qn)
        if st:
            if st.getInt("cond") == 17:
                if npc.getNpcId() == self.Mob[2]:
                    st2 = self.findRightState(player, npc)
                    if st == st2:
                        st.set("Quest0", str(st.getInt("Quest0") + 1))
                        if st.getInt("Quest0") == 1:
                            self.AutoChat(
                                npc,
                                self.Text[16].replace('PLAYERNAME',
                                                      player.getName()))
                        if st.getInt("Quest0") > 15:
                            st.set("Quest0", "1")
                            self.AutoChat(
                                npc,
                                self.Text[17].replace('PLAYERNAME',
                                                      player.getName()))
                            npc.reduceCurrentHp(9999999, npc)
                            self.DeleteSpawn(st, st.getInt("Mob_3"))
                            st.getQuestTimer("Mob_3 has despawned").cancel()
                            st.set("Tab", "1")
        return

    def onKill(self, npc, player, isPet):
        npcId = npc.getNpcId()
        st = player.getQuestState(self.qn)
        if npcId in Archon_Minions:
            party = player.getParty()
            if party:
                PartyQuestMembers = []
                for player1 in party.getPartyMembers().toArray():
                    for q in Quests.keys():
                        st1 = player1.getQuestState(Quests[q])
                        if st1:
                            if player1.getClassId().getId() == QuestClass[
                                    int(q) - 70]:
                                if st1.getInt("cond") == 15:
                                    PartyQuestMembers.append(st1)
                                    break
                if len(PartyQuestMembers) > 0:
                    st2 = PartyQuestMembers[Rnd.get(len(PartyQuestMembers))]
                    st2.getQuest().giveHallishaMark(st2)
            else:
                for q in Quests.keys():
                    st1 = player.getQuestState(Quests[q])
                    if st1:
                        if player.getClassId().getId() == QuestClass[int(q) -
                                                                     70]:
                            if st1.getInt("cond") == 15:
                                st1.getQuest().giveHallishaMark(st1)
                                break
        elif npcId in Archon_Hellisha_Norm:
            for q in Quests.keys():
                st1 = player.getQuestState(Quests[q])
                if st1:
                    if player.getClassId().getId() == QuestClass[int(q) - 70]:
                        if st1.getInt("cond") == 15:
                            #This is just a guess....not really sure what it actually says, if anything
                            self.AutoChat(
                                npc,
                                st1.getQuest().Text[4].replace(
                                    'PLAYERNAME',
                                    st1.getPlayer().getName()))
                            st1.giveItems(st1.getQuest().Items[8], 1)
                            st1.takeItems(st1.getQuest().Items[3], -1)
                            st1.set("cond", "16")
                            st1.playSound("ItemSound.quest_middle")
                            break
        elif npcId in Guardian_Angels:
            for q in Quests.keys():
                st1 = player.getQuestState(Quests[q])
                if st1:
                    if player.getClassId().getId() == QuestClass[int(q) - 70]:
                        if st1.getInt("cond") == 6:
                            if st1.getInt("kills") < 9:
                                st1.set("kills", str(st1.getInt("kills") + 1))
                            else:
                                st1.playSound("ItemSound.quest_middle")
                                st1.giveItems(st1.getQuest().Items[5], 1)
                                st1.set("cond", "7")
                            break
        elif st:
            cond = st.getInt("cond")
            if npcId == self.Mob[0] and cond == 8:
                st2 = self.findRightState(player, npc)
                if st2:
                    if not player.isInParty():
                        if st == st2:
                            self.AutoChat(
                                npc,
                                self.Text[12].replace('PLAYERNAME',
                                                      player.getName()))
                            st.giveItems(self.Items[6], 1)
                            st.set("cond", "9")
                            st.playSound("ItemSound.quest_middle")
                    st2.getQuestTimer("Mob_1 has despawned").cancel()
                    self.DeleteSpawn(st2, st2.getInt("Mob_1"))
                    st2.set("spawned", "0")
            elif npcId == self.Mob[1]:
                if cond == 15:
                    st2 = self.findRightState(player, npc)
                    if st2:
                        if not player.isInParty():
                            if st == st2:
                                self.AutoChat(
                                    npc, self.Text[4].replace(
                                        'PLAYERNAME', player.getName()))
                                st.giveItems(self.Items[8], 1)
                                st.takeItems(self.Items[3], -1)
                                st.set("cond", "16")
                                st.playSound("ItemSound.quest_middle")
                            else:
                                self.AutoChat(
                                    npc, self.Text[5].replace(
                                        'PLAYERNAME', player.getName()))
                        st2.getQuestTimer(
                            "Archon Hellisha has despawned").cancel()
                        self.DeleteSpawn(st2, st2.getInt("Archon"))
                        st2.set("spawned", "0")
        else:
            if npcId == self.Mob[0]:
                st = self.findRightState(player, npc)
                if st:
                    st.getQuestTimer("Mob_1 has despawned").cancel()
                    self.DeleteSpawn(st, st.getInt("Mob_1"))
                    st.set("spawned", "0")
            elif npcId == self.Mob[1]:
                st = self.findRightState(player, npc)
                if st:
                    st.getQuestTimer("Archon Hellisha has despawned").cancel()
                    self.DeleteSpawn(st, st.getInt("Archon"))
                    st.set("spawned", "0")
        return
Exemple #35
0
            htmltext = "7116-01.htm"
        elif npcId == 7116 and int(st.get("cond"))==6 :
            htmltext = "7116-03.htm"

        return htmltext

QUEST       = Quest(46,"46_OnceMoreInTheArmsOfTheMotherTree","Once More In The Arms Of The Mother Tree")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(7097)

CREATED.addTalkId(7097)
COMPLETED.addTalkId(7097)

STARTED.addTalkId(7097)
STARTED.addTalkId(7094)
STARTED.addTalkId(7090)
STARTED.addTalkId(7116)

STARTED.addQuestDrop(7097,GALLADUCCIS_ORDER_DOCUMENT_ID_1,1)
STARTED.addQuestDrop(7097,GALLADUCCIS_ORDER_DOCUMENT_ID_2,1)
STARTED.addQuestDrop(7097,GALLADUCCIS_ORDER_DOCUMENT_ID_3,1)
STARTED.addQuestDrop(7094,MAGIC_SWORD_HILT_ID,1)
STARTED.addQuestDrop(7090,GEMSTONE_POWDER_ID,1)
STARTED.addQuestDrop(7116,PURIFIED_MAGIC_NECKLACE_ID,1)

print "importing quests: 46: Once More In The Arms of the Mother Tree"
Exemple #36
0
   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)
STARTED.addQuestDrop(30133,ONYX_TALISMAN2,1)
STARTED.addQuestDrop(27070,ANCIENT_SCROLL,1)
STARTED.addQuestDrop(27070,ANCIENT_CLAY_TABLET,1)
Exemple #37
0
   count = st.getQuestItemsCount(KASHA_WOLF_FANG)  
   if count < 50 :
      if st.getRandom(100) <= 25 and count < 49 :
         st.giveItems(KASHA_WOLF_FANG,2)
         count += 2
      else :
         st.giveItems(KASHA_WOLF_FANG,1)
         count += 1
      if count >= 50 :
         st.playSound("ItemSound.quest_middle")
         st.set("cond","2")
      else:
         st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(271,qn,"Proof Of Valor")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST) # kept just for backwards compatibility
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30577)

QUEST.addTalkId(30577)

QUEST.addKillId(20475)
STARTED.addQuestDrop(20475,KASHA_WOLF_FANG,1)

print "importing quests: 271: Proof Of Valor"
Exemple #38
0
        return


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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30587)

QUEST.addTalkId(30587)

QUEST.addTalkId(30501)
QUEST.addTalkId(30590)
QUEST.addTalkId(30591)

QUEST.addKillId(20014)
QUEST.addKillId(20017)
QUEST.addKillId(20024)
QUEST.addKillId(20359)
QUEST.addKillId(20415)
QUEST.addKillId(20478)
QUEST.addKillId(20479)

for item in range(1593, 1615):
    STARTED.addQuestDrop(30587, item, 1)

print "importing quests: 415: Path To Orc Monk"
Exemple #39
0
            st.giveItems(DARK_BEZOAR_ID,1)
            if st.getQuestItemsCount(DARK_BEZOAR_ID) == 13 :
              st.playSound("ItemSound.quest_middle")
            else:
              st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(165,"165_WildHunt","Wild Hunt")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(7348)

STARTING.addTalkId(7348)

STARTED.addTalkId(7348)

STARTED.addKillId(456)
STARTED.addKillId(529)
STARTED.addKillId(532)
STARTED.addKillId(536)

STARTED.addQuestDrop(529,DARK_BEZOAR_ID,1)
STARTED.addQuestDrop(532,DARK_BEZOAR_ID,1)
STARTED.addQuestDrop(536,DARK_BEZOAR_ID,1)
STARTED.addQuestDrop(456,DARK_BEZOAR_ID,1)
Exemple #40
0
                        if pst.getQuestTimer(
                                "Soul of Fire Nastron has despawned"):
                            pst.getQuestTimer(
                                "Soul of Fire Nastron has despawned").cancel()
        elif npcId in Varka_Mobs:
            st = player.getQuestState(qn)
            if st:
                if st.getQuestItemsCount(Fire_Heart):
                    st.takeItems(Fire_Heart, -1)
                st.unset("cond")
                st.unset("id")
                st.exitQuest(1)
        return


QUEST = Quest(616, qn, "Magical Power of Fire - Part 2")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(Udan)

QUEST.addTalkId(Udan)
QUEST.addTalkId(Alter)

QUEST.addKillId(Nastron)
STARTED.addQuestDrop(Nastron, Fire_Heart, 1)

for mobId in Varka_Mobs:
    QUEST.addKillId(mobId)
Exemple #41
0
 def onKill (self, npc, player):
   st = player.getQuestState(qn)
   if st :
     if st.getState() == STARTED :
       count = st.getQuestItemsCount(NECROHEART)
       if st.getInt("cond")==1 and st.getRandom(100)<CHANCE and count<10 :
          st.giveItems(NECROHEART,1)
          if count == 9 :
             st.playSound("ItemSound.quest_middle")
             st.set("cond","2")
          else:
             st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(637,qn,"Through the Gate Once More")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(FLAURON)

QUEST.addTalkId(FLAURON)

for mob in range(21565,21568):
    QUEST.addKillId(mob)

STARTED.addQuestDrop(FLAURON,NECROHEART,1)

print "importing quests: 637: Through the Gate Once More"
Exemple #42
0
QUEST.addTalkId(30191)

QUEST.addTalkId(30031)
QUEST.addTalkId(30154)
QUEST.addTalkId(30358)
QUEST.addTalkId(30464)
QUEST.addTalkId(30515)
QUEST.addTalkId(30531)
QUEST.addTalkId(30565)
QUEST.addTalkId(30621)
QUEST.addTalkId(30657)

for i in DROPLIST.keys()+[20013,20019,20036,20044,20553] :
    QUEST.addKillId(i)

STARTED.addQuestDrop(30358,SCROLL_OF_DARKELF_TRUST_ID,1)
STARTED.addQuestDrop(30154,SCROLL_OF_ELF_TRUST_ID,1)
STARTED.addQuestDrop(30531,SCROLL_OF_DWARF_TRUST_ID,1)
STARTED.addQuestDrop(30565,SCROLL_OF_ORC_TRUST_ID,1)
STARTED.addQuestDrop(27120,BREATH_OF_WINDS_ID,1)
STARTED.addQuestDrop(27121,SEED_OF_VERDURE_ID,1)
STARTED.addQuestDrop(30154,ORDER_OF_OZZY_ID,1)
STARTED.addQuestDrop(30191,LETTER_TO_ELF_ID,1)
STARTED.addQuestDrop(30464,ORDER_OF_CLAYTON_ID,1)
STARTED.addQuestDrop(20550,BASILISK_PLASMA_ID,1)
STARTED.addQuestDrop(20157,STAKATO_ICHOR_ID,1)
STARTED.addQuestDrop(20082,HONEY_DEW_ID,1)
STARTED.addQuestDrop(30191,LETTER_TO_DARKELF_ID,1)
STARTED.addQuestDrop(30358,LETTER_OF_THIFIELL_ID,1)
STARTED.addQuestDrop(30191,LETTER_TO_SERESIN_ID,1)
STARTED.addQuestDrop(30657,LETTER_TO_ORC_ID,1)
Exemple #43
0
           if Rnd.get(2) : partyMember = partyMember2
           
   st = partyMember.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return
   
   count = st.getQuestItemsCount(SPINNERET)
   if count < 10 :
     st.giveItems(SPINNERET,1)
     if count == 9 :
       st.playSound("ItemSound.quest_middle")
       st.set("cond","5")
     else :
       st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(34,qn,"In Search of Clothes")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

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

QUEST.addTalkId(30165)
QUEST.addTalkId(30294)
QUEST.addKillId(20560)
STARTED.addQuestDrop(20560,SPINNERET,1)

print "importing quests: 34: In Search of Clothes"
Exemple #44
0
STARTED.addTalkId(7609)
STARTED.addTalkId(7610)
STARTED.addTalkId(7611)
STARTED.addTalkId(7612)

STARTED.addKillId(158)
STARTED.addKillId(201)
STARTED.addKillId(235)
STARTED.addKillId(269)
STARTED.addKillId(552)
STARTED.addKillId(554)
STARTED.addKillId(567)
STARTED.addKillId(580)
STARTED.addKillId(68)

STARTED.addQuestDrop(7115, SYMBOL_OF_JUREK_ID, 1)
STARTED.addQuestDrop(7461, MIRIENS_SIGIL2_ID, 1)
STARTED.addQuestDrop(7070, SYMBOL_OF_SYLVAIN_ID, 1)
STARTED.addQuestDrop(7461, MIRIENS_SIGIL1_ID, 1)
STARTED.addQuestDrop(7461, MIRIENS_INSTRUCTION_ID, 1)
STARTED.addQuestDrop(7610, SYMBOL_OF_CRONOS_ID, 1)
STARTED.addQuestDrop(7461, MIRIENS_SIGIL3_ID, 1)
STARTED.addQuestDrop(7070, HIGHPRIESTS_SIGIL_ID, 1)
STARTED.addQuestDrop(7608, CRYSTAL_OF_PURITY1_ID, 1)
STARTED.addQuestDrop(7070, SYLVAINS_LETTER_ID, 1)
STARTED.addQuestDrop(7609, CRETAS_LETTER1_ID, 1)
STARTED.addQuestDrop(580, BROWN_SCROLL_SCRAP_ID, 1)
STARTED.addQuestDrop(7071, CRETAS_PAINTING3_ID, 1)
STARTED.addQuestDrop(7071, LUKAS_LETTER_ID, 1)
STARTED.addQuestDrop(7609, CRETAS_PAINTING1_ID, 1)
STARTED.addQuestDrop(7103, VALKONS_REQUEST_ID, 1)
Exemple #45
0
   if st.getState() != STARTED : return 
   
   npcId = npc.getNpcId()
   if npcId == 20311 : chance = 90
   if npcId == 20312 : chance = 87
   if npcId == 20313 : chance = 77
   if st.getRandom(100) <= chance :
      st.giveItems(BLACK_SOULSTONE,1)
   else:
      st.giveItems(RED_SOULSTONE,1)
   st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(273,qn,"Invaders Of Holyland")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30566)

QUEST.addTalkId(30566)

QUEST.addKillId(20311)
QUEST.addKillId(20312)
QUEST.addKillId(20313)

STARTED.addQuestDrop(20311,BLACK_SOULSTONE,1)
STARTED.addQuestDrop(20313,RED_SOULSTONE,1)
Exemple #46
0
    def onKill(self, npc, player):
        st = player.getQuestState(qn)
        if st:
            if st.getState() == STARTED:
                count = st.getQuestItemsCount(THIEF_GUILD_MARK)
                if st.getInt("cond") == 1 and count < 200 and st.getRandom(
                        100) < CHANCE:
                    st.giveItems(THIEF_GUILD_MARK, 1)
                    if count == 199:
                        st.playSound("ItemSound.quest_middle")
                        st.set("cond", "2")
                    else:
                        st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(649, qn, "A Looter and a Railroad Man")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

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

for BANDITS in [22017, 22018, 22019, 22021, 22022, 22023, 22024, 22026]:
    QUEST.addKillId(BANDITS)

STARTED.addQuestDrop(OBI, THIEF_GUILD_MARK, 1)

print "importing quests: 649: A Looter and a Railroad Man"
Exemple #47
0
        if count+qty==100 :
          st.playSound("ItemSound.quest_middle")
          st.set("cond","2")
        else :
          st.playSound("ItemSound.quest_itemget")
        st.giveItems(PREDATORS_FANG,qty)
   return

QUEST       = Quest(266,"266_PleaOfPixies","Plea Of Pixies")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(12091)

CREATED.addTalkId(12091)
STARTING.addTalkId(12091)
STARTED.addTalkId(12091)
COMPLETED.addTalkId(12091)

STARTED.addKillId(525)
STARTED.addKillId(530)
STARTED.addKillId(534)
STARTED.addKillId(537)

STARTED.addQuestDrop(530,PREDATORS_FANG,1)

print "importing quests: 266: Plea Of Pixies"
Exemple #48
0
QUEST       = Quest(407,qn,"Path To Elven Scout")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30328)

QUEST.addTalkId(30328)

QUEST.addTalkId(30334)
QUEST.addTalkId(30337)
QUEST.addTalkId(30426)


QUEST.addKillId(27031)
QUEST.addKillId(20053)

STARTED.addQuestDrop(30328,REORIA_LETTER2,1)
STARTED.addQuestDrop(20053,PRIGUNS_TEAR_LETTER1,1)
STARTED.addQuestDrop(20053,PRIGUNS_TEAR_LETTER2,1)
STARTED.addQuestDrop(20053,PRIGUNS_TEAR_LETTER3,1)
STARTED.addQuestDrop(20053,PRIGUNS_TEAR_LETTER4,1)
STARTED.addQuestDrop(27031,RUSTED_KEY,1)
STARTED.addQuestDrop(30337,MORETTIS_HERB,1)
STARTED.addQuestDrop(30337,MORETTIS_LETTER,1)
STARTED.addQuestDrop(30426,PRIGUNS_LETTER,1)
STARTED.addQuestDrop(30337,HONORARY_GUARD,1)
Exemple #49
0
     st.giveItems(item,1)
     st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(326,qn,"Vanquish Remnants")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30435)

QUEST.addTalkId(30435)

QUEST.addKillId(20436)
QUEST.addKillId(20437)
QUEST.addKillId(20438)
QUEST.addKillId(20439)
QUEST.addKillId(20053)
QUEST.addKillId(20058)
QUEST.addKillId(20061)
QUEST.addKillId(20063)
QUEST.addKillId(20066)

STARTED.addQuestDrop(20053,RED_CROSS_BADGE,1)
STARTED.addQuestDrop(20061,BLUE_CROSS_BADGE,1)
STARTED.addQuestDrop(20066,BLACK_CROSS_BADGE,1)

print "importing quests: 326: Vanquish Remnants"
Exemple #50
0
            if st.getRandom(1000) < UNDEADS[npcId]:  
                st.giveItems(Z_LIVER, 1)  
                st.playSound("ItemSound.quest_itemget")  
        elif npcId in DAMOBS.keys():
            partyMember = self.getRandomPartyMember(player, "cond", "1")
            if not partyMember: return                
            st = partyMember.getQuestState(qn)
            if not st : return
            if st.getRandom(1000) < DAMOBS[npcId]:                  
                st.giveItems(RIB_BONE, 1)  
                if st.getQuestItemsCount(RIB_BONE) == 200:  
                    st.set("cond","2")  
                    st.playSound("ItemSound.quest_middle")  
                else:  
                    st.playSound("ItemSound.quest_itemget") 
        return        

QUEST       = Quest(633, qn, "In The Forgotten Village")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

for i in DAMOBS.keys():
    QUEST.addKillId(i)
for i in UNDEADS.keys():
    QUEST.addKillId(i)
    
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(MINA)
QUEST.addTalkId(MINA)
STARTED.addQuestDrop(MINA,RIB_BONE,1)
STARTED.addQuestDrop(MINA,Z_LIVER,1)
Exemple #51
0
   if not st : return 
   if st.getState() != STARTED : return 
   
   count=st.getQuestItemsCount(BONE_FRAGMENT)
   if count<10 and st.getRandom(10)>7 :
      st.giveItems(BONE_FRAGMENT,1)
      if count == 9 :
        st.playSound("ItemSound.quest_middle")
        st.set("cond","2")
      else :
        st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(320,qn,"Bones Tell Future")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30359)

QUEST.addTalkId(30359)

QUEST.addKillId(20517)
QUEST.addKillId(20518)

STARTED.addQuestDrop(20517,BONE_FRAGMENT,1)

print "importing quests: 320: Bones Tell Future"
Exemple #52
0
        if st.getState() != STARTED: return

        npcId = npc.getNpcId()
        chance, item = DROPLIST[npcId]
        if st.getRandom(100) < chance:
            st.giveItems(item, 1)
            st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(306, qn, "Crystal Of Fireice")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30004)

QUEST.addTalkId(30004)

QUEST.addKillId(20109)
QUEST.addKillId(20110)
QUEST.addKillId(20112)
QUEST.addKillId(20113)
QUEST.addKillId(20114)
QUEST.addKillId(20115)

STARTED.addQuestDrop(20109, FLAME_SHARD, 1)
STARTED.addQuestDrop(20110, ICE_SHARD, 1)
Exemple #53
0
           if cond == 4:
              if st.getQuestItemsCount(OL_MAHUM_RUNESTONE_ID)+st.getQuestItemsCount(TUREK_RUNESTONE_ID)+st.getQuestItemsCount(ANT_RUNESTONE_ID)+st.getQuestItemsCount(TURAK_BUGBEAR_RUNESTONE_ID)==4 :
                 st.set("cond",str(cond+1))
              return
           elif cond == 16:
              if st.getQuestItemsCount(ABYSS_RUNESTONE1_ID)+st.getQuestItemsCount(ABYSS_RUNESTONE2_ID)+st.getQuestItemsCount(ABYSS_RUNESTONE3_ID)+st.getQuestItemsCount(ABYSS_RUNESTONE4_ID)==4:
                 st.set("cond",str(cond+1))
              return
           else:
             st.set("cond",str(cond+1))
        else :
           st.playSound("Itemsound.quest_itemget")
   return

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


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

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

for mobId in MOBS:
  QUEST.addKillId(mobId)
Exemple #54
0
      st.playSound("ItemSound.quest_middle")
      st.set("cond","2")
   elif cond == 3 and st.getRandom(100) < 40 and count < 5 :
      if count == 4 :
         st.playSound("ItemSound.quest_middle")
         st.set("cond","4")
      else:
         st.playSound("ItemSound.quest_itemget")
      st.giveItems(PLAGUE_DUST,1)
   return

QUEST     = Quest(159,qn,"Protect Headsprings")
CREATED   = State('Start',     QUEST)
STARTING  = State('Starting',  QUEST)
STARTED   = State('Started',   QUEST)
COMPLETED = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30154)

QUEST.addTalkId(30154)

QUEST.addKillId(27017)

STARTED.addQuestDrop(27017,PLAGUE_DUST,1)
STARTED.addQuestDrop(30154,HYACINTH_CHARM1,1)
STARTED.addQuestDrop(30154,HYACINTH_CHARM2,1)

print "importing quests: 159: Protect Headsprings"
Exemple #55
0
   count = st.getQuestItemsCount(WOLF_PELT)
   if count<40 :
     st.giveItems(WOLF_PELT,1)
     if count == 39 :
       st.playSound("ItemSound.quest_middle")
       st.set("cond","2")
     else:
       st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(258,"258_BringWolfPelt1","Bring Wolf Pelt1")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(7001)

CREATED.addTalkId(7001)
STARTING.addTalkId(7001)
STARTED.addTalkId(7001)
COMPLETED.addTalkId(7001)

STARTED.addKillId(120)
STARTED.addKillId(442)

STARTED.addQuestDrop(120,WOLF_PELT,1)

print "importing quests: 258: Bring Wolf Pelt1"
Exemple #56
0
STARTED.addTalkId(7653)

STARTED.addKillId(103)
STARTED.addKillId(106)
STARTED.addKillId(108)
STARTED.addKillId(24)
STARTED.addKillId(27)
STARTED.addKillId(30)
STARTED.addKillId(38)
STARTED.addKillId(404)
STARTED.addKillId(43)
STARTED.addKillId(50)
STARTED.addKillId(5024)
STARTED.addKillId(775)

STARTED.addQuestDrop(775, BUGBEAR_NECKLACE_ID, 1)
STARTED.addQuestDrop(7332, GLUDIO_GUARDS_MARK1_ID, 1)
STARTED.addQuestDrop(5024, EINHASAD_CRUCIFIX_ID, 1)
STARTED.addQuestDrop(7289, EINHASAD_CHURCH_MARK1_ID, 1)
STARTED.addQuestDrop(38, POISON_SPIDER_LEG1_ID, 1)
STARTED.addQuestDrop(7379, GLUDIO_GUARDS_MARK2_ID, 1)
STARTED.addQuestDrop(30, LIZARDMAN_TOTEM_ID, 1)
STARTED.addQuestDrop(7037, EINHASAD_CHURCH_MARK2_ID, 1)
STARTED.addQuestDrop(103, GIANT_SPIDER_HUSK_ID, 1)
STARTED.addQuestDrop(7039, GLUDIO_GUARDS_MARK3_ID, 1)
STARTED.addQuestDrop(404, HORRIBLE_SKULL_ID, 1)
STARTED.addQuestDrop(7031, EINHASAD_CHURCH_MARK3_ID, 1)
STARTED.addQuestDrop(7332, COIN_OF_LORDS1_ID, 1)
STARTED.addQuestDrop(7289, COIN_OF_LORDS2_ID, 1)
STARTED.addQuestDrop(7379, COIN_OF_LORDS3_ID, 1)
STARTED.addQuestDrop(7037, COIN_OF_LORDS4_ID, 1)
Exemple #57
0
     return htmltext

 def onKill (self,npc,st):
     npcId = npc.getNpcId()
     random = st.getRandom(100)
     if random<=CHANCE :
         st.giveItems(LIENRIK_EGG1,1)
     if random<=CHANCE2 :
         st.giveItems(LIENRIK_EGG2,1)
     return

QUEST       = Quest(352,"352_HelpRoodRaiseANewPet","Help Rood Raise A New Pet")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(8067)

CREATED.addTalkId(8067)
STARTED.addTalkId(8067)

STARTED.addQuestDrop(8067,LIENRIK_EGG1,1)
STARTED.addQuestDrop(8067,LIENRIK_EGG2,1)

STARTED.addKillId(786)
STARTED.addKillId(787)

print "importing quests: 352: Help Rood Raise A New Pet"


Exemple #58
0
            st.giveItems(FOX_FUR_ID,1)
            if st.getQuestItemsCount(FOX_FUR_ID) == 10 :
              st.playSound("ItemSound.quest_middle")
            else:
              st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(154,"154_SacrificeToSea","Sacrifice To Sea")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(7312)

STARTING.addTalkId(7312)

STARTED.addTalkId(7051)
STARTED.addTalkId(7055)
STARTED.addTalkId(7312)

STARTED.addKillId(481)
STARTED.addKillId(545)

STARTED.addQuestDrop(481,FOX_FUR_ID,1)
STARTED.addQuestDrop(545,FOX_FUR_ID,1)
STARTED.addQuestDrop(7051,FOX_FUR_YARN_ID,1)
STARTED.addQuestDrop(7055,MAIDEN_DOLL_ID,1)
Exemple #59
0
   return htmltext

 def onKill (self,npc,st):
   st.giveItems(SUPPLY_ITEM,1)  
   if st.getRandom(10) == 1 :        # % chance is custom
     st.giveItems(SUSPICIOUS_DOCUMENT,1)
     if st.getQuestItemsCount(SUSPICIOUS_DOCUMENT) == 5 :
       st.takeItems(SUSPICIOUS_DOCUMENT,5)
       st.giveItems(RECIPE_OF_SUPPLY,1)
       st.playSound("ItemSound.quest_itemget")
   st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(360,"360_PlunderTheirSupplies","Plunder Their Supplies")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(COLEMAN)
CREATED.addTalkId(COLEMAN)
STARTED.addTalkId(COLEMAN)

STARTED.addKillId(TAIK_SEEKER)
STARTED.addKillId(TAIK_LEADER)

STARTED.addQuestDrop(COLEMAN,RECIPE_OF_SUPPLY,1)
STARTED.addQuestDrop(COLEMAN,SUPPLY_ITEM,1)
STARTED.addQuestDrop(COLEMAN,SUSPICIOUS_DOCUMENT,1)

print "importing quests: 360: Plunder Their Supplies"
Exemple #60
0
                count = st.getQuestItemsCount(TOP_QUALITY_MEAT)
                if st.getInt("cond") == 1 and count < 120:
                    chance = 100 * 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(TOP_QUALITY_MEAT, int(numItems))
        return


QUEST = Quest(631, qn, "Delicious Top Choice Meat")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(TUNATUN)

QUEST.addTalkId(TUNATUN)

for npcId in range(21460, 21468) + range(21479, 21487) + range(21498, 21506):
    QUEST.addKillId(npcId)

STARTED.addQuestDrop(21460, TOP_QUALITY_MEAT, 1)