HellyHanson 13 Опубликовано 24 января, 2014 Нужна помощь знатоков питона! Вроде все делаю верно скрипт: elif event == "reload" : st.getPlayer().restoreCP() st.getPlayer().restoreHP() st.getPlayer().restoreMP() htmltext = "1.htm" хтмлка <td align=center><button value="Восстановить" action="bypass -h Quest 9990_buffer reload" Но в итоге выходит вот это: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Detect 618 Опубликовано 24 января, 2014 Нужна помощь знатоков питона! Вроде все делаю верно скрипт: elif event == "reload" : st.getPlayer().restoreCP() st.getPlayer().restoreHP() st.getPlayer().restoreMP() htmltext = "1.htm" хтмлка <td align=center><button value="Восстановить" action="bypass -h Quest 9990_buffer reload" Но в итоге выходит вот это: не знаю важно ли , но пишется вроде бы не большими restoreHP а restoreHp Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HellyHanson 13 Опубликовано 24 января, 2014 Попробовал к сожалению не получилось. Гс ругается теперь на restoreCp Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xpalarmax 25 Опубликовано 24 января, 2014 Попробовал к сожалению не получилось. Гс ругается теперь на restoreCp Скинь полный скрипт для рассмотрения Кто знает какую кодировку надо для питона, так как вместо слова допустим "Привет" получаю "и5>:" насколько я понял ютф не подходит однозначно. (- Написал нпц статиста пк\пвп\клан\богатей а потерялся в самом простом -) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HellyHanson 13 Опубликовано 24 января, 2014 Скинь полный скрипт для рассмотрения Кто знает какую кодировку надо для питона, так как вместо слова допустим "Привет" получаю "и5>:" насколько я понял ютф не подходит однозначно. (- Написал нпц статиста пк\пвп\клан\богатей а потерялся в самом простом -) вот import sysfrom com.l2jfrozen.util.database import L2DatabaseFactoryfrom com.l2jfrozen.gameserver.model.quest import Statefrom com.l2jfrozen.gameserver.model.quest import QuestStatefrom com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuestfrom com.l2jfrozen.gameserver.model.actor.instance import L2PcInstancefrom com.l2jfrozen.gameserver.model import L2Skillfrom java.util import Iteratorfrom com.l2jfrozen.gameserver.datatables import SkillTableqn = "9990_buffer"NPC = [40001]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 = -1QuestName = "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 = 1elif 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 htmltextdef onTalk (self, npc, player):htmltext = "1.htm"st = player.getQuestState(qn)if not st : return htmltextnpcId = npc.getNpcId()return htmltextQUEST = 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) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gatsby 269 Опубликовано 24 января, 2014 (изменено) Попробовал к сожалению не получилось. Гс ругается теперь на restoreCp Значит зделайте restoreCP с логикой туго ? Изменено 24 января, 2014 пользователем Gatsby Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Silentium 592 Опубликовано 24 января, 2014 На сколько я помню, на l2j мето немного по-дургому выглядит. Поищите его в ядре и посмотрите как работает метод. Возможно, ему требуется значение getMaxHp. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HellyHanson 13 Опубликовано 24 января, 2014 Значит зделайте restoreCP с логикой туго ? Нет не туго. Все варианты уже перепробывал Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xpalarmax 25 Опубликовано 24 января, 2014 На сколько я помню, на l2j мето немного по-дургому выглядит. Поищите его в ядре и посмотрите как работает метод. Возможно, ему требуется значение getMaxHp. Согласен. Хотя мне показалось как нету или не хватает st.setState могу ошибаться Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HellyHanson 13 Опубликовано 24 января, 2014 На сколько я помню, на l2j мето немного по-дургому выглядит. Поищите его в ядре и посмотрите как работает метод. Возможно, ему требуется значение getMaxHp. Не работает...скрипт по моему и писался специально для л2ж Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 24 января, 2014 Кто знает какую кодировку надо для питона, так как вместо слова допустим "Привет" получаю "и5>:" насколько я понял ютф не подходит однозначно. (- Написал нпц статиста пк\пвп\клан\богатей а потерялся в самом простом -) Чтобы писать кирилицу на питоне, нужно все загонять под таблицу /u042b - вот так например один символ будет выглядеть. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xpalarmax 25 Опубликовано 24 января, 2014 Чтобы писать кирилицу на питоне, нужно все загонять под таблицу /u042b - вот так например один символ будет выглядеть. Благодарю волшебник уже опробовал и пашет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 24 января, 2014 Нужна помощь знатоков питона! Вроде все делаю верно скрипт: elif event == "reload" : st.getPlayer().restoreCP() st.getPlayer().restoreHP() st.getPlayer().restoreMP() htmltext = "1.htm" хтмлка <td align=center><button value="Восстановить" action="bypass -h Quest 9990_buffer reload" st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHP(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMP(st.getPlayer().getMaxMp()) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты