Esempio n. 1
0
        st = player.getQuestState(qn)
        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)
       else :
         htmltext = "32052-2a.htm"
   return htmltext

 def onKill(self,npc,player,isPet):
   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)<DROP_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)
Esempio n. 3
0
QUEST.addTalkId(30519)
QUEST.addTalkId(30531)
QUEST.addTalkId(30532)
QUEST.addTalkId(30533)
QUEST.addTalkId(30534)
QUEST.addTalkId(30535)
QUEST.addTalkId(30536)
QUEST.addTalkId(30553)
QUEST.addTalkId(30554)
QUEST.addTalkId(30555)
QUEST.addTalkId(30556)
QUEST.addTalkId(30597)
QUEST.addTalkId(30620)
QUEST.addTalkId(30621)
QUEST.addTalkId(30622)

QUEST.addKillId(20154)
QUEST.addKillId(20155)
QUEST.addKillId(20156)
QUEST.addKillId(20157)
QUEST.addKillId(20223)
QUEST.addKillId(20228)
QUEST.addKillId(20230)
QUEST.addKillId(20231)
QUEST.addKillId(20232)
QUEST.addKillId(20233)
QUEST.addKillId(20234)

for item in range(3239,3276)+[3428,3023,3030]:
    STARTED.addQuestDrop(30621,item,1)
Esempio n. 4
0
                #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 player in partyMembers:
                pst = player.getQuestState(qn)
                if pst:
                    giveReward(pst, npc)
        else:
            pst = player.getQuestState(qn)
            if pst:
                giveReward(pst, npc)
        return


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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(Ashas)

QUEST.addTalkId(Ashas)

STARTED.addQuestDrop(Hekaton, Hekaton_Head, 1)

QUEST.addKillId(Hekaton)
     return

QUEST       = Quest(171,qn,"Acts of Evil")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(ALVAH)

QUEST.addTalkId(ALVAH)

QUEST.addTalkId(ARODIN)
QUEST.addTalkId(TYRA)
QUEST.addTalkId(ROLENTO)
QUEST.addTalkId(NETI)
QUEST.addTalkId(BURAI)

STARTED.addQuestDrop(ALVAH,RANGERS_REPORT1,1)
STARTED.addQuestDrop(ALVAH,RANGERS_REPORT2,1)
STARTED.addQuestDrop(ALVAH,RANGERS_REPORT3,1)
STARTED.addQuestDrop(ALVAH,RANGERS_REPORT4,1)
STARTED.addQuestDrop(ALVAH,OL_MAHUM_HEAD,1)
STARTED.addQuestDrop(ALVAH,CARGOBOX,1)
STARTED.addQuestDrop(ALVAH,TYRAS_BILL,1)
STARTED.addQuestDrop(ALVAH,CERTIFICATE,1)
STARTED.addQuestDrop(ALVAH,BLADE_MOLD,1)
STARTED.addQuestDrop(ALVAH,WEAPON_TRADE_CONTRACT,1)

for i in range(20494,20500)+[20062,20066,20438] :
    QUEST.addKillId(i)
                if st.getRandom(10) < 4 and st.getQuestItemsCount(
                        DARK_BEZOAR_ID) < 13:
                    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, qn, "Wild Hunt")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30348)

QUEST.addTalkId(30348)

QUEST.addKillId(20456)
QUEST.addKillId(20529)
QUEST.addKillId(20532)
QUEST.addKillId(20536)

STARTED.addQuestDrop(20529, DARK_BEZOAR_ID, 1)
STARTED.addQuestDrop(20532, DARK_BEZOAR_ID, 1)
STARTED.addQuestDrop(20536, DARK_BEZOAR_ID, 1)
STARTED.addQuestDrop(20456, DARK_BEZOAR_ID, 1)
Esempio n. 7
0
                    htmltext = "31545-0.htm"
                elif npcId == 31546 and cond == 4 and st.getQuestItemsCount(
                        BOILED_EGGS):
                    htmltext = "31546-0.htm"
                elif npcId == 31547 and cond == 5 and st.getQuestItemsCount(
                        BOILED_EGGS):
                    htmltext = "31547-0.htm"
                elif npcId == 31521 and cond == 6 and st.getQuestItemsCount(
                        FEE_OF_EGGS) == 5:
                    htmltext = "31521-2.htm"
            # elif npcId == 31521 and cond == 7 and st.getQuestItemsCount(FEE_OF_EGGS) == 5 :
            # htmltext = "31521-4.htm"
            # elif npcId == 31584 and cond == 7 and st.getQuestItemsCount(FEE_OF_EGGS) == 5 :
            #htmltext = "31584-1.htm"
        return htmltext


QUEST = Quest(621, qn, "Egg Delivery")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

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

QUEST.addTalkId(31521)

for i in range(31543, 31548) + [31521, 31584]:
    QUEST.addTalkId(i)

STARTED.addQuestDrop(31521, BOILED_EGGS, 1)
STARTED.addQuestDrop(31521, FEE_OF_EGGS, 1)
Esempio n. 8
0
    def onKill(self, npc, player, isPet):
        st = player.getQuestState(qn)
        if not st: return
        if st.getState() != STARTED: return

        if not st.getQuestItemsCount(POISON_SAC) and st.getInt("cond") == 1:
            if st.getRandom(5) == 0:
                st.giveItems(POISON_SAC, 1)
                st.playSound("ItemSound.quest_middle")
                st.set("cond", "2")
        return


QUEST = Quest(151, qn, "Save My Sister1")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

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

QUEST.addTalkId(30032)

for mob in [20103, 20106, 20108]:
    QUEST.addKillId(mob)

STARTED.addQuestDrop(30032, FEVER_MEDICINE, 1)
STARTED.addQuestDrop(20108, POISON_SAC, 1)
QUEST.addTalkId(30078)
QUEST.addTalkId(30461)

QUEST.addKillId(20147)
QUEST.addKillId(20154)
QUEST.addKillId(20155)
QUEST.addKillId(20156)
QUEST.addKillId(20204)
QUEST.addKillId(20223)
QUEST.addKillId(20226)
QUEST.addKillId(20228)
QUEST.addKillId(20229)
QUEST.addKillId(20265)
QUEST.addKillId(20266)

STARTED.addQuestDrop(30469, INGREDIENT_LIST_ID, 1)
STARTED.addQuestDrop(30062, RED_MANDRAGORA_SAP_ID, 1)
STARTED.addQuestDrop(30062, WHITE_MANDRAGORA_SAP_ID, 1)
STARTED.addQuestDrop(30073, HONEY_ID, 1)
STARTED.addQuestDrop(30073, GOLDEN_HONEY_ID, 1)
STARTED.addQuestDrop(30078, DIONIAN_POTATO_ID, 1)
STARTED.addQuestDrop(30067, GREEN_MOSS_BUNDLE_ID, 1)
STARTED.addQuestDrop(30067, BROWN_MOSS_BUNDLE_ID, 1)
STARTED.addQuestDrop(30069, MONSTER_EYE_MEAT_ID, 1)
STARTED.addQuestDrop(30461, MIRIENS_REVIEW1_ID, 1)
STARTED.addQuestDrop(30461, MIRIENS_REVIEW2_ID, 1)
STARTED.addQuestDrop(30461, MIRIENS_REVIEW3_ID, 1)
STARTED.addQuestDrop(30461, MIRIENS_REVIEW4_ID, 1)
STARTED.addQuestDrop(30461, MIRIENS_REVIEW5_ID, 1)
STARTED.addQuestDrop(30469, JONAS_STEAK_DISH1_ID, 1)
STARTED.addQuestDrop(30469, JONAS_STEAK_DISH2_ID, 1)
Esempio n. 10
0
   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 npcId == 27016 :
        st.set("id","0")
        if st.getInt("cond") != 0 and st.getQuestItemsCount(CLAY_TABLET_ID) == 0 :
          st.giveItems(CLAY_TABLET_ID,1)
          st.playSound("ItemSound.quest_middle")
   return

QUEST       = Quest(158,qn,"Seed Of Evil")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30031)

QUEST.addTalkId(30031)

QUEST.addKillId(27016)

STARTED.addQuestDrop(27016,CLAY_TABLET_ID,1)
         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)
            st.giveItems(FELIM_TOOTH,1)
            st.playSound("ItemSound.quest_itemget")
   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)
Esempio n. 13
0
            elif npcId == 30090 and st.getInt("cond")==3 :
                htmltext = "30090-01.htm"
            elif npcId == 30090 and st.getInt("cond")==4 :
                htmltext = "30090-03.htm"
            elif npcId == 30116 and st.getInt("cond")==5 :
                htmltext = "30116-01.htm"
            elif npcId == 30116 and st.getInt("cond")==6 :
                htmltext = "30116-03.htm"

        return htmltext

QUEST       = Quest(48,qn,"To The Immortal Plateau")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30097)

QUEST.addTalkId(30097)

QUEST.addTalkId(30094)
QUEST.addTalkId(30090)
QUEST.addTalkId(30116)

STARTED.addQuestDrop(30097,GALLADUCCIS_ORDER_DOCUMENT_ID_1,1)
STARTED.addQuestDrop(30097,GALLADUCCIS_ORDER_DOCUMENT_ID_2,1)
STARTED.addQuestDrop(30097,GALLADUCCIS_ORDER_DOCUMENT_ID_3,1)
STARTED.addQuestDrop(30094,MAGIC_SWORD_HILT_ID,1)
STARTED.addQuestDrop(30090,GEMSTONE_POWDER_ID,1)
STARTED.addQuestDrop(30116,PURIFIED_MAGIC_NECKLACE_ID,1)
Esempio n. 14
0
                                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)
Esempio n. 15
0
        if st.getState() != STARTED: return

        n = st.getRandom(100)
        if n > 95:
            st.giveItems(TARANTULA_SPINNERETTE, 1)
            st.playSound("ItemSound.quest_itemget")
        elif n > 45:
            st.giveItems(TARANTULA_SPIDER_SILK, 1)
            st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(296, qn, "Silk Of Tarantula")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30519)

QUEST.addTalkId(30519)

QUEST.addTalkId(30548)

QUEST.addKillId(20394)
QUEST.addKillId(20403)
QUEST.addKillId(20508)

STARTED.addQuestDrop(20508, TARANTULA_SPIDER_SILK, 1)
STARTED.addQuestDrop(20394, TARANTULA_SPINNERETTE, 1)
   
   count = st.getQuestItemsCount(KASHA_WOLF_FANG)
   if count < 50 :
      numItems, chance = divmod(125*Config.RATE_DROP_QUEST,100)
      if st.getRandom(100) <= chance :
         numItems += 1
      numItems = int(numItems)
      if numItems != 0 :
         if 50 <= (count + numItems) :
            numItems = 50 - count
            st.playSound("ItemSound.quest_middle")
            st.set("cond","2")
         else:
            st.playSound("ItemSound.quest_itemget")
         st.giveItems(KASHA_WOLF_FANG,numItems)
   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)
Esempio n. 17
0
        st = player.getQuestState(qn)
        if not st: return
        if st.getState() != STARTED: return

        count = st.getQuestItemsCount(GRAVE_ROBBERS_HEAD)
        if count < 50:
            st.giveItems(GRAVE_ROBBERS_HEAD, 1)
            if count < 49:
                st.playSound("ItemSound.quest_itemget")
            else:
                st.playSound("ItemSound.quest_middle")
                st.set("cond", "2")
        return


QUEST = Quest(272, qn, "Wrath Of Ancestors")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30572)

QUEST.addTalkId(30572)

QUEST.addKillId(20319)
QUEST.addKillId(20320)

STARTED.addQuestDrop(20319, GRAVE_ROBBERS_HEAD, 1)
                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)
                        st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(422, qn, "Repent your Sins")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30981)

QUEST.addTalkId(30981)
QUEST.addTalkId(30668)
QUEST.addTalkId(30597)
QUEST.addTalkId(30612)
QUEST.addTalkId(30718)
QUEST.addTalkId(30300)

QUEST.addKillId(SCAVENGER_WERERAT)
QUEST.addKillId(TUREK_WARHOUND)
QUEST.addKillId(TYRANT_KINGPIN)
QUEST.addKillId(TRISALIM_TARANTULA)

STARTED.addQuestDrop(SCAVENGER_WERERAT, SCAVENGER_WERERAT_SKULL, 1)
STARTED.addQuestDrop(TUREK_WARHOUND, TUREK_WARHOUND_TAIL, 1)
STARTED.addQuestDrop(TYRANT_KINGPIN, TYRANT_KINGPIN_HEART, 1)
STARTED.addQuestDrop(TRISALIM_TARANTULA, TRISALIM_TARANTULAS_VENOM_SAC, 1)
STARTED.addQuestDrop(30981, MANUAL_OF_MANACLES, 1)
STARTED.addQuestDrop(30981, PENITENTS_MANACLES, 1)
STARTED.addQuestDrop(30981, PENITENTS_MANACLES2, 1)
STARTED.addQuestDrop(30300, PENITENTS_MANACLES1, 1)
Esempio n. 20
0
                        chance = Chance[npcId]
                        #This is support for quest 606: War With Varka Silenos. Basically, if the person has both this quest and 606, then they only get one quest item, 50% chance for 606 quest item and 50% chance for this quest's item
                        if st2:
                            if (st.getRandom(2) == 1 or item
                                    == 0) and npcId in Chance_mane.keys():
                                item = 57
                                MAX = 100
                                drop = Mane
                                chance = Chance_mane[npcId]
                                giveReward(st, item, chance, MAX, drop)
                            elif id == 2 and item != 0:
                                giveReward(st, item, chance, MAX, drop)
                        elif id == 2 and item != 0:
                            giveReward(st, item, chance, MAX, drop)
        return


QUEST = Quest(605, qn, "Alliance With Ketra Orcs")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

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

for mobId in Chance.keys():
    QUEST.addKillId(mobId)
STARTED.addQuestDrop(Wahkan, Varka_Badge_Soldier, 1)
STARTED.addQuestDrop(Wahkan, Varka_Badge_Officer, 1)
STARTED.addQuestDrop(Wahkan, Varka_Badge_Captain, 1)
Esempio n. 21
0
              questState = partyPlayer.getQuestState(qn)
              if questState  and (questState .getState() == STARTED):
                  PartyQuestMembers.append(partyPlayer)
          if len(PartyQuestMembers) > 0 :
              for partyPlayer in PartyQuestMembers:
                 questState = partyPlayer.getQuestState(qn)
                 if questState.getRandom(100) >= 10:
                     numItems = 0
                 if numItems > 0 :    
                     questState.giveItems(DIMENSION_FRAGMENT_ID,numItems)
                     questState.playSound("ItemSound.quest_itemget")
      return
	


QUEST       = Quest(634, qn, "In Search of Dimensional Fragments")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

for npcId in range(31494,31508):
  QUEST.addTalkId(npcId)
  QUEST.addStartNpc(npcId)

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

STARTED.addQuestDrop(7079,DIMENSION_FRAGMENT_ID,1)
        elif not partyMember1: partyMember = partyMember2
        else:
            if Rnd.get(2): partyMember = partyMember2

        if not partyMember: return
        st = partyMember.getQuestState(qn)
        if not st: return
        if st.getState() != STARTED: return
        count = st.getQuestItemsCount(ROUGH_JEWEL)
        if count < 10:
            st.giveItems(ROUGH_JEWEL, 1)
            if count == 9:
                st.playSound("ItemSound.quest_middle")
                st.set("cond", "3")
            else:
                st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(35, qn, "Find Glittering Jewelry")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

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

QUEST.addTalkId(30879)
QUEST.addKillId(20135)
STARTED.addQuestDrop(20135, ROUGH_JEWEL, 1)
        if amount :
           htmltext = "30892-03.htm"
           st.giveItems(ADENA,amount)
           st.takeItems(ALLIGATOR_PELTS,-1)
        else :
           htmltext = "30892-04.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(ALLIGATOR_PELTS,1)
         st.playSound("ItemSound.quest_itemget")
     return

QUEST       = Quest(338,qn,"Alligator Hunter")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30892)

QUEST.addTalkId(30892)

QUEST.addKillId(ALLIGATOR)
STARTED.addQuestDrop(ALLIGATOR,ALLIGATOR_PELTS,1)
Esempio n. 24
0
        st = player.getQuestState(qn)
        if st:
            if st.getState() == STARTED:
                npcId = npc.getNpcId()
                cond = st.getInt("cond")
                id = st.getInt("id")
                Red_Totem = st.getQuestItemsCount(Totem)
                if npcId in Ketra_Orcs:
                    st.unset("id")
                    st.unset("aggro")
                    st.exitQuest(1)
                    if Red_Totem:
                        st.takeItems(Totem, -1)
        return


QUEST = Quest(609, qn, "Magical Power of Water - Part 1")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(Wahkan)
QUEST.addTalkId(Wahkan)
QUEST.addTalkId(Asefa)
QUEST.addTalkId(Udan_Box)

STARTED.addQuestDrop(Udan_Box, Totem, 1)
for mobId in Varka_Mobs:
    QUEST.addAttackId(mobId)
for mobId in Ketra_Orcs:
    QUEST.addKillId(mobId)
                    else:
                        htmltext = "600.htm"  #TODO: This is custom, need to get official text from retail
                else:
                    htmltext = "600.htm"  #TODO: This is custom, need to get official text from retail
            elif id == STARTED:
                htmltext = "400.htm"
        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 and st.getInt("cond") == 1:
                if st.getRandom(100) < CHANCE:
                    st.giveItems(DREAM_FRAGMENT_ID, 1)
                    st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(650, qn, "A Broken Dream")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(GHOST)
