dima564 0 Опубликовано 30 августа, 2012 (изменено) Ошибка в скрипте File "_init_.py", line 71, in onEvent TypeError: addSkill<>: 1st arg cant be coerced to com.l2jfrozen.gameserver.model.L2Skill Сам скрипт 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) ownerid = st.getPlayer().getObjectId() htmltext = "<html><head><body>I have nothing to say you</body></html>" 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") ownerid = st.getPlayer().getObjectId() 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]))) skill_name = st.getPlayer().addSkill(SkillTable.getInstance().getInfo(int(buy_skill_splite[0]), int(buy_skill_splite[1])).getName()) con=L2DatabaseFactory.getInstance().getConnection() sql=con.prepareStatement("INSERT INTO character_skills (char_obj_id, skill_id, skill_level, skill_name) VALUES (?,?,?,?)") sql.setInt(1, ownerid) sql.setInt(2, int(buy_skill_splite[0])) sql.setInt(3, int(buy_skill_splite[1])) sql.setString(4, str(skill_name)) rs=sql.executeQuery() con.close() 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) Изменено 30 августа, 2012 пользователем dima564 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Norob 4 Опубликовано 30 августа, 2012 Не правельно вопрос задал, ты должен был обратится к KFan, так как его копирайты видны в скрипте. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dima564 0 Опубликовано 30 августа, 2012 да писал я ему он не хочет в этом разбираться, поэтому обращаюсь к знающим людям что бы помогли Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TrueMan 742 Опубликовано 30 августа, 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.gameserver.model.L2Skill 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) ownerid = st.getPlayer().getObjectId() htmltext = "<html><head><body>I have nothing to say you</body></html>" 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") ownerid = st.getPlayer().getObjectId() 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]))) skill_name = st.getPlayer().addSkill(SkillTable.getInstance().getInfo(int(buy_skill_splite[0]), int(buy_skill_splite[1])).getName()) con=L2DatabaseFactory.getInstance().getConnection() sql=con.prepareStatement("INSERT INTO character_skills (char_obj_id, skill_id, skill_level, skill_name) VALUES (?,?,?,?)") sql.setInt(1, ownerid) sql.setInt(2, int(buy_skill_splite[0])) sql.setInt(3, int(buy_skill_splite[1])) sql.setString(4, str(skill_name)) rs=sql.executeQuery() con.close() 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) попробуй так, если поможет с тебя спасибка. Изменено 30 августа, 2012 пользователем TrueMan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dima564 0 Опубликовано 30 августа, 2012 спасибо, но нет так тоже не выходит( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты