Ando 1 Опубликовано 13 октября, 2013 (изменено) Всем привет. Кто поможет добавить в этот скрипт бафера import sys from com.l2jfrozen.commons.util.database import L2DatabaseFactory from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jfrozen.gameserver.model.actor.instance import L2PcInstance from com.l2jfrozen.gameserver.model import L2Skill from java.util import Iterator from com.l2jfrozen.gameserver.datatables import SkillTable qn = "9990_buffer" NPC = [40001] ACCEPT_BUFF = [1040, 1068, 1035, 1043, 1077, 1078, 1085, 1311, 1032, 1036, 1045, 1048, 4352, 4357, 4342, 4358, 4360, 1243, 1388, 1389, 1087, 1059, 1268, 1303] ACCEPT_DANCES = [271, 272, 273, 274, 275, 276, 277, 310, 365] ACCEPT_SONGS = [364, 264, 269, 265, 363, 349, 305, 304, 267, 266, 268] ACCEPT_CHANTS = [] ACCEPT_SPECIAL = [1363, 1356, 1355, 1357, 1413, ] ACCEPT_RESISTS = [] QuestId = -1 QuestName = "Buffer" QuestDesc = "custom" print qn + " Buffer by Andranik" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self, event, st): htmltext = "Sory, failed Event" ownerid = st.getPlayer().getObjectId() effects = st.getPlayer().getAllEffects() if event.startswith("page_") : page = int(event.replace("page_", "")) htmltext = str(page) + ".htm" elif event == "cancel" : st.getPlayer().stopAllEffects() htmltext = "1.htm" activePage = 1 elif event == "reload" : st.getPlayer().restoreCP() st.getPlayer().restoreHP() st.getPlayer().restoreMP() htmltext = "1.htm" elif event.startswith("buff_") : id_lvl = event.replace("buff_", "") id_lvl = id_lvl.split("_") SkillTable.getInstance().getInfo(int(id_lvl[0]), int(id_lvl[1])).getEffects(st.getPlayer(), st.getPlayer()) htmltext = str(int(id_lvl[2])) + ".htm" elif event.startswith("profile_") : act = event.replace("profile_", "") con = L2DatabaseFactory.getInstance().getConnection() if act.startswith("buff_") : act = str(int(act.replace("buff_", ""))) sql = con.prepareStatement("SELECT * FROM profile_buff WHERE char_id = ? AND pindex = ?") sql.setInt(1, int(ownerid)) sql.setInt(2, int(act)) rs = sql.executeQuery() rs.next() full_buffs = rs.getString("skills").split(";") sql.close() rs.close() for buff in full_buffs : if buff != "" : buff = buff.split(",") SkillTable.getInstance().getInfo(int(buff[0]), int(buff[1])).getEffects(st.getPlayer(), st.getPlayer()) htmltext = "1.htm" elif act.startswith("save_") : act = str(int(act.replace("save_", ""))) sqll = con.prepareStatement("DELETE FROM profile_buff WHERE char_id = ? AND pindex = ?") sqll.setInt(1, int(ownerid)) sqll.setInt(2, int(act)) sqll.execute() sqll.close() saving = "++" for eff in effects : eff_id = eff.getSkill().getId() eff_level = eff.getSkill().getLevel() if saving == "++" : if (eff_id in ACCEPT_BUFF or eff_id in ACCEPT_DANCES or eff_id in ACCEPT_SONGS or eff_id in ACCEPT_CHANTS or eff_id in ACCEPT_SPECIAL or eff_id in ACCEPT_RESISTS) : saving = str(eff_id) + "," + str(eff_level) + ";" else : if (eff_id in ACCEPT_BUFF or eff_id in ACCEPT_DANCES or eff_id in ACCEPT_SONGS or eff_id in ACCEPT_CHANTS or eff_id in ACCEPT_SPECIAL or eff_id in ACCEPT_RESISTS) : saving += str(eff_id) + "," + str(eff_level) + ";" sql = con.prepareStatement("INSERT INTO profile_buff (char_id, pindex, skills) VALUES ('" + str(ownerid) + "', '" + str(act) + "', '" + saving + "')") sql.execute() sql.close() htmltext = "8.htm" con.close() return htmltext def onTalk (self, npc, player): htmltext = "1.htm" st = player.getQuestState(qn) if not st : return htmltext npcId = npc.getNpcId() return htmltext QUEST = Quest(QuestId, qn, QuestDesc) CREATED = State('Start', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) for npcId in NPC: QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId) возможность выхиливать hp, cp, mp. Вот из другого бафера вырезал кусок скрипта для хила, но вот как его вставить чтобы ошибку не выдавало? #MP-HP if event == "71": st.takeItems st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) return "1.htm" st.setState(State.COMPLETED) Изменено 13 октября, 2013 пользователем Ando Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ando 1 Опубликовано 13 октября, 2013 обычно выходит такая ошибка Traceback (innermost last): (no code object) at line 0 SyntaxError: ('inconsistent dedent', ('__init__.py', 42, 2, ' def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)')) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iPerfect 381 Опубликовано 13 октября, 2013 обычно выходит такая ошибка Traceback (innermost last): (no code object) at line 0 SyntaxError: ('inconsistent dedent', ('__init__.py', 42, 2, ' def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)')) Залей баффера самого и то что хочешь в него вставить, сделаю скину. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
r0n1x 126 Опубликовано 14 октября, 2013 elif event == "reload" : st.getPlayer().restoreCP() st.getPlayer().restoreHP() st.getPlayer().restoreMP() htmltext = "1.htm" А это что? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ando 1 Опубликовано 14 октября, 2013 elif event == "reload" : st.getPlayer().restoreCP() st.getPlayer().restoreHP() st.getPlayer().restoreMP() htmltext = "1.htm" А это что? это часть скрипта для выхиливания Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты