[QUEST=5097,5098]Сторожевые башни
Вложений: 1
Скрипт на указанные квесты, которые на моей памяти никогда не работали.:)
В репозитарий приняли мой патч, но измененный другим человеком. На текущий момент квесты не работают, т.к. патч поправили на неправильный вариант. Для базы после СД2 1815: Код:
UPDATE `gameobject_template` SET `scriptname`='' WHERE `entry`=176093; http://ytdb.ru/showthread.php?p=26236 |
Тема на форуме СД2:
http://www.scriptdev2.com/project.php?issueid=892 Решил создать на всякий случай, т.к. это долгая контора.:) |
Собрал mangoszero с этим патчем.
Всплыли ошибки в игре: Код:
2010-03-16 11:58:52 ERROR:Spell (ID: 17016) has effect EffectImplicitTargetA/EffectImplicitTargetB = TARGET_SCRIPT or TARGET_SCRIPT_COORDINATES, but does not have record in `spell_script_target` Проставил в таблице нужных НПС: Код:
DELETE FROM `spell_script_target` WHERE `entry`=17016; Подскажите куда копать дальше? P.S. Только что глянул сам спелhttp://www.wowhead.com/?spell=17016, видать что-то не правильно, так как: Effect 0: (50) Summon Object (176093) Effect 1: (86) Activate Object (5) |
Как уже написал в конференции, есть такие варианты:
1. В `spell_script_target` прописать цель го. 2. В `spell_script_target` поставить целью 4 нпц, в условиях квеста проставить каст на 4 нпц, убрать скрипт из ядра. 3. В `spell_script_target`прописать го, в условиях квеста проставить каст на го, убрать скрипт из ядра. Возможно, в МангосЗеро прокатят варианты 2 или 3, но в кеше стоит условие убийства 4 нпц. |
Я думаю, все-таки есть еще какой-то спелл. Когда нажимаешь на факел, он создает и активирует гейм-объект, при активации гейм-объекта скриптом из базы должен кастоваться этот какой-то спелл, и условием выполнения квеста должен выступать каст этого спелла на требуемых кричеров. Но тут опять же - каст ГО...
P.S. В кеше не хранится ReqSpellCast. |
Спеллов с киллкредитами по 4-м нпц не нашел.
Точка должна засчитываться при установке факела, а не при нажатии на факел, если не ошибаюсь. |
Цитата:
Цитата:
Ну, это рассуждения теоретические, как оно должно быть оффлайк. У нас такого не сделаешь, т.к. не заставишь кастовать ГО. |
Одно но, в мангосе до сих пор не работает activate, так что приходится выкручиваться :)
|
Цитата:
|
Цитата:
|
Видео у кого-нибудь есть для данного квеста + кеш?
|
Цитата:
Пример: Спелл 46201. Там SPELL_EFFECT_ACTIVATE_OBJECT. .go object 47123 .cast 46201 Смотрим, что получится. (GUID объекта - из вашей базы. Нужная запись в spell_script_target в вашей базе есть.) Цитата:
|
Цитата:
|
Нет, именно GUID из таблицы creature.
|
Цитата:
С Константином не говорил? Или может есть еще желающие - сбегать по квесту со сниффером? |
Не говорил, со снифферами не работал.
|
|
Как появится достоверная инфа, так можно будет уже править скрипт.
|
Решил переделать скрипт через активацию го, как указано в спелле:
Код:
bool GOHello_go_andorhal_tower(Player* pPlayer, GameObject* pGo) Если отойти подальше - не работает, хотя каст срабатывает на большом расстоянии. 1. Как заставить го активироваться в радиусе, указанном в базе? 2. Есть 4 кода нпц, проверка на них идет одинаково: если один из нужных кодов нпц, то засчитать киллкредит(код нпц). Как лучше и покомпактнее сделать проверку (массив и т.д.)? |
Вот, что получилось:
Код:
bool GOHello_go_andorhal_tower(Player* pPlayer, GameObject* pGo) Если поставить радиус 25, то проблем не будет, но кастовать надо в проходе. Самый простой вариант - переставить го в точки к нпц, тогда должно работать без проблем. 1. Почему не отрабатывает активация го на расстоянии, а только в упор? 2. Как и где в ядре править ошибки при выходе игрока из игры: Код:
ERROR:Delete Gameobject (Entry: 176093 Guid: 200005) with SpellId 17016 LinkedGO 0 that lost references to owner Player (Guid: 3176) GO list. Crash possible later. |
Я бы мог побегать по этому квесту и поснифать его
только скиньте снифер и расскажите как запустить ))) |
Цитата:
|
Как я понимаю по коду работу эффекта 86 - Activate Object.
Работа фактически аналогична команде 13 в БД скриптах ГО Пошагово как идет Берем наш спелл - 17016 Код:
Effect: (086) SPELL_EFFECT_ACTIVATE_OBJECT Код:
if(!gameObjTarget) delay_secs = 0, с нашего спелла(Base point = 0) передаем дальше в ScriptCommandStart 2. там вычисляются гуиды таргета и кастера, добавляется в лист скриптов, и если задержка(delay_secs) равна 0, то передается дальше в ScriptsProcess(); 3. Эта функция ищет нужный скрипт, и в зависимости от команды(она у нас всегда 13), делает проверки на кастера и таргет, на их типы - юнит или ГО, там много Если все проверки пройдены, активируется функция ГО на кастера go->Use(caster); 4. а это уже интересней, именно в этой функции ГО кастует на кастера некий спелл(спеллы) НО если есть скрипт GOHello - то return; Код:
// by default spell caster is user Код:
Spell *spell = new Spell(spellCaster, spellInfo, triggered,GetGUID()); ГО факел - принадлежит к 5 типу, обработки которого нет в Use(), мб стоит добавить? И в этой функции можно не только кастовать спеллы, но и другие действия выполнять(см. весь код функции) Код:
default: ПС : кстати, EffectMiscValue не используется в эффекте 86, но между тем, оно явно важно, т.к во всех спеллах оно разное, понять бы что это Ответы на вопросы(по моему мнению) 1. GOHello активируется только вблизи обьекта(0 - 2 метра радиус) 2. Ошибка возникает здесь Код:
ObjectGuid owner_guid = GetOwnerGUID(); 3. Оптимизировать тут врятли что-то можно, только мб написать отдельный универсальный поисковичок, с подачей любого листа ентри или гуидов(он сам их переберет - найдет нужный и вернет обьект) |
Патч принят в СД2 1797 с изменениями.
|
Патч с пояснениями обновлен в первом посте.
|
Наконец-то патч полностью принят в СД2 в рабочем состоянии в 1819.:)
|
Текущее время: 04:39. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS