コード例 #1
0
ファイル: sailren.py プロジェクト: Kingzor/scoria4
 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
コード例 #2
0
ファイル: icequeen.py プロジェクト: Kingzor/scoria4
 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
コード例 #3
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
コード例 #4
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
コード例 #5
0
ファイル: benom.py プロジェクト: usergoood/scoria-interlude
 def onKill(self, npc, player, isPet):
     GrandBossManager.getInstance().setBossStatus(Benom, DEAD)
     self.cancelQuestTimer("BenomWalk", npc, None)
     self.cancelQuestTimer("BenomWalkFinish", npc, None)
     self.cancelQuestTimer("BenomBossDespawn", npc, None)
     self.cancelQuestTimer("Talk", npc, None)
     self.cancelQuestTimer("Attacking", npc, None)
     return
コード例 #6
0
ファイル: benom.py プロジェクト: andyperm/scoria-interlude
 def onKill(self, npc, player, isPet) :
   GrandBossManager.getInstance().setBossStatus(Benom,DEAD)
   self.cancelQuestTimer("BenomWalk", npc, None)
   self.cancelQuestTimer("BenomWalkFinish", npc, None)
   self.cancelQuestTimer("BenomBossDespawn", npc, None)
   self.cancelQuestTimer("Talk", npc, None)
   self.cancelQuestTimer("Attacking", npc, None)
   return
コード例 #7
0
ファイル: orfen.py プロジェクト: andyperm/scoria-interlude
 def onKill(self,npc,player,isPet):
     self.FirstAttacked = False
     respawnTime = long((19 + Rnd.get(8)) * 3600000)
     GrandBossManager.getInstance().setBossStatus(ORFEN,DEAD)
     self.startQuestTimer("orfen_spawn", respawnTime, None, None)
     info = GrandBossManager.getInstance().getStatsSet(ORFEN)
     info.set("respawn_time",(long(System.currentTimeMillis()) + respawnTime))
     GrandBossManager.getInstance().setStatsSet(ORFEN,info)
     return 
コード例 #8
0
ファイル: valakas.py プロジェクト: usergoood/scoria-interlude
 def onTalk(self, npc, player):
     st = player.getQuestState("valakas")
     npcId = npc.getNpcId()
     underatak = self.loadGlobalQuestVar("underattack")
     ubitt = self.loadGlobalQuestVar("ubit")
     if npcId == KLEIN:
         if ubitt == "":
             if st.getQuestItemsCount(STONE) >= 1:
                 if underatak == "":
                     st.takeItems(STONE, 1)
                     st.set("cango", "1")
                     st.getPlayer().teleToLocation(183920, -115544, -3294)
                 else:
                     return "<html><body><tr><td>Klein:</td></tr><br><font color=LEVEL>Valakas is under attack...</font><br>Try another time.</body></html>"
             else:
                 return "<html><body><tr><td>Klein:</td></tr><br>You need <font color=LEVEL>Floating Stone</font> to enter...</body></html>"
         else:
             return "<html><body><tr><td>Klein:</td></tr><br><font color=LEVEL>Valakas was killed...</font><br>Try another time.</body></html>"
     if npcId == HEART:
         access = self.loadGlobalQuestVar("access")
         if access == "":
             if ubitt == "":
                 if underatak == "":
                     cango = st.getInt("cango")
                     if cango == 1:
                         self.saveGlobalQuestVar("access", "1")
                         self.startQuestTimer("prosnuca", 1200000, npc,
                                              player)  #1200000
                         GrandBossManager.getInstance().getZone(
                             204167, -111564,
                             61).allowPlayerEntry(player, 30)
                         st.getPlayer().teleToLocation(204167, -111564, 61)
                         st.set("cango", "0")
                     else:
                         return "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>"
                 else:
                     return "<html><body>Valakas is under attack...<br>Try another time.</body></html>"
             else:
                 return "<html><body>Valakas was killed...<br>Try another time.</body></html>"
         else:
             if underatak == "":
                 if ubitt == "":
                     cango = st.getInt("cango")
                     if cango == 1:
                         GrandBossManager.getInstance().getZone(
                             204167, -111564,
                             61).allowPlayerEntry(player, 30)
                         st.getPlayer().teleToLocation(204167, -111564, 61)
                         st.set("cango", "0")
                     else:
                         return "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>"
                 else:
                     return "<html><body>Valakas was killed...<br>Try another time.</body></html>"
             else:
                 return "<html><body>Valakas is under attack...<br>Try another time.</body></html>"
     return
コード例 #9
0
ファイル: orfen.py プロジェクト: usergoood/scoria-interlude
 def onKill(self, npc, player, isPet):
     self.FirstAttacked = False
     respawnTime = long((19 + Rnd.get(8)) * 3600000)
     GrandBossManager.getInstance().setBossStatus(ORFEN, DEAD)
     self.startQuestTimer("orfen_spawn", respawnTime, None, None)
     info = GrandBossManager.getInstance().getStatsSet(ORFEN)
     info.set("respawn_time",
              (long(System.currentTimeMillis()) + respawnTime))
     GrandBossManager.getInstance().setStatsSet(ORFEN, info)
     return
コード例 #10
0
ファイル: valakas.py プロジェクト: andyperm/scoria-interlude
 def onTalk (self,npc,player):
   st = player.getQuestState("valakas")  
   npcId = npc.getNpcId()
   underatak = self.loadGlobalQuestVar("underattack")
   ubitt = self.loadGlobalQuestVar("ubit")
   if npcId == KLEIN :
     if ubitt == "" :
       if st.getQuestItemsCount(STONE) >= 1:
         if underatak == "" :
           st.takeItems(STONE,1)
           st.set("cango","1")
           st.getPlayer().teleToLocation(183920,-115544,-3294)
         else :
           return "<html><body><tr><td>Klein:</td></tr><br><font color=LEVEL>Valakas is under attack...</font><br>Try another time.</body></html>"
       else :
         return "<html><body><tr><td>Klein:</td></tr><br>You need <font color=LEVEL>Floating Stone</font> to enter...</body></html>"
     else : 
       return "<html><body><tr><td>Klein:</td></tr><br><font color=LEVEL>Valakas was killed...</font><br>Try another time.</body></html>"
   if npcId == HEART:
     access = self.loadGlobalQuestVar("access")
     if access == "":
       if ubitt == "" :
         if underatak == "" :
           cango = st.getInt("cango")
           if cango == 1 :
             self.saveGlobalQuestVar("access", "1")
             self.startQuestTimer("prosnuca",1200000,npc,player) #1200000
             GrandBossManager.getInstance().getZone(204167,-111564,61).allowPlayerEntry(player, 30)
             st.getPlayer().teleToLocation(204167,-111564,61)
             st.set("cango","0")
           else :
             return "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>"
         else :
           return "<html><body>Valakas is under attack...<br>Try another time.</body></html>"
       else :
         return "<html><body>Valakas was killed...<br>Try another time.</body></html>"
     else :
       if underatak == "" :
         if ubitt == "" :
           cango = st.getInt("cango")
           if cango == 1 :
             GrandBossManager.getInstance().getZone(204167,-111564,61).allowPlayerEntry(player, 30)
             st.getPlayer().teleToLocation(204167,-111564,61)
             st.set("cango","0")
           else :
             return "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>"
         else :
           return "<html><body>Valakas was killed...<br>Try another time.</body></html>"
       else :
         return "<html><body>Valakas is under attack...<br>Try another time.</body></html>"
   return
コード例 #11
0
ファイル: orfen.py プロジェクト: andyperm/scoria-interlude
 def onAdvEvent (self,event,npc,player):
     if event == "orfen_spawn" :
       orfen = self.addSpawn(ORFEN,55024,17368,-5412,0,False,0)
       GrandBossManager.getInstance().addBoss(orfen)
       GrandBossManager.getInstance().setBossStatus(ORFEN,LIVE)
     if event == "Refresh_status" :
       if npc.getCurrentHp() >= npc.getMaxHp()-5 :
         self.startQuestTimer("orfen_return", 1000, npc, None)
         self.cancelQuestTimer("Refresh_status",npc,None)
       self.startQuestTimer("Refresh_status", 10000, npc, None)
     if event == "orfen_return" :
       npc.teleToLocation(55024,17368,-5412, False)
       self.Teleported = False
       self.FirstAttacked = False
       npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE)
       npc.setCanReturnToSpawnPoint(True)
     return
コード例 #12
0
ファイル: orfen.py プロジェクト: usergoood/scoria-interlude
 def onAdvEvent(self, event, npc, player):
     if event == "orfen_spawn":
         orfen = self.addSpawn(ORFEN, 55024, 17368, -5412, 0, False, 0)
         GrandBossManager.getInstance().addBoss(orfen)
         GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE)
     if event == "Refresh_status":
         if npc.getCurrentHp() >= npc.getMaxHp() - 5:
             self.startQuestTimer("orfen_return", 1000, npc, None)
             self.cancelQuestTimer("Refresh_status", npc, None)
         self.startQuestTimer("Refresh_status", 10000, npc, None)
     if event == "orfen_return":
         npc.teleToLocation(55024, 17368, -5412, False)
         self.Teleported = False
         self.FirstAttacked = False
         npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE)
         npc.setCanReturnToSpawnPoint(True)
     return
コード例 #13
0
    def onFirstTalk(self, npc, player):
        st = player.getQuestState(qn)
        if not st: st = self.newQuestState(player)

        baiumStatus = GrandBossManager.getInstance().getBossStatus(29020)
        if baiumStatus != 2 and st.getQuestItemsCount(4295):
            st.exitQuest(1)
            return "31862.htm"
        else:
            npc.showChatWindow(player)
            st.exitQuest(1)
            return
        return
コード例 #14
0
ファイル: __init__.py プロジェクト: Kingzor/scoria4
 def onFirstTalk (self,npc,player):
   st = player.getQuestState(qn)
   if not st : st = self.newQuestState(player)

   baiumStatus = GrandBossManager.getInstance().getBossStatus(29020)
   if baiumStatus != 2 and st.getQuestItemsCount(4295) :
     st.exitQuest(1)
     return "31862.htm"
   else :
     npc.showChatWindow(player)
     st.exitQuest(1)
     return
   return
コード例 #15
0
ファイル: orfen.py プロジェクト: andyperm/scoria-interlude
 def init_LoadGlobalData(self) :
     info = GrandBossManager.getInstance().getStatsSet(ORFEN)
     status = GrandBossManager.getInstance().getBossStatus(ORFEN)
     if status == DEAD :
       temp = long(info.getLong("respawn_time")) - System.currentTimeMillis()
       if temp > 0 :
         print "Orfen: dead"
         self.startQuestTimer("orfen_spawn", temp, None, None)
       else :
         orfen = self.addSpawn(ORFEN,55024,17368,-5412,0,False,0)
         GrandBossManager.getInstance().addBoss(orfen)
         GrandBossManager.getInstance().setBossStatus(ORFEN,LIVE)
         print "Orfen: live"
     if status == LIVE :
       orfen = self.addSpawn(ORFEN,55024,17368,-5412,0,False,0)
       GrandBossManager.getInstance().addBoss(orfen)
       print "Orfen: live"
     return
コード例 #16
0
ファイル: orfen.py プロジェクト: usergoood/scoria-interlude
 def init_LoadGlobalData(self):
     info = GrandBossManager.getInstance().getStatsSet(ORFEN)
     status = GrandBossManager.getInstance().getBossStatus(ORFEN)
     if status == DEAD:
         temp = long(
             info.getLong("respawn_time")) - System.currentTimeMillis()
         if temp > 0:
             print "Orfen: dead"
             self.startQuestTimer("orfen_spawn", temp, None, None)
         else:
             orfen = self.addSpawn(ORFEN, 55024, 17368, -5412, 0, False, 0)
             GrandBossManager.getInstance().addBoss(orfen)
             GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE)
             print "Orfen: live"
     if status == LIVE:
         orfen = self.addSpawn(ORFEN, 55024, 17368, -5412, 0, False, 0)
         GrandBossManager.getInstance().addBoss(orfen)
         print "Orfen: live"
     return
コード例 #17
0
ファイル: benom.py プロジェクト: andyperm/scoria-interlude
 def onAdvEvent(self, event, npc, player) :
   status = GrandBossManager.getInstance().getBossStatus(Benom)
   if event == "BenomTeleSpawn" :
     self.Teleport = self.addSpawn(BenomTeleport, 11013, -49629, -547, 13400, False, 0)
   elif event == "BenomRaidRoomSpawn" :
     if self.BenomIsSpawned == 0 and status == 0 :
       self.Benomm = self.addSpawn(Benom, 12047, -49211, -3009, 0, False, 0)
       self.BenomIsSpawned = 1
   elif event == "BenomRaidSiegeSpawn" :
     if status == 0 :
       if self.BenomIsSpawned == 0 :
         self.Benomm = self.addSpawn(Benom, 11025, -49152, -537, 0, False, 0)
         self.BenomIsSpawned = 1
       elif self.BenomIsSpawned == 1 :
         self.Benomm.teleToLocation(11025, -49152, -537)
       self.startQuestTimer("BenomSpawnEffect", 100, npc, None)
       self.startQuestTimer("BenomBossDespawn", 5400000, npc, None)
       self.cancelQuestTimer("BenomSpawn", npc, None)
       self.Teleport.deleteMe()
   elif event == "BenomSpawnEffect" :
     npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE)
     npc.broadcastPacket(SpecialCamera(npc.getObjectId(), 200, 0, 150, 0, 5000))
     npc.broadcastPacket(SocialAction(npc.getObjectId(), 3))
     self.startQuestTimer("BenomWalk", 5000, npc, None)
     self.BenomWalkRouteStep = 0
   elif event == "Attacking" :
     NumPlayers = []
     for player in npc.getKnownList().getKnownPlayers().values() :
       NumPlayers.append(player)
     if len(NumPlayers) > 0 :
       target = NumPlayers[Rnd.get(len(NumPlayers))]
       npc.addDamageHate(target, 0, 999)
       npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target)
       self.startQuestTimer("Attacking", 2000, npc, player)
     elif len(NumPlayers) == 0 :
         self.startQuestTimer("BenomWalkFinish", 2000, npc, None)
   elif event == "BenomWalkFinish" :
     if npc.getCastle().getSiege().getIsInProgress() :
       self.cancelQuestTimer("Attacking", npc, player)
       X = benomWalkRoutes[self.BenomWalkRouteStep][0]
       Y = benomWalkRoutes[self.BenomWalkRouteStep][1]
       Z = benomWalkRoutes[self.BenomWalkRouteStep][2]
       npc.teleToLocation(X, Y, Z)
       npc.setWalking()
       self.BenomWalkRouteStep = 0
       self.startQuestTimer("BenomWalk", 2200, npc, None)
   elif event == "BenomWalk" :
     if self.BenomWalkRouteStep == 33 :
       self.BenomWalkRouteStep = 0
       self.startQuestTimer("BenomWalk", 100, npc, None)
     else :
       self.startQuestTimer("Talk", 100, npc, None)
       if self.BenomWalkRouteStep == 14 :
         self.startQuestTimer("DoorOpen", 15000, None, None)
         self.startQuestTimer("DoorClose", 23000, None, None)
       if self.BenomWalkRouteStep == 32 :
         self.startQuestTimer("DoorOpen", 500, None, None)
         self.startQuestTimer("DoorClose", 4000, None, None)
       Time = WalkTimes[self.BenomWalkRouteStep]
       npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE)
       X = benomWalkRoutes[self.BenomWalkRouteStep][0]
       Y = benomWalkRoutes[self.BenomWalkRouteStep][1]
       Z = benomWalkRoutes[self.BenomWalkRouteStep][2]
       npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, L2CharPosition(X, Y, Z, 0))
       self.BenomWalkRouteStep = int(self.BenomWalkRouteStep) + 1
       self.startQuestTimer("BenomWalk", Time, npc, None)
   elif event == "DoorOpen" :
     DoorTable.getInstance().getDoor(20160005).openMe()
   elif event == "DoorClose" :
     DoorTable.getInstance().getDoor(20160005).closeMe()
   elif event == "Talk" :
     if Rnd.get(100) < 40 :
       npc.broadcastPacket(CreatureSay(npc.getObjectId(), 0, "Benom", BenomSpeak[Rnd.get(4)]))
   elif event == "BenomBossDespawn" :
     GrandBossManager.getInstance().setBossStatus(Benom,LIVE)
     self.BenomIsSpawned = 0
     self.Benomm.deleteMe()
   return
