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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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