BeLka 0 Опубликовано 3 сентября, 2014 При загрузке всё в порядке. Но при использовании, выдаёт ошибку. Итем забирает, а ни карму ни пк не снимает, в игре "script error". Не хватает импорта? Подскажите что ещё нужно ему))). Сборка Lucera. Вот код: import sys from ru.catssoftware.gameserver.model.quest import State from ru.catssoftware.gameserver.model.quest import QuestState from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest from ru.catssoftware.gameserver.model.actor.instance import L2PcInstance qn = "17_NoKarma" NPC = 30945 ITEM_ID = 4037 COUNT_1 = 1 KARMA = 0 COUNT_2 = 2 PK = 10 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) : htmltext = event if event == "1": count=st.getQuestItemsCount(ITEM_ID) if count < COUNT_1 : return "noitem.htm" else: st.takeItems(ITEM_ID,COUNT_1) st.player.getKarma(KARMA) st.playSound("ItemSound.quest_finish") return "gratkarma.htm" st.setState(State.COMPLETED) if event == "2": count=st.getQuestItemsCount(ITEM_ID) if count < COUNT_2 : return "noitem.htm" else: st.takeItems(ITEM_ID,COUNT_2) st.player.getPkKills(PK) st.playSound("ItemSound.quest_finish") return "gratpk.htm" st.setState(State.COMPLETED) if htmltext != event: st.setState(State.COMPLETED) st.exitQuest(1) return htmltext def onTalk (self,npc,player) : st = player.getQuestState(qn) npcId = npc.getNpcId() htmltext = "noreliz.htm" if not st : return htmltext if npcId == NPC: htmltext = "main.htm" return htmltext QUEST = Quest(17,qn,"custom") QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) Ошибка в логе при попытке очищения кармы: Traceback (innermost last): File "__init__.py", line 29, in onEvent TypeError: getKarma(): expected 0 args; got 1 at org.python.core.Py.TypeError(Unknown Source) at org.python.core.PyReflectedFunction.throwError(Unknown Source) at org.python.core.PyReflectedFunction.throwArgCountError(Unknown Source) at org.python.core.PyReflectedFunction.throwError(Unknown Source) at org.python.core.PyReflectedFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyInstance.invoke(Unknown Source) at org.python.pycode.serializable._pyx1409710167273.onEvent$3(__init__.py:29) at org.python.pycode.serializable._pyx1409710167273.call_function(__init__.py) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyObject._jcallexc(Unknown Source) at org.python.core.PyObject._jcall(Unknown Source) at org.python.proxies.main$Quest$12.onEvent(Unknown Source) at ru.catssoftware.gameserver.model.quest.Quest.onAdvEvent(Quest.java:651) at ru.catssoftware.gameserver.model.quest.Quest.notifyEvent(Quest.java:474) at ru.catssoftware.gameserver.model.actor.instance.L2PcInstance.processQuestEvent(L2PcInstance.java:1460) at ru.catssoftware.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:219) at ru.catssoftware.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:67) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) line 29 - это st.player.getKarma(KARMA) При попытке снять опред. кол-во ПК, та же ошибка, только номер линейки другой))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 3 сентября, 2014 При загрузке всё в порядке. Но при использовании, выдаёт ошибку. Итем забирает, а ни карму ни пк не снимает, в игре "script error". Не хватает импорта? Подскажите что ещё нужно ему))). Сборка Lucera. Вот код: st.player.getKarma(KARMA) st.player.getPkKills(PK) Может все таки должно быть так st.player.setKarma(KARMA) st.player.setPkKills(PK) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mizuwokiru 181 Опубликовано 3 сентября, 2014 У метода getKarma нет аргументов, так как это геттер (метод, возвращающий значение переменной, недоступной вне класса). Вам же нужен сеттер на подобии setKarma. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BeLka 0 Опубликовано 3 сентября, 2014 Хорошо, setKarma работает. Но тогда как быть с PKkills? Мне нужно убрать определённое кол-во, а не установить (обновить) новое число, указанное в конфигурации. setPkKills устанавливает новое Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 3 сентября, 2014 Хорошо, setKarma работает. Но тогда как быть с PKkills? Мне нужно убрать определённое кол-во, а не установить (обновить) новое число, указанное в конфигурации. setPkKills устанавливает новое Получить то что есть отнять и записать в новое что сложного? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 3 сентября, 2014 Хорошо, setKarma работает. Но тогда как быть с PKkills? Мне нужно убрать определённое кол-во, а не установить (обновить) новое число, указанное в конфигурации. setPkKills устанавливает новое xzkaknazvat.setPvpKills(xzkaknazvat.getPvpKills() + PvpCount); пример, делайте вывод. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты