コード例 #1
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)
コード例 #2
0
QUEST = Quest(405, qn, "Path To Cleric")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30022)

QUEST.addTalkId(30022)

QUEST.addTalkId(30017)
QUEST.addTalkId(30030)
QUEST.addTalkId(30253)
QUEST.addTalkId(30333)
QUEST.addTalkId(30408)

QUEST.addKillId(20026)
QUEST.addKillId(20029)

STARTED.addQuestDrop(30408, LEMONIELLS_COVENANT, 1)
STARTED.addQuestDrop(30022, LETTER_OF_ORDER2, 1)
STARTED.addQuestDrop(30333, BOOK_OF_PRAGA, 1)
STARTED.addQuestDrop(30030, BOOK_OF_VIVI, 1)
STARTED.addQuestDrop(30253, BOOK_OF_SIMLON, 1)
STARTED.addQuestDrop(30022, LETTER_OF_ORDER1, 1)
STARTED.addQuestDrop(30333, NECKLACE_OF_MOTHER, 1)
STARTED.addQuestDrop(20026, PENDANT_OF_MOTHER, 1)
STARTED.addQuestDrop(20029, PENDANT_OF_MOTHER, 1)
STARTED.addQuestDrop(30017, CERTIFICATE_OF_GALLINT, 1)
STARTED.addQuestDrop(30408, BOOK_OF_LEMONIELL, 1)
コード例 #3
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   st = player.getQuestState(qn)
   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)
コード例 #4
0
        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)
コード例 #5
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
        st.giveItems(4319,1)
        st.set("cond","3")
        htmltext = "30956_3.htm"
   elif npcId == 30956 and st.getInt("cond") == 3 :
        htmltext = "<html><body>Find Barbado..</body></html>"
   elif npcId == 30959 and st.getInt("cond") == 3 :
        st.takeItems(4319,1)
        st.set("cond","4")
        htmltext = "30959_1.htm"
   elif npcId == 30959 and st.getInt("cond") == 4 :
        htmltext = "<html><body>Go back to Nanarin..</body></html>"
   elif npcId == 30956 and st.getInt("cond") == 4 :
        htmltext = "30956_4.htm"
   return htmltext


QUEST       = Quest(363,qn,"Sorrowful Sounds of Flute")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


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

QUEST.addTalkId(30595)
QUEST.addTalkId(30959)

STARTED.addQuestDrop(30959,4319,1)
コード例 #6
0
ファイル: __init__.py プロジェクト: la2brazuca/la2brazuca
                        htmltext = "31377-05.htm"
                #else:
                #htmltext="<html><body>This quest has already been completed</body></html>"
        return htmltext

    def onKill(self, npc, player, isPet):
        partyMembers = [player]
        party = player.getParty()
        if party:
            partyMembers = party.getPartyMembers().toArray()
            for 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(614, qn, "Slay The Enemy Commander!")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

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

STARTED.addQuestDrop(Tayr, Tayr_Head, 1)
QUEST.addKillId(Tayr)
コード例 #7
0
ファイル: __init__.py プロジェクト: la2brazuca/la2brazuca
            st.set("cond", "10")
            st.playSound("ItemSound.quest_middle")
            st.addSpawn(30646, npc, True, 0)
        return


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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30644)

QUEST.addTalkId(30535)
QUEST.addTalkId(30644)
QUEST.addTalkId(30645)
QUEST.addTalkId(30646)
QUEST.addTalkId(30647)

QUEST.addKillId(27110)
QUEST.addKillId(27112)
QUEST.addKillId(27113)
QUEST.addKillId(27114)

STARTED.addQuestDrop(30647, SCROLL_OF_SHYSLASSY, 1)
STARTED.addQuestDrop(30644, LETTER_OF_KASH, 1)
STARTED.addQuestDrop(27112, WATCHERS_EYE1, 1)
STARTED.addQuestDrop(27110, BROKEN_KEY, 1)
STARTED.addQuestDrop(27113, WATCHERS_EYE2, 1)
コード例 #8
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
 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(qn)
   if not st : return htmltext

   npcId = str(npc.getNpcId())
   id = st.getState()
   if id == CREATED :
     st.set("cond","0")
   if st.getInt("cond") == 0:   
     htmltext = npcId+"-01.htm"
   elif check(st) :
     htmltext = npcId+"-03.htm"
   elif st.getQuestItemsCount(RED_SOUL_CRYSTAL0_ID) == st.getQuestItemsCount(GREEN_SOUL_CRYSTAL0_ID) == st.getQuestItemsCount(BLUE_SOUL_CRYSTAL0_ID) == 0 :
     htmltext = npcId+"-21.htm"
   return htmltext

QUEST       = Quest(350,qn,"Enhance Your Weapon")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)

for npcId in NPC:
  QUEST.addStartNpc(npcId)
  QUEST.addTalkId(npcId)

STARTED.addQuestDrop(4629,RED_SOUL_CRYSTAL0_ID,1)
STARTED.addQuestDrop(4640,GREEN_SOUL_CRYSTAL0_ID,1)
STARTED.addQuestDrop(4651,BLUE_SOUL_CRYSTAL0_ID,1)
コード例 #9
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   if st.getInt("cond") == 1 and adamantite < 20 :
       npcId = npc.getNpcId()
       numItems, chance = divmod(40*Config.RATE_DROP_QUEST,100)
       if st.getRandom(100) <= chance :
          numItems += 1
       numItems = int(numItems)   
       if numItems != 0 :
          if 20 <= (adamantite + numItems) :
             numItems = 20 - adamantite
             st.playSound("ItemSound.quest_middle")
             st.set("cond","2")
          else:
             st.playSound("ItemSound.quest_itemget")
          st.giveItems(ADAMANTITE_ORE,numItems)
   return

QUEST       = Quest(157,qn,"Recover Smuggled")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30005)

QUEST.addTalkId(30005)
QUEST.addKillId(20121)

STARTED.addQuestDrop(20121,ADAMANTITE_ORE,1)
コード例 #10
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
QUEST.addTalkId(30501)
QUEST.addTalkId(30515)
QUEST.addTalkId(30565)
QUEST.addTalkId(30571)
QUEST.addTalkId(30615)
QUEST.addTalkId(30616)
QUEST.addTalkId(30617)
QUEST.addTalkId(30618)
QUEST.addTalkId(30619)
QUEST.addTalkId(30642)

for i in DROPLIST_COND_1.keys()+DROPLIST_COND_4.keys()+DROPLIST_COND_6.keys()+[20778,20779,27086] :
    QUEST.addKillId(i)

STARTED.addQuestDrop(30514,VOKIYANS_ORDER1,1)
STARTED.addQuestDrop(20563,MANASHEN_SHARD,1)
STARTED.addQuestDrop(20193,TYRANT_TALON,1)
STARTED.addQuestDrop(20550,GUARDIAN_BASILISK_FANG,1)
STARTED.addQuestDrop(30514,VOKIYANS_ORDER2,1)
STARTED.addQuestDrop(30615,SCEPTER_OF_BREKA,1)
STARTED.addQuestDrop(30616,SCEPTER_OF_ENKU,1)
STARTED.addQuestDrop(30619,SCEPTER_OF_VUKU,1)
STARTED.addQuestDrop(30617,SCEPTER_OF_TUREK,1)
STARTED.addQuestDrop(30618,SCEPTER_OF_TUNATH,1)
STARTED.addQuestDrop(30642,CHIANTAS_ORDER1,1)
STARTED.addQuestDrop(30515,MANAKIAS_LETTER1,1)
STARTED.addQuestDrop(30515,MANAKIAS_LETTER2,1)
STARTED.addQuestDrop(30501,KASMANS_LETTER1,1)
STARTED.addQuestDrop(30642,CHIANTAS_ORDER2,1)
STARTED.addQuestDrop(30571,TANAPIS_ORDER1,1)
コード例 #11
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
            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(47,qn,"Into The Dark Forest")
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)
コード例 #12
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
      qty=0
      for i in DROP[npcId]:
         if i[0]<=chance<i[1]:
            qty=i[2]
      if qty :
        if count+qty>50 :
          qty=50-count
        if count+qty==50:
          st.playSound("ItemSound.quest_middle")
          st.set("cond","2")
        else :
          st.playSound("ItemSound.quest_itemget")
        st.giveItems(WOLF_CLAW,qty)
   return

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

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

QUEST.addTalkId(30136)

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

STARTED.addQuestDrop(20003,WOLF_CLAW,1)
コード例 #13
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
      else:
        st.playSound("ItemSound.quest_middle")
        if st.getQuestItemsCount(GHOULS_SKIN_ID) == 10 and st.getQuestItemsCount(MEDUSAS_BLOOD_ID) == 12 and st.getQuestItemsCount(FETTEREDSOULS_ICHOR_ID) == 5 and st.getQuestItemsCount(ENCHT_GARGOYLES_NAIL_ID) == 5:
           st.set("cond","29")
   elif npcId == 20567 :
    if st.getInt("cond") == 28 and st.getQuestItemsCount(ENCHT_GARGOYLES_NAIL_ID)<5 :
      st.giveItems(ENCHT_GARGOYLES_NAIL_ID,1)
      if st.getQuestItemsCount(ENCHT_GARGOYLES_NAIL_ID) < 5 :
        st.playSound("ItemSound.quest_itemget")
      else:
        st.playSound("ItemSound.quest_middle")
        if st.getQuestItemsCount(GHOULS_SKIN_ID) == 10 and st.getQuestItemsCount(MEDUSAS_BLOOD_ID) == 12 and st.getQuestItemsCount(FETTEREDSOULS_ICHOR_ID) == 5 and st.getQuestItemsCount(ENCHT_GARGOYLES_NAIL_ID) == 5:
           st.set("cond","29")
   return

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

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

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

for mobId in MOBS:
  QUEST.addKillId(mobId)
コード例 #14
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   return 

QUEST       = Quest(105,qn,"Skirmish With Orcs") 
CREATED     = State('Start', QUEST) 
STARTING     = State('Starting', QUEST) 
STARTED     = State('Started', QUEST) 
COMPLETED   = State('Completed', QUEST) 


QUEST.setInitialState(CREATED) 
QUEST.addStartNpc(30218) 

QUEST.addTalkId(30218) 

QUEST.addKillId(27059) 
QUEST.addKillId(27060) 
QUEST.addKillId(27061) 
QUEST.addKillId(27062) 
QUEST.addKillId(27064) 
QUEST.addKillId(27065) 
QUEST.addKillId(27067) 
QUEST.addKillId(27068) 

STARTED.addQuestDrop(30218,KENDNELLS_ORDER1_ID,1) 
STARTED.addQuestDrop(30218,KENDNELLS_ORDER2_ID,1) 
STARTED.addQuestDrop(30218,KENDNELLS_ORDER3_ID,1) 
STARTED.addQuestDrop(30218,KENDNELLS_ORDER4_ID,1) 
STARTED.addQuestDrop(30218,KENDNELLS_ORDER5_ID,1) 
STARTED.addQuestDrop(30218,KENDNELLS_ORDER6_ID,1) 
STARTED.addQuestDrop(30218,KENDNELLS_ORDER7_ID,1) 
STARTED.addQuestDrop(30218,KENDNELLS_ORDER8_ID,1) 
コード例 #15
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


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

QUEST.addTalkId(30414)

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

QUEST.addKillId(20019)
QUEST.addKillId(20466)
QUEST.addKillId(20047)

STARTED.addQuestDrop(30414,ROGELLIAS_LETTER,1)
STARTED.addQuestDrop(20466,RED_DOWN,1)
STARTED.addQuestDrop(30157,CHARM_OF_GRAIN,1)
STARTED.addQuestDrop(30414,APPETIZING_APPLE,1)
STARTED.addQuestDrop(20019,GOLD_LEAVES,1)
STARTED.addQuestDrop(30371,SAP_OF_WORLD_TREE,1)
STARTED.addQuestDrop(30414,IMMORTAL_LOVE,1)
STARTED.addQuestDrop(20047,AMETHYST,1)
STARTED.addQuestDrop(30423,LUCKY_POTPOURI,1)
STARTED.addQuestDrop(30157,MAGICAL_POWERS_RUBY,1)
STARTED.addQuestDrop(30371,PURE_AQUAMARINE,1)
STARTED.addQuestDrop(30423,NOBILITY_AMETHYST,1)
STARTED.addQuestDrop(30414,FERTILITY_PERIDOT,1)
コード例 #16
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
     partyMember = self.getRandomPartyMemberState(player,STARTED)
     if not partyMember : return
     st = partyMember.getQuestState(qn)
     numItems, chance = divmod(DROP_RATE,MAX)
     drop = st.getRandom(MAX)
     if drop < chance :
        numItems = numItems +1
     if int(numItems) != 0 :
        st.giveItems(ANC_BOOK,int(numItems))
        st.playSound("ItemSound.quest_itemget")
     return  

# Quest class and state definition
QUEST       = Quest(QUEST_NUMBER, str(QUEST_NUMBER)+"_"+QUEST_NAME, QUEST_DESCRIPTION)

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

QUEST.setInitialState(CREATED)

# Quest NPC starter initialization
QUEST.addStartNpc(HR_SOBLING)
# Quest initialization
QUEST.addTalkId(HR_SOBLING)

for i in MOBS :
  QUEST.addKillId(i)

STARTED.addQuestDrop(HR_SOBLING,DICT2,1)
コード例 #17
0
                                    RUMIELS_POEM_4_ID) + st.getQuestItemsCount(
                                        RUMIELS_POEM_5_ID) == 4:
                        st.playSound("ItemSound.quest_middle")
                    else:
                        st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(163, qn, "Legacy Of Poet")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30220)

QUEST.addTalkId(30220)

QUEST.addKillId(20372)
QUEST.addKillId(20373)

STARTED.addQuestDrop(20372, RUMIELS_POEM_1_ID, 1)
STARTED.addQuestDrop(20373, RUMIELS_POEM_1_ID, 1)
STARTED.addQuestDrop(20372, RUMIELS_POEM_3_ID, 1)
STARTED.addQuestDrop(20373, RUMIELS_POEM_3_ID, 1)
STARTED.addQuestDrop(20372, RUMIELS_POEM_4_ID, 1)
STARTED.addQuestDrop(20373, RUMIELS_POEM_4_ID, 1)
STARTED.addQuestDrop(20372, RUMIELS_POEM_5_ID, 1)
STARTED.addQuestDrop(20373, RUMIELS_POEM_5_ID, 1)
コード例 #18
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   if not st : return 
   if st.getState() != STARTED : return 
   
   npcId = npc.getNpcId()
   count = st.getQuestItemsCount(HONEY_POUCH)
   if st.getInt("cond") == 1 and count < 100 :
     st.giveItems(HONEY_POUCH,1)
     if count == 99 :
       st.playSound("ItemSound.quest_middle")
       st.set("cond","2")
     else :
       st.playSound("ItemSound.quest_itemget")  
   return

QUEST       = Quest(299,qn,"Gather Ingredients For A Pie")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

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

QUEST.addTalkId(30063)
QUEST.addTalkId(30466)

QUEST.addKillId(WASP_LEADER)
QUEST.addKillId(WASP_WORKER)

STARTED.addQuestDrop(WASP_WORKER,HONEY_POUCH,1)
STARTED.addQuestDrop(EMILY,AVELLAN_SPICE,1)
STARTED.addQuestDrop(EMILY,FRUIT_BASKET,1)
コード例 #19
0
ファイル: __init__.py プロジェクト: MartinDeAndrea/L2Project
QUEST       = Quest(103,qn,"Spirit Of Craftsman")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


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

QUEST.addTalkId(30307)

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

QUEST.addKillId(20015)
QUEST.addKillId(20020)
QUEST.addKillId(20455)
QUEST.addKillId(20517)
QUEST.addKillId(20518)

STARTED.addQuestDrop(30307,KAROYDS_LETTER_ID,1)
STARTED.addQuestDrop(30132,CECKTINONS_VOUCHER1_ID,1)
STARTED.addQuestDrop(30144,CECKTINONS_VOUCHER2_ID,1)
STARTED.addQuestDrop(20517,BONE_FRAGMENT1_ID,1)
STARTED.addQuestDrop(20518,BONE_FRAGMENT1_ID,1)
STARTED.addQuestDrop(20455,BONE_FRAGMENT1_ID,1)
STARTED.addQuestDrop(30144,SOUL_CATCHER_ID,1)
STARTED.addQuestDrop(30132,PRESERVE_OIL_ID,1)
STARTED.addQuestDrop(20015,ZOMBIE_HEAD_ID,1)
STARTED.addQuestDrop(20020,ZOMBIE_HEAD_ID,1)
STARTED.addQuestDrop(30132,STEELBENDERS_HEAD_ID,1)
コード例 #20
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   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 :  
         count = st.getQuestItemsCount(BLOOD_OF_SAINT)  
         if st.getInt("cond") == 1 and count < 300 :  
            st.giveItems(BLOOD_OF_SAINT,1)  
            if count == 299 :  
               st.playSound("ItemSound.quest_middle")  
               st.set("cond","2")  
            else:  
               st.playSound("ItemSound.quest_itemget") 
   return

QUEST       = Quest(626,qn,"A Dark Twilight")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

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

for mobs in range(21520,21541):
  QUEST.addKillId(mobs)

STARTED.addQuestDrop(21520,BLOOD_OF_SAINT,1)
コード例 #21
0
        if st.getInt("cond") == 2 and count < 50:
            chance = CHANCE_FOR_QUEST_ITEMS * Config.RATE_DROP_QUEST
            numItems, chance = divmod(chance, 100)
            if st.getRandom(100) < chance:
                numItems += 1
            if numItems:
                if count + numItems >= 50:
                    numItems = 50 - count
                    st.playSound("ItemSound.quest_middle")
                    st.set("cond", "3")
                else:
                    st.playSound("ItemSound.quest_itemget")
                st.giveItems(VACUALITE_ORE, int(numItems))
        return


QUEST = Quest(618, qn, "Into the Flame")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(KLEIN)
QUEST.addTalkId(KLEIN)
QUEST.addTalkId(HILDA)

for mob in range(21274, 21278) + range(21282, 21286) + range(21290, 21294):
    QUEST.addKillId(mob)

for item in range(7265, 7267):
    STARTED.addQuestDrop(KLEIN, item, 1)
コード例 #22
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   count = st.getQuestItemsCount(PLAGUE_DUST)
   if cond == 1 and st.getRandom(100) < 40 and not count :
      st.giveItems(PLAGUE_DUST,1)
      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)
コード例 #23
0
ファイル: __init__.py プロジェクト: psferreira1/L2jFear
        return htmltext

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

        npcId = npc.getNpcId()
        if st.getRandom(100) < CHANCE:
            st.giveItems(ORB, 1)
            st.playSound("ItemSound.quest_itemget")
        return


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

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

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

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

STARTED.addQuestDrop(30834, ORB, 1)
コード例 #24
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
            htmltext = "30042-03.htm"
         else:
            htmltext = "30042-02.htm"
            st.exitQuest(1)
      elif st.getInt("cond") and st.getQuestItemsCount(OFFICIAL_LETTER_ID) :
         htmltext = "30042-05.htm"
   elif npcId == 30311 and st.getInt("cond") and st.getQuestItemsCount(OFFICIAL_LETTER_ID) and id == STARTED:
      st.takeItems(OFFICIAL_LETTER_ID,-1)
      st.giveItems(HASTE_POTION_ID,int(Config.RATE_QUESTS_REWARD))
      st.unset("cond")
      st.setState(COMPLETED)
      st.playSound("ItemSound.quest_finish")
      htmltext = "30311-01.htm"
   return htmltext

QUEST       = Quest(155,qn,"Find Sir Windawood")
CREATED     = State('Start', QUEST)
STARTING    = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30042)

QUEST.addTalkId(30042)

QUEST.addTalkId(30311)

STARTED.addQuestDrop(30042,OFFICIAL_LETTER_ID,1)
コード例 #25
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)
コード例 #26
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
       count = st.getQuestItemsCount(NECROHEART)
       if st.getInt("cond") == 1 and count < 10 :
          chance = DROP_CHANCE * Config.RATE_DROP_QUEST
          numItems, chance = divmod(int(chance),100)
          if st.getRandom(100) < chance : 
             numItems += 1
          if numItems :
             if count + numItems >= 10 :
                numItems = 10 - count
                st.playSound("ItemSound.quest_middle")
                st.set("cond","2")
             else:
                st.playSound("ItemSound.quest_itemget")
             st.giveItems(NECROHEART,int(numItems))
   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)
コード例 #27
0
ファイル: __init__.py プロジェクト: la2brazuca/la2brazuca
            st.giveItems(item, 1)
            st.playSound("ItemSound.quest_itemget")
        return


# Quest class and state definition
QUEST = Quest(QUEST_NUMBER,
              str(QUEST_NUMBER) + "_" + QUEST_NAME, QUEST_DESCRIPTION)
CREATED = State('Start', QUEST)
SOLO = State('Solo', QUEST)
PARTY = State('Party', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

# Quest NPC starter initialization
QUEST.addStartNpc(SORINT)
# Quest initialization
for npc in [
        SORINT, BERNARD, PAGE, HAGGER, STAN, RALFORD, FERRIS, COLLOB, PANO,
        DUNING, LORAIN
]:
    QUEST.addTalkId(npc)

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

SOLO.addQuestDrop(SORINT, 3811, 1)
SOLO.addQuestDrop(SORINT, 3812, 1)
for item in range(3472, 3499) + range(3813, 3816):
    PARTY.addQuestDrop(SORINT, item, 1)
コード例 #28
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   if st :
     if st.getState() == STARTED :
       count = st.getQuestItemsCount(PROOF_OF_AVENGER)
       if st.getInt("cond") == 1 and count < 100 :
         chance = DROP_CHANCE * Config.RATE_DROP_QUEST
         numItems, chance = divmod(chance,100)
         if st.getRandom(100) < chance : 
           numItems = numItems + 1
         if numItems :
           if count + numItems >= 100 :
             numItems = 100 - count
             st.playSound("ItemSound.quest_middle")
             st.set("cond","2")
           else:
             st.playSound("ItemSound.quest_itemget")   
           st.giveItems(PROOF_OF_AVENGER,int(numItems))       
   return

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

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

for i in MOBS :
  QUEST.addKillId(i)

STARTED.addQuestDrop(EYE_OF_ARGOS,PROOF_OF_AVENGER,1)
コード例 #29
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


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

QUEST.addTalkId(30391)

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

QUEST.addKillId(20021)
QUEST.addKillId(20359)
QUEST.addKillId(27030)

STARTED.addQuestDrop(20359,KEY_OF_FLAME,1)
STARTED.addQuestDrop(30411,MAP_OF_LUSTER,1)
STARTED.addQuestDrop(30410,WIND_FEATHER,1)
STARTED.addQuestDrop(30412,BROKEN_BRONZE_MIRROR,1)
STARTED.addQuestDrop(27030,SPARKLE_PEBBLE,1)
STARTED.addQuestDrop(30413,RAMAS_DIARY,1)
STARTED.addQuestDrop(20021,RED_SOIL,1)
STARTED.addQuestDrop(30409,RUST_GOLD_COIN,1)
STARTED.addQuestDrop(30411,FLAME_EARING,1)
STARTED.addQuestDrop(30412,WIND_BANGEL,1)
STARTED.addQuestDrop(30413,WATER_NECKLACE,1)
STARTED.addQuestDrop(30409,EARTH_RING,1)
コード例 #30
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
         item,chance = DROPLIST[npc.getNpcId()]
         count = st.getQuestItemsCount(item)
         if st.getInt("cond") == 1 and count < 100 :
            numItems, chance = divmod(chance*Config.RATE_DROP_QUEST,100)
            if st.getRandom(100) < chance :
               numItems += 1
            if count + numItems >= 100 :
              numItems = 100 - count
            if numItems != 0 :
              st.giveItems(item,int(numItems))
              if st.getQuestItemsCount(LEAF_OF_FLAVA) == st.getQuestItemsCount(BUFFALO_MEAT) == st.getQuestItemsCount(ANTELOPE_HORN) == 100 :
                 st.set("cond","2")
                 st.playSound("ItemSound.quest_middle")
              else :
                 st.playSound("ItemSound.quest_itemget")
   return

QUEST       = Quest(623,qn,"The Finest Food")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

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

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

for item in range(7199,7202):
    STARTED.addQuestDrop(JEREMY,item,1)
コード例 #31
0
           htmltext = "30048-09.htm" 
         elif ItemsCount_BP > 0 : 
           htmltext = "30048-10.htm" 
           st.takeItems(BAULS_POTION,-1) 
           st.giveItems(NECKLACE,1) 
           st.set("cond","0") 
           st.set("onlyone","1") 
           st.setState(COMPLETED)
           st.playSound("ItemSound.quest_finish") 
         else: 
           htmltext = "30048-07.htm" 
   return htmltext

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

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

QUEST.addTalkId(DARIN) 

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

STARTED.addQuestDrop(DARIN,DARINGS_LETTER,1) 
STARTED.addQuestDrop(DARIN,RAPUNZELS_KERCHIEF,1) 
STARTED.addQuestDrop(DARIN,DARINGS_RECEIPT,1) 
STARTED.addQuestDrop(DARIN,BAULS_POTION,1) 
コード例 #32
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
         htmltext = "31543-0.htm"
       elif npcId == 31544 and cond == 2 and st.getQuestItemsCount(BOILED_EGGS) :
         htmltext = "31544-0.htm"
       elif npcId == 31545 and cond == 3 and st.getQuestItemsCount(BOILED_EGGS) :
         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)
コード例 #33
0
ファイル: __init__.py プロジェクト: la2brazuca/la2brazuca
          if st.getRandom(10)<4 :
            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,qn,"Sacrifice To Sea")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)


QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30312)

QUEST.addTalkId(30312)

QUEST.addTalkId(30051)
QUEST.addTalkId(30055)

QUEST.addKillId(20481)
QUEST.addKillId(20545)

STARTED.addQuestDrop(20481,FOX_FUR_ID,1)
STARTED.addQuestDrop(20545,FOX_FUR_ID,1)
STARTED.addQuestDrop(30051,FOX_FUR_YARN_ID,1)
STARTED.addQuestDrop(30055,MAIDEN_DOLL_ID,1)
コード例 #34
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
      count = st.getQuestItemsCount(VACUALITE_ORE)
      if st.getInt("cond") == 2 and count < 50 :
         chance = CHANCE_FOR_QUEST_ITEMS * Config.RATE_DROP_QUEST
         numItems, chance = divmod(chance,100)
         if st.getRandom(100) < chance : 
            numItems += 1
         if numItems :
            if count + numItems >= 50 :
               numItems = 50 - count
               st.playSound("ItemSound.quest_middle")
               st.set("cond","3")
            else:
               st.playSound("ItemSound.quest_itemget")   
            st.giveItems(VACUALITE_ORE,int(numItems)) 
      return

QUEST       = Quest(618,qn,"Into the Flame")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(KLEIN)
QUEST.addTalkId(KLEIN)
QUEST.addTalkId(HILDA)

for mob in range(21274,21278)+range(21282,21286)+range(21290,21294) :
    QUEST.addKillId(mob)

for item in range(7265,7267) :
    STARTED.addQuestDrop(KLEIN,item,1)
コード例 #35
0
ファイル: __init__.py プロジェクト: MartinDeAndrea/L2Project
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

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

QUEST.addTalkId(30391)

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

QUEST.addKillId(20021)
QUEST.addKillId(20359)
QUEST.addKillId(27030)

STARTED.addQuestDrop(20359, KEY_OF_FLAME, 1)
STARTED.addQuestDrop(30411, MAP_OF_LUSTER, 1)
STARTED.addQuestDrop(30410, WIND_FEATHER, 1)
STARTED.addQuestDrop(30412, BROKEN_BRONZE_MIRROR, 1)
STARTED.addQuestDrop(27030, SPARKLE_PEBBLE, 1)
STARTED.addQuestDrop(30413, RAMAS_DIARY, 1)
STARTED.addQuestDrop(20021, RED_SOIL, 1)
STARTED.addQuestDrop(30409, RUST_GOLD_COIN, 1)
STARTED.addQuestDrop(30411, FLAME_EARING, 1)
STARTED.addQuestDrop(30412, WIND_BANGEL, 1)
STARTED.addQuestDrop(30413, WATER_NECKLACE, 1)
STARTED.addQuestDrop(30409, EARTH_RING, 1)
コード例 #36
0
ファイル: __init__.py プロジェクト: MartinDeAndrea/L2Project
          st.playSound("Itemsound.quest_middle")
          itemcount=0
          for id in [WEIRD_BEES_NEEDLE,MARSH_SPIDERS_WEB,BLOOD_OF_LEECH]:
           itemcount+=st.getQuestItemsCount(id)
          if npcId==27133 or itemcount>29:          
            st.set("progress",str(progress+1))
        else:
          st.playSound("Itemsound.quest_itemget")
   return

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


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

QUEST.addTalkId(30531)

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

for mobId in [20225,20229,20233,27133]:
  QUEST.addKillId(mobId)

for item in range(2864,2867)+range(2868,2879)+[2916]:
  STARTED.addQuestDrop(30531,item,1)
コード例 #37
0
ファイル: __init__.py プロジェクト: la2brazuca/la2brazuca
        id = st.getState()
        cond = st.getInt("cond")
        if id == CREATED:
            st.set("cond", "0")
        if npcId == FUNDIN and cond == 0:
            if id == COMPLETED:
                htmltext = "<html><body>This quest has already been completed.</body></html>"
            elif player.getLevel() < 74:
                htmltext = "31274-1.htm"
                st.exitQuest(1)
            elif player.getLevel() >= 74:
                htmltext = "31274-0.htm"
        elif npcId == FUNDIN and cond == 1:
            htmltext = "31274-2.htm"
        elif npcId == VULCAN and cond == 1 and id == STARTED:
            htmltext = "31539-0.htm"
        return htmltext


QUEST = Quest(13, qn, "Parcel Delivery")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(31274)
QUEST.addTalkId(31274)
QUEST.addTalkId(31539)

STARTED.addQuestDrop(31539, PACKAGE, 1)
コード例 #38
0
        if st:
            count = st.getQuestItemsCount(GRAVE_GOODS)
            if st.getInt("cond") == 1 and count < 180:
                chance = DROP_CHANCE * Config.RATE_DROP_QUEST
                numItems, chance = divmod(chance, 100)
                if st.getRandom(100) < chance:
                    numItems += 1
                if numItems:
                    if count + numItems >= 180:
                        numItems = 180 - count
                        st.playSound("ItemSound.quest_middle")
                        st.set("cond", "2")
                    else:
                        st.playSound("ItemSound.quest_itemget")
                    st.giveItems(GRAVE_GOODS, int(numItems))
        return


QUEST = Quest(645, qn, "Ghosts of Batur")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

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

for i in MOBS:
    QUEST.addKillId(i)

STARTED.addQuestDrop(KARUDA, GRAVE_GOODS, 1)
コード例 #39
0
ファイル: __init__.py プロジェクト: psferreira1/L2jFear
        elif npcId == MIRABEL and cond == 1:
            htmltext = "30146-04.htm"
        elif id == STARTED:
            if npcId == ARIEL and cond:
                if st.getQuestItemsCount(ARIELS_RECOMMENDATION) == 0:
                    htmltext = "30148-01.htm"
                else:
                    htmltext = "30148-03.htm"
            elif npcId == ASTERIOS and cond == 2 and st.getQuestItemsCount(
                    ARIELS_RECOMMENDATION) > 0:
                htmltext = "30154-01.htm"
            elif npcId == MIRABEL and cond == 3:
                htmltext = "30146-05.htm"
        return htmltext


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

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

QUEST.addTalkId(MIRABEL)

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

STARTED.addQuestDrop(MIRABEL, ARIELS_RECOMMENDATION, 1)
コード例 #40
0
            else:
                htmltext = "30357-04.htm"
        return htmltext

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

        if st.getRandom(10) < (5 + ((npc.getNpcId() - 20000) ^ 4)):
            st.giveItems(IMP_SHACKLES, 1)
            st.playSound("ItemSound.quest_itemget")
        return


QUEST = Quest(265, qn, "Chains Of Slavery")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30357)

QUEST.addTalkId(30357)

QUEST.addKillId(20004)
QUEST.addKillId(20005)

STARTED.addQuestDrop(20004, IMP_SHACKLES, 1)
コード例 #41
0
ファイル: __init__.py プロジェクト: la2brazuca/la2brazuca
    partyMember = self.getRandomPartyMember(player, partyCond, "1")
    if not partyMember : return
    st = partyMember.getQuestState(qn)
    count = st.getQuestItemsCount(item)
    if count < 100 :
       st.giveItems(item,1)
       if count + 1 >= 100 :
          st.playSound("ItemSound.quest_middle")
          st.unset(partyCond)
       else :
          st.playSound("ItemSound.quest_itemget")
    return  
 
# Quest class and state definition
QUEST       = Quest(QUEST_NUMBER, str(QUEST_NUMBER)+"_"+QUEST_NAME, QUEST_DESCRIPTION)
 
CREATED     = State('Start',     QUEST)
STARTED     = State('Started',   QUEST)
COMPLETED   = State('Completed', QUEST)
 
QUEST.setInitialState(CREATED)
 
# Quest NPC starter initialization
QUEST.addStartNpc(MANAKIA)
# Quest initialization
QUEST.addTalkId(MANAKIA)
 
for i in DROPLIST.keys() :
  QUEST.addKillId(i)
  STARTED.addQuestDrop(i,DROPLIST[i][0],1)
コード例 #42
0
        if st.getInt("cond") == 1 :
          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)
コード例 #43
0
QUEST.addTalkId(30655)
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)
コード例 #44
0
        elif npcId == 30956 and st.getInt("cond") == 2:
            st.giveItems(4319, 1)
            st.set("cond", "3")
            htmltext = "30956_3.htm"
        elif npcId == 30956 and st.getInt("cond") == 3:
            htmltext = "<html><body>Find Barbado..</body></html>"
        elif npcId == 30959 and st.getInt("cond") == 3:
            st.takeItems(4319, 1)
            st.set("cond", "4")
            htmltext = "30959_1.htm"
        elif npcId == 30959 and st.getInt("cond") == 4:
            htmltext = "<html><body>Go back to Nanarin..</body></html>"
        elif npcId == 30956 and st.getInt("cond") == 4:
            htmltext = "30956_4.htm"
        return htmltext


QUEST = Quest(363, qn, "Sorrowful Sounds of Flute")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

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

QUEST.addTalkId(30595)
QUEST.addTalkId(30959)

STARTED.addQuestDrop(30959, 4319, 1)
コード例 #45
0
   
   count = st.getQuestItemsCount(WOLF_PELT)
   numItems, chance = divmod(100*Config.RATE_DROP_QUEST,100)
   if st.getRandom(100) <chance :
     numItems = numItems + 1
   if count+numItems>=40 :
     numItems = 40 - count
     if numItems != 0 :
       st.playSound("ItemSound.quest_middle")
       st.set("cond","2")
   else :
     st.playSound("ItemSound.quest_itemget")
   st.giveItems(WOLF_PELT,int(numItems))
   return

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

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30001)

QUEST.addTalkId(30001)

QUEST.addKillId(20120)
QUEST.addKillId(20442)

STARTED.addQuestDrop(20120,WOLF_PELT,1)
コード例 #46
0
ファイル: __init__.py プロジェクト: MartinDeAndrea/L2Project
            htmltext = "30134-04.htm"
        elif id == STARTED:
            if npcId == ROSELYN and cond:
                if st.getQuestItemsCount(ROSELYNS_NOTE) == 0:
                    htmltext = "30355-01.htm"
                else:
                    htmltext = "30355-03.htm"
            elif npcId == HARNE and cond == 2 and st.getQuestItemsCount(
                    ROSELYNS_NOTE) > 0:
                htmltext = "30144-01.htm"
            elif npcId == JASMINE and cond == 3:
                htmltext = "30134-05.htm"

        return htmltext


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

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

QUEST.addTalkId(JASMINE)

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

STARTED.addQuestDrop(JASMINE, ROSELYNS_NOTE, 1)
コード例 #47
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
       if not st.getQuestItemsCount(item) and random < (chance - 10) :
          st.giveItems(item,1)
          st.playSound("ItemSound.quest_middle")
          st.set("cond","3")
   elif random < chance:
      st.giveItems(item,1)
      st.playSound("ItemSound.quest_itemget")
   return  

# Quest class and state definition
QUEST       = Quest(QUEST_NUMBER, str(QUEST_NUMBER)+"_"+QUEST_NAME, QUEST_DESCRIPTION)
CREATED     = State('Start',     QUEST)
SOLO        = State('Solo',   QUEST)
PARTY       = State('Party',   QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

# Quest NPC starter initialization
QUEST.addStartNpc(SORINT)
# Quest initialization
for npc in [SORINT, BERNARD, PAGE, HAGGER, STAN, RALFORD, FERRIS, COLLOB, PANO, DUNING, LORAIN]:
   QUEST.addTalkId(npc)

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

SOLO.addQuestDrop(SORINT,3811,1)
SOLO.addQuestDrop(SORINT,3812,1)
for item in range(3472,3499)+range(3813,3816):
   PARTY.addQuestDrop(SORINT,item,1)
コード例 #48
0
ファイル: __init__.py プロジェクト: MartinDeAndrea/L2Project

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)
コード例 #49
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
   st = player.getQuestState(qn)
   if not st : return htmltext
   npcId = npc.getNpcId()
   id = st.getState()
   cond = st.getInt("cond")
   if npcId == LIESEL and cond == 0 :
     if id == COMPLETED :
       htmltext = "<html><body>This quest has already been completed.</body></html>"
     elif player.getLevel() < 74 : 
       htmltext = "31263-1.htm"
       st.exitQuest(1)
     elif player.getLevel() >= 74 : 
       htmltext = "31263-0.htm"
   elif npcId == LIESEL and cond == 1 :
     htmltext = "31263-2.htm"
   elif npcId == GHOST_OF_ADVENTURER and cond == 1 and id == STARTED:
     htmltext = "31538-0.htm"
   return htmltext

QUEST       = Quest(14,qn,"Whereabouts Of The Archaeologist")
CREATED     = State('Start', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(LIESEL)
QUEST.addTalkId(LIESEL)
QUEST.addTalkId(GHOST_OF_ADVENTURER)

STARTED.addQuestDrop(GHOST_OF_ADVENTURER,LETTER,1)
コード例 #50
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
       htmltext = "30361-07.htm"
     else :
       htmltext = "30361-05.htm"
   return htmltext

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

QUEST       = Quest(317,qn,"Catch The Wind")
CREATED     = State('Start', QUEST)
STARTING     = State('Starting', QUEST)
STARTED     = State('Started', QUEST)
COMPLETED   = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30361)

QUEST.addTalkId(30361)

QUEST.addKillId(20036)
QUEST.addKillId(20044)

STARTED.addQuestDrop(20036,WIND_SHARD,1)
コード例 #51
0
                    if count > 2:
                        st.set("cond", "5")
            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)
コード例 #52
0
 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return 
   
   npcId = npc.getNpcId()
   if npcId == 20333 : 
      if st.getInt("cond") == 1 and st.getQuestItemsCount(STARSTONE1_ID) < 20 :
         if st.getRandom(2) == 0 :
            st.giveItems(STARSTONE1_ID,1)
            if st.getQuestItemsCount(STARSTONE1_ID) == 20 :
               st.playSound("ItemSound.quest_middle")
               st.set("cond","2")
            else :
               st.playSound("ItemSound.quest_itemget")
   return 

QUEST       = Quest(277,qn,"Gatekeepers Offering") 
CREATED     = State('Start', QUEST) 
STARTED     = State('Started', QUEST) 
COMPLETED   = State('Completed', QUEST) 


QUEST.setInitialState(CREATED)

QUEST.addStartNpc(30576)
QUEST.addTalkId(30576)

QUEST.addKillId(20333)
STARTED.addQuestDrop(20333,STARSTONE1_ID,1)
コード例 #53
0
ファイル: __init__.py プロジェクト: la2brazuca/la2brazuca
        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)
コード例 #54
0
        st = partyMember.getQuestState(qn)
        if st:
            count = st.getQuestItemsCount(LOST_BAIT)
            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(LOST_BAIT, 1)
        return


QUEST = Quest(51, qn, "O'Fulle's Special Bait")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

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

QUEST.addKillId(FETTERED_SOUL)
STARTED.addQuestDrop(FETTERED_SOUL, LOST_BAIT, 1)
コード例 #55
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
         htmltext = "30405-02.htm"
   return htmltext

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

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

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

QUEST.addTalkId(30405)

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

STARTED.addQuestDrop(20103,GIANT_SPIDER_SKIN,1)
コード例 #56
0
ファイル: __init__.py プロジェクト: eskruolis/la2hardcore
 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return 
   
   count = st.getQuestItemsCount(BRACELET)
   cond = st.getInt("cond")
   if st.getRandom(100) < CHANCE + ((npc.getNpcId() - 20579)*5) and count < 60 and cond == 1:
     st.giveItems(BRACELET,1)
     if count == 59 :
        st.playSound("ItemSound.quest_middle")
        st.set("cond","2")
     else :
        st.playSound("ItemSound.quest_itemget")
   return

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

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

QUEST.addTalkId(RATH)

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

STARTED.addQuestDrop(RATH,BRACELET,1)