コード例 #18
0
ファイル: benom.py プロジェクト: usergoood/scoria-interlude
 def onAdvEvent(self, event, npc, player):
     status = GrandBossManager.getInstance().getBossStatus(Benom)
     if event == "BenomTeleSpawn":
         self.Teleport = self.addSpawn(BenomTeleport, 11013, -49629, -547,
                                       13400, False, 0)
     elif event == "BenomRaidRoomSpawn":
         if self.BenomIsSpawned == 0 and status == 0:
             self.Benomm = self.addSpawn(Benom, 12047, -49211, -3009, 0,
                                         False, 0)
             self.BenomIsSpawned = 1
     elif event == "BenomRaidSiegeSpawn":
         if status == 0:
             if self.BenomIsSpawned == 0:
                 self.Benomm = self.addSpawn(Benom, 11025, -49152, -537, 0,
                                             False, 0)
                 self.BenomIsSpawned = 1
             elif self.BenomIsSpawned == 1:
                 self.Benomm.teleToLocation(11025, -49152, -537)
             self.startQuestTimer("BenomSpawnEffect", 100, npc, None)
             self.startQuestTimer("BenomBossDespawn", 5400000, npc, None)
             self.cancelQuestTimer("BenomSpawn", npc, None)
             self.Teleport.deleteMe()
     elif event == "BenomSpawnEffect":
         npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE)
         npc.broadcastPacket(
             SpecialCamera(npc.getObjectId(), 200, 0, 150, 0, 5000))
         npc.broadcastPacket(SocialAction(npc.getObjectId(), 3))
         self.startQuestTimer("BenomWalk", 5000, npc, None)
         self.BenomWalkRouteStep = 0
     elif event == "Attacking":
         NumPlayers = []
         for player in npc.getKnownList().getKnownPlayers().values():
             NumPlayers.append(player)
         if len(NumPlayers) > 0:
             target = NumPlayers[Rnd.get(len(NumPlayers))]
             npc.addDamageHate(target, 0, 999)
             npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK,
                                      target)
             self.startQuestTimer("Attacking", 2000, npc, player)
         elif len(NumPlayers) == 0:
             self.startQuestTimer("BenomWalkFinish", 2000, npc, None)
     elif event == "BenomWalkFinish":
         if npc.getCastle().getSiege().getIsInProgress():
             self.cancelQuestTimer("Attacking", npc, player)
             X = benomWalkRoutes[self.BenomWalkRouteStep][0]
             Y = benomWalkRoutes[self.BenomWalkRouteStep][1]
             Z = benomWalkRoutes[self.BenomWalkRouteStep][2]
             npc.teleToLocation(X, Y, Z)
             npc.setWalking()
             self.BenomWalkRouteStep = 0
             self.startQuestTimer("BenomWalk", 2200, npc, None)
     elif event == "BenomWalk":
         if self.BenomWalkRouteStep == 33:
             self.BenomWalkRouteStep = 0
             self.startQuestTimer("BenomWalk", 100, npc, None)
         else:
             self.startQuestTimer("Talk", 100, npc, None)
             if self.BenomWalkRouteStep == 14:
                 self.startQuestTimer("DoorOpen", 15000, None, None)
                 self.startQuestTimer("DoorClose", 23000, None, None)
             if self.BenomWalkRouteStep == 32:
                 self.startQuestTimer("DoorOpen", 500, None, None)
                 self.startQuestTimer("DoorClose", 4000, None, None)
             Time = WalkTimes[self.BenomWalkRouteStep]
             npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE)
             X = benomWalkRoutes[self.BenomWalkRouteStep][0]
             Y = benomWalkRoutes[self.BenomWalkRouteStep][1]
             Z = benomWalkRoutes[self.BenomWalkRouteStep][2]
             npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,
                                      L2CharPosition(X, Y, Z, 0))
             self.BenomWalkRouteStep = int(self.BenomWalkRouteStep) + 1
             self.startQuestTimer("BenomWalk", Time, npc, None)
     elif event == "DoorOpen":
         DoorTable.getInstance().getDoor(20160005).openMe()
     elif event == "DoorClose":
         DoorTable.getInstance().getDoor(20160005).closeMe()
     elif event == "Talk":
         if Rnd.get(100) < 40:
             npc.broadcastPacket(
                 CreatureSay(npc.getObjectId(), 0, "Benom",
                             BenomSpeak[Rnd.get(4)]))
     elif event == "BenomBossDespawn":
         GrandBossManager.getInstance().setBossStatus(Benom, LIVE)
         self.BenomIsSpawned = 0
         self.Benomm.deleteMe()
     return