Ejemplo n.º 1
0
                numItems, chance = divmod(chance, 100)
                if st.getRandom(100) < chance:
                    numItems += 1
                if numItems:
                    if count + numItems >= 200:
                        numItems = 200 - count
                        st.playSound("ItemSound.quest_middle")
                        st.set("cond", "8")
                    else:
                        st.playSound("ItemSound.quest_itemget")
                    st.giveItems(EVIL_SPIRIT, int(numItems))
        return


QUEST = Quest(603, qn, "Daimon the White-Eyed - Part 1")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(EYE)

QUEST.addTalkId(EYE)
QUEST.addTalkId(TABLE1)
QUEST.addTalkId(TABLE2)
QUEST.addTalkId(TABLE3)
QUEST.addTalkId(TABLE4)
QUEST.addTalkId(TABLE5)

QUEST.addKillId(BUFFALO)
QUEST.addKillId(BANDERSNATCH)
Ejemplo n.º 2
0
                    htmltext = "30583-02.htm"
                else:
                    htmltext = "<html><body>Quest for characters level 3 and above.</body></html>"
                    st.exitQuest(1)
            else:
                htmltext = "30583-01.htm"
                st.exitQuest(1)
        elif npc == PETUKAI and id == COMPLETED:
            htmltext = "<html><body>I can't supply you with another Giran Scroll of Escape. Sorry traveller.</body></html>"
        elif npc == PETUKAI and cond == 1:
            htmltext = "30583-04.htm"
        if id == STARTED:
            if npcId == TANAPI and cond:
                htmltext = "30571-01.htm"
            elif npcId == TAMIL and cond == 2:
                htmltext = "30576-01.htm"
        return htmltext


QUEST = Quest(9, qn, "Into the City of Humans")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(PETUKAI)

QUEST.addTalkId(PETUKAI)

QUEST.addTalkId(TANAPI)
QUEST.addTalkId(TAMIL)
Ejemplo n.º 3
0
                        st.giveItems(item, 1)
                        htmltext = "Enjoy your Wings of Destiny Circlet"
                else:
                    for i in range(6611, 6622):
                        if st.getQuestItemsCount(i):
                            st.exitQuest(1)
                            return "You already have an " + HERO_ITEMS[i][1]
                    st.giveItems(item, 1)
                    htmltext = "Enjoy your " + HERO_ITEMS[item][1]
                    st.playSound("ItemSound.quest_fanfare_2")
                st.exitQuest(1)
        return htmltext

    def onTalk(Self, npc, player):
        st = player.getQuestState(qn)
        htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>"
        if player.isHero():
            htmltext = render_list("list", 0)
        else:
            st.exitQuest(1)
        return htmltext


QUEST = Quest(7000, qn, "Hero Items")
CREATED = State('Start', QUEST)

QUEST.setInitialState(CREATED)

for i in MONUMENTS:
    QUEST.addStartNpc(i)
    QUEST.addTalkId(i)
Ejemplo n.º 4
0
                                           spawnedNpc)
                    else:
                        st.giveItems(R4[st.getRandom(len(R4))], 1)
                except:
                    pass
            elif npcId == GREAT_DEMON_KING:
                try:
                    st.getQuestTimer("greatdemon_timer1").cancel()
                    st.giveItems(ADENA, 1412965)
                    st.playSound("ItemSound.quest_itemget")
                except:
                    pass
        return

QUEST = Quest(334, qn, "The Wishing Potion")
CREATED = State('Start', QUEST)
STARTED = State('started', QUEST)
#Following states kept for backwards compatibility only.
MIDDLE = State('middle', QUEST)
END = State('end', QUEST)
COMPLETED = State('completed', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(ALCHEMIST_MATILD)

QUEST.addTalkId(ALCHEMIST_MATILD)
QUEST.addTalkId(TORAI)
QUEST.addTalkId(RUPINA)
QUEST.addTalkId(WISDOM_CHEST)
Ejemplo n.º 5
0
        if item == KALDIS_COIN:
            if cond == 2:
                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)
Ejemplo n.º 6
0
                else:
                    foulPlayer = self.inProgressDuelMobs[npcId][0]
                    if foulPlayer:  # if not null (perhaps the player went offline)...
                        st = foulPlayer.getQuestState(qn)
                        if st:  # the original player has not aborted the quest
                            st.set(
                                var, "5"
                            )  # if the player cheats, give foul crystal and set stat to cheat
                            st.giveItems(foul, 1)
                # finally, clear the inProgress mob info.
                self.inProgressDuelMobs.pop(npcId)
        return


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

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

# adds all npcs, mobs to the progress state
for npcId in NPC:
    QUEST.addTalkId(npcId)
for mobId in DROPLIST_LARA.keys():
    QUEST.addKillId(mobId)
for mobId in DROPLIST_SUMMON.keys():
    QUEST.addKillId(mobId)
    QUEST.addAttackId(mobId)
#for summonId in PLAYER_SUMMONS:
Ejemplo n.º 7
0
        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)
Ejemplo n.º 8
0
                            else:
                                st.playSound("ItemSound.quest_itemget")
        return

    # only leaders are registered for onDeath.  Therefore, st should always match that of the leader
    def onDeath(self, npc, pc, st):
        if st.getPlayer() == pc:
            timer1 = st.getQuestTimer("poison_timer")
            timer2 = st.getQuestTimer("chest_timer")
            if timer1 != None: timer1.cancel()
            if timer2 != None: timer2.cancel()
            st.exitQuest(1)
        if DEBUG: return "DEBUG: Leader died. Quest failed."

QUEST = Quest(501, qn, qd)
CREATED = State('Start', QUEST)
PART2 = State('Part2', QUEST)
PART3 = State('Part3', QUEST)
PART4 = State('Part4', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

for i in [SIR_KRISTOF_RODEMAI, STATUE_OF_OFFERING]:
    QUEST.addStartNpc(i)
    QUEST.addTalkId(i)

for i in [WITCH_KALIS, WITCH_ATHREA]:
    QUEST.addTalkId(i)

CREATED.addQuestDrop(STATUE_OF_OFFERING, SYMBOL_OF_LOYALTY, 1)
Ejemplo n.º 9
0
                    if count < maxcount:
                        st.giveItems(item, 1)
                        # spawns 5 new medusas around the dead queen *muha*
                        if npcId == 27108:
                            for i in range(5):
                                st.addSpawn(20158)
                        if count == maxcount - 1:
                            st.playSound("ItemSound.quest_middle")
                            st.set(var, str(isValue + 1))
                        else:
                            st.playSound("ItemSound.quest_itemget")
                        return


QUEST = Quest(233, qn, "Test Of Warspirit")
CREATED = State('Start', QUEST)
PART1 = State('Part1', QUEST)
PART2 = State('Part2', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(30510)

for npcId in NPC:
    QUEST.addTalkId(npcId)

for mobId in PART1_MOBS:
    QUEST.addKillId(mobId)

for mobId in PART2_MOBS:
    QUEST.addKillId(mobId)
Ejemplo n.º 10
0
        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)
Ejemplo n.º 11
0
                st.takeItems(M_EGG, 1)
                st.giveItems(57, 71318)
                st.setState(COMPLETED)
                st.set("cond", "0")
                st.playSound("ItemSound.quest_finish")
        elif npcId == KARAKAWEI:
            if cond == 4:
                htmltext = "32117-01.htm"
                if id == MIDDLE:
                    htmltext = "32117-02.htm"
            elif cond == 5:
                htmltext = "32117-04.htm"
        elif npcId == MANTARASA and cond == 5:
            htmltext = "32118-01.htm"
        return htmltext


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

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(MARQUEZ)
QUEST.addTalkId(MARQUEZ)
QUEST.addTalkId(MUSHIKA)
QUEST.addTalkId(ASAMAH)
QUEST.addTalkId(KARAKAWEI)
QUEST.addTalkId(MANTARASA)