def onKill(self, npc, player, isPet): if self.worlds.has_key(npc.getInstanceId()): world = self.worlds[npc.getInstanceId()] npcId = npc.getNpcId() npc.getSpawn().stopRespawn() if npcId == KEYMASTER: if Rnd.get(100) >= 40: text = "Oh no my key............." dropItem(npc, KEY, 1, player) spawnAmaskari(self, world) else: text = "You will never get my key!" npc.broadcastPacket(NpcSay(npc.getObjectId(), 0, npcId, text)) elif npcId == CHARMED_NATIVE: HellboundManager.getInstance().decreaseTrustPoints(10) elif npcId == AMASKARI: for slave in world.AmaskariSlaves.npclist: slave.setRunning() slave.getAI().setIntention( CtrlIntention.AI_INTENTION_MOVE_TO, L2CharPosition(17384, 251788, -2015, 0)) self.startQuestTimer("decayNpc", 8000, slave, None) slave.broadcastPacket( NpcSay(slave.getObjectId(), 0, CHARMED_NATIVE, SLAVES_TEXT[Rnd.get(len(SLAVES_TEXT))])) return
def onTalk (self,npc,player): npcId = npc.getNpcId() if npcId == KANAF : if HellboundManager.getInstance().getCurrentLevel() >= 10: instanceId = 0 tele = PyObject() tele.x = 13881 tele.y = 255491 tele.z = -2025 instanceId = enterInstance(self,player,"MarketTown.xml",tele) if instanceId == 0: return else: htmltext = "You may not yet enter the Market Town..." return htmltext elif npcId == STELE: world = self.worlds[npc.getInstanceId()] if not world.instanceFinished: key = player.getInventory().getItemByItemId(KEY); if key != None: world.instanceFinished = True player.destroyItemByItemId("Moonlight Stone", KEY, 1, player, True); instance = InstanceManager.getInstance().getInstance(npc.getInstanceId()) if instance != None: instance.setDuration(330000) self.startQuestTimer("finishInstance", 300000, npc, None) elif npcId == PRISONER: world = self.worlds[npc.getInstanceId()] npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"Thank you, i hope Amaskari wont notice!")) self.startQuestTimer("decayNpc", 15000, npc, None) HellboundManager.getInstance().addTrustPoints(10) if not world.guardsSpawned: callGuards(self,npc,player,world) world.guardsSpawned = True return
def onTalk(self, npc, player): st = player.getQuestState(qn) if not st: return npcId = npc.getNpcId() if self.bloodyHot == 0: st1 = st.getPlayer().getQuestState("133_ThatsBloodyHot") if st1: if st1.getState() == State.COMPLETED: HellboundManager.getInstance().addWarpgateEnergy(10000) self.saveGlobalQuestVar("BloodyHotQuest", "1") self.bloodyHot = 1 player.teleToLocation(-11095, 236440, -3232) htmltext = "" else: htmltext = "cant-port.htm" else: htmltext = "cant-port.htm" else: if checkWarpGate(): st2 = st.getPlayer().getQuestState("130_PathToHellbound") if st2: if st2.getState() == State.COMPLETED: player.teleToLocation(-11095, 236440, -3232) htmltext = "" else: htmltext = "cant-port.htm" else: htmltext = "cant-port.htm" else: htmltext = "cant-port.htm" st.exitQuest(1) return htmltext
def onFirstTalk(self, npc, player): level = HellboundManager.getInstance().getHellboundLevel() if HellboundManager.getInstance().getTrustPoints() < 999000: htmltext = "kief_exchange.htm" elif level >= 7 and level < 8: htmltext = "kief_trade_extended.htm" else: htmltext = "kief_trade.htm" return htmltext
def onKill(self, npc, player, isPet): npcId = npc.getNpcId() if npcId == BAYLOR: if self.bloodyHot == 1: HellboundManager.getInstance().addWarpgateEnergy(80000) if ENERGYFROMMINORBOSSES: if npcId == TEARS or npcId == KECHI or npcId == DARNEL: HellboundManager.getInstance().addWarpgateEnergy(10000) return
def onFirstTalk (self,npc,player): level = HellboundManager.getInstance().getHellboundLevel() if HellboundManager.getInstance().getTrustPoints() < 999000: htmltext = "kief_exchange.htm" elif level >= 7 and level < 8: htmltext = "kief_trade_extended.htm" else: htmltext = "kief_trade.htm" return htmltext
def onAdvEvent (self,event,npc,player): htmltext = event st = player.getQuestState(qn) if not st: return if event == "treasure": if player.getInventory().getItemByItemId(NATIVE_TREASURE) >= 1: player.destroyItemByItemId("Bernarde Exchange", NATIVE_TREASURE, 1, player, True) trustPoints = HellboundManaer.getInstance().getTrustPoints() trustToAdd = HellboundManager.getInstance().getNeededTrustPoints(4) - trustPoints HellboundManager.getinstance().addTrustPoints(trustToAdd) htmltext = "bernarde_thanks.htm" return htmltext
def onFirstTalk (self,npc,player): if player.isTransformed() and player.getTransformationId() == NATIVE_TRANSFORMATION: hellboundLevel = HellboundManager.getInstance().getCurrentLevel() trustPoints = HellboundManager.getInstance().getTrustPoints() if trustPoints < 999000: htmltext = "bernarde_trade.htm" elif trustPoints >= 999000 and hellboundLevel < 4: htmltext = "bernarde_advanced.htm" else: htmltext = "bernarde.htm" else: htmltext = "bernarde_no.htm" return htmltext
def onAdvEvent(self, event, npc, player): htmltext = event st = player.getQuestState(qn) if not st: return if event == "treasure": if player.getInventory().getItemByItemId(NATIVE_TREASURE) >= 1: player.destroyItemByItemId("Bernarde Exchange", NATIVE_TREASURE, 1, player, True) trustPoints = HellboundManaer.getInstance().getTrustPoints() trustToAdd = HellboundManager.getInstance( ).getNeededTrustPoints(4) - trustPoints HellboundManager.getinstance().addTrustPoints(trustToAdd) htmltext = "bernarde_thanks.htm" return htmltext
def onFirstTalk(self, npc, player): if player.isTransformed() and player.getTransformationId( ) == NATIVE_TRANSFORMATION: hellboundLevel = HellboundManager.getInstance().getCurrentLevel() trustPoints = HellboundManager.getInstance().getTrustPoints() if trustPoints < 999000: htmltext = "bernarde_trade.htm" elif trustPoints >= 999000 and hellboundLevel < 4: htmltext = "bernarde_advanced.htm" else: htmltext = "bernarde.htm" else: htmltext = "bernarde_no.htm" return htmltext
def onFirstTalk (self,npc,player): basicCertif = player.getInventory().getItemByItemId(BASIC_CERTIFICATE) standartCertif = player.getInventory().getItemByItemId(STANDART_CERTIFICATE) premiumCertif = player.getInventory().getItemByItemId(PREMIUM_CERTIFICATE) hellboundLevel = HellboundManager.getInstance().getCurrentLevel() if hellboundLevel > 2 and hellboundLevel < 4: if not basicCertif: htmltext = "hude_no.htm" elif basicCertif: htmltext = "hude.htm" elif hellboundLevel >= 4 and hellboundLevel < 7: if not basicCertif: htmltext = "hude_no.htm" elif basicCertif and not standartCertif: htmltext = "hude_certificate.htm" elif basicCertif and standartCertif: htmltext = "hude_basic.htm" else: htmltext = "hude_no.htm" elif hellboundLevel >= 7: if not basicCertif: htmltext = "hude_no.htm" if basicCertif and not standartCertif: htmltext = "hude_certificate.htm" elif basicCertif and standartCertif and not premiumCertif: htmltext = "hude_premium_certificate.htm" elif basicCertif and standartCertif and premiumCertif: htmltext = "hude_advanced.htm" else: htmltext = "hude_no.htm" else: htmltext = "hude_no.htm" return htmltext
def onTalk (self,npc,player): npcId = npc.getNpcId() if npcId == 32299 and HellboundManager.getInstance().getHellboundLevel() == 5: npc.setTarget(player); npc.setRunning() npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player) self.startQuestTimer("CheckIfSafe",10000,npc,None) self.startQuestTimer("CallKillers",1000,npc,None) return
def onTalk(self, npc, player): npcId = npc.getNpcId() if npcId == 32299 and HellboundManager.getInstance().getHellboundLevel( ) == 5: npc.setTarget(player) npc.setRunning() npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player) self.startQuestTimer("CheckIfSafe", 10000, npc, None) self.startQuestTimer("CallKillers", 1000, npc, None) return
def onTalk(self, npc, player): npcId = npc.getNpcId() if npcId == KANAF: if HellboundManager.getInstance().getCurrentLevel() >= 10: instanceId = 0 tele = PyObject() tele.x = 13881 tele.y = 255491 tele.z = -2025 instanceId = enterInstance(self, player, "MarketTown.xml", tele) if instanceId == 0: return else: htmltext = "You may not yet enter the Market Town..." return htmltext elif npcId == STELE: world = self.worlds[npc.getInstanceId()] if not world.instanceFinished: key = player.getInventory().getItemByItemId(KEY) if key != None: world.instanceFinished = True player.destroyItemByItemId("Moonlight Stone", KEY, 1, player, True) instance = InstanceManager.getInstance().getInstance( npc.getInstanceId()) if instance != None: instance.setDuration(330000) self.startQuestTimer("finishInstance", 300000, npc, None) elif npcId == PRISONER: world = self.worlds[npc.getInstanceId()] npc.broadcastPacket( NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "Thank you, i hope Amaskari wont notice!")) self.startQuestTimer("decayNpc", 15000, npc, None) HellboundManager.getInstance().addTrustPoints(10) if not world.guardsSpawned: callGuards(self, npc, player, world) world.guardsSpawned = True return
def onAdvEvent (self,event,npc, player) : if event == "CheckIfSafe": if npc.isDead(): cancelTimers(self,npc) HellboundManager.getInstance().decreaseTrustPoints(30) return if (npc.getX() >= -5967 and npc.getX() <= -4163) and (npc.getY() >= 251137 and npc.getY() <= 251970) and (npc.getZ() >= -3400 and npc.getZ() <= -3100): HellboundManager.getInstance().addTrustPoints(30) npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"Thank you, you saved me! I'll remember you my whole life!")) npc.decayMe() cancelTimers(self,npc) else: if debug: print "Not on position. Currently: X: " +str(npc.getX())+ " Y: " +str(npc.getY())+ " Z: " +str(npc.getZ()) self.startQuestTimer("CheckIfSafe",10000,npc,None) elif event == "CallKillers": if npc.isDead(): cancelTimers(self,npc) HellboundManager.getInstance().decreaseTrustPoints(30) return for object in npc.getKnownList().getKnownObjects().values(): if object != None: if isinstance(object, L2MonsterInstance): objectId = object.getNpcId() if objectId in [22347,22344,22346]: object.setTarget(npc) object.addDamageHate(npc, 0, 999) object.setIsRunning(True) object.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK) self.startQuestTimer("CallKillers",1000,npc,None) return
def onKill(self,npc,player,isPet): if self.worlds.has_key(npc.getInstanceId()): world = self.worlds[npc.getInstanceId()] npcId = npc.getNpcId() npc.getSpawn().stopRespawn() if npcId == KEYMASTER: if Rnd.get(100) >= 40: text = "Oh no my key............." dropItem(npc,KEY,1,player) spawnAmaskari(self,world) else: text = "You will never get my key!" npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npcId,text)) elif npcId == CHARMED_NATIVE: HellboundManager.getInstance().decreaseTrustPoints(10) elif npcId == AMASKARI: for slave in world.AmaskariSlaves.npclist: slave.setRunning() slave.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, L2CharPosition(17384, 251788, -2015, 0)) self.startQuestTimer("decayNpc",8000,slave,None) slave.broadcastPacket(NpcSay(slave.getObjectId(),0,CHARMED_NATIVE,SLAVES_TEXT[Rnd.get(len(SLAVES_TEXT))])) return
def onSkillSee(self,npc,caster,skill,targets,isPet): if HellboundManager.getInstance().getHellboundLevel() >= 7: skillId = skill.getId() if skillId != 2359: return if not npc in targets: return percent = npc.getStatus().getCurrentHp() / npc.getMaxHp() * 100 if percent <= 10: npc.setMagicBottled(True, percent) else: npc.setQuestDropable(False) caster.sendPacket(SystemMessage(SystemMessageId.NOTHING_HAPPENED)) return return
def onSkillSee(self, npc, caster, skill, targets, isPet): if HellboundManager.getInstance().getHellboundLevel() >= 7: skillId = skill.getId() if skillId != 2359: return if not npc in targets: return percent = npc.getStatus().getCurrentHp() / npc.getMaxHp() * 100 if percent <= 10: npc.setMagicBottled(True, percent) else: npc.setQuestDropable(False) caster.sendPacket( SystemMessage(SystemMessageId.NOTHING_HAPPENED)) return return
def onAdvEvent(self, event, npc, player): if event == "CheckIfSafe": if npc.isDead(): cancelTimers(self, npc) HellboundManager.getInstance().decreaseTrustPoints(30) return if (npc.getX() >= -5967 and npc.getX() <= -4163) and ( npc.getY() >= 251137 and npc.getY() <= 251970) and (npc.getZ() >= -3400 and npc.getZ() <= -3100): HellboundManager.getInstance().addTrustPoints(30) npc.broadcastPacket( NpcSay( npc.getObjectId(), 0, npc.getNpcId(), "Thank you, you saved me! I'll remember you my whole life!" )) npc.decayMe() cancelTimers(self, npc) else: if debug: print "Not on position. Currently: X: " + str( npc.getX()) + " Y: " + str(npc.getY()) + " Z: " + str( npc.getZ()) self.startQuestTimer("CheckIfSafe", 10000, npc, None) elif event == "CallKillers": if npc.isDead(): cancelTimers(self, npc) HellboundManager.getInstance().decreaseTrustPoints(30) return for object in npc.getKnownList().getKnownObjects().values(): if object != None: if isinstance(object, L2MonsterInstance): objectId = object.getNpcId() if objectId in [22347, 22344, 22346]: object.setTarget(npc) object.addDamageHate(npc, 0, 999) object.setIsRunning(True) object.getAI().setIntention( CtrlIntention.AI_INTENTION_ATTACK) self.startQuestTimer("CallKillers", 1000, npc, None) return
def onAdvEvent(self, event, npc, player): htmltext = event st = player.getQuestState(qn) if not st: return if event == "exchangeBadges": if player.getInventory().getItemByItemId(BADGE) >= 1: player.destroyItemByItemId("Kief Exchange", BADGE, 1, player, True) trustPoints = HellboundManager.getInstance().getTrustPoints() if trustPoints + 10 > 999000: points = 999000 - trustPoints else: points = 10 HellboundManager.getInstance().addTrustPoints(points) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Darion's Badge...</body></html>" elif event == "exchangeAllBadges": if player.getInventory().getItemByItemId(BADGE) >= 1: count = st.getQuestItemsCount(BADGE) player.destroyItemByItemId("Kief Exchange", BADGE, count, player, True) trustPoints = HellboundManager.getInstance().getTrustPoints() if trustPoints + (10 * count) > 999000: points = 999000 - trustPoints else: points = 10 * count HellboundManager.getInstance().addTrustPoints(points) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Darion's Badge...</body></html>" elif event == "exchangeDim": if player.getInventory().getItemByItemId(DIMLIFEFORCE) >= 1: player.destroyItemByItemId("Kief Exchange", DIMLIFEFORCE, 1, player, True) trustPoints = HellboundManager.getInstance().getTrustPoints() HellboundManager.getInstance().addTrustPoints(5) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Dim Life Force...</body></html>" elif event == "exchangeRegular": if player.getInventory().getItemByItemId(REGULARLIFEFORCE) >= 1: player.destroyItemByItemId("Kief Exchange", REGULARLIFEFORCE, 1, player, True) HellboundManager.getInstance().addTrustPoints(10) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Regular Life Force...</body></html>" elif event == "exchangeContained": if player.getInventory().getItemByItemId(CONTAINEDLIFEFORCE) >= 1: player.destroyItemByItemId("Kief Exchange", CONTAINEDLIFEFORCE, 1, player, True) HellboundManager.getInstance().addTrustPoints(25) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Contained Life Force...</body></html>" return htmltext
def onKill (self,npc,player,isPet): npcId = npc.getNpcId() if NATIVE_CLAN.has_key(npcId): HellboundManager.getInstance().decreaseTrustPoints(NATIVE_CLAN[npcId] * QUEST_RATE) else: hellboundLevel = HellboundManager.getInstance().getHellboundLevel() if npcId in MOBS_LVL1 and hellboundLevel == 1: HellboundManager.getInstance().addTrustPoints(MOBS_LVL1[npcId] * QUEST_RATE) elif npcId in MOBS_LVL2 and hellboundLevel == 2: HellboundManager.getInstance().addTrustPoints(MOBS_LVL2[npcId] * QUEST_RATE) elif npcId in MOBS_LVL3 and hellboundLevel == 3: HellboundManager.getInstance().addTrustPoints(MOBS_LVL3[npcId] * QUEST_RATE) elif npcId in MOBS_LVL4 and hellboundLevel == 4: HellboundManager.getInstance().addTrustPoints(MOBS_LVL4[npcId] * QUEST_RATE) elif npcId in MOBS_LVL6 and hellboundLevel == 6: HellboundManager.getInstance().addTrustPoints(MOBS_LVL6[npcId] * QUEST_RATE) elif npcId in MOBS_LVL8 and hellboundLevel == 8: HellboundManager.getInstance().addTrustPoints(MOBS_LVL8[npcId] * QUEST_RATE) return
def onAdvEvent (self,event,npc,player): htmltext = event st = player.getQuestState(qn) if not st: return if event == "exchangeBadges": if player.getInventory().getItemByItemId(BADGE) >= 1: player.destroyItemByItemId("Kief Exchange", BADGE, 1, player, True) trustPoints = HellboundManager.getInstance().getTrustPoints() if trustPoints + 10 > 999000: points = 999000 - trustPoints else: points = 10 HellboundManager.getInstance().addTrustPoints(points) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Darion's Badge...</body></html>" elif event == "exchangeAllBadges": if player.getInventory().getItemByItemId(BADGE) >= 1: count = st.getQuestItemsCount(BADGE) player.destroyItemByItemId("Kief Exchange", BADGE, count, player, True) trustPoints = HellboundManager.getInstance().getTrustPoints() if trustPoints + (10 * count) > 999000: points = 999000 - trustPoints else: points = 10 * count HellboundManager.getInstance().addTrustPoints(points) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Darion's Badge...</body></html>" elif event == "exchangeDim": if player.getInventory().getItemByItemId(DIMLIFEFORCE) >= 1: player.destroyItemByItemId("Kief Exchange", DIMLIFEFORCE, 1, player, True) trustPoints = HellboundManager.getInstance().getTrustPoints() HellboundManager.getInstance().addTrustPoints(5) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Dim Life Force...</body></html>" elif event == "exchangeRegular": if player.getInventory().getItemByItemId(REGULARLIFEFORCE) >= 1: player.destroyItemByItemId("Kief Exchange", REGULARLIFEFORCE, 1, player, True) HellboundManager.getInstance().addTrustPoints(10) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Regular Life Force...</body></html>" elif event == "exchangeContained": if player.getInventory().getItemByItemId(CONTAINEDLIFEFORCE) >= 1: player.destroyItemByItemId("Kief Exchange", CONTAINEDLIFEFORCE, 1, player, True) HellboundManager.getInstance().addTrustPoints(25) htmltext = "kief_thanks.htm" else: htmltext = "<html><body>You don't have any Contained Life Force...</body></html>" return htmltext
def checkWarpGate(): open = HellboundManager.getInstance().isWarpgateActive() return open