Arrow 24 Опубликовано 2 января, 2016 (изменено) Кто подскажет как сделать в бафера реген цп мп хп и 2 набора маг и физ бафов вот у меня такой скрипт import sys from com.l2jfrozen.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 = "Buffer_by_Sydhe" NPC = [50104] ACCEPT_BUFF = [1040, 1068, 1035, 1043, 1077, 1078, 1085, 1311, 1032, 1036, 1045, 1048, 4352, 4357, 4391, 4403, 4405, 1243, 1388, 1389, 1087, 1259, 1059, 1268] ACCEPT_DANCES = [271, 272, 273, 274, 275, 276, 277, 307, 309, 310, 311, 365] ACCEPT_SONGS = [364, 264, 306, 269, 270, 265, 363, 349, 308, 305, 304, 267, 266, 268] ACCEPT_CHANTS = [1251, 1252, 1253, 1284, 1006, 1007, 1009, 1362, 1310, 1309, 1308, 1391, 1390] ACCEPT_SPECIAL = [1364, 1356, 1355, 1357, 1413, 4702, 4703, 4700, 4699, 1323, 1363] ACCEPT_RESISTS = [1393, 1392, 1182, 1189, 1191, 1352, 1353, 1073] QuestId = -1 QuestName = "Buffer" QuestDesc = "custom" print qn + " Buffer l2maxi.ru " 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) в своем скрипте заметил elif event == "reload" : st.getPlayer().restoreCP() st.getPlayer().restoreHP() st.getPlayer().restoreMP() htmltext = "1.htm" прописал <tr><td><button value="хп" action="bypass -h Quest Buffer_by_Sydhe reload" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr> когда жду на хп то летит в гс 19:49:16,732 WARN Quest:788 - C:\Users\Administrator\Desktop\Sborka\gameserver\data\scripts\custom\Buffer_by_Sydhe\__init__.py Traceback (innermost last): File "__init__.py", line 51, in onEvent AttributeError: restoreHP at org.python.core.Py.AttributeError(Unknown Source) at org.python.core.PyInstance.invoke(Unknown Source) at org.python.pycode._pyx45.onEvent$3(__init__.py:51) at org.python.pycode._pyx45.call_function(__init__.py) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyObject._jcallexc(Unknown Source) at org.python.core.PyObject._jcall(Unknown Source) at org.python.proxies.main$Quest$42.onEvent(Unknown Source) at com.l2jfrozen.gameserver.model.quest.Quest.onAdvEvent(Quest.java:717) at com.l2jfrozen.gameserver.model.quest.Quest.notifyEvent(Quest.java:524) at com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance.processQuestEvent(L2PcInstance.java:2419) at com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:324) at com.l2jfrozen.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:77) at com.l2jfrozen.gameserver.network.L2GameClient.run(L2GameClient.java:1213) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Изменено 2 января, 2016 пользователем Arrow Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arrow 24 Опубликовано 2 января, 2016 (изменено) Все сделал Изменено 2 января, 2016 пользователем Arrow Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TORIN 2 Опубликовано 2 января, 2016 Чтобы не создавали подобных тем выложили бы решение. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты