Прямая координата спауна квестовых мобов???

Теги:
 
+
-
edit
 

Ratibor

новичок
В текстах квестов почти всех квестов на смену профессии есть момент где надо добиться появления перед тобой квестового НПС путем убийства н-ного количества мобов определенного вида (пример квестов: 217_TestimonyOfTrust, 212_TrialOfDuty)

но в коде питона стоит следущее:
def onKill (self,npc,st):
npcId = npc.getNpcId()
cond = int(st.get("cond"))
if cond == 2 and npcId in [ 13, 19, 36, 44 ] : # Condition 2 kill the Luel of Zephy and Aktea of the Woods
if npcId in [ 36,44 ] and st.getQuestItemsCount(BREATH_OF_WINDS_ID) == 0 :
st.set("id",str(int(st.get("id"))+1))
if st.getRandom(100)<(int(st.get("id"))*33) :
st.playSound("Itemsound.quest_before_battle")
st.getPcSpawn().addSpawn(5120,9410,50301,-3713) ### FIXME ### Temp fix for spawn
 


тоесть вместо того чтобы спауниться рядом с игроком убившим своего н-ного моба квестовый НПС спаунится по четко прописанной координате. И таких квестов много.

Вопрос: можно ли в данном случае воспользоваться оригинальным вариантом кода (работать будет?), и можно ли здесь поставить запрос (нехватает мне знаний по java-питону чтобы понять КАК это сделать...) чтобы определялась текущая координата игрока или посл. убитого моба и по ней спаунился НПС с небольшой поправкой по х или у координате (тоесть тек. позиция игрока - 300 едениц координат по х).

кто может подсказать и помочь - плиз хлп. А то получается неинтересная ситуация: квесты работают,... но работают неправильно.
- Ложки не существует (Нео) - Сервера не существует есть лишь клиент..... (Тео)  
RU WhiteWolf #17.04.2006 17:48
+
-
edit
 

WhiteWolf

новичок
В явовских файлах обрабатывающих квесты есть ф-ция спауна с небольшим рнд от заданной точки. Как она вызывается из питона хз.
 
+
-
edit
 

Boapacco

новичок
Вместь st.getPcSpawn().addSpawn(5120,9410,50301,-3713) пишешь st.getPcSpawn().addSpawn(5120); моб появиться рядом с игроком со случайным отклонением, про которое писалось выше.

Но всегда есть "но" :(, если игрок в это время находился, например, возле стены, то и моб может заспауниться в стену....
 

Drac

разработчик l2j-сервера
★★★
Но если это аггро моб, то он сам из неё вылезет. Проверено. А так все правильно.
 
+
-
edit
 

whiter

новичок
Это всё хорошо, но в SF с декабря 2005 есть баг со спавном квест мобов, по этому и определено жестко в одной точке.(помнится в Fortress-е данного бага не было, правда как сейчас хз.)

Можно облегчить пользователям нахождение таких мобов, сделав радар на моба при появлении и убирание оного при смерти.
 

Drac

разработчик l2j-сервера
★★★
Нафиг радар?
Если спавнить по addSpawn(NNNN) - то спавнится прямо с игроком.

В Фортрессе такое дело не ломали, поэтому спавним мы как угодно, хоть в заданной точке, хоть рядом с игроком.
 
+
-
edit
 

whiter

новичок
В Фортрессе такое дело не ломали, поэтому спавним мы как угодно, хоть в заданной точке, хоть рядом с игроком.
 

Речь я вел о SF, так как выше в коде отчетливо видно что он принадлежит SF(там же они пишут о проблемы со спавном).

Нафиг радар?
 

Для того что бы не писали на форуме о том что мобы не появляются, к тому же многие играют без звуков или не обращают внимание на них, а тут над головой загорится радар и сразу понятно что моб появился.
 

Drac

разработчик l2j-сервера
★★★
Хех...если играют без звуков есть 2 варианта:
Наипростейший : прочитать диалог, которые тебе пишут. Там тебе нормально скажут, что и как делать надо.
"Наисложнейший" : посмотреть себе в квесты и понять, что делать дальше. Alt-U , блин...

Тем более в большинстве квестов мобы используются не спавненные, а те, которые уже стоят по локациям (из спавнлиста, если кто будет в танке). А их может быть не 1-2, а 20-30, и просто так получить какой из них где сейчас стоит - нельзя, а если лезть в базе - то это лишний запрос к базе (а то и несколько), что не очень хорошо отображается на ресурсах компа...
Конечно, если будет ОДИН квестовый моб (что очень редко, когда они появляются только после убийства некоторых других мобов), то это ещё можно сделать, но вопрос - зачем?! По логике он как раз и должен отспавниться около игрока.
 
+
-
edit
 

whiter

новичок
Конечно, если будет ОДИН квестовый моб (что очень редко, когда они появляются только после убийства некоторых других мобов), то это ещё можно сделать, но вопрос - зачем?! По логике он как раз и должен отспавниться около игрока.
 


Должен, но речь то про SF, где с этим проблемы.
Обратимся к квесту выше приведенному – мобы Дриады отспавнены на обширной территории, спавн квестого моба глючит(моб спавнится, но его место спавна зависит от непонятных причин и меняется от рестарта к рестарту), избежать этого можно зафиксировать спавн моба в одной точке(что и делают SF-офовцы);
если спавн не фиксировать то часто возникает ситуация что игрок бьёт мобов до посинения, в это время например в Гиране(если спавн моба не жесткий, если жесткий то в той точке) их плодится десятками. Появление радара самое красноречивое доказательство для игроков что моб появился.
 
Это сообщение редактировалось 09.06.2006 в 22:00

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru