コード例 #1
0
 def onAdvEvent(self, event, npc, player):
     htmltext = event
     st = player.getQuestState(qn)
     if not st: return
     if event == "32013-04.htm":
         if st.getQuestItemsCount(SOE):
             st.set("cond", "1")
             st.setState(STARTED)
             st.playSound("ItemSound.quest_accept")
             st.takeItems(SOE, 1)
             htmltext = "32013-03.htm"
             npc.broadcastPacket(MagicSkillUser(npc, npc, 2013, 1, 20000,
                                                0))
             st.startQuestTimer("suki_timer", 20000, npc)
     elif event == "32013-04a.htm":
         st.exitQuest(1)
         st.playSound("ItemSound.quest_giveup")
     elif event == "suki_timer":
         npc.deleteMe()
         htmltext = None
     return htmltext
コード例 #2
0
    def onAdvEvent(self, event, npc, player):
        leaderst = 0
        st = 0
        if player.isClanLeader(): leaderst = player.getQuestState(qn)
        else:
            # non-leaders doing this quest need both their own quest state and the leader's
            st = player.getQuestState(qn)
            if not st: return
            leaderst = leader(player)
            if not leaderst: return

        htmltext = event
        #####  Leaders area  ######
        if event == "30756-03.htm":
            leaderst.setState(PART2)
            leaderst.set("cond", "1")
            leaderst.playSound("ItemSound.quest_accept")
        elif event == "30759-03.htm":
            leaderst.setState(PART3)
            leaderst.set("cond", "2")
            leaderst.set("dead_list", " ")
        elif event == "30759-07.htm":
            for i in range(3):
                leaderst.takeItems(SYMBOL_OF_LOYALTY, 1)
            leaderst.giveItems(ANTIDOTE_RECIPE, 1)
            leaderst.setState(PART4)
            leaderst.set("cond", "3")
            leaderst.set("ingredients", "0 0 0")
            leaderst.set("chest_count", "0")
            leaderst.set("chest_game", "0")
            leaderst.set("chest_try", "0")
            leaderst.startQuestTimer("poison_timer", 3600000)
            skill = SkillTable.getInstance().getInfo(4082, 1)
            npc.setTarget(player)
            npc.broadcastPacket(
                MagicSkillUser(npc, player, skill.getDisplayId(), 1,
                               skill.getSkillTime(), 0))
            npc.callSkill(skill, [player])
            leaderst.addNotifyOfDeath(player)
        elif event == "poison_timer":
            members_finnish(leaderst)
            leaderst.exitQuest(1)
            htmltext = "30759-09.htm"
        elif event == "chest_timer":
            htmltext = ""
            self.chest_game(leaderst, "stop")
            if DEBUG: htmltext = "DEBUG MESSAGE: chest timer event sent."


#####  Members area  ######
        elif event == "30757-04.htm":
            deadlist = leaderst.get("dead_list").split()
            deadlist.append(player.getName())
            leaderst.set("dead_list", " ".join(deadlist))
            player.reduceCurrentHp(player.getCurrentHp(), player)
            st.giveItems(SYMBOL_OF_LOYALTY, 1)
            st.playSound("ItemSound.quest_accept")
        elif event == "30757-05.htm":
            st.exitQuest(1)
        elif event == "30758-03.htm":
            self.chest_game(leaderst, "start")
        elif event == "30758-07.htm":
            if st.getQuestItemsCount(RETRY_ITEMS) < RETRY_PRICE:
                htmltext = "30758-06.htm"
            else:
                st.takeItems(RETRY_ITEMS, RETRY_PRICE)
        return htmltext
コード例 #3
0
ファイル: __init__.py プロジェクト: MartinDeAndrea/L2Project
 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))
コード例 #4
0
    def onAdvEvent(self, event, npc, player):
        if event == "chest_timer":
            self.athrea = 0
            return
        if player.isClanLeader(): leaderst = st = player.getQuestState(qn)
        else:
            # non-leaders doing this quest need both their own quest state and the leader's
            st = player.getQuestState(qn)
            if not st: return
            leaderst = leader(player)

        if not leaderst:
            if DEBUG:
                debug = "Event can't find leader"
                print debug
                return debug
            return
        debug = ""
        htmltext = event
        if player.isClanLeader():
            if event == "30756-07.htm":
                st.playSound("ItemSound.quest_accept")
                st.set("cond", "1")
                st.setState(STARTED)
                st.set("part", "1")
            elif event == "30759-03.htm":
                st.set("part", "2")
                st.set("cond", "2")
                st.set("dead_list", " ")
            elif event == "30759-07.htm":
                st.takeItems(
                    SYMBOL_OF_LOYALTY, 1
                )  #Item is not stackable, thus need to do this for each item
                st.takeItems(SYMBOL_OF_LOYALTY, 1)
                st.takeItems(SYMBOL_OF_LOYALTY, 1)
                st.giveItems(ANTIDOTE_RECIPE, 1)
                st.set("part", "3")
                st.set("cond", "3")
                st.startQuestTimer("poison_timer", 3600000)
                st.addNotifyOfDeath(player)
                skill = SkillTable.getInstance().getInfo(4082, 1)
                npc.setTarget(player)
                npc.broadcastPacket(
                    MagicSkillUser(npc, player, skill.getDisplayId(), 1,
                                   skill.getHitTime(), 0))
                npc.callSkill(skill, [player])
            elif event == "poison_timer":
                st.exitQuest(1)
                if DEBUG:
                    debug = "Times Up! Quest failed!"
                    print debug
                    return debug
                return
        elif event == "30757-05.htm":
            if player.isClanLeader():
                return "Only Clan Members can sacrifice themselves!"
            if st.getRandom(10) > 5:
                htmltext = "30757-06.htm"
                st.giveItems(SYMBOL_OF_LOYALTY, 1)
                deadlist = leaderst.get("dead_list").split()
                deadlist.append(player.getName())
                leaderst.set("dead_list", " ".join(deadlist))
            else:
                skill = SkillTable.getInstance().getInfo(4083, 1)
                npc.setTarget(player)
                npc.broadcastPacket(
                    MagicSkillUser(npc, player, skill.getDisplayId(), 1,
                                   skill.getHitTime(), 0))
                npc.callSkill(skill, [player])
                self.startQuestTimer(player.getName(), 4000, npc, player)
        elif event == player.getName():
            if player.isDead():
                st.giveItems(SYMBOL_OF_LOYALTY, 1)
                deadlist = leaderst.get("dead_list").split()
                deadlist.append(player.getName())
                leaderst.set("dead_list", " ".join(deadlist))
            elif DEBUG:
                debug = "player " + player.getName() + " didn't die!"
                print debug
                return debug
            return
        elif event == "30758-03.htm":
            if not self.athrea:
                self.athrea = 1
                self.chests = 0
                leaderst.set("part", "4")
                leaderst.set("chest_wins", "0")
                for x, y, z in CHEST_LOCS:
                    rand = st.getRandom(5)
                    self.addSpawn(27173 + rand, x, y, z, 0, 0, 300000)
                    self.startQuestTimer("chest_timer", 300000, npc, player)
            else:
                htmltext = "30758-04.htm"
        elif event == "30758-07.htm":
            if st.getQuestItemsCount(57) >= 10000 and not self.athrea:
                htmltext = "30758-08.htm"
                st.takeItems(57, 10000)
        if DEBUG and debug:
            print debug
            return debug
        return htmltext
コード例 #5
0
 def onAdvEvent(self, event, npc, player):
     st = player.getQuestState(qn)
     if not st: return
     htmltext = event
     if event == "32041-03.htm":
         st.set("cond", "3")
         st.playSound("ItemSound.quest_middle")
     elif event == "32041-04.htm":
         st.set("cond", "4")
         st.playSound("ItemSound.quest_middle")
     elif event == "32041-12.htm":
         st.set("cond", "8")
         st.playSound("ItemSound.quest_middle")
     elif event == "32041-16.htm":
         st.set("cond", "16")
         st.giveItems(Enigma, 1)
         st.playSound("ItemSound.quest_middle")
     elif event == "32041-22.htm":
         st.set("cond", "17")
         st.takeItems(Enigma, 1)
         st.playSound("ItemSound.quest_middle")
     elif event == "32041-32.htm":
         st.takeItems(Necklace, 1)
         st.giveItems(EarBinding, 1)
         st.exitQuest(False)
         st.playSound("ItemSound.quest_finish")
     elif event == "32042-06.htm":
         if st.getInt("cond") == 10:
             if st.getInt("talk") + st.getInt("talk1") == 2:
                 st.set("cond", "11")
                 st.set("talk", "0")
                 st.set("talk1", "0")
                 st.playSound("ItemSound.quest_middle")
             else:
                 htmltext = "32042-03.htm"
     elif event == "32042-10.htm":
         if st.getInt("talk") + st.getInt("talk1") + st.getInt(
                 "talk2") == 3:
             htmltext = "32042-14.htm"
     elif event == "32042-11.htm":
         if st.getInt("talk") == 0:
             st.set("talk", "1")
     elif event == "32042-12.htm":
         if st.getInt("talk1") == 0:
             st.set("talk1", "1")
     elif event == "32042-13.htm":
         if st.getInt("talk2") == 0:
             st.set("talk2", "1")
     elif event == "32042-15.htm":
         st.set("cond", "12")
         st.set("talk", "0")
         st.set("talk1", "0")
         st.set("talk2", "0")
         st.playSound("ItemSound.quest_middle")
     elif event == "32043-06.htm":
         if st.getInt("cond") == 17:
             if st.getInt("talk") + st.getInt("talk1") == 2:
                 st.set("cond", "18")
                 st.set("talk", "0")
                 st.set("talk1", "0")
                 st.playSound("ItemSound.quest_middle")
             else:
                 htmltext = "32043-03.htm"
     elif event == "32043-15.htm":
         if st.getInt("talk") + st.getInt("talk1") == 2:
             htmltext = "32043-29.htm"
     elif event == "32043-18.htm":
         if st.getInt("talk") == 1:
             htmltext = "32043-21.htm"
     elif event == "32043-20.htm":
         st.set("talk", "1")
         st.playSound("AmbSound.ed_drone_02")
     elif event == "32043-28.htm":
         st.set("talk1", "1")
     elif event == "32043-30.htm":
         st.set("cond", "19")
         st.set("talk", "0")
         st.set("talk1", "0")
     elif event == "32044-06.htm":
         if st.getInt("cond") == 20:
             if st.getInt("talk") + st.getInt("talk1") == 2:
                 st.set("cond", "21")
                 st.set("talk", "0")
                 st.set("talk1", "0")
                 st.playSound("ItemSound.quest_middle")
             else:
                 htmltext = "32044-03.htm"
     elif event == "32044-08.htm":
         if st.getInt("talk") + st.getInt("talk1") == 2:
             htmltext = "32044-11.htm"
     elif event == "32044-09.htm":
         if st.getInt("talk") == 0:
             st.set("talk", "1")
     elif event == "32044-10.htm":
         if st.getInt("talk1") == 0:
             st.set("talk1", "1")
     elif event == "32044-17.htm":
         st.set("cond", "22")
         st.set("talk", "0")
         st.set("talk1", "0")
         st.playSound("ItemSound.quest_middle")
     elif event == "32045-02.htm":
         st.set("cond", "15")
         st.playSound("ItemSound.quest_middle")
         st.giveItems(Report, 1)
         npc.broadcastPacket(
             MagicSkillUser(npc, st.getPlayer(), 5073, 5, 1500, 0))
     elif event in ["32046-04.htm", "32046-05.htm"]:
         st.exitQuest(1)
     elif event == "32046-06.htm":
         if st.getPlayer().getLevel() >= 50:
             st.setState(STARTED)
             st.playSound("ItemSound.quest_accept")
             st.set("cond", "1")
         else:
             htmltext = "32046-00.htm"
             st.exitQuest(1)
     elif event == "32046-08.htm":
         st.set("cond", "2")
         st.playSound("ItemSound.quest_middle")
     elif event == "32046-12.htm":
         st.set("cond", "6")
         st.playSound("ItemSound.quest_middle")
         st.giveItems(Flower, 1)
     elif event == "32046-22.htm":
         st.set("cond", "10")
         st.playSound("ItemSound.quest_middle")
     elif event == "32046-29.htm":
         st.set("cond", "13")
         st.playSound("ItemSound.quest_middle")
     elif event == "32046-35.htm":
         st.set("cond", "20")
         st.playSound("ItemSound.quest_middle")
     elif event == "32046-38.htm":
         st.set("cond", "23")
         st.playSound("ItemSound.quest_middle")
         st.giveItems(Heart, 1)
     elif event == "32047-06.htm":
         st.set("cond", "5")
         st.playSound("ItemSound.quest_middle")
     elif event == "32047-10.htm":
         st.set("cond", "7")
         st.playSound("ItemSound.quest_middle")
         st.takeItems(Flower, 1)
     elif event == "32047-15.htm":
         st.set("cond", "9")
         st.playSound("ItemSound.quest_middle")
     elif event == "32047-18.htm":
         st.set("cond", "14")
         st.playSound("ItemSound.quest_middle")
     elif event == "32047-26.htm":
         st.set("cond", "24")
         st.playSound("ItemSound.quest_middle")
         st.takeItems(Heart, 1)
     elif event == "32047-32.htm":
         st.set("cond", "25")
         st.playSound("ItemSound.quest_middle")
         st.giveItems(Necklace, 1)
     elif event == "w1_1":
         st.set("talk", "1")
         htmltext = "32042-04.htm"
     elif event == "w1_2":
         st.set("talk1", "1")
         htmltext = "32042-05.htm"
     elif event == "w2_1":
         st.set("talk", "1")
         htmltext = "32043-04.htm"
     elif event == "w2_2":
         st.set("talk1", "1")
         htmltext = "32043-05.htm"
     elif event == "w3_1":
         st.set("talk", "1")
         htmltext = "32044-04.htm"
     elif event == "w3_2":
         st.set("talk1", "1")
         htmltext = "32044-05.htm"
     return htmltext