def showResult(self, player, htmString): if not player or not htmString or len(htmString) == 0: return True if htmString.endswith(".htm") or htmString.endswith(".html"): htmString = JQuest.getHtm(self, player.getHtmlPrefix(), htmString) if len(htmString) != 0: st = player.getQuestState(qn) if player.getTarget(): htmString.replace("%objectId%", str(player.getTarget().getObjectId())) htmString = htmString.replace("%playername%", player.getName()) htmString = htmString.replace("%times%", str(max(st.getInt('times'), 0))) htmString = htmString.replace("%skillSTR%", str(max(player.getSkillLevel(skillSTR), 1)-1)) htmString = htmString.replace("%skillDEX%", str(max(player.getSkillLevel(skillDEX), 1)-1)) htmString = htmString.replace("%skillCON%", str(max(player.getSkillLevel(skillCON), 1)-1)) htmString = htmString.replace("%skillINT%", str(max(player.getSkillLevel(skillINT), 1)-1)) htmString = htmString.replace("%skillWIT%", str(max(player.getSkillLevel(skillWIT), 1)-1)) htmString = htmString.replace("%skillMEN%", str(max(player.getSkillLevel(skillMEN), 1)-1)) htmString = htmString.replace("%freeRebirthPoint%", str(self.getFreeRebirthPoint(player))) htmString = htmString.replace("%maxRebirthPoint%", str(maxRebirthPoint)) htmString = htmString.replace("%levelAfterRebirth%", str(levelAfterRebirth)) htmString = htmString.replace("%require_level%", str(requireLevel)) htmString = htmString.replace("%require_item_count_1%", str(requireItem[0][1])) html = NpcHtmlMessage(player.getTarget().getObjectId()) html.setHtml(htmString) player.sendPacket(html) return htmString
def useVoicedCommand(self, command, player, params): def get_class_desc(cid): try: return ClassListData.getInstance().getClass(cid).getClientCode() except: return CharTemplateTable.getInstance().getClassNameById(cid) def make_link(sci, desc): return "<a action=\"bypass -h voice .%(vcn)s %(sci)d\">%(desc)s</a><br>" % {"desc":desc,"vcn":self.commands[0],"sci":sci} def check(p): if p.isInCombat() or p.isDead(): return False if isinstance(p, L2PcInstance): if p.isInStoreMode() or p.isInCraftMode() or p.isFakeDeath() or not p.isOnline() or p.isFishing(): return False return True if params: if int(params) > len(player.getSubClasses()): return if not player.getFloodProtectors().getSubclass().tryPerformAction("change class"): return if player.getClassIndex() == int(params): return if not check(player): return player.setActiveClass(int(params)) player.sendPacket(SystemMessageId.SUBCLASS_TRANSFER_COMPLETED) return r = make_link(0, get_class_desc(player.getBaseClass())) sc = player.getSubClasses() for i in sc: r += make_link(i, get_class_desc(sc[i].getClassId())) htmString = self.htm_header + r + self.htm_footer html = NpcHtmlMessage(player.getObjectId()) html.setHtml(htmString) player.sendPacket(html)
def useVoicedCommand(self, command, player, params): def get_class_desc(cid): try: return ClassListData.getInstance().getClass( cid).getClientCode() except: return CharTemplateTable.getInstance().getClassNameById(cid) def make_link(sci, desc): return "<a action=\"bypass -h voice .%(vcn)s %(sci)d\">%(desc)s</a><br>" % { "desc": desc, "vcn": self.commands[0], "sci": sci } def check(p): if p.isInCombat() or p.isDead(): return False if isinstance(p, L2PcInstance): if p.isInStoreMode() or p.isInCraftMode() or p.isFakeDeath( ) or not p.isOnline() or p.isFishing(): return False return True if params: if int(params) > len(player.getSubClasses()): return if not player.getFloodProtectors().getSubclass().tryPerformAction( "change class"): return if player.getClassIndex() == int(params): return if not check(player): return player.setActiveClass(int(params)) player.sendPacket(SystemMessageId.SUBCLASS_TRANSFER_COMPLETED) return r = make_link(0, get_class_desc(player.getBaseClass())) sc = player.getSubClasses() for i in sc: r += make_link(i, get_class_desc(sc[i].getClassId())) htmString = self.htm_header + r + self.htm_footer html = NpcHtmlMessage(player.getObjectId()) html.setHtml(htmString) player.sendPacket(html)
def showResult(self, player, htmString): if not player or not htmString or len(htmString) == 0: return True if htmString.endswith(".htm") or htmString.endswith(".html"): htmString = JQuest.getHtm(self, player.getHtmlPrefix(), htmString) if len(htmString) != 0: st = player.getQuestState(qn) if player.getTarget(): htmString.replace("%objectId%", str(player.getTarget().getObjectId())) htmString = htmString.replace("%playername%", player.getName()) htmString = htmString.replace("%times%", str(max(st.getInt('times'), 0))) htmString = htmString.replace( "%skillSTR%", str(max(player.getSkillLevel(skillSTR), 1) - 1)) htmString = htmString.replace( "%skillDEX%", str(max(player.getSkillLevel(skillDEX), 1) - 1)) htmString = htmString.replace( "%skillCON%", str(max(player.getSkillLevel(skillCON), 1) - 1)) htmString = htmString.replace( "%skillINT%", str(max(player.getSkillLevel(skillINT), 1) - 1)) htmString = htmString.replace( "%skillWIT%", str(max(player.getSkillLevel(skillWIT), 1) - 1)) htmString = htmString.replace( "%skillMEN%", str(max(player.getSkillLevel(skillMEN), 1) - 1)) htmString = htmString.replace( "%freeRebirthPoint%", str(self.getFreeRebirthPoint(player))) htmString = htmString.replace("%maxRebirthPoint%", str(maxRebirthPoint)) htmString = htmString.replace("%levelAfterRebirth%", str(levelAfterRebirth)) htmString = htmString.replace("%require_level%", str(requireLevel)) htmString = htmString.replace("%require_item_count_1%", str(requireItem[0][1])) html = NpcHtmlMessage(player.getTarget().getObjectId()) html.setHtml(htmString) player.sendPacket(html) return htmString
def showResult(self, player, htmString): if not player or not htmString or len(htmString) == 0: return True if htmString.endswith(".htm") or htmString.endswith(".html"): htmString = JQuest.getHtm(self, player.getHtmlPrefix(), htmString) if len(htmString) != 0: st = player.getQuestState(self.qn) if player.getTarget(): htmString.replace("%objectId%", str(player.getTarget().getObjectId())) htmString = htmString.replace("%playername%", player.getName()) myBuffList = self.getMyBuffList(st) if myBuffList: myBuffList = myBuffList.split() myBuffList = filter(lambda b: b in self.allowBuffList, myBuffList) for i in myBuffList: # htmString = htmString.replace('%'+i+'%', '_checked') htmString = htmString.replace('%'+i+'%', 'bgcolor=903000') for i in self.allowBuffList: htmString = htmString.replace('%'+i+'%', '') html = NpcHtmlMessage(player.getTarget().getObjectId()) html.setHtml(htmString) player.sendPacket(html) return htmString
def showQuestion(self, player): st = player.getQuestState(self.qn) if not st: st = self.newQuestState(player) st.setState(State.STARTED) q = self.getQuestion() self.info("%s %s %s %s" % (self.qn, player, q[0], q[1])) st.set('answer', str(q[1])) self.showScreenMessage(player, "%s\n%s\n%s" % (self.title, self.desc, q[0]), self.question_duration) if self.isShowHtml: player.sendPacket( NpcHtmlMessage( player.getObjectId(), "<html><body>%s<br>%s<br>%s</body></html>" % (self.title, self.desc, q[0])))
def useVoicedCommand(self, command, player, params): if not player.isGM(): return mobid = 0 max_mob = Random().nextInt(3) + 1 dist = 400 perm = False try: if params: param = params.split() mobid = int(param[0]) max_mob = int(param[1]) dist = int(param[2]) perm = param[3].lower( ) == "true" or param[3] == "1" or param[3] == "永久" except: pass def my_spawn(player, mobid, dist, perm): mobt = NpcTable.getInstance().getTemplate(mobid) if not mobt: return spawn = L2Spawn(mobt) spawn.setInstanceId(0) if Config.SAVE_GMSPAWN_ON_CUSTOM: spawn.setCustom(True) spawn.setLocx(player.getX() - dist + Random().nextInt(dist * 2)) spawn.setLocy(player.getY() - dist + Random().nextInt(dist * 2)) spawn.setLocz(player.getZ()) spawn.setHeading(player.getHeading()) spawn.setAmount(1) spawn.setRespawnDelay(0) if perm: SpawnTable.getInstance().addNewSpawn(spawn, True) spawn.init() else: spawn.stopRespawn() spawn.doSpawn() if mobid: for mob in xrange(max_mob): my_spawn(player, mobid, dist, perm) player.sendPacket( NpcHtmlMessage(player.getObjectId(), self.html_spawn_input))