Astons 45 Опубликовано 22 октября, 2012 вот хочу поменять ети импорты import sys from com.l2jfrozen.gameserver.datatables import SkillTable from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.model import L2Augmentation from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jfrozen.util.random import Rnd from com.l2jfrozen.util.database import L2DatabaseFactory from com.l2jfrozen.gameserver.templates import L2EtcItemType from com.l2jfrozen.gameserver.templates import L2WeaponType from com.l2jfrozen.gameserver.templates import L2Item from com.l2jfrozen.gameserver.network.serverpackets import InventoryUpdate from java.lang import System # #@author KFan #ICQ: 604883692 #Skype: Kotyara20141 # NPC_ID = 60007 ITEM_ID = 57 #ITEM_COUNT = 0 #Do not need a subject ITEM_COUNT = 1 #A player can learn just one skill? 1 = true 0 = false ONLY_ONE = 0 qn = "9994_skill_trader" print "9994_skill_trader Loading Started" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onTalk (self,npc,player): st = player.getQuestState(qn) htmltext = "I have nothing to say you" npcId = npc.getNpcId() if not st : return cond = st.getInt("cond") onlyone = st.getInt("onlyone") if ONLY_ONE : if onlyone > 0 : return "fail.htm" if cond >= 0 : st.set("cond", "1") st.setState(STARTED) htmltext = "start.htm" return htmltext def onEvent (self,event,st) : htmltext = event cond = st.getInt("cond") if event == "buy" : htmltext = "buy.htm" elif event.startswith('buy_') : if st.getQuestItemsCount(ITEM_ID) <= ITEM_COUNT : return "n-money.htm" buy_skill = str(event.replace("buy_", "")) buy_skill_splite = buy_skill.split('_') st.takeItems(ITEM_ID, ITEM_COUNT) st.getPlayer().addSkill(SkillTable.getInstance().getInfo(int(buy_skill_splite[0]), int(buy_skill_splite[1]))) if ONLY_ONE : st.set("onlyone", "1") st.set("cond", "0") st.setState(COMPLETED) htmltext = "buy.htm" return htmltext QUEST = Quest( -1, qn, "custom") CREATED = State('Start', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC_ID) QUEST.addTalkId(NPC_ID) Под сборку Pw но нерозберусь 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1stTester 121 Опубликовано 22 октября, 2012 from com.l2jfrozen.gameserver.datatables import SkillTable from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.model import L2Augmentation from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jfrozen.util.random import Rnd from com.l2jfrozen.util.database import L2DatabaseFactory from com.l2jfrozen.gameserver.templates import L2EtcItemType from com.l2jfrozen.gameserver.templates import L2WeaponType from com.l2jfrozen.gameserver.templates import L2Item from com.l2jfrozen.gameserver.network.serverpackets import InventoryUpdate from java.lang import System Кажется у пв такие импорты: import sys from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from net.sf.l2j.gameserver.datatables import SkillTable 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 меняешь com.l2jfrozen. на net.sf.l2j. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 22 октября, 2012 нужно указать путь Например from com.l2jfrozen.gameserver.templates import L2Item Меняем на вот такое чудо from net.sf.l2j.gameserver.templates import L2Item Все импорты можно посмотреть в других квестах(Поиск - самый быстрый вариант, вбиваем например Rnd и оно вам это находит) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Кажется у пв такие импорты: import sys from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from net.sf.l2j.gameserver.datatables import SkillTable 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 меняешь com.l2jfrozen. на net.sf.l2j. шас попробуем 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Чото не пашет вот Failed executing script: /root/server/gameserver/data/scripts/quests/9994_skill_trader/__init__.py. See __init__.py.error.log for details. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 В чом проблема ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 22 октября, 2012 See __init__.py.error.log for details. открой и посмотри тут экстрасенсов нету Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 See __init__.py.error.log for details. открой и посмотри тут экстрасенсов нету Error on: /root/server/gameserver/data/scripts/quests/9994_skill_trader/__init__.py.error.log Line: -1 - Column: -1 No engine registered for extension (py) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 22 октября, 2012 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 22 октября, 2012 а почему в quests а не в custom Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Разница есть ? а почему в quests а не в custom А разница есть ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 22 октября, 2012 что мешает проверить, добавьте в custom, и естественно в script.cfg смените место расположения Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Серовно не пашеи мб импорт неправельный? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Добавил уже проверял таже сама фигня ( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 22 октября, 2012 (изменено) Если вы переписываете что-то с фрозенов на питоне под другую сборку, то обьязательно нужно изменить часть кода, потому что оно так не будет работать. Если вы импорты сменили то это уже плюс, но надо сменить и концовку(В некоторых случаях это обязательно) Я сам не силён в питоне, но помоч попробую Скиньте мне любой квест со сборки пв, я попробую сделать под вашу сборку то что вы описали выше. QUEST = Quest( -1, qn, "custom") CREATED = State('Start', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC_ID) QUEST.addTalkId(NPC_ID) Изменено 22 октября, 2012 пользователем Westernous Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Узнал я причину он питон наверно непотдержует, кто может сделать под java Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 22 октября, 2012 что за бред?работает там питон, ты что-то не так делаешь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 что за бред?работает там питон, ты что-то не так делаешь Я те базарю все так Мож скинуть любую фигню какуюто на питоне под пв рабочую 100 % для проверки Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Мб гдето чтото в конфигах урубить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 22 октября, 2012 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 java.lang import System qn = "q8016_HeroWeapons" NPC = 31688 ITEM = 4355 COST = 1 INAME = "Blue Eva" HERO_ITEMS = { 6611:["weapon_the_sword_of_hero_i00","Infinity Blade","During a critical attack, decreases one's P. Def and increases de-buff casting ability, damage shield effect, Max HP, Max MP, Max CP, and shield defense power. Also enhances damage to target during PvP.","297/137","Sword"], 6612:["weapon_the_two_handed_sword_of_hero_i00","Infinity Cleaver","Increases Max HP, Max CP, critical power and critical chance. Inflicts extra damage when a critical attack occurs and has possibility of reflecting the skill back on the player. Also enhances damage to target during PvP.","361/137","Double Handed Sword"], 6613:["weapon_the_axe_of_hero_i00","Infinity Axe","During a critical attack, it bestows one the ability to cause internal conflict to one's opponent. Damage shield function, Max HP, Max MP, Max CP as well as one's shield defense rate are increased. It also enhances damage to one's opponent during PvP.","297/137","Blunt"], 6614:["weapon_the_mace_of_hero_i00","Infinity Rod","When good magic is casted upon a target, increases MaxMP, MaxCP, Casting Spd, and MP regeneration rate. Also recovers HP 100% and enhances damage to target during PvP.","238/182","Blunt"], 6615:["weapon_the_hammer_of_hero_i00","Infinity Crusher","Increases MaxHP, MaxCP, and Atk. Spd. Stuns a target when a critical attack occurs and has possibility of reflecting the skill back on the player. Also enhances damage to target during PvP.","361/137","Blunt"], 6616:["weapon_the_staff_of_hero_i00","Infinity Scepter","When casting good magic, it can recover HP by 100% at a certain rate, increases MAX MP, MaxCP, M. Atk., lower MP Consumption, increases the Magic Critical rate, and reduce the Magic Cancel. Enhances damage to target during PvP.","290/182","Blunt"], 6617:["weapon_the_dagger_of_hero_i00","Infinity Stinger","Increases MaxMP, MaxCP, Atk. Spd., MP regen rate, and the success rate of Mortal and Deadly Blow from the back of the target. Silences the target when a critical attack occurs and has Vampiric Rage effect. Also enhances damage to target during PvP.","260/137","Dagger"], 6618:["weapon_the_fist_of_hero_i00","Infinity Fang","Increases MaxHP, MaxMP, MaxCP and evasion. Stuns a target when a critical attack occurs and has possibility of reflecting the skill back on the player at a certain probability rate. Also enhances damage to target during PvP.","361/137","Dual Fist"], 6619:["weapon_the_bow_of_hero_i00","Infinity Bow","Increases MaxMP/MaxCP and decreases re-use delay of a bow. Slows target when a critical attack occurs and has Cheap Shot effect. Also enhances damage to target during PvP.","614/137","Bow"], 6620:["weapon_the_dualsword_of_hero_i00","Infinity Wing","When a critical attack occurs, increases MaxHP, MaxMP, MaxCP and critical chance. Silences the target and has possibility of reflecting the skill back on the target. Also enhances damage to target during PvP.","361/137","Dual Sword"], 6621:["weapon_the_pole_of_hero_i00","Infinity Spear","During a critical attack, increases MaxHP, Max CP, Atk. Spd. and Accuracy. Casts dispel on a target and has possibility of reflecting the skill back on the target. Also enhances damage to target during PvP.","297/137","Pole"], } 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)+" "+INAME+"</font></body></html>" return htmltext elif not player.isHero(): htmltext = "<html><body>Вы не герой..)</font></body></html>" return htmltext htmltext = "<html><body><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><font color=LEVEL>Обмен хиро-пушек</font></td></tr></table><br>" count = 0 for i in HERO_ITEMS.keys(): if st.getQuestItemsCount(i) == 1: count=1 myweapon = i st.set("my",str(myweapon)) if count == 1: htmltext += "<table width=260><tr><td></td><td>Ваша пушка</td></tr>" htmltext += "<tr><td><img src=icon."+HERO_ITEMS[0]+" width=32 height=32></td><td><font color=7fff00>"+HERO_ITEMS[1]+"</font></td></tr>" else: htmltext = "<html><body>Нечего менять</font></body></html>" return htmltext htmltext += "<tr><td></td><td>На</td></tr>" for k in HERO_ITEMS.keys(): if k != myweapon: htmltext += "<tr><td><img src=icon."+HERO_ITEMS[k][0]+" width=32 height=32></td><td><a action=\"bypass -h Quest q8016_HeroWeapons step2_"+str(k)+"\">"+HERO_ITEMS[k][1]+"</a></td></tr>" htmltext += "</table><br><br>" htmltext += "<img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></body></html>" elif event.startswith("step2_"): weapon2 = int(event.replace("step2_", "")) st.set("want",str(weapon2)) htmltext = "<html><body>Обмен хиро-пушек:<br>Берем эту?<br><br><table width=300>" htmltext += "<tr><td><img src=\"Icon."+HERO_ITEMS[weapon2][0]+"\" width=32 height=32></td><td>"+HERO_ITEMS[weapon2][1]+"</td></tr></table><br>" htmltext += "P.atk/M.atk: "+HERO_ITEMS[weapon2][3]+"<br>" htmltext += "Описание:<br1>" htmltext += ""+HERO_ITEMS[weapon2][2]+"<br><br>" htmltext += "<a action=\"bypass -h Quest q8016_HeroWeapons step3\">Обменять.</a><br><br>" htmltext += "<a action=\"bypass -h Quest q8016_HeroWeapons spisok\">Вернуться.</a></body></html>" elif event.startswith("step3"): weapon1 = st.getInt("my") weapon2 = st.getInt("want") st.takeItems(ITEM,COST) st.takeItems(weapon1,1) st.giveItems(weapon2,1) htmltext = "<html><body>Обмен хиро-пушек:<br>Готово.<br></body></html>" 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: self.startQuestTimer("spisok",100,None,player) return QUEST = Quest(8016,qn,"custom") CREATED = State('Start', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 22 октября, 2012 (изменено) Я ответил уже что нужно сделать P.S не видел что написал taste, вот проверь то что он выложил Изменено 22 октября, 2012 пользователем Westernous Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Неработает везде пишет вот ету херню Error on: /root/server/gameserver/data/scripts/custom/9994_skill_trader/__init__.py.error.log Line: -1 - Column: -1 No engine registered for extension (py) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 22 октября, 2012 у меня все квесты на питоне которые я переносил с фрозена на пв работают вот как пример http://l2maxi.ru/java/addons/1794-donat-shop-dlya-servera-interlude.html все скрипты с этого шопа у меня работают на пв 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Astons 45 Опубликовано 22 октября, 2012 Может здесь путь вказивать не в scripts.cfg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 22 октября, 2012 Скинь мне любой квест со сборки пв я посмотрю в чём проблема. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты