chiton 12 Опубликовано 16 марта, 2015 (изменено) Доброго времени суток форумчани. Нужна помощь в написание простого квеста на питоне.Создаю Нпс у которого берется квест (тут проблем нет)а вот с кодом квеста беда, я в питоне 0 //какбы снимает все ефекты и телепортирует куда нужно i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isOnline() : i.stopAllEffects() i.broadcastStatusUpdate() i.broadcastUserInfo() i.teleToLocation(координата,координата,координата) //куда ТП дальше нужно заспавнить 1 комнату мобов. npc1=self.addSpawn(ид,координата,координата,координата,30000,False,0) //ето так из манула накидал для желающих помочь, чтоб не писать код с нуля) Мне нужно чтобы 1 человек или пати брал(и) квест, после чего их телепортирует в указаную точку.Через 4 минуты появляются нпс(мобы,рб) с указаным ИДпосле убийства мобов ждем 4 минуты и снова спавним мобов. (возможно есть похожий квест в датапаке где можно посмотреть код)вообщето мне нужно три волны мобов, но буду рад если дадите пример хоть одной, я дальше думаю пойму что к чему) Еще вопрос. Как сделать чтоб квест можно было повторять раз в "Н" времини?И можно ли сделать так, чтобы несколько человек одновременно проходили квест, и не видели друг друга, а также не "своих" мобов? Изменено 16 марта, 2015 пользователем chiton Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SkyWard 0 Опубликовано 16 марта, 2015 (изменено) посмотри 4 кубка, там схожая система. Удачи Изменено 16 марта, 2015 пользователем SkyWard Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 16 марта, 2015 Смотрел о спавнах там ни слова нету( незнаю откуда там спавн берется, но явно не из питон класса( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 17 марта, 2015 (изменено) вот пробовал сочинять непонятно что)) import sys from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.datatables import DoorTable from com.l2jfrozen.gameserver.datatables import SkillTable from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jfrozen.gameserver import Announcements from com.l2jfrozen.util.database import L2DatabaseFactory from com.l2jfrozen.gameserver.ai import CtrlIntention from com.l2jfrozen.util.random import Rnd from java.lang import System from com.l2jfrozen.gameserver.model import L2World qn = "6647_wawe" NPC=4456 MOB1=22111 MOB2=3325 MOB3=6657 t1=[80198,253341,-10871] t2=[80198,253341,-10871] t3=[80198,253341,-10871] t4=[80198,253341,-10871] class Quest (JQuest) : def onEvent(self, event, st): htmltext=event if event=="1": htmltext="tele.htm" st.set("cond","1") st.setState(STARTED) st.playSound("ItemSound.quest_accept") i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isOnline() : i.stopAllEffects() i.broadcastStatusUpdate() i.broadcastUserInfo() i.teleToLocation(t1[0],t1[1],t1[2]) self.addSpawn(MOB1,t2[0],t2[1],t2[2],30000,False,0) self.addSpawn(MOB2,t3[0],t3[1],t3[2],30000,False,0) self.addSpawn(MOB3,t4[0],t4[1],t4[2],30000,False,0) return QUEST=Quest(6647,qn,"wawe!") CREATED=State('Start', QUEST) STARTED=State('Started', QUEST) COMPLETED=State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(NPC) QUEST.addTalkId(NPC) QUEST.addKillId(MOB1) QUEST.addKillId(MOB2) QUEST.addKillId(MOB3) в ерроре вот что Traceback (innermost last): (no code object) at line 0 SyntaxError: ('inconsistent dedent', ('__init__.py', 34, 2, ' i=L2World.getInstance().getPlayer(nm)')) сам неззнаю зачем пробовать если всеравно в коде ничего не понимаю) Изменено 17 марта, 2015 пользователем chiton Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nha 22 Опубликовано 18 марта, 2015 Питон зависим от табуляции и пробелов, выравни строку i=L2World.getInstance().getPlayer(nm) По отношению к другим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 18 марта, 2015 Traceback (innermost last): (no code object) at line 0 SyntaxError: ('invalid syntax', ('__init__.py', 34, 10, '\t i=L2World.getInstance().getPlayer(nm)')) теперь такой еррор. А хоть код сам по себе праильно написан? и что сама по себе означает срока i=L2World.getInstance().getPlayer(nm)??? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nha 22 Опубликовано 18 марта, 2015 выравнивать надо пробелами а не табами (\t) на счет кода, вроде не правильно, во первых не видно где переменная nm реализовывается, по всей видимости это имя? Тогда зачем мы ищем персонажа по нему если можно вызвать его из QuestState (st.getPlayer) Что должен делать этот квест? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 18 марта, 2015 (изменено) Что должен делать этот квест? Мне нужно чтобы 1 человек, или пати брал(и) квест, после чего их телепортирует в указаную точку и дается "н" времени для убийства волн мобов. Через 4 минуты появляются нпс(мобы,рб) с указаным ИД после убийства мобов ждем 4 минуты, и снова спавним мобов. по убийству 3 волны спавн НПС(телепортера)после телепорта квест завершыть. По истичению времени квест завершыть. повтор квеста 1 раз в "н" времени. Изменено 18 марта, 2015 пользователем chiton Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты