示例#1
0
 def onAttack (self,npc,player,damage,isPet):
    npcId = npc.getNpcId()
    if npcId in HSMOBS:
      if (Rnd.get(2) == 1):
        if (Rnd.get(2) == 1):
          if player.getFirstEffect(int(4552)):
            holera = player.getFirstEffect(int(4552)).getLevel()
            if (Rnd.get(100) < 30):
              if holera < 10:
                newholera = int(holera + 1)
                npc.setTarget(player)
                npc.doCast(SkillTable.getInstance().getInfo(4552,newholera))
          else:
            npc.setTarget(player)
            npc.doCast(SkillTable.getInstance().getInfo(4552,1))
        else:
          if player.getFirstEffect(int(4554)):
            malaria = player.getFirstEffect(int(4554)).getLevel()
            if (Rnd.get(100) < 15):
              if malaria < 10:
                newmalaria = int(malaria + 1)
                npc.setTarget(player)
                npc.doCast(SkillTable.getInstance().getInfo(4554,newmalaria))
          else:
            npc.setTarget(player)
            npc.doCast(SkillTable.getInstance().getInfo(4554,1))
      
    return 
示例#2
0
 def onAdvEvent(self, event, npc, player):
     htmltext = event
     st = player.getQuestState(qn)
     if not st: return
     Alevel = player.getAllianceWithVarkaKetra()
     if str(event) in BUFF.keys():
         skillId, level, horns = BUFF[event]
         if st.getQuestItemsCount(Horn) >= horns:
             st.takeItems(Horn, horns)
             npc.setTarget(player)
             npc.doCast(SkillTable.getInstance().getInfo(skillId, level))
             npc.setCurrentHpMp(npc.getMaxHp(), npc.getMaxMp())
             htmltext = "31372-4.htm"
     elif event == "Withdraw":
         if player.getWarehouse().getSize() == 0:
             htmltext = "31374-0.htm"
         else:
             player.sendPacket(ActionFailed())
             player.setActiveWarehouse(player.getWarehouse())
             player.sendPacket(WareHouseWithdrawalList(player, 1))
     elif event == "Teleport":
         if Alevel == 4:
             htmltext = "31376-4.htm"
         elif Alevel == 5:
             htmltext = "31376-5.htm"
     return htmltext
示例#3
0
 def onAttack (self,npc,player,damage,isPet):
   st = player.getQuestState(qn)
   if not st : return 
   if st.getState() != STARTED : return 
   
   chance=st.getRandom(100)
   if chance < 3 :
      count = 0
      for item in range(5875,5879):
         if st.getQuestItemsCount(item) :
            count += 1
            st.takeItems(item,-1)
      if count:
         st.giveItems(5880,1)
   elif chance < 7 :
      for item in range(5875,5879):
         if st.getQuestItemsCount(item) :
            npc.doCast(SkillTable.getInstance().getInfo(4072,4))
            st.takeItems(item,-1)
            st.giveItems(item+1,1)
            if item < 5878 :
               st.playSound("ItemSound.quest_itemget")
            elif item == 5878 :
               st.playSound("ItemSound.quest_middle")
               st.set("cond","2")
            break
   return
示例#4
0
 def onAdvEvent (self,event,npc,player) :
    htmltext = event
    st = player.getQuestState(qn)
    if not st: return
    Alevel = player.getAllianceWithVarkaKetra()
    if str(event) in BUFF.keys() :
        skillId,level,seeds=BUFF[event]
        if st.getQuestItemsCount(Seed) >= seeds :
            st.takeItems(Seed,seeds)
            npc.setTarget(player)
            npc.doCast(SkillTable.getInstance().getInfo(skillId,level))
            npc.setCurrentHpMp(npc.getMaxHp(), npc.getMaxMp())
            htmltext = "31379-4.htm"
    elif event == "Withdraw" :
        if player.getWarehouse().getSize() == 0 :
            htmltext = "31381-0.htm"
        else :
            player.sendPacket(ActionFailed())
            player.setActiveWarehouse(player.getWarehouse())
            player.sendPacket(WareHouseWithdrawalList(player, 1))
    elif event == "Teleport" :
        if Alevel == -4 :
            htmltext = "31383-4.htm"
        elif Alevel == -5 :
            htmltext = "31383-5.htm"
    return htmltext
示例#5
0
 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   npcId = npc.getNpcId()
   if npcId == FR_GARDENER :
     self.startQuestTimer("buff",1,npc,player)
   if npcId == FR_SERVANT :
     player.setTarget(self.IQ)
     player.useMagic(SkillTable.getInstance().getInfo(4480,1),True,True)
   if npcId == FR_DOG :
     player.setTarget(self.IQ)
     player.useMagic(SkillTable.getInstance().getInfo(4481,1),True,True)
   if npcId == ICE_CAPTAIN :
     player.setTarget(self.IQ)
     player.useMagic(SkillTable.getInstance().getInfo(4482,1),True,True)
   if npcId == ICE_QUEEEN :
     self.cancelQuestTimer("vkrovatku",npc,None)
   return
示例#6
0
 def onKill(self,npc,player,isPet):
   st = player.getQuestState(qn)
   npcId = npc.getNpcId()
   if npcId == FR_GARDENER :
     self.startQuestTimer("buff",1,npc,player)
   if npcId == FR_SERVANT :
     player.setTarget(self.IQ)
     player.useMagic(SkillTable.getInstance().getInfo(4480,1),True,True)
   if npcId == FR_DOG :
     player.setTarget(self.IQ)
     player.useMagic(SkillTable.getInstance().getInfo(4481,1),True,True)
   if npcId == ICE_CAPTAIN :
     player.setTarget(self.IQ)
     player.useMagic(SkillTable.getInstance().getInfo(4482,1),True,True)
   if npcId == ICE_QUEEEN :
     self.cancelQuestTimer("vkrovatku",npc,None)
   return
示例#7
0
 def onAdvEvent (self,event,npc,player):
   if event == "prosnuca" :
     self.IQ = self.addSpawn(ICE_QUEEEN,102727,-125655,-2846,0,False,0)
     self.startQuestTimer("vkrovatku",1800000,self.IQ,None)
     self.cancelQuestTimer("prosnuca",npc,None)
   elif event == "captain" :
     npc = self.addSpawn(ICE_CAPTAIN,105804,-127721,-2769,0,False,0)
     self.startQuestTimer("sleepcap",1800000,npc,None)
     self.cancelQuestTimer("prosnuca",npc,None)
   elif event == "resist" :
     npc = self.addSpawn(FR_GARDENER,111375,-126645,-2991,0,False,0)
     self.startQuestTimer("sleepres",1800000,npc,None)
     self.cancelQuestTimer("resist",npc,None)
   elif event == "mdef" :
     npc = self.addSpawn(FR_SERVANT,108885,-129124,-3218,0,False,0)
     self.startQuestTimer("sleepmdef",1800000,npc,None)
     self.cancelQuestTimer("mdef",npc,None)
   elif event == "pdef" :
     npc = self.addSpawn(FR_DOG,109784,-125793,-3142,0,False,0)
     self.startQuestTimer("sleeppdef",1800000,npc,None)
     self.cancelQuestTimer("pdef",npc,None)
   elif event == "vkrovatku":
     npc.deleteMe()
     self.cancelQuestTimer("vkrovatku",npc,None)
   elif event == "sleepcap":
     npc.deleteMe()
     self.cancelQuestTimer("sleepcap",npc,None)
   elif event == "sleepres":
     npc.deleteMe()
     self.cancelQuestTimer("sleepres",npc,None)
   elif event == "sleepmdef":
     npc.deleteMe()
     self.cancelQuestTimer("sleepmdef",npc,None)
   elif event == "sleeppdef":
     npc.deleteMe()
     self.cancelQuestTimer("sleeppdef",npc,None)  
   elif event == "open" :
     self.deleteGlobalQuestVar("closed")
     self.deleteGlobalQuestVar("first")
     self.cancelQuestTimer("open",npc,None)
   elif event == "buff" :
     npc.setTarget(player)
     npc.doCast(SkillTable.getInstance().getInfo(4479,1))
     return
   elif event == "teleout" :
     if player:
       player.teleToLocation(115525,-125724,-3439)
       return "<html><body><font color=LEVEL>Time out...</font></body></html>"
     self.cancelQuestTimer("teleout",None,player)
   return
示例#8
0
 def onAdvEvent (self,event,npc,player):
   if event == "prosnuca" :
     self.IQ = self.addSpawn(ICE_QUEEEN,102727,-125655,-2846,0,False,0)
     self.startQuestTimer("vkrovatku",1800000,self.IQ,None)
     self.cancelQuestTimer("prosnuca",npc,None)
   elif event == "captain" :
     npc = self.addSpawn(ICE_CAPTAIN,105804,-127721,-2769,0,False,0)
     self.startQuestTimer("sleepcap",1800000,npc,None)
     self.cancelQuestTimer("prosnuca",npc,None)
   elif event == "resist" :
     npc = self.addSpawn(FR_GARDENER,111375,-126645,-2991,0,False,0)
     self.startQuestTimer("sleepres",1800000,npc,None)
     self.cancelQuestTimer("resist",npc,None)
   elif event == "mdef" :
     npc = self.addSpawn(FR_SERVANT,108885,-129124,-3218,0,False,0)
     self.startQuestTimer("sleepmdef",1800000,npc,None)
     self.cancelQuestTimer("mdef",npc,None)
   elif event == "pdef" :
     npc = self.addSpawn(FR_DOG,109784,-125793,-3142,0,False,0)
     self.startQuestTimer("sleeppdef",1800000,npc,None)
     self.cancelQuestTimer("pdef",npc,None)
   elif event == "vkrovatku":
     npc.deleteMe()
     self.cancelQuestTimer("vkrovatku",npc,None)
   elif event == "sleepcap":
     npc.deleteMe()
     self.cancelQuestTimer("sleepcap",npc,None)
   elif event == "sleepres":
     npc.deleteMe()
     self.cancelQuestTimer("sleepres",npc,None)
   elif event == "sleepmdef":
     npc.deleteMe()
     self.cancelQuestTimer("sleepmdef",npc,None)
   elif event == "sleeppdef":
     npc.deleteMe()
     self.cancelQuestTimer("sleeppdef",npc,None)  
   elif event == "open" :
     self.deleteGlobalQuestVar("closed")
     self.deleteGlobalQuestVar("first")
     self.cancelQuestTimer("open",npc,None)
   elif event == "buff" :
     npc.setTarget(player)
     npc.doCast(SkillTable.getInstance().getInfo(4479,1))
     return
   elif event == "teleout" :
     if player:
       player.teleToLocation(115525,-125724,-3439)
       return "<html><body><font color=LEVEL>Time out...</font></body></html>"
     self.cancelQuestTimer("teleout",None,player)
   return
示例#9
0
 def onAdvEvent(self, event, npc, player):
     st = player.getQuestState(qn)
     if not st: return
     htmltext = event
     cond = st.getInt("cond")
     if htmltext == "31554-03a.htm":  #Giving 100 Splinter Stakato Chitins. Getting Recruit mark
         if st.getQuestItemsCount(CHITIN) >= count and cond == 1:
             st.set("cond", "2")
             st.takeItems(CHITIN, -1)
             st.giveItems(RECRUIT, 1)
             htmltext = "31554-04.htm"
     elif event == "31554-07.htm":  #Cancelling the quest
         st.exitQuest(1)
         st.playSound("ItemSound.quest_giveup")
     elif event in BUFF.keys() and cond == 3:  #Asking for buff
         skillId, level, coins = BUFF[event]
         if st.getQuestItemsCount(GOLDEN_RAM_COIN) >= coins:
             st.takeItems(GOLDEN_RAM_COIN, coins)
             npc.setTarget(player)
             npc.doCast(SkillTable.getInstance().getInfo(skillId, level))
             htmltext = "31556-1.htm"
         else:
             htmltext = "You don't have required items"
     return htmltext
示例#10
0
 def onAdvEvent (self,event,npc,player) :
    st = player.getQuestState(qn)
    if not st: return
    htmltext = event
    cond = st.getInt("cond")
    if htmltext == "31554-03a.htm" : #Giving 100 Splinter Stakato Chitins. Getting Recruit mark
       if st.getQuestItemsCount(CHITIN)>=count and cond == 1 :
          st.set("cond","2")
          st.takeItems(CHITIN,-1)
          st.giveItems(RECRUIT,1)
          htmltext = "31554-04.htm"
    elif event == "31554-07.htm" : #Cancelling the quest
       st.exitQuest(1)
       st.playSound("ItemSound.quest_giveup")
    elif event in BUFF.keys() and cond == 3 : #Asking for buff
        skillId,level,coins=BUFF[event]
        if st.getQuestItemsCount(GOLDEN_RAM_COIN) >= coins :
          st.takeItems(GOLDEN_RAM_COIN,coins)
          npc.setTarget(player)
          npc.doCast(SkillTable.getInstance().getInfo(skillId,level))
          htmltext = "31556-1.htm"
        else :
          htmltext = "You don't have required items"
    return htmltext
示例#11
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
示例#12
0
	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

		cond = st.getInt("cond")
		npcId = npc.getNpcId()

		if npcId == MUSHIKA :
			first = player.getQuestState("124_MeetingTheElroki")
			if st.getState() == COMPLETED :
				htmltext = "<html><body>This quest has already been completed.</body></html>"
			elif first and first.getState().getName() == 'Completed' and st.getState() == CREATED and player.getLevel() >= 76 :
				htmltext = "32114-01.htm"
			elif cond == 0 :
				htmltext = "32114-00.htm"
			elif cond == 1 :
				htmltext = "32114-07.htm"
			elif cond == 2 :
				htmltext = "32114-10.htm"
			elif cond >= 3 and cond < 8:
				htmltext = "32114-11.htm"
			elif cond == 8 :
				st.addExpAndSp(859195,86603)
				st.unset("cond")
				st.unset("pilar1")
				st.unset("pilar2")
				st.unset("pilar3")
				st.setState(COMPLETED)
				st.exitQuest(False)
				st.playSound("ItemSound.quest_finish")
				htmltext = "32114-12.htm"
		elif npcId == KARAKAWEI :
			if cond == 2 :
				htmltext = "32117-01.htm"
			elif cond == 3 :
				htmltext = "32117-09.htm"
			elif cond == 4 :
				st.takeItems(ORNITHOMIMUS_CLAW,-1)
				st.takeItems(DEINONYCHUS_BONE,-1)
				st.playSound("ItemSound.quest_middle")
				htmltext = "32117-10.htm"
			elif cond == 5 :
				htmltext = "32117-15.htm"
			elif cond == 6 or cond == 7 :
				htmltext = "32117-16.htm"
			elif cond == 8 :
				htmltext = "32117-17.htm"
		elif npcId == ULU_KAIMU :
			if cond == 5 :
				npc.doCast(SkillTable.getInstance().getInfo(5089,1))
				htmltext = "32119-01.htm"
			elif cond == 6 :
				htmltext = "32119-14.htm"
		elif npcId == BALU_KAIMU :
			if cond == 6 :
				npc.doCast(SkillTable.getInstance().getInfo(5089,1))
				htmltext = "32120-01.htm"
			elif cond == 7 :
				htmltext = "32120-16.htm"
		elif npcId == CHUTA_KAIMU :
			if cond == 7 :
				npc.doCast(SkillTable.getInstance().getInfo(5089,1))
				htmltext = "32121-01.htm"
			elif cond == 8 :
				htmltext = "32121-17.htm"
		return htmltext
示例#13
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
示例#14
0
 def onAttack(self, npc, player, damage, isPet):
     player.setTarget(player)
     player.doCast(SkillTable.getInstance().getInfo(5088, 1))
     return
示例#15
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
示例#16
0
 def onAttack (self,npc,player,damage,isPet):
   player.setTarget(player)
   player.doCast(SkillTable.getInstance().getInfo(5088,1))
   return
示例#17
0
    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

        cond = st.getInt("cond")
        npcId = npc.getNpcId()

        if npcId == MUSHIKA:
            first = player.getQuestState("124_MeetingTheElroki")
            if st.getState() == COMPLETED:
                htmltext = "<html><body>This quest has already been completed.</body></html>"
            elif first and first.getState().getName(
            ) == 'Completed' and st.getState(
            ) == CREATED and player.getLevel() >= 76:
                htmltext = "32114-01.htm"
            elif cond == 0:
                htmltext = "32114-00.htm"
            elif cond == 1:
                htmltext = "32114-07.htm"
            elif cond == 2:
                htmltext = "32114-10.htm"
            elif cond >= 3 and cond < 8:
                htmltext = "32114-11.htm"
            elif cond == 8:
                st.addExpAndSp(859195, 86603)
                st.unset("cond")
                st.unset("pilar1")
                st.unset("pilar2")
                st.unset("pilar3")
                st.setState(COMPLETED)
                st.exitQuest(False)
                st.playSound("ItemSound.quest_finish")
                htmltext = "32114-12.htm"
        elif npcId == KARAKAWEI:
            if cond == 2:
                htmltext = "32117-01.htm"
            elif cond == 3:
                htmltext = "32117-09.htm"
            elif cond == 4:
                st.takeItems(ORNITHOMIMUS_CLAW, -1)
                st.takeItems(DEINONYCHUS_BONE, -1)
                st.playSound("ItemSound.quest_middle")
                htmltext = "32117-10.htm"
            elif cond == 5:
                htmltext = "32117-15.htm"
            elif cond == 6 or cond == 7:
                htmltext = "32117-16.htm"
            elif cond == 8:
                htmltext = "32117-17.htm"
        elif npcId == ULU_KAIMU:
            if cond == 5:
                npc.doCast(SkillTable.getInstance().getInfo(5089, 1))
                htmltext = "32119-01.htm"
            elif cond == 6:
                htmltext = "32119-14.htm"
        elif npcId == BALU_KAIMU:
            if cond == 6:
                npc.doCast(SkillTable.getInstance().getInfo(5089, 1))
                htmltext = "32120-01.htm"
            elif cond == 7:
                htmltext = "32120-16.htm"
        elif npcId == CHUTA_KAIMU:
            if cond == 7:
                npc.doCast(SkillTable.getInstance().getInfo(5089, 1))
                htmltext = "32121-01.htm"
            elif cond == 8:
                htmltext = "32121-17.htm"
        return htmltext