QUEST.addTalkId(GHOST)
QUEST.addKillId(CREWMAN)
QUEST.addKillId(VAGABOND)
STARTED.addQuestDrop(CREWMAN, DREAM_FRAGMENT_ID, 1)
Esempio n. 26
0
                else:
                    st.set("cond", str(cond + 1))
            else:
                st.giveItems(itemid, 1)
                st.playSound("Itemsound.quest_itemget")
        return


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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30624)

QUEST.addTalkId(30624)

for npcId in [30093, 30196, 30625]:
    QUEST.addTalkId(npcId)

for mobId in [
        20145, 20158, 27088, 27089, 20551, 20553, 20577, 20578, 20579, 20580,
        20581, 20582, 20780
]:
    QUEST.addKillId(mobId)

for item in range(3277, 3293):
    STARTED.addQuestDrop(30093, item, 1)
Esempio n. 27
0
        cond, item, max, chance = DROPLIST[npc.getNpcId()]
        count = st.getQuestItemsCount(item)
        if st.getInt(
                "cond") == cond and count < max and st.getRandom(100) < chance:
            st.giveItems(item, 1)
            if count == max - 1:
                st.playSound("ItemSound.quest_middle")
                st.set("cond", str(cond + 1))
            else:
                st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(38, qn, "Dragon Fangs")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(LUIS)

QUEST.addTalkId(LUIS)
QUEST.addTalkId(IRIS)
QUEST.addTalkId(ROHMER)

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

for item in range(7173, 7178):
    STARTED.addQuestDrop(LUIS, item, 1)
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)
QUEST.addKillId(20156)
QUEST.addKillId(20168)
QUEST.addKillId(20200)
QUEST.addKillId(20201)
QUEST.addKillId(20202)
QUEST.addKillId(20223)
QUEST.addKillId(20267)
QUEST.addKillId(20268)
QUEST.addKillId(20269)
QUEST.addKillId(20270)
QUEST.addKillId(20271)
QUEST.addKillId(20079)
QUEST.addKillId(20080)
QUEST.addKillId(20081)
QUEST.addKillId(20083)

STARTED.addQuestDrop(30283, RP_JOURNEYMAN_RING_ID, 1)
STARTED.addQuestDrop(30283, ALLTRANS_INSTRUCTIONS_ID, 1)
STARTED.addQuestDrop(30283, RP_JOURNEYMAN_RING_ID, 1)
STARTED.addQuestDrop(30103, VALKONS_RECOMMEND_ID, 1)
STARTED.addQuestDrop(20223, MANDRAGORA_BERRY_ID, 1)
STARTED.addQuestDrop(30283, ALLTRANS_RECOMMEND1_ID, 1)
STARTED.addQuestDrop(20267, DUNINGS_KEY_ID, 1)
STARTED.addQuestDrop(30210, NORMANS_INSTRUCTIONS_ID, 1)
STARTED.addQuestDrop(30210, NORMANS_LIST_ID, 1)
STARTED.addQuestDrop(30210, NORMANS_RECEIPT_ID, 1)
STARTED.addQuestDrop(30283, ALLTRANS_RECOMMEND2_ID, 1)
STARTED.addQuestDrop(30298, PINTERS_INSTRUCTIONS_ID, 1)
STARTED.addQuestDrop(30298, RP_AMBER_BEAD_ID, 1)
STARTED.addQuestDrop(20079, AMBER_BEAD_ID, 1)
STARTED.addQuestDrop(30688, DUNINGS_INSTRUCTIONS_ID, 1)
        if not st: return
        if st.getState() != STARTED: return

        npcId = npc.getNpcId()
        if npcId == GEMSTONE_BEAST and st.getInt("cond") == 5 and st.getRandom(
                2) == 1 and st.getQuestItemsCount(GEMSTONE_BEAST_CRYSTAL) < 10:
            st.giveItems(GEMSTONE_BEAST_CRYSTAL, 1)
            if st.getQuestItemsCount(GEMSTONE_BEAST_CRYSTAL) == 10:
                st.playSound("ItemSound.quest_middle")
            else:
                st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(347, qn, "Calculator")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(BRUNON)

QUEST.addTalkId(BRUNON)

QUEST.addTalkId(SILVERA)
QUEST.addTalkId(SPIRON)
QUEST.addTalkId(BALANKI)

QUEST.addKillId(GEMSTONE_BEAST)
STARTED.addQuestDrop(GEMSTONE_BEAST, GEMSTONE_BEAST_CRYSTAL, 1)