Po6oKon 177 Опубликовано 19 декабря, 2015 (изменено) Приветствую форумчане! Нужна ваша помощь, лазил по форуму искал ответы на свои вопросы, но так и не нашёл... Собственно проблема в том, есть кот с профой id 31227, в ПВ залил парочку скриптов (изменение ника цвета, покупка геройства, перенос ЛС. Решил я всё это уместить в кота с профой, сделал байпасы на кнопочки, но когда пытаюсь вызвать скрипт любой - просто закрывается диалог ( в логе ошибок нету ) В скриптах ID НПЦ я изменял на 31227 (своего кота) По пути нет русских папок и т.д., всё на английском ) <html><body> <center><img src="sek.cbui355" width=200 height=2> <br> <font color=LEVEL>Привет дружище! Я смотрю тебе что-то</font><br> <font color=LEVEL>надо? Ну смотри, не буду мешать...</font> <br><br> <img src="sek.cbui355" width=260 height=2></center> <table width=280 height=190> <tr> <td><center><button value="Получить профессию" action="bypass -h npc_%objectId%_class_master" width=120 height=20 back="firepoint_kenrix.buttonon" fore="firepoint_kenrix.buttonoff"></center></td> <td><center><button value="Покраска ника" action="bypass -h Quest q8024_ChgColor step1" width=120 height=20 back="firepoint_kenrix.buttonon" fore="firepoint_kenrix.buttonoff"></center></td> </tr> <tr> <td><center><button value="Геройство" action="bypass -h npc_%objectId%_q8019_SetHero hero" width=120 height=20 back="firepoint_kenrix.buttonon" fore="firepoint_kenrix.buttonoff"></center></td> <td><center><button value="Перенести ЛС" action="bypass -h Quest q8014_LifeStone spisok" width=120 height=20 back="firepoint_kenrix.buttonon" fore="firepoint_kenrix.buttonoff"></center></td> </tr> </table> <br> <center><img src="sek.cbui355" width=260 height=2></center> </body></html> import sys from java.util import Iterator from net.sf.l2j.util import Rnd from net.sf.l2j.gameserver.network.serverpackets import SystemMessage 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 import L2DatabaseFactory from net.sf.l2j.gameserver.templates import L2EtcItemType from net.sf.l2j.gameserver.templates import L2Item from java.lang import System from net.sf.l2j.gameserver.idfactory import IdFactory from net.sf.l2j.gameserver.model import L2ItemInstance from net.sf.l2j.gameserver.datatables import AugmentationData from net.sf.l2j.gameserver.model import L2Augmentation from net.sf.l2j.gameserver.network.serverpackets import ItemList from net.sf.l2j.gameserver.model import L2Skill from net.sf.l2j.gameserver.datatables import SkillTable qn = "q8014_LifeStone" NPC = 31227 ITEM = 4037 COST = 7 FORBIDDEN = [6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621] class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onAdvEvent (self,event,npc,player): st = player.getQuestState(qn) if event == "spisok": if st.getQuestItemsCount(ITEM) < COST: htmltext = "<html><body>Перенос Лс стоит <font color=74bff5>"+str(COST)+" Blue Eva</font></body></html>" return htmltext htmltext = "<html><body><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br><img src=\"L2UI.SquareBlank\" width=260 height=2><br1>" htmltext += "<table width=260><tr><td align=center><font color=LEVEL>Перенос ЛС</font></td></tr></table>" htmltext += "<button value=\"Выбрать пушку\" action=\"bypass -h Quest q8014_LifeStone step1\" width=80 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br1>" htmltext += "<center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></center></body></html>" elif event == "step1": htmltext = "<html><body>Перенос ЛС:<br>Откуда переносим?<br><br><table width=300>" SPWEAPONS = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt"] for Item in st.getPlayer().getInventory().getItems(): itemTemplate = Item.getItem() idtest = Item.getItemId() itype = str(Item.getItemType()) if idtest not in FORBIDDEN and Item.isAugmented() and not Item.isEquipped() and itype in SPWEAPONS: cnt = Item.getCount() count = str(cnt) grade = itemTemplate.getCrystalType() con=L2DatabaseFactory.getInstance().getConnection() listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?") listitems.setInt(1, idtest) rs=listitems.executeQuery() while (rs.next()) : icon=rs.getString("itemIcon") try : if grade == 1: pgrade = str("[D]") elif grade == 2: pgrade = str("[C]") elif grade == 3: pgrade = str("[B]") elif grade == 4: pgrade = str("[A]") elif grade == 5: pgrade = str("[S]") else: pgrade = str("") if Item.getEnchantLevel() == 0: enchant = str("") else: enchant = " +"+str(Item.getEnchantLevel())+"" htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8014_LifeStone step1next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + ""+str(pgrade)+" " + enchant + "</a></td></tr>" except : try : insertion.close() except : pass try : con.close() except : pass htmltext += "</table><br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>" elif event.startswith("step1next_"): itemObjId = int(event.replace("step1next_", "")) obj = str(itemObjId) Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId) itemTemplate = Item.getItem() if Item and not Item.isEquipped(): cnt = Item.getCount() count = str(cnt) grade = itemTemplate.getCrystalType() igrade = str(itemTemplate.getCrystalType()) itype = str(Item.getItemType()) idtest = Item.getItemId() con=L2DatabaseFactory.getInstance().getConnection() listitems=con.prepareStatement("SELECT itemIcon, skill, attributes FROM `z_market_icons` icon, `augmentations` aug WHERE icon.itemId=? AND aug.item_id=?") listitems.setInt(1, idtest) listitems.setInt(2, itemObjId) rs=listitems.executeQuery() while (rs.next()) : icon=rs.getString("itemIcon") skill=rs.getInt("skill") attributes=rs.getInt("attributes") try : st.set("oneitem",obj) st.set("skill",str(skill)) grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"} pgrade = grades.get(grade, str("")) enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("") htmltext = "<html><body>Перенос ЛС:<br>Из этой пушки переносим?<br>" htmltext += "<table width=300><tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></td></tr></table><br><br>" if skill != 0: skill = SkillTable.getInstance().getInfo(skill, 1) name = skill.getName() htmltext += "<br><font color=bef574>["+str(name)+"]</font><br>" htmltext += "<button value=\"Продолжить\" action=\"bypass -h Quest q8014_LifeStone step2\" width=60 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>" else: htmltext += "V etoi puwke net skilla" htmltext += "<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>" except : try : listitems.close() except : pass try : con.close() except : pass else : htmltext = "<html><body>Перенос ЛС:<br>Ошибка!<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>" elif event == "step2": htmltext = "<html><body>Перенос ЛС:<br>Куда переносим?<br><br><table width=300>" SPWEAPONS = ["Sword","Blunt","Dagger","Bow","Etc","Pole","Fist","Dual Sword","Dual Fist","Big Sword","Big Blunt"] weapon1 = st.getInt("oneitem") for Item in st.getPlayer().getInventory().getItems(): itemTemplate = Item.getItem() idtest = Item.getItemId() itype = str(Item.getItemType()) if idtest not in FORBIDDEN and not Item.isEquipped() and itype in SPWEAPONS and Item.getObjectId() != weapon1 and not Item.isAugmented(): grade = itemTemplate.getCrystalType() con=L2DatabaseFactory.getInstance().getConnection() listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?") listitems.setInt(1, idtest) rs=listitems.executeQuery() while (rs.next()) : icon=rs.getString("itemIcon") try : if grade == 1: pgrade = str("[D]") elif grade == 2: pgrade = str("[C]") elif grade == 3: pgrade = str("[B]") elif grade == 4: pgrade = str("[A]") elif grade == 5: pgrade = str("[S]") else: pgrade = str("") if Item.getEnchantLevel() == 0: enchant = str("") else: enchant = " +"+str(Item.getEnchantLevel())+"" htmltext += "<tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><a action=\"bypass -h Quest q8014_LifeStone step2next_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + ""+str(pgrade)+" " + enchant + "</a></td></tr>" except : try : insertion.close() except : pass try : con.close() except : pass htmltext += "</table><br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>" elif event.startswith("step2next_"): itemObjId = int(event.replace("step2next_", "")) obj = str(itemObjId) Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId) itemTemplate = Item.getItem() if Item and not Item.isAugmented() and not Item.isEquipped(): cnt = Item.getCount() count = str(cnt) grade = itemTemplate.getCrystalType() igrade = str(itemTemplate.getCrystalType()) itype = str(Item.getItemType()) idtest = Item.getItemId() con=L2DatabaseFactory.getInstance().getConnection() listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?") listitems.setInt(1, idtest) rs=listitems.executeQuery() while (rs.next()) : icon=rs.getString("itemIcon") try : st.set("twoitem",obj) st.set("lcount",count) st.set("grade",igrade) st.set("type",itype) grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"} pgrade = grades.get(grade, str("")) enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("") htmltext = "<html><body>Перенос ЛС:<br>В эту пушку переносим?<br>" htmltext += "<table width=300><tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></td></tr></table><br><br>" htmltext += "<button value=\"Продолжить\" action=\"bypass -h Quest q8014_LifeStone step3\" width=60 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>" htmltext += "<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>" except : try : listitems.close() except : pass try : con.close() except : pass else : htmltext = "<html><body>Перенос Лс:<br>Ошибка!<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>" elif event.startswith("step3"): weapon1 = st.getInt("oneitem") weapon2 = st.getInt("twoitem") skillp = st.getInt("skill") htmltext = "<html><body>Перенос ЛС:<br>Подтверждаете?<br>" skill = SkillTable.getInstance().getInfo(skillp, 1) name = skill.getName() htmltext += "<font color=bef574>["+str(name)+"]</font><br>" htmltext += "Из:" Item = st.getPlayer().getInventory().getItemByObjectId(weapon1) itemTemplate = Item.getItem() if Item and Item.isAugmented() and not Item.isEquipped(): cnt = Item.getCount() count = str(cnt) grade = itemTemplate.getCrystalType() igrade = str(itemTemplate.getCrystalType()) itype = str(Item.getItemType()) idtest = Item.getItemId() con=L2DatabaseFactory.getInstance().getConnection() listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?") listitems.setInt(1, idtest) rs=listitems.executeQuery() while (rs.next()) : icon=rs.getString("itemIcon") try : grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"} pgrade = grades.get(grade, str("")) enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("") htmltext += "<table width=300><tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></td></tr></table><br><br>" except : try : listitems.close() except : pass try : con.close() except : pass htmltext += "В:<br>" Item = st.getPlayer().getInventory().getItemByObjectId(weapon2) itemTemplate = Item.getItem() if Item and not Item.isAugmented() and not Item.isEquipped(): cnt = Item.getCount() count = str(cnt) grade = itemTemplate.getCrystalType() igrade = str(itemTemplate.getCrystalType()) itype = str(Item.getItemType()) idtest = Item.getItemId() cons=L2DatabaseFactory.getInstance().getConnection() listitemss=cons.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?") listitemss.setInt(1, idtest) rs=listitemss.executeQuery() while (rs.next()) : icon=rs.getString("itemIcon") try : grades = {1: "d", 2: "c", 3: "b", 4: "a", 5: "s"} pgrade = grades.get(grade, str("")) enchant = (Item.getEnchantLevel() > 0 and " +"+str(Item.getEnchantLevel())+"") or str("") htmltext += "<table width=300><tr><td><img src=\"Icon."+str(icon)+"\" width=32 height=32></td><td><font color=LEVEL>" + itemTemplate.getName() + " " + enchant + "</font><img src=\"symbol.grade_"+str(pgrade)+"\" width=16 height=16><br></td></tr></table><br><br>" except : try : listitemss.close() except : pass try : cons.close() except : pass htmltext += "<button value=\"Продолжить\" action=\"bypass -h Quest q8014_LifeStone step4\" width=60 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>" else : htmltext = "<html><body>Перенос Лс:<br>Ошибка!<br><a action=\"bypass -h Quest q8014_LifeStone spisok\">Вернуться.</a></body></html>" elif event.startswith("step4"): weapon1 = st.getInt("oneitem") weapon2 = st.getInt("twoitem") htmltext = "<html><body>Перенос Лс:<br>Подождите...<br><br>" if st.getQuestItemsCount(ITEM) < COST: htmltext = "<html><body>Перенос Лс стоит <font color=74bff5>"+str(COST)+" Blue Eva</font></body></html>" return htmltext item2 = st.getPlayer().getInventory().getItemByObjectId(weapon2) item1 = st.getPlayer().getInventory().getItemByObjectId(weapon1) con=L2DatabaseFactory.getInstance().getConnection() listitems=con.prepareStatement("SELECT * FROM `augmentations` WHERE item_id=?") listitems.setInt(1, weapon1) rs=listitems.executeQuery() while (rs.next()) : attributes=rs.getInt("attributes") skill=rs.getInt("skill") try : st.takeItems(ITEM,COST) item2.setAugmentation(L2Augmentation(item2, attributes, skill, 10, True)) player.sendPacket(ItemList(player, False)) item1.removeAugmentation() skilla = SkillTable.getInstance().getInfo(skill, 1) name = skilla.getName() htmltext += "<font color=bef574>["+str(name)+"]</font> переставлен.<br>" except : try : listitems.close() except : pass try : con.close() except : pass else: htmltext = "<html><body>Перенос ЛС:<br>Oops!</body></html>" return htmltext def onTalk (self,npc,player): st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == NPC: htmltext = "privetstvie.htm" return htmltext QUEST = Quest(8014,qn,"custom") CREATED = State('Start', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) <html><body><center>Описание работы переноса ЛС:</center><br> К оплате принимаются «<font color=LEVEL>Blue Eva</font>», получить их можно, голосуя в топах. <br> Стоимость переноса ЛС: <font color=LEVEL>3 Blue Eva</font>;<br1> <br> Пушка с которой переносите и в которую переносите, должны быть не одеты.<br> Принцип:<br1> 1. Выбирате пушку из которой переносим<br1> 2. Подтверждаете<br1> 3. Выбираете пушку в которую переносим<br1> 4. Подтверждаете. 5. Общее подтверждение обеих пушек. 6. Перенос (Готово).<br> <br><a action="bypass -h Quest q8014_LifeStone spisok">Перенести Лс</a> </body></html> Изменено 19 декабря, 2015 пользователем Po6oKon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 19 декабря, 2015 Байпасы не правильные. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KAZAR 178 Опубликовано 19 декабря, 2015 так ты байпас взять профессию в донат засунь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Po6oKon 177 Опубликовано 19 декабря, 2015 Байпасы не правильные. Как мне тогда правильно будет обратиться к байпассу? К примеру LifeStone? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 19 декабря, 2015 Как мне тогда правильно будет обратиться к байпассу? К примеру LifeStone? Скрипт LifeStone не рабочий. Остальные: bypass -h npc_%objectId%_Quest q8019_SetHero bypass -h npc_%objectId%_Quest q8024_ChgColor 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Po6oKon 177 Опубликовано 19 декабря, 2015 Скрипт LifeStone не рабочий. Остальные: bypass -h npc_%objectId%_Quest q8019_SetHero bypass -h npc_%objectId%_Quest q8024_ChgColor Спасибо, я понял, пришлось делать коммьюнити боард, чтобы работали стандартные сервисы. Походу и остальные скрипты не рабочие, ибо все те же симптомы. Хотя лога нету ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 19 декабря, 2015 Спасибо, я понял, пришлось делать коммьюнити боард, чтобы работали стандартные сервисы. Походу и остальные скрипты не рабочие, ибо все те же симптомы. Хотя лога нету ) Почти все рабочие. Бери байпасс который я дал,и просто меняй в конце название скрипта (название папки). 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты