Ejemplo n.º 1
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 and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, player1, True) :
                    if st1.getState() == 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() == 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
Ejemplo n.º 2
0
 def onTalk(self, npc, player):
     st = player.getQuestState(qn)
     npcId = npc.getNpcId()
     party = player.getParty()
     closed = self.loadGlobalQuestVar("closed")
     if npcId == STEWARD:
         if st.getQuestItemsCount(HEMOSYCLE) >= 10:
             if closed == "":
                 if party:
                     st.takeItems(HEMOSYCLE, 10)
                     for member in party.getPartyMembers():
                         if Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, member, True):
                             GrandBossManager.getInstance().getZone(113669, -126122, -3489).allowPlayerEntry(
                                 member, 7200
                             )
                             member.teleToLocation(113669, -126122, -3489)
                     self.saveGlobalQuestVar("closed", "1")
                     self.startQuestTimer("prosnuca", 1, None, None)
                     self.startQuestTimer("captain", 1, None, None)
                     self.startQuestTimer("mdef", 1, None, None)
                     self.startQuestTimer("pdef", 1, None, None)
                     self.startQuestTimer("resist", 1, None, None)
                     self.startQuestTimer("teleout", 1800000, None, player)
                 else:
                     return "<html><body><font color=LEVEL>Only with party...</font></body></html>"
             else:
                 return "<html><body>The Raid currently<font color=LEVEL> in process.<font>.<br1>Try later.</body></html>"
         else:
             return "<html><body>You dont have <font color=LEVEL>10 Silver Hemocyte<font>.</body></html>"
     return
Ejemplo n.º 3
0
 def onTalk (self,npc,player):
   st = player.getQuestState("sailren")  
   npcId = npc.getNpcId()
   close = self.loadGlobalQuestVar("close")
   time = self.loadGlobalQuestVar("time")
   party = player.getParty()
   if npcId == STATUE :
     if st.getQuestItemsCount(STONE) >= 1:
       if close == "" :
         if party:
           st.takeItems(STONE,1)
           self.saveGlobalQuestVar("close", "1")
           self.startQuestTimer("start",30000,npc,player)
           self.startQuestTimer("open",1800000,npc,None)
           for member in party.getPartyMembers() :
             if Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, member, True) :
               GrandBossManager.getInstance().getZone(27244,-7026,-1974).allowPlayerEntry(member, 30)
               member.teleToLocation(27244,-7026,-1974)
         else :
           return "<html><body><font color=LEVEL>Only with party...</font></body></html>"
       else :
         return "<html><body><font color=LEVEL>Try another time...</font></body></html>"
     else :
       return "<html><body>You need quest item: <font color=LEVEL>Gazkh...</font></body></html>"
   return
Ejemplo n.º 4
0
 def onKill(self,npc,player,isPet):
    npcId = npc.getNpcId()
    if npcId == BUMPALUMP :
        respawnMinDelay = 43200000  * int(Config.RAID_MIN_RESPAWN_MULTIPLIER)
        respawnMaxDelay = 129600000 * int(Config.RAID_MAX_RESPAWN_MULTIPLIER)
        respawn_delay = Rnd.get(respawnMinDelay,respawnMaxDelay)
        self.saveGlobalQuestVar("625_respawn", str(System.currentTimeMillis()+respawn_delay))
        self.startQuestTimer("spawn_npc", respawn_delay, None, None)
        self.cancelQuestTimer("Icicle Emperor Bumbalump has despawned",npc,None)
        party = player.getParty()
        if party :
            PartyQuestMembers = []
            for player1 in party.getPartyMembers().toArray() :
                st1 = player1.getQuestState(qn)
                if st1 and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, player1, True) :
                    if st1.getState() == 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(FOOD) > 0 :
                st.takeItems(FOOD,1)
            st.giveItems(MEAT,1)
            st.set("cond","3")
            st.playSound("ItemSound.quest_middle")
        else :
            st = player.getQuestState(qn)
            if not st : return
            if st.getState() == STARTED and (st.getInt("cond") == 1 or st.getInt("cond") == 2) :
                if st.getQuestItemsCount(FOOD) > 0 :
                    st.takeItems(FOOD,1)
                st.giveItems(MEAT,1)
                st.set("cond","3")
                st.playSound("ItemSound.quest_middle")
    return
Ejemplo n.º 5
0
 def onTalk (self,npc,player):
   st = player.getQuestState("sailren")  
   npcId = npc.getNpcId()
   close = self.loadGlobalQuestVar("close")
   time = self.loadGlobalQuestVar("time")
   party = player.getParty()
   if npcId == STATUE :
     if st.getQuestItemsCount(STONE) >= 1:
       if close == "" :
         if party:
           st.takeItems(STONE,1)
           self.saveGlobalQuestVar("close", "1")
           self.startQuestTimer("start",30000,npc,player)
           self.startQuestTimer("open",1800000,npc,None)
           for member in party.getPartyMembers() :
             if Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, member, True) :
               GrandBossManager.getInstance().getZone(27244,-7026,-1974).allowPlayerEntry(member, 30)
               member.teleToLocation(27244,-7026,-1974)
         else :
           return "<html><body><font color=LEVEL>Only with party...</font></body></html>"
       else :
         return "<html><body><font color=LEVEL>Try another time...</font></body></html>"
     else :
       return "<html><body>You need quest item: <font color=LEVEL>Gazkh...</font></body></html>"
   return
Ejemplo n.º 6
0
 def onKill(self, npc, player, isPet):
     npcId = npc.getNpcId()
     if npcId == PILGRIM_OF_SPLENDOR:
         #get a random party member who is doing this quest and needs this drop
         partyMember = self.getRandomPartyMember(player,
                                                 "awaitsWaterbinder", "1")
         if partyMember:
             st = partyMember.getQuestState(qn)
             chance = st.getRandom(100)
             cond = st.getInt("cond")
             if st.getQuestItemsCount(WATERBINDER) < 1:
                 if chance < CHANCE_FOR_DROP:
                     st.giveItems(WATERBINDER, 1)
                     st.unset("awaitsWaterbinder")
                     if st.getQuestItemsCount(EVERGREEN) < 1:
                         st.playSound("ItemSound.quest_itemget")
                     else:
                         st.playSound("ItemSound.quest_middle")
                         st.set("cond", "3")
     elif npcId == JUDGE_OF_SPLENDOR:
         #get a random party member who is doing this quest and needs this drop
         partyMember = self.getRandomPartyMember(player, "awaitsEvergreen",
                                                 "1")
         if partyMember:
             st = partyMember.getQuestState(qn)
             chance = st.getRandom(100)
             cond = st.getInt("cond")
             if cond == 2 and st.getQuestItemsCount(EVERGREEN) < 1:
                 if chance < CHANCE_FOR_DROP:
                     st.giveItems(EVERGREEN, 1)
                     st.unset("awaitsEvergreen")
                     if st.getQuestItemsCount(WATERBINDER) < 1:
                         st.playSound("ItemSound.quest_itemget")
                     else:
                         st.playSound("ItemSound.quest_middle")
                         st.set("cond", "3")
     elif npcId == BARAKIEL:
         #give the quest item and update variables for ALL PARTY MEMBERS who are doing the quest,
         #so long as they each qualify for the drop (cond == 4 and item not in inventory)
         #note: the killer WILL participate in the loop as a party member (no need to handle separately)
         party = player.getParty()
         if party:
             for partyMember in party.getPartyMembers().toArray():
                 pst = partyMember.getQuestState(qn)
                 if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE,
                                                player, partyMember, True):
                     if pst.getInt("cond") == 4 and pst.getQuestItemsCount(
                             RAIN_SONG) < 1:
                         pst.giveItems(RAIN_SONG, 1)
                         pst.playSound("ItemSound.quest_middle")
                         pst.set("cond", "5")
         else:
             pst = player.getQuestState(qn)
             if pst:
                 if pst.getInt("cond") == 4 and pst.getQuestItemsCount(
                         RAIN_SONG) < 1:
                     pst.giveItems(RAIN_SONG, 1)
                     pst.playSound("ItemSound.quest_middle")
                     pst.set("cond", "5")
     return
Ejemplo n.º 7
0
 def onTalk (self,npc,player):
   st = player.getQuestState(qn)
   npcId = npc.getNpcId()
   party = player.getParty()
   closed = self.loadGlobalQuestVar("closed")
   if npcId == STEWARD :
     if st.getQuestItemsCount(HEMOSYCLE) >= 10 :
       if closed == "" :
         if party:
           st.takeItems(HEMOSYCLE,10)
           for member in party.getPartyMembers() :
             if Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, member, True) :
               GrandBossManager.getInstance().getZone(113669,-126122,-3489).allowPlayerEntry(member, 7200)
               member.teleToLocation(113669,-126122,-3489)
           self.saveGlobalQuestVar("closed", "1")
           self.startQuestTimer("prosnuca",1,None,None)
           self.startQuestTimer("captain",1,None,None)
           self.startQuestTimer("mdef",1,None,None)
           self.startQuestTimer("pdef",1,None,None)
           self.startQuestTimer("resist",1,None,None)
           self.startQuestTimer("teleout",1800000,None,player)
         else :
           return "<html><body><font color=LEVEL>Only with party...</font></body></html>"
       else :
         return "<html><body>The Raid currently<font color=LEVEL> in process.<font>.<br1>Try later.</body></html>"
     else : 
       return "<html><body>You dont have <font color=LEVEL>10 Silver Hemocyte<font>.</body></html>"
   return
Ejemplo n.º 8
0
 def onKill(self,npc,player,isPet):
   npcId = npc.getNpcId()
   if npcId == PILGRIM_OF_SPLENDOR :
     #get a random party member who is doing this quest and needs this drop 
     partyMember = self.getRandomPartyMember(player,"awaitsWaterbinder","1")
     if partyMember :
         st = partyMember.getQuestState(qn)
         chance = st.getRandom(100)
         cond = st.getInt("cond")
         if st.getQuestItemsCount(WATERBINDER) < 1 :
           if chance < CHANCE_FOR_DROP :
             st.giveItems(WATERBINDER,1)
             st.unset("awaitsWaterbinder")
             if st.getQuestItemsCount(EVERGREEN) < 1 :
               st.playSound("ItemSound.quest_itemget")
             else:
               st.playSound("ItemSound.quest_middle")
               st.set("cond","3")
   elif npcId == JUDGE_OF_SPLENDOR :
     #get a random party member who is doing this quest and needs this drop 
     partyMember = self.getRandomPartyMember(player,"awaitsEvergreen","1")
     if partyMember :
         st = partyMember.getQuestState(qn)
         chance = st.getRandom(100)
         cond = st.getInt("cond")
         if cond == 2 and st.getQuestItemsCount(EVERGREEN) < 1 :
           if chance < CHANCE_FOR_DROP :
             st.giveItems(EVERGREEN,1)
             st.unset("awaitsEvergreen")
             if st.getQuestItemsCount(WATERBINDER) < 1 :
               st.playSound("ItemSound.quest_itemget")
             else:
               st.playSound("ItemSound.quest_middle")
               st.set("cond","3")
   elif npcId == BARAKIEL :
     #give the quest item and update variables for ALL PARTY MEMBERS who are doing the quest,
     #so long as they each qualify for the drop (cond == 4 and item not in inventory)
     #note: the killer WILL participate in the loop as a party member (no need to handle separately)
     party = player.getParty()
     if party :
        for partyMember in party.getPartyMembers().toArray() :
            pst = partyMember.getQuestState(qn)
            if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, partyMember, True) :
                if pst.getInt("cond") == 4 and pst.getQuestItemsCount(RAIN_SONG) < 1 :
                    pst.giveItems(RAIN_SONG,1)
                    pst.playSound("ItemSound.quest_middle")
                    pst.set("cond","5")
     else :
        pst = player.getQuestState(qn)
        if pst :
            if pst.getInt("cond") == 4 and pst.getQuestItemsCount(RAIN_SONG) < 1 :
                pst.giveItems(RAIN_SONG,1)
                pst.playSound("ItemSound.quest_middle")
                pst.set("cond","5")
   return 
Ejemplo n.º 9
0
 def onKill(self,npc,player,isPet):
    partyMembers = [player]
    party = player.getParty()
    if party :
       partyMembers = party.getPartyMembers().toArray()
       for member in partyMembers :
           pst = member.getQuestState(qn)
           if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, member, True) :
              giveReward(pst,npc)
    else :
       pst = player.getQuestState(qn)
       if pst :
          giveReward(pst,npc)
    return
Ejemplo n.º 10
0
 def onKill(self, npc, player, isPet):
     npcId = npc.getNpcId()
     if npcId == Ashutar:
         self.saveGlobalQuestVar("killed", str(System.currentTimeMillis()))
         FindTemplate(Alter).setBusy(False)
         party = player.getParty()
         if party:
             for partyMember in party.getPartyMembers().toArray():
                 pst = partyMember.getQuestState(qn)
                 if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE,
                                                player, partyMember, True):
                     if pst.getInt("cond") >= 1:
                         if pst.getInt("cond") == 1:
                             pst.takeItems(Totem2, 1)
                         if pst.getQuestItemsCount(Ice_Heart) < 1:
                             pst.giveItems(Ice_Heart, 1)
                             pst.playSound("ItemSound.quest_middle")
                             pst.set("cond", "3")
                             pst.set("id", "3")
                         if pst.getQuestTimer(
                                 "Soul of Water Ashutar has despawned"):
                             pst.getQuestTimer(
                                 "Soul of Water Ashutar has despawned"
                             ).cancel()
         else:
             pst = player.getQuestState(qn)
             if pst:
                 if pst.getInt("cond") >= 1:
                     if pst.getInt("cond") == 1:
                         pst.takeItems(Totem2, 1)
                     if pst.getQuestItemsCount(Ice_Heart) < 1:
                         pst.giveItems(Ice_Heart, 1)
                         pst.playSound("ItemSound.quest_middle")
                         pst.set("cond", "3")
                         pst.set("id", "3")
                     if pst.getQuestTimer(
                             "Soul of Water Ashutar has despawned"):
                         pst.getQuestTimer(
                             "Soul of Water Ashutar has despawned").cancel(
                             )
     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
Ejemplo n.º 11
0
 def onKill(self, npc, player, isPet):
     partyMembers = [player]
     party = player.getParty()
     if party:
         partyMembers = party.getPartyMembers().toArray()
         for member in partyMembers:
             pst = member.getQuestState(qn)
             if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player,
                                            member, True):
                 giveReward(pst, npc)
     else:
         pst = player.getQuestState(qn)
         if pst:
             giveReward(pst, npc)
     return
Ejemplo n.º 12
0
 def onKill(self,npc,player,isPet):
   npcId = npc.getNpcId()
   if npcId == Nastron :
      self.saveGlobalQuestVar("killed", str(System.currentTimeMillis()))
      FindTemplate(Alter).setBusy(False)
      party = player.getParty()
      if party :
         for partyMember in party.getPartyMembers().toArray() :
             pst = partyMember.getQuestState(qn)
             if pst and Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, partyMember, True) :
                 if pst.getInt("cond") >= 1 :
                    if pst.getInt("cond") == 1 :
                        pst.takeItems(Totem2,1)
                    if pst.getQuestItemsCount(Fire_Heart) < 1 :
                       pst.giveItems(Fire_Heart,1)
                       pst.playSound("ItemSound.quest_middle")
                       pst.set("cond","3")
                       pst.set("id","3")
                    if pst.getQuestTimer("Soul of Fire Nastron has despawned") :
                       pst.getQuestTimer("Soul of Fire Nastron has despawned").cancel()
      else :
         pst = player.getQuestState(qn)
         if pst :
             if pst.getInt("cond") >= 1 :
                if pst.getInt("cond") == 1 :
                    pst.takeItems(Totem2,1)
                if pst.getQuestItemsCount(Fire_Heart) < 1 :
                   pst.giveItems(Fire_Heart,1)
                   pst.playSound("ItemSound.quest_middle")
                   pst.set("cond","3")
                   pst.set("id","3")
                if pst.getQuestTimer("Soul of Fire Nastron has despawned") :
                   pst.getQuestTimer("Soul of Fire Nastron has despawned").cancel()
   elif npcId in Varka_Mobs :
      st = player.getQuestState(qn)
      if st :
          if st.getQuestItemsCount(Fire_Heart) :
             st.takeItems(Fire_Heart,-1)
          st.unset("cond")
          st.unset("id")
          st.exitQuest(1)
   return
Ejemplo n.º 13
0
 def onKill(self,npc,player,isPet):
    npcId = npc.getNpcId()
    st = player.getQuestState(self.qn)
    if npcId in Archon_Minions :
        party = player.getParty()
        if party :
            PartyQuestMembers = []
            for player1 in party.getPartyMembers().toArray() :
                for q in Quests.keys() :
                    st1 = player1.getQuestState(Quests[q])
                    if st1 :
                        if player1.getClassId().getId() == QuestClass[int(q)-70]:
                            if st1.getInt("cond") == 15 :
                                PartyQuestMembers.append(st1)
                                break
            if len(PartyQuestMembers) > 0 :
                availableMembers = []
                for member in PartyQuestMembers :
                    if Util.checkIfInRange(Config.ALT_PARTY_RANGE, player, member.getPlayer(), True) :
                        availableMembers.append(member)
                if len(availableMembers) > 0 :
                    st2 = availableMembers[Rnd.get(len(availableMembers))]
                    st2.getQuest().giveHallishaMark(st2)
        else :
            for q in Quests.keys() :
                st1 = player.getQuestState(Quests[q])
                if st1 :
                    if player.getClassId().getId() == QuestClass[int(q)-70]:
                        if st1.getInt("cond") == 15 :
                            st1.getQuest().giveHallishaMark(st1)
                            break
    elif npcId in Archon_Hellisha_Norm :
        for q in Quests.keys() :
            st1 = player.getQuestState(Quests[q])
            if st1 :
                if player.getClassId().getId() == QuestClass[int(q)-70]:
                    if st1.getInt("cond") == 15 :
                        #This is just a guess....not really sure what it actually says, if anything
                        self.AutoChat(npc,st1.getQuest().Text[4].replace('PLAYERNAME',st1.getPlayer().getName()))
                        st1.giveItems(st1.getQuest().Items[8],1)
                        st1.takeItems(st1.getQuest().Items[3],-1)
                        st1.set("cond","16")
                        st1.playSound("ItemSound.quest_middle")
                        break
    elif npcId in Guardian_Angels :
        for q in Quests.keys() :
            st1 = player.getQuestState(Quests[q])
            if st1 :
                if player.getClassId().getId() == QuestClass[int(q)-70]:
                    if st1.getInt("cond") == 6 :
                        if st1.getInt("kills") < 9 :
                            st1.set("kills",str(st1.getInt("kills")+1))
                        else :
                            st1.playSound("ItemSound.quest_middle")
                            st1.giveItems(st1.getQuest().Items[5],1)
                            st1.set("cond","7")
                        break
    elif st :
        cond = st.getInt("cond")
        if npcId == self.Mob[0] and cond == 8 :
            st2 = self.findRightState(player,npc)
            if st2 :
                if not player.isInParty():
                    if st == st2 :
                        self.AutoChat(npc,self.Text[12].replace('PLAYERNAME',player.getName()))
                        st.giveItems(self.Items[6],1)
                        st.set("cond","9")
                        st.playSound("ItemSound.quest_middle")
                if st2.getQuestTimer("Mob_1 has despawned") :
                    st2.getQuestTimer("Mob_1 has despawned").cancel()
                self.DeleteSpawn(st2,st2.getInt("Mob_1"))
                st2.set("spawned","0")
        elif npcId == self.Mob[1] :
            if cond == 15 :
                st2 = self.findRightState(player,npc)
                if st2 :
                    if not player.isInParty():
                        if st == st2 :
                            self.AutoChat(npc,self.Text[4].replace('PLAYERNAME',player.getName()))
                            st.giveItems(self.Items[8],1)
                            st.takeItems(self.Items[3],-1)
                            st.set("cond","16")
                            st.playSound("ItemSound.quest_middle")
                        else :
                            self.AutoChat(npc,self.Text[5].replace('PLAYERNAME',player.getName()))
                    if st2.getQuestTimer("Archon Hellisha has despawned") :
                        st2.getQuestTimer("Archon Hellisha has despawned").cancel()
                    self.DeleteSpawn(st2,st2.getInt("Archon"))
                    st2.set("spawned","0")
    else :
        if npcId == self.Mob[0] :
            st = self.findRightState(player,npc)
            if st:
                if st.getQuestTimer("Mob_1 has despawned") :
                    st.getQuestTimer("Mob_1 has despawned").cancel()
                self.DeleteSpawn(st,st.getInt("Mob_1"))
                st.set("spawned","0")
        elif npcId == self.Mob[1] :
            st = self.findRightState(player,npc)
            if st:
                if st.getQuestTimer("Archon Hellisha has despawned") :
                    st.getQuestTimer("Archon Hellisha has despawned").cancel()
                self.DeleteSpawn(st,st.getInt("Archon"))
                st.set("spawned","0")
    return
Ejemplo n.º 14
0
 def onKill(self, npc, player, isPet):
     npcId = npc.getNpcId()
     st = player.getQuestState(self.qn)
     if npcId in Archon_Minions:
         party = player.getParty()
         if party:
             PartyQuestMembers = []
             for player1 in party.getPartyMembers().toArray():
                 for q in Quests.keys():
                     st1 = player1.getQuestState(Quests[q])
                     if st1:
                         if player1.getClassId().getId() == QuestClass[
                                 int(q) - 70]:
                             if st1.getInt("cond") == 15:
                                 PartyQuestMembers.append(st1)
                                 break
             if len(PartyQuestMembers) > 0:
                 availableMembers = []
                 for member in PartyQuestMembers:
                     if Util.checkIfInRange(Config.ALT_PARTY_RANGE, player,
                                            member.getPlayer(), True):
                         availableMembers.append(member)
                 if len(availableMembers) > 0:
                     st2 = availableMembers[Rnd.get(len(availableMembers))]
                     st2.getQuest().giveHallishaMark(st2)
         else:
             for q in Quests.keys():
                 st1 = player.getQuestState(Quests[q])
                 if st1:
                     if player.getClassId().getId() == QuestClass[int(q) -
                                                                  70]:
                         if st1.getInt("cond") == 15:
                             st1.getQuest().giveHallishaMark(st1)
                             break
     elif npcId in Archon_Hellisha_Norm:
         for q in Quests.keys():
             st1 = player.getQuestState(Quests[q])
             if st1:
                 if player.getClassId().getId() == QuestClass[int(q) - 70]:
                     if st1.getInt("cond") == 15:
                         #This is just a guess....not really sure what it actually says, if anything
                         self.AutoChat(
                             npc,
                             st1.getQuest().Text[4].replace(
                                 'PLAYERNAME',
                                 st1.getPlayer().getName()))
                         st1.giveItems(st1.getQuest().Items[8], 1)
                         st1.takeItems(st1.getQuest().Items[3], -1)
                         st1.set("cond", "16")
                         st1.playSound("ItemSound.quest_middle")
                         break
     elif npcId in Guardian_Angels:
         for q in Quests.keys():
             st1 = player.getQuestState(Quests[q])
             if st1:
                 if player.getClassId().getId() == QuestClass[int(q) - 70]:
                     if st1.getInt("cond") == 6:
                         if st1.getInt("kills") < 9:
                             st1.set("kills", str(st1.getInt("kills") + 1))
                         else:
                             st1.playSound("ItemSound.quest_middle")
                             st1.giveItems(st1.getQuest().Items[5], 1)
                             st1.set("cond", "7")
                         break
     elif st:
         cond = st.getInt("cond")
         if npcId == self.Mob[0] and cond == 8:
             st2 = self.findRightState(player, npc)
             if st2:
                 if not player.isInParty():
                     if st == st2:
                         self.AutoChat(
                             npc,
                             self.Text[12].replace('PLAYERNAME',
                                                   player.getName()))
                         st.giveItems(self.Items[6], 1)
                         st.set("cond", "9")
                         st.playSound("ItemSound.quest_middle")
                 if st2.getQuestTimer("Mob_1 has despawned"):
                     st2.getQuestTimer("Mob_1 has despawned").cancel()
                 self.DeleteSpawn(st2, st2.getInt("Mob_1"))
                 st2.set("spawned", "0")
         elif npcId == self.Mob[1]:
             if cond == 15:
                 st2 = self.findRightState(player, npc)
                 if st2:
                     if not player.isInParty():
                         if st == st2:
                             self.AutoChat(
                                 npc, self.Text[4].replace(
                                     'PLAYERNAME', player.getName()))
                             st.giveItems(self.Items[8], 1)
                             st.takeItems(self.Items[3], -1)
                             st.set("cond", "16")
                             st.playSound("ItemSound.quest_middle")
                         else:
                             self.AutoChat(
                                 npc, self.Text[5].replace(
                                     'PLAYERNAME', player.getName()))
                     if st2.getQuestTimer("Archon Hellisha has despawned"):
                         st2.getQuestTimer(
                             "Archon Hellisha has despawned").cancel()
                     self.DeleteSpawn(st2, st2.getInt("Archon"))
                     st2.set("spawned", "0")
     else:
         if npcId == self.Mob[0]:
             st = self.findRightState(player, npc)
             if st:
                 if st.getQuestTimer("Mob_1 has despawned"):
                     st.getQuestTimer("Mob_1 has despawned").cancel()
                 self.DeleteSpawn(st, st.getInt("Mob_1"))
                 st.set("spawned", "0")
         elif npcId == self.Mob[1]:
             st = self.findRightState(player, npc)
             if st:
                 if st.getQuestTimer("Archon Hellisha has despawned"):
                     st.getQuestTimer(
                         "Archon Hellisha has despawned").cancel()
                 self.DeleteSpawn(st, st.getInt("Archon"))
                 st.set("spawned", "0")
     return