def onTalk(self, npc, player): htmltext = Quest.getNoQuestMsg(player) st = player.getQuestState(qn) if not st: return htmltext clan = player.getClan() npcId = npc.getNpcId() if player.getClan() == None or player.isClanLeader() == 0: st.exitQuest(1) htmltext = "31331-0.htm" elif player.getClan().getLevel() < 5: st.exitQuest(1) htmltext = "31331-0.htm" else: cond = st.getInt("cond") id = st.getState() if id == State.CREATED and cond == 0: htmltext = "31331-1.htm" elif id == State.STARTED and cond == 1: count = st.getQuestItemsCount(Claw) if not count: htmltext = "31331-4.htm" elif count >= 1: htmltext = "31331-7.htm" # custom html st.takeItems(Claw, -1) reward = int(CLAN_POINTS_REWARD * count) clan.addReputationScore(reward, True) player.sendPacket(SystemMessage.getSystemMessage(1777).addNumber(reward)) clan.broadcastToOnlineMembers(PledgeShowInfoUpdate(clan)) return htmltext
def onAcquireSkill(self, npc, player, skill): if player.isSubClassActive(): player.sendMessage("You are trying to learn skill that u can't..") Util.handleIllegalPlayerAction( player, "Player " + player.getName() + " tried to learn skill that he can't!!!", Config.DEFAULT_PUNISH) return "false" st = player.getQuestState(qn) for i in SKILLITEMS: if skill.getId() in SUBSKILLS[i]: for var in QUESTVARSITEMS: if i in QUESTVARSITEMS[var]: for j in range(Config.MAX_SUBCLASS): qvar = st.getGlobalQuestVar(var + str(j + 1)) if qvar != "" and qvar != "0" and not qvar.endswith( ";"): Item = player.getInventory().getItemByObjectId( int(qvar)) if Item and Item.getItemId() == i: player.destroyItem(qn, int(qvar), 1, player, 0) st.saveGlobalQuestVar( var + str(j + 1), str(skill.getId()) + ";") return "true" player.sendPacket( SystemMessage.getSystemMessage( SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL)) return "false"
def onTalk(self, npc, player): htmltext = Quest.getNoQuestMsg(player) st = player.getQuestState(qn) if not st: return htmltext clan = player.getClan() npcId = npc.getNpcId() if player.getClan() == None or player.isClanLeader() == 0: st.exitQuest(1) htmltext = "31331-0a.htm" elif player.getClan().getLevel() < 6: st.exitQuest(1) htmltext = "31331-0b.htm" else: cond = st.getInt("cond") raid = st.getInt("raid") id = st.getState() if id == State.CREATED and cond == 0: htmltext = "31331-0c.htm" elif id == State.STARTED and cond == 1 and raid in REWARDS_LIST.keys( ): npc, item, min, max = REWARDS_LIST[raid] count = st.getQuestItemsCount(item) CLAN_POINTS_REWARD = Rnd.get(min, max) if not count: htmltext = "31331-" + str(raid) + "a.htm" elif count == 1: htmltext = "31331-" + str(raid) + "b.htm" st.takeItems(item, 1) clan.addReputationScore(CLAN_POINTS_REWARD, True) player.sendPacket( SystemMessage.getSystemMessage(1777).addNumber( CLAN_POINTS_REWARD)) clan.broadcastToOnlineMembers(PledgeShowInfoUpdate(clan)) return htmltext
def EvolvePet(player, item, striderControlItem): con = L2DatabaseFactory.getInstance().getConnection() statement = con.prepareStatement( "UPDATE items SET item_id =? WHERE object_id=? AND owner_id=?") statement.setInt(1, striderControlItem) statement.setInt(2, item.getObjectId()) statement.setInt(3, player.getObjectId()) statement.execute() statement.close() con.close() sm1 = SystemMessage.getSystemMessage(SystemMessageId.S2_S1_DISAPPEARED) sm1.addItemName(item.getItemId()) sm1.addNumber(1) sm2 = SystemMessage.getSystemMessage(SystemMessageId.YOU_PICKED_UP_A_S1_S2) sm2.addNumber(item.getEnchantLevel()) sm2.addItemName(striderControlItem) player.sendPacket(sm1) player.sendPacket(sm2) player.sendPacket(ItemList(player, False)) return
def getCertified(player, itemId, var): st = player.getQuestState(qn) qvar = st.getGlobalQuestVar(var) if qvar != "" and qvar != "0": return "" item = player.getInventory().addItem("Quest", itemId, 1, player, player.getTarget()) st.saveGlobalQuestVar(var, str(item.getObjectId())) smsg = SystemMessage.getSystemMessage(SystemMessageId.EARNED_ITEM_S1) smsg.addItemName(item) player.sendPacket(smsg) return
def onAcquireSkillList(self, npc, player): asl = AcquireSkillList(AcquireSkillList.SkillType.unk4) st = player.getQuestState(qn) oldSkills = player.getAllSkills() count = 0 for i in SKILLITEMS: for j in SUBSKILLS[i]: minLevel = 0 maxLevel = SkillTable.getInstance().getMaxLevel(j) for oldsk in oldSkills: if oldsk.getId() == j: minLevel = oldsk.getLevel() if minLevel < maxLevel: count += 1 asl.addSkill(j, minLevel + 1, maxLevel, 0, 0) player.sendPacket(asl) if count == 0: player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN)) return ""