elvin 8 Опубликовано 4 сентября, 2013 import sys from net.sf.l2j import L2DatabaseFactory from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from net.sf.l2j.gameserver.model import L2Skill from java.util import Iterator from net.sf.l2j.datatables import SkillTable qn = "9990_buffer" NPC = [250250] 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] ACCEPT_RESISTS = [1393, 1392, 1182, 1189, 1191, 1352, 1353, 1073] QuestId = -1 QuestName = "Buffer" QuestDesc = "custom" print qn + " Buffer l2maxi.ru (KFan)" 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(9990,qn,"custom") QUEST.addStartNpc(250250) QUEST.addTalkId(250250) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
elvin 8 Опубликовано 4 сентября, 2013 Error on: D:\Server\L2jx_30.05.2012\gameserver\data\scripts\custom\9990_buffer\__init__.py.error.log Line: -1 - Column: -1 Traceback (innermost last): File "__init__.py", line 10, in ? ImportError: no module named datatables Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
localhost 715 Опубликовано 4 сентября, 2013 (изменено) from net.sf.l2j.datatables import SkillTable на from net.sf.l2j.gameserver.datatables import SkillTable Изменено 4 сентября, 2013 пользователем localhost Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
elvin 8 Опубликовано 4 сентября, 2013 from net.sf.l2j.datatables import SkillTable на from net.sf.l2j.gameserver.datatables import SkillTable Traceback (innermost last): (no code object) at line 0 SyntaxError: ('invalid syntax', ('__init__.py', 29, 1, 'def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)')) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
localhost 715 Опубликовано 4 сентября, 2013 Traceback (innermost last): (no code object) at line 0 SyntaxError: ('invalid syntax', ('__init__.py', 29, 1, 'def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)')) сборка?готового дам, скрипт кривой Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
elvin 8 Опубликовано 4 сентября, 2013 сборка? готового дам, скрипт кривой l2jx Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
localhost 715 Опубликовано 4 сентября, 2013 l2jx не, под эту не дам, не работал с ней Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
elvin 8 Опубликовано 4 сентября, 2013 не, под эту не дам, не работал с ней )))))))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты