示例#1
0
 def onKill(self, npc, player, isPet):
     partyMember1 = self.getRandomPartyMember(player, "1")
     partyMember2 = self.getRandomPartyMemberState(player, State.COMPLETED)
     if not partyMember1 and not partyMember2: return
     partyMember = partyMember1
     item, chance = DROPLIST[npc.getNpcId()]
     dropchance = Rnd.get(100)
     if dropchance < chance:
         # player who has State.COMPLETED up to 2 out of 3 item collections may consume the party drop
         if partyMember2:
             if Rnd.get(100) <= 66:
                 return
             else:
                 partyMember = partyMember1
         st = partyMember.getQuestState(qn)
         if st:
             if st.getState() == State.STARTED:
                 count = st.getQuestItemsCount(item)
                 if st.getInt("cond") == 1 and count < 100:
                     numItems, chance = divmod(chance * Config.RATE_QUEST_DROP, 100)
                     if dropchance < 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
示例#2
0
 def onKill(self, npc, player, isPet):
     npcId = npc.getNpcId()
     if npcId == DAIMON:
         respawnMinDelay = 43200000 * int(Config.RAID_MIN_RESPAWN_MULTIPLIER)
         respawnMaxDelay = 129600000 * int(Config.RAID_MAX_RESPAWN_MULTIPLIER)
         respawn_delay = Rnd.get(respawnMinDelay, respawnMaxDelay)
         self.saveGlobalQuestVar("604_respawn", str(System.currentTimeMillis() + respawn_delay))
         self.startQuestTimer("spawn_npc", respawn_delay, None, None)
         self.cancelQuestTimer("Daimon the White-Eyed has despawned", npc, None)
         party = player.getParty()
         if party:
             PartyQuestMembers = []
             for player1 in party.getPartyMembers().toArray():
                 st1 = player1.getQuestState(qn)
                 if st1:
                     if st1.getState() == State.STARTED and (st1.getInt("cond") == 1 or st1.getInt("cond") == 2):
                         PartyQuestMembers.append(st1)
             if len(PartyQuestMembers) == 0: return
             st = PartyQuestMembers[Rnd.get(len(PartyQuestMembers))]
             if st.getQuestItemsCount(S_SUMMON) > 0:
                 st.takeItems(S_SUMMON, 1)
             st.giveItems(ESSENCE, 1)
             st.set("cond", "3")
             st.playSound("ItemSound.quest_middle")
         else:
             st = player.getQuestState(qn)
             if not st: return
             if st.getState() == State.STARTED and (st.getInt("cond") == 1 or st.getInt("cond") == 2):
                 if st.getQuestItemsCount(S_SUMMON) > 0:
                     st.takeItems(S_SUMMON, 1)
                 st.giveItems(ESSENCE, 1)
                 st.set("cond", "3")
                 st.playSound("ItemSound.quest_middle")
     return
示例#3
0
文件: __init__.py 项目: Jocy710/GD
 def onEvent(self, event, st):
     htmltext = event
     if event == "32264-02.htm":
         st.set("cond", "1")
         st.setState(State.STARTED)
         st.playSound("ItemSound.quest_accept")
     elif event == "32264-08.htm":
         st.giveItems(ECHO_CRYSTAL, 1)
         st.set("cond", "2")
         st.playSound("ItemSound.quest_middle")
     elif event == "32271-03.htm":
         st.set("cond", "3")
         st.giveItems(PARMES_LETTER, 1)
         st.playSound("ItemSound.quest_middle")
         x = Rnd.get(-100, 100)
         y = Rnd.get(-100, 100)
         st.getPlayer().teleToLocation(143472 + x, 191040 + y, -3696)
         st.getPlayer().setInstanceId(0)
     elif event == "32264-12.htm":
         if st.getQuestItemsCount(PARMES_LETTER):
             st.takeItems(PARMES_LETTER, 1)
         st.playSound("ItemSound.quest_middle")
     elif event == "32264-13.htm":
         st.takeItems(ECHO_CRYSTAL, 1)
         st.addExpAndSp(250677, 25019)
         st.playSound("ItemSound.quest_finish")
         st.exitQuest(False)
     return htmltext
示例#4
0
 def onKill(self, npc, player, isPet):
     npcId = npc.getNpcId()
     if npcId == Ashutar:
         respawnMinDelay = 43200000 * int(
             Config.RAID_MIN_RESPAWN_MULTIPLIER)
         respawnMaxDelay = 129600000 * int(
             Config.RAID_MAX_RESPAWN_MULTIPLIER)
         respawn_delay = Rnd.get(respawnMinDelay, respawnMaxDelay)
         self.saveGlobalQuestVar(
             "610_respawn", str(System.currentTimeMillis() + respawn_delay))
         self.startQuestTimer("spawn_npc", respawn_delay, None, None)
         self.cancelQuestTimer("Soul of Water Ashutar has despawned", npc,
                               None)
         party = player.getParty()
         if party:
             PartyQuestMembers = []
             for player1 in party.getPartyMembers().toArray():
                 st1 = player1.getQuestState(qn)
                 if st1:
                     if st1.getState() == State.STARTED and (
                             st1.getInt("cond") == 1
                             or st1.getInt("cond") == 2):
                         PartyQuestMembers.append(st1)
             if len(PartyQuestMembers) == 0: return
             st = PartyQuestMembers[Rnd.get(len(PartyQuestMembers))]
             if st.getQuestItemsCount(Totem2) > 0:
                 st.takeItems(Totem2, 1)
             st.giveItems(Ice_Heart, 1)
             st.set("cond", "3")
             st.set("id", "3")
             st.playSound("ItemSound.quest_middle")
         else:
             st = player.getQuestState(qn)
             if not st: return
             if st.getState() == State.STARTED and (
                     st.getInt("cond") == 1 or st.getInt("cond") == 2):
                 if st.getQuestItemsCount(Totem2) > 0:
                     st.takeItems(Totem2, 1)
                 st.giveItems(Ice_Heart, 1)
                 st.set("cond", "3")
                 st.set("id", "3")
                 st.playSound("ItemSound.quest_middle")
     elif npcId in Ketra_Orcs:
         st = player.getQuestState(qn)
         if st:
             if st.getQuestItemsCount(Ice_Heart):
                 st.takeItems(Ice_Heart, -1)
             st.unset("cond")
             st.unset("id")
             st.exitQuest(1)
     return
示例#5
0
 def onTalk(self, npc, player):
     htmltext = Quest.getNoQuestMsg(player)
     st = player.getQuestState(qn)
     if not st: return htmltext
     clan = player.getClan()
     npcId = npc.getNpcId()
     if player.getClan() == None or player.isClanLeader() == 0:
         st.exitQuest(1)
         htmltext = "31331-0a.htm"
     elif player.getClan().getLevel() < 6:
         st.exitQuest(1)
         htmltext = "31331-0b.htm"
     else:
         cond = st.getInt("cond")
         raid = st.getInt("raid")
         id = st.getState()
         if id == State.CREATED and cond == 0:
             htmltext = "31331-0c.htm"
         elif id == State.STARTED and cond == 1 and raid in REWARDS_LIST.keys(
         ):
             npc, item, min, max = REWARDS_LIST[raid]
             count = st.getQuestItemsCount(item)
             CLAN_POINTS_REWARD = Rnd.get(min, max)
             if not count:
                 htmltext = "31331-" + str(raid) + "a.htm"
             elif count == 1:
                 htmltext = "31331-" + str(raid) + "b.htm"
                 st.takeItems(item, 1)
                 clan.addReputationScore(CLAN_POINTS_REWARD, True)
                 player.sendPacket(
                     SystemMessage.getSystemMessage(1777).addNumber(
                         CLAN_POINTS_REWARD))
                 clan.broadcastToOnlineMembers(PledgeShowInfoUpdate(clan))
     return htmltext
示例#6
0
文件: __init__.py 项目: Jocy710/GD
    def onKill(self, npc, player, isPet):
        partyMember1 = self.getRandomPartyMember(player, "1")
        partyMember2 = self.getRandomPartyMember(player, "2")
        partyMember = partyMember1  # initialize
        if not partyMember1 and not partyMember2:
            return
        elif not partyMember2:
            partyMember = partyMember1
        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() != State.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
示例#7
0
文件: __init__.py 项目: Jocy710/GD
 def generateBoard(self, player, bet):
     board = []
     num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
     for i in range(9):
         board.append(num.pop(Rnd.get(1, len(num)) - 1))
     self.gameStatus[player.getName()] = [board, [], bet]
     return
示例#8
0
文件: __init__.py 项目: Jocy710/GD
    def onKill(self, npc, player, isPet):
        npcId = npc.getNpcId()
        party = player.getParty()
        if party:
            PartyMembers = []
            for member in party.getPartyMembers().toArray():
                st = member.getQuestState(qn)
                if st and st.getState() == State.STARTED and st.getInt("cond") == 1:
                    if npcId == TOMLAN_KAMOS and st.getQuestItemsCount(TISSUE_TK) == 0:
                        PartyMembers.append(st)
                    elif npcId == TISSUE_OA and st.getQuestItemsCount(TISSUE_OA) == 0:
                        PartyMembers.append(st)
            if len(PartyMembers) == 0: return
            winnerst = PartyMembers[Rnd.get(len(PartyMembers))]
            if npcId == TOMLAN_KAMOS and winnerst.getQuestItemsCount(TISSUE_TK) == 0:
                winnerst.giveItems(TISSUE_TK, 1)
                winnerst.playSound("ItemSound.quest_itemget")
            elif npcId == OL_ARIOSH and winnerst.getQuestItemsCount(TISSUE_OA) == 0:
                winnerst.giveItems(TISSUE_OA, 1)
                winnerst.playSound("ItemSound.quest_itemget")
        else:
            st = player.getQuestState(qn)
            if not st: return
            if st.getState() != State.STARTED: return

            if npcId == TOMLAN_KAMOS and st.getQuestItemsCount(TISSUE_TK) == 0:
                st.giveItems(TISSUE_TK, 1)
                st.playSound("ItemSound.quest_itemget")
            elif npcId == OL_ARIOSH and st.getQuestItemsCount(TISSUE_OA) == 0:
                st.giveItems(TISSUE_OA, 1)
                st.playSound("ItemSound.quest_itemget")
        return
示例#9
0
 def onEvent(self, event, st):
     htmltext = event
     if event == "30081-02.htm":
         st.set("cond", "1")
         condition = Rnd.get(1, 2)
         if condition == 1:
             st.set("cond", "2")
             htmltext = "30081-02a.htm"
         else:
             st.set("cond", "5")
             htmltext = "30081-02b.htm"
         st.setState(State.STARTED)
         st.playSound("ItemSound.quest_accept")
     elif event == "30511-03.htm":
         st.set("cond", "6")
         st.playSound("ItemSound.quest_middle")
     elif event == "31572-03.htm":
         st.set("cond", "3")
         st.playSound("ItemSound.quest_middle")
     elif event == "30081-05a.htm":
         st.takeItems(FishChest, 1)
         st.giveItems(WondrousCubic, 1)
         st.playSound("ItemSound.quest_finish")
         st.exitQuest(False)
     elif event == "30081-05b.htm":
         st.takeItems(SeedJar, 1)
         st.giveItems(WondrousCubic, 1)
         st.playSound("ItemSound.quest_finish")
         st.exitQuest(False)
     return htmltext
示例#10
0
文件: __init__.py 项目: Jocy710/GD
 def onAdvEvent(self, event, npc, player):
     htmltext = event
     st = player.getQuestState(qn)
     if not st: return
     if event == "32017-03.htm":
         if st.getPlayer().getLevel() < 80:
             htmltext = "32017-02.htm"
             st.exitQuest(1)
         else:
             st.set("cond", "1")
             st.setState(State.STARTED)
             st.playSound("ItemSound.quest_accept")
     elif event in REWARDS.keys():
         qty, item = REWARDS[event]
         if st.getQuestItemsCount(CURSED_BURIAL) >= qty:
             st.takeItems(CURSED_BURIAL, qty)
             if len(item) > 1:
                 itemId = item[Rnd.get(len(item))]
             else:
                 itemId = item[0]
             st.rewardItems(itemId, 1)
             htmltext = "32017-05c.htm"
         else:
             htmltext = "32017-07.htm"
     elif event == "32017-08.htm":
         st.exitQuest(1)
     return htmltext
示例#11
0
    def onKill(self, npc, player, isPet):
        npcId = npc.getNpcId()
        party = player.getParty()
        if party:
            PartyMembers = []
            for member in party.getPartyMembers().toArray():
                st = member.getQuestState(qn)
                if st and st.getState() == State.STARTED and st.getInt("cond") == 1:
                    if npcId == VENOMOUS_STORACE and st.getQuestItemsCount(TISSUE_VS) == 0:
                        PartyMembers.append(st)
                    elif npcId == TISSUE_KB and st.getQuestItemsCount(TISSUE_KB) == 0:
                        PartyMembers.append(st)
            if len(PartyMembers) == 0: return
            winnerst = PartyMembers[Rnd.get(len(PartyMembers))]
            if npcId == VENOMOUS_STORACE and winnerst.getQuestItemsCount(TISSUE_VS) == 0:
                winnerst.giveItems(TISSUE_VS, 1)
                winnerst.playSound("ItemSound.quest_itemget")
            elif npcId == KEL_BILETTE and winnerst.getQuestItemsCount(TISSUE_KB) == 0:
                winnerst.giveItems(TISSUE_KB, 1)
                winnerst.playSound("ItemSound.quest_itemget")
        else:
            st = player.getQuestState(qn)
            if not st: return
            if st.getState() != State.STARTED: return

            if npcId == VENOMOUS_STORACE and st.getQuestItemsCount(TISSUE_VS) == 0:
                st.giveItems(TISSUE_VS, 1)
                st.playSound("ItemSound.quest_itemget")
            elif npcId == KEL_BILETTE and st.getQuestItemsCount(TISSUE_KB) == 0:
                st.giveItems(TISSUE_KB, 1)
                st.playSound("ItemSound.quest_itemget")
        return
示例#12
0
 def onAttack(self, npc, player, damage, isPet, skill):
     npdId = npc.getNpcId()
     if (npc.getMaxHp() / 2) > npc.getCurrentHp():
         if Rnd.get(100) < 4:
             if self.ImpGraveKepperStat == 1:
                 for j in range(2):
                     for k in range(2):
                         self.addSpawn(27180, npc.getX() + 70 * pow(-1, j % 2), npc.getY() + 70 * pow(-1, k % 2),
                                       npc.getZ(), 0, False, 0)
                 self.ImpGraveKepperStat = 2
             else:
                 players = npc.getKnownList().getKnownPlayers().values().toArray()
                 if len(players):
                     playerToTP = players[Rnd.get(int(len(players)))]
                     playerToTP.teleToLocation(185462, 20342, -3250)
     return
示例#13
0
文件: __init__.py 项目: Jocy710/GD
 def onKill(self, npc, player, isPet):
     st = player.getQuestState(qn)
     if not st: return
     npcId = npc.getNpcId()
     if npcId in Droplist.keys():
         if Rnd.get(100) < Droplist[npcId]:
             st.giveItems(Medal, 1)
             st.playSound("ItemSound.quest_itemget")
     return
示例#14
0
 def onKill(self, npc, player, isPet):
     npcId = npc.getNpcId()
     # the chests always spawn, even if the RB is killed with nobody nearby doing the quest.
     if npcId in CHEST_SPAWNS.keys():
         self.addSpawn(CHEST_SPAWNS[npcId], npc.getX(), npc.getY(),
                       npc.getZ(), npc.getHeading(), True, 60000)
     else:
         value, dropId, chance = DROPLIST[npcId]
         if chance > 0 and Rnd.get(100) < chance:
             party = player.getParty()
             if party:
                 PartyQuestMembers = []
                 for partyMember in party.getPartyMembers().toArray():
                     if partyMember.isInsideRadius(player, 1500, True,
                                                   False):
                         pst = partyMember.getQuestState(qn)
                         if pst:
                             if pst.getInt(
                                     "cond"
                             ) == 8 and pst.getQuestItemsCount(dropId) < 30:
                                 PartyQuestMembers.append(pst)
                 if len(PartyQuestMembers) == 0: return
                 stw = PartyQuestMembers[Rnd.get(len(PartyQuestMembers))]
                 stw.giveItems(dropId, 1)
                 stw.takeItems(WHITE_CLOTH, 1)
                 stw.playSound("Itemsound.quest_itemget")
                 if stw.getQuestItemsCount(dropId) >= 30:
                     stw.set("cond", "9")
             else:
                 st = player.getQuestState(qn)
                 if not st: return
                 if st.getState() != State.STARTED: return
                 if npcId in DROPLIST.keys():
                     if st.getInt("cond") == value:
                         if value == 8 and st.getQuestItemsCount(
                                 dropId) < 30:
                             st.giveItems(dropId, 1)
                             st.takeItems(WHITE_CLOTH, 1)
                             st.playSound("Itemsound.quest_itemget")
                             if st.getQuestItemsCount(dropId) >= 30:
                                 st.set("cond", "9")
     return
示例#15
0
 def onKill(self, npc, player, isPet):
     partyMember1 = self.getRandomPartyMember(player, "1")
     partyMember2 = self.getRandomPartyMemberState(player, State.COMPLETED)
     if not partyMember1 and not partyMember2: return
     partyMember = partyMember1
     numItems, chance = divmod(100 * Config.RATE_QUEST_DROP, 100)
     dropchance = Rnd.get(100)
     if dropchance < chance:
         # player who has State.COMPLETED up to 2 out of 3 item collections may consume the party drop
         if partyMember2:
             if Rnd.get(100) <= 66:
                 return
             else:
                 partyMember = partyMember1
     st = partyMember.getQuestState(qn)
     if st:
         if st.getState() == State.STARTED:
             npcId = npc.getNpcId()
             if st.getInt("cond") == 1:
                 if dropchance < chance:
                     numItems = numItems + 1
                 numItems = int(numItems)
                 item = ITEMS[npcId]
                 count = st.getQuestItemsCount(item)
                 if count < 50:
                     if count + numItems > 50:
                         numItems = 50 - count
                     st.giveItems(item, numItems)
                     count_trunk = st.getQuestItemsCount(TRUNK_OF_NEPENTHES)
                     count_foot = st.getQuestItemsCount(
                         FOOT_OF_BANDERSNATCHLING)
                     count_spice = st.getQuestItemsCount(SECRET_SPICE)
                     if count_trunk == count_foot == count_spice == 50:
                         st.set("cond", "3")
                         st.playSound("ItemSound.quest_middle")
                     else:
                         st.playSound("ItemSound.quest_itemget")
     return
示例#16
0
文件: __init__.py 项目: Jocy710/GD
 def onKill(self, npc, player, isPet):
     st = player.getQuestState(qn)
     if not st: return
     npcId = npc.getNpcId()
     cond = st.getInt("cond")
     rand = Rnd.get(100)
     instructions_1 = st.getQuestItemsCount(Test_Instructions_1)
     instructions_2 = st.getQuestItemsCount(Test_Instructions_2)
     if cond == 1 and instructions_1:
         if npcId in Level_1.keys():
             item, amount, chance = Level_1[npcId]
             if rand < chance and st.getQuestItemsCount(item) < amount:
                 st.giveItems(item, 1)
                 if st.getQuestItemsCount(item) >= amount:
                     st.playSound("ItemSound.quest_middle")
                 else:
                     st.playSound("ItemSound.quest_itemget")
         elif npcId == Breka_Orc_Warrior and rand < 10:
             if st.getQuestItemsCount(3711) == 0:
                 st.addSpawn(27140, 300000)
             elif st.getQuestItemsCount(3712) == 0:
                 st.addSpawn(27141, 300000)
             elif st.getQuestItemsCount(3713) == 0:
                 st.addSpawn(27142, 300000)
         elif npcId == Windsus and not st.getQuestItemsCount(3714) and rand < 10:
             st.addSpawn(27143, 300000)
     elif cond == 2:
         if instructions_2:
             if npcId in Level_2.keys():
                 item, amount, chance = Level_2[npcId]
                 if rand < chance and st.getQuestItemsCount(item) < amount:
                     st.giveItems(item, 1)
                     if st.getQuestItemsCount(item) >= amount:
                         st.playSound("ItemSound.quest_middle")
                     else:
                         st.playSound("ItemSound.quest_itemget")
             elif npcId == Tarlk_Bugbear_Warrior and rand < 10:
                 if st.getQuestItemsCount(3722) == 0:
                     st.addSpawn(27144, 300000)
                 elif st.getQuestItemsCount(3723) == 0:
                     st.addSpawn(27145, 300000)
                 elif st.getQuestItemsCount(3724) == 0:
                     st.addSpawn(27146, 300000)
                 elif st.getQuestItemsCount(3725) == 0:
                     st.addSpawn(27147, 300000)
                 elif st.getQuestItemsCount(3726) == 0:
                     st.addSpawn(27148, 300000)
         elif npcId in Tor_requests_1.keys():
             req, give, giveAmount, amount, chance = Tor_requests_1[npcId]
             if rand < chance and st.getQuestItemsCount(req) and st.getQuestItemsCount(give) < amount:
                 st.giveItems(give, eval(giveAmount))
                 if st.getQuestItemsCount(give) >= amount:
                     st.playSound("ItemSound.quest_middle")
                 else:
                     st.playSound("ItemSound.quest_itemget")
                 if npcId in [27160, 27164] and Rnd.get(2):
                     st.addSpawn(27150, 300000)
                     st.addSpawn(27150, 300000)
                     AutoChat(npc, "We will destroy the legacy of the ancient empire!")
     elif cond == 3:
         if npcId in Tor_requests_2.keys():
             req, give, amount, chance = Tor_requests_2[npcId]
             if st.getQuestItemsCount(req) and st.getQuestItemsCount(give) < amount:
                 if rand < chance:
                     st.giveItems(give, 1)
                     if st.getQuestItemsCount(give) >= amount:
                         st.playSound("ItemSound.quest_middle")
                     else:
                         st.playSound("ItemSound.quest_itemget")
                     if npcId == 27162 and Rnd.get(2):
                         st.addSpawn(27150, 300000)
                         st.addSpawn(27150, 300000)
                         AutoChat(npc, "We will destroy the legacy of the ancient empire!")
                 if npcId in [20661, 20662, 20589, 20590, 20639] and not Rnd.get(20):
                     st.addSpawn(Gremlin_Filcher, 300000)
                     AutoChat(npc, "Get out! The jewels are mine!")
         elif npcId == Gremlin_Filcher:
             req = 0
             for item in Filcher.keys():
                 if st.getQuestItemsCount(item):
                     req = item
                     break
             if req:
                 item, amount, bonus = Filcher[req]
                 if st.getQuestItemsCount(item) < amount:
                     st.giveItems(item, bonus)
                     if st.getQuestItemsCount(item) >= amount:
                         st.playSound("ItemSound.quest_middle")
                     else:
                         st.playSound("ItemSound.quest_itemget")
                     AutoChat(npc, "What!")
     if npcId in Tor_requests_tospawn.keys() and rand < 10:
         it1, it2, id = Tor_requests_tospawn[npcId]
         if st.getQuestItemsCount(it1) and not st.getQuestItemsCount(it2):
             st.addSpawn(id, 300000)
     if npcId in Lizardmen and player.getActiveWeaponItem() and player.getActiveWeaponItem().getItemId() == Cyb_Dagger and st.getQuestItemsCount(
             Cyb_Req) and not st.getQuestItemsCount(3708):
         if Rnd.get(2):
             if cond == 2 or cond == 3:
                 for item in range(3698, 3707):
                     if st.getQuestItemsCount(item):
                         st.giveItems(item + 1, 1)
                         st.takeItems(item, -1)
                         if item >= 3703:
                             st.playSound("ItemSound.quest_jackpot")
                         break
         else:
             for item in range(3698, 3707):
                 st.takeItems(item, -1)
             st.giveItems(3708, 1)
     return
示例#17
0
文件: __init__.py 项目: Jocy710/GD
 def onAdvEvent(self, event, npc, player):
     st = player.getQuestState(qn)
     if not st: return
     htmltext = event
     if event == "30744-03.htm":
         st.setState(State.STARTED)
         st.playSound("ItemSound.quest_accept")
         st.giveItems(Test_Instructions_1, 1)
         st.set("cond", "1")
         # set Memo = 0
     elif event == "30744-32.htm":
         st.playSound("ItemSound.quest_finish")
         if st.getQuestItemsCount(Leaf_Pin) >= 20:
             htmltext = "30744-33.htm"
             st.giveItems(57, 20000)
         st.exitQuest(1)
     elif event == "30744-19.htm":
         if not HasItems(st, 1):
             st.giveItems(Test_Instructions_2, 1)
             htmltext = "30744-18.htm"
     elif event == "30745-03.htm":
         if st.getQuestItemsCount(Test_Instructions_2):
             htmltext = "30745-04.htm"
     elif event == "Tor_list_1":
         if not st.getInt("hasTask"):
             htmltext = "<html><body>Guild Member Tor:<br>"
             pins = st.getQuestItemsCount(Leaf_Pin)
             reply_0 = Rnd.get(12)
             reply_1 = Rnd.get(12)
             reply_2 = Rnd.get(12)
             reply_3 = Rnd.get(12)
             reply_4 = Rnd.get(12)
             if Rnd.get(100) < 20:
                 if pins < 4 and pins:
                     reply_0 = Rnd.get(6) + 12
                     reply_2 = Rnd.get(6)
                     reply_3 = Rnd.get(6) + 6
                 elif pins >= 4:
                     reply_0 = Rnd.get(6) + 6
                     if not Rnd.get(20):
                         reply_1 = Rnd.get(2) + 18
                     reply_2 = Rnd.get(6)
                     reply_3 = Rnd.get(6) + 6
             elif pins >= 4:
                 if not Rnd.get(20):
                     reply_1 = Rnd.get(2) + 18
                 reply_2 = Rnd.get(6)
                 reply_3 = Rnd.get(6) + 6
             htmltext += Tor_menu[reply_0] + Tor_menu[reply_1] + Tor_menu[reply_2] + Tor_menu[reply_3] + Tor_menu[
                 reply_4]
             htmltext += "</body></html>"
     elif event == "Tor_list_2":
         if not st.getInt("hasTask"):
             htmltext = "<html><body>Guild Member Tor:<br>"
             pins = st.getQuestItemsCount(Leaf_Pin)
             reply_0 = Rnd.get(10)
             reply_1 = Rnd.get(10)
             reply_2 = Rnd.get(5)
             reply_3 = Rnd.get(5) + 5
             reply_4 = Rnd.get(10)
             if Rnd.get(100) < 20:
                 if pins < 4 and pins:
                     reply_0 = Rnd.get(6) + 10
                 elif pins >= 4:
                     reply_0 = Rnd.get(6) + 10
                     if not Rnd.get(20):
                         reply_1 = Rnd.get(3) + 16
             elif pins >= 4:
                 if not Rnd.get(20):
                     reply_1 = Rnd.get(3) + 16
             htmltext += Tor_menu[reply_0 + 20] + Tor_menu[reply_1 + 20] + Tor_menu[reply_2 + 20] + Tor_menu[
                 reply_3 + 20] + Tor_menu[reply_4 + 20]
             htmltext += "</body></html>"
     elif event == "30745-10.htm":
         st.takeItems(Leaf_Pin, 1)
         for item in range(3727, 3811):
             st.takeItems(item, -1)
         st.set("hasTask", "0")
     elif event == "30746-03.htm":
         if not st.getQuestItemsCount(Cyb_Req):
             st.giveItems(Cyb_Req, 1)
         if not st.getQuestItemsCount(3471):
             st.giveItems(3471, 1)
         if not st.getQuestItemsCount(3698):
             st.giveItems(3698, 1)
         st.takeItems(6708, -1)
     elif event == "30746-08.htm":
         for item in Cyb_Rewards.keys():
             if st.getQuestItemsCount(item):
                 st.takeItems(item, -1)
                 st.giveItems(57, Cyb_Rewards[item])
                 break
     elif event == "30746-12.htm":
         st.takeItems(3698, -1)
         st.takeItems(3697, -1)
         st.takeItems(3471, -1)
     elif event.isdigit():
         event = int(event)
         st.giveItems(event, 1)
         st.set("hasTask", "1")
         event = event - 3712
         htmltext = "30745-" + str(event) + ".htm"
     return htmltext
示例#18
0
文件: __init__.py 项目: Jocy710/GD
 def getReward(self, rewards):
     rand = Rnd.get(100)
     for item in rewards.keys():
         if rand < rewards[item]:
             return item