| 
		
	
	
	
		
	Сообщений: 142 
	Тем: 11 
	Зарегистрирован: Oct 2012
	
 Репутация: 
186 
	
	
		Товарищи подскажите, накидал простенькой скрипт ради теста, вроде работает, но в ГС выдаёт ошибки 
сборка люцера 1
 PHP код: <?php import sys
 from ru.catssoftware.gameserver import Announcements
 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
 
 
 qn = "1230_useAnn"
 
 NPC = 40010
 
 
 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 == "annuse":
 Announcements.getInstance().announceToAll("О боже, оно работает")
 st.setState(State.COMPLETED)
 else:
 htmltext = "<html><body><br><center>Что то не работает..</center></body></html>"
 return htmltext
 
 def onTalk (self,npc,player) :
 st = player.getQuestState(qn)
 npcId = npc.getNpcId()
 htmltext = "<html><head><body>Ошибка npc</body></html>"
 if not st : return htmltext
 if  npcId == NPC:
 htmltext = "<html><head><body><a action=\"bypass -h Quest 1230_useAnn annuse\">Юзануть аннонс</a></body></html>"
 return htmltext
 
 QUEST       = Quest(1230,qn,"custom")
 QUEST.addStartNpc(NPC)
 QUEST.addTalkId(NPC)
 
 
	
	
	
		
	Сообщений: 273 
	Тем: 4 
	Зарегистрирован: May 2010
	
 Репутация: 
2,953 
	
	
		Если, он ошибки выдает, как он может работать!?)Этож питон, он так не умеет =)))
 
	
	
	
		
	Сообщений: 142 
	Тем: 11 
	Зарегистрирован: Oct 2012
	
 Репутация: 
186 
	
	
		Anikey Написал:Если, он ошибки выдает, как он может работать!?)Этож питон, он так не умеет =)))
 
Я понятия не имею = ), скрипт работает отлично в игре, в игре нажимаю и анонс пишется, но при нажатии чтобы крикнуть анонс в ГС высвечивается ошибки, чуть позже скину лог ошибки
	 
	
	
	
		
	Сообщений: 66 
	Тем: 1 
	Зарегистрирован: Dec 2011
	
 Репутация: 
240 
	
	
		Какую именно ошибку выдает?
	 
	
	
	
		
	Сообщений: 142 
	Тем: 11 
	Зарегистрирован: Oct 2012
	
 Репутация: 
186 
	
	
		Вот ошибка
 
			1 [WARN 16:07:47]: D:\serverl2\game\data\scripts\testQuest2\__init__.pyTraceback (innermost last):
 File "__init__.py", line 26, in onAdvEvent
 UnboundLocalError: local: 'htmltext'
 
 at org.python.core.Py.UnboundLocalError(Unknown Source)
 at org.python.core.PyFrame.getlocal(Unknown Source)
 at org.python.core.PyFrame.getlocal(Unknown Source)
 at org.python.pycode.serializable._pyx1357989462843.onAdvEvent$3(__init_
 _.py:26)
 at org.python.pycode.serializable._pyx1357989462843.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$324.onAdvEvent(Unknown Source)
 at ru.catssoftware.gameserver.model.quest.Quest.notifyEvent(Quest.java:4
 74)
 at ru.catssoftware.gameserver.model.actor.instance.L2PcInstance.processQ
 uestEvent(L2PcInstance.java:1460)
 at ru.catssoftware.gameserver.network.clientpackets.RequestBypassToServe
 r.runImpl(RequestBypassToServer.java:219)
 at ru.catssoftware.gameserver.network.clientpackets.L2GameClientPacket.r
 un(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)
 
 
 В игре всё нормально работает, всё выполняется , но мне чисто в учебных целях интересно что не правильно.
	 
	
	
	
		
	Сообщений: 66 
	Тем: 1 
	Зарегистрирован: Dec 2011
	
 Репутация: 
240 
	
	
		Попробуйте вот так: Код: import sysfrom ru.catssoftware.gameserver import Announcements
 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
 
 
 qn = "1230_useAnn"
 
 NPC = 40010
 
 
 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)
 [size=4][color=Red]htmltext = "<html><body>Сработало!</body></html>"[/color][/size]
 if event == "annuse":
 Announcements.getInstance().announceToAll("О боже, оно работает")
 st.setState(State.COMPLETED)
 else:
 htmltext = "<html><body><br><center>Что то не работает..</center></body></html>"
 return htmltext
 
 def onTalk (self,npc,player) :
 st = player.getQuestState(qn)
 npcId = npc.getNpcId()
 htmltext = "<html><head><body>Ошибка npc</body></html>"
 if not st : return htmltext
 if  npcId == NPC:
 htmltext = "<html><head><body><a action=\"bypass -h Quest 1230_useAnn annuse\">Юзануть аннонс</a></body></html>"
 return htmltext
 
 QUEST       = Quest(1230,qn,"custom")
 QUEST.addStartNpc(NPC)
 QUEST.addTalkId(NPC)
 
	
	
	
		
	Сообщений: 438 
	Тем: 12 
	Зарегистрирован: Aug 2010
	
 Репутация: 
2,935 
	
	
		DakChe Написал:Вот ошибка
 
			1 [WARN 16:07:47]: D:\serverl2\game\data\scripts\testQuest2\__init__.pyTraceback (innermost last):
 File "__init__.py", line 26, in onAdvEvent
 UnboundLocalError: local: 'htmltext'
 
 at org.python.core.Py.UnboundLocalError(Unknown Source)
 at org.python.core.PyFrame.getlocal(Unknown Source)
 at org.python.core.PyFrame.getlocal(Unknown Source)
 at org.python.pycode.serializable._pyx1357989462843.onAdvEvent$3(__init_
 _.py:26)
 at org.python.pycode.serializable._pyx1357989462843.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$324.onAdvEvent(Unknown Source)
 at ru.catssoftware.gameserver.model.quest.Quest.notifyEvent(Quest.java:4
 74)
 at ru.catssoftware.gameserver.model.actor.instance.L2PcInstance.processQ
 uestEvent(L2PcInstance.java:1460)
 at ru.catssoftware.gameserver.network.clientpackets.RequestBypassToServe
 r.runImpl(RequestBypassToServer.java:219)
 at ru.catssoftware.gameserver.network.clientpackets.L2GameClientPacket.r
 un(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)
 
 В игре всё нормально работает, всё выполняется , но мне чисто в учебных целях интересно что не правильно.
 
Метод пытается вернуть переменную htmltext, которая не объявлена.
	 
	
	
	
		
	Сообщений: 142 
	Тем: 11 
	Зарегистрирован: Oct 2012
	
 Репутация: 
186 
	
	
		Всем спасибо, всё верно подсказали, всё работает
	 |