Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Отвергнутые патчи

Важная информация

Отвергнутые патчи Патчи, отвергнутые от приёма в GIT

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2010, 13:23   #1
Lightunit
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
Lightunit На верном пути
Сообщение [patch] Поднимаем мобов с дна

Mangos: 10480

Мобы, которые плавают и подверглись атаки со стороны игрока, идут ко дну.
Если атаковать один раз, то моделька возвращается в исходную позицию, но становится "Вне зоны досягаемости". Если атаковать второй раз, то моделька опускается на самое дно и моба можно убить.

unit_flag и InhabitType в базе указаны верно.

Последний раз редактировалось Lightunit; 19.09.2010 в 13:26.
Lightunit вне форума   Ответить с цитированием
Старый 19.09.2010, 13:57   #2
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

есть такое дело, появилось совсем недавно
Insider42 вне форума   Ответить с цитированием
Старый 19.09.2010, 14:06   #3
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Та же история что с боссами в ЦЛК и TOC - грабли с GetHeight() в вмапсах, забиты в ядро примерно коммитов 100 назад. Владимир говорит что как лечить пока не знает...
Лечится либо отключением вмапсов нафиг либо грязными хаками. Кто-то пробовал откатить все коммиты на вмапсы с 10380 примерно, вроде работало.
rsa вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lightunit (19.09.2010)
Старый 19.09.2010, 19:05   #4
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Раньше была проблема с водоплавающими, модели которых отображались в воде, а на самом деле нпц были на поверхности, например, http://ru.wowhead.com/npc=25204.

Тогда проблему решал с помощью:
Код:
unit_flags
32768 	 UNIT_FLAG_UNK_15 	 Добавляет анимацию плаванья, если НПС находится в воде
С таким флагом модель и нпц отображались в одном месте.
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (19.09.2010)
Старый 20.09.2010, 20:23   #5
brainreaver
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 44
Сказал(а) спасибо: 9
Поблагодарили 5 раз(а) в 5 сообщениях
brainreaver На верном пути
По умолчанию

эта проблема связана с последними фиксами в traveller
brainreaver вне форума   Ответить с цитированием
Старый 23.09.2010, 16:50   #6
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от virusav Посмотреть сообщение
Раньше была проблема с водоплавающими, модели которых отображались в воде, а на самом деле нпц были на поверхности, например, http://ru.wowhead.com/npc=25204.

Тогда проблему решал с помощью:
Код:
unit_flags
32768 	 UNIT_FLAG_UNK_15 	 Добавляет анимацию плаванья, если НПС находится в воде
С таким флагом модель и нпц отображались в одном месте.
Не помогает, например нпц 14423 в YTDB имеет этот флаг, сделал .npc follow на него и нырнул в воду в Штормграде, итог - он плавает за мной (я на поверхности), но по дну

Цитата:
Сообщение от rsa Посмотреть сообщение
либо грязными хаками.
С этого места поподробнее...

Проблема очень серьезная, т.к. сразу бросается в глаза и портит геймплей

Последний раз редактировалось Insider42; 23.09.2010 в 16:53.
Insider42 вне форума   Ответить с цитированием
Старый 23.09.2010, 18:01   #7
brainreaver
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 44
Сказал(а) спасибо: 9
Поблагодарили 5 раз(а) в 5 сообщениях
brainreaver На верном пути
По умолчанию

в травеллер, там, где добавили проверку на CanFly, добавьте еще проверку IsInWater и будет вам счастье
brainreaver вне форума   Ответить с цитированием
Старый 23.09.2010, 19:19   #8
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Так?
Код:
diff --git a/src/game/Traveller.h b/src/game/Traveller.h
index d556282..37e73d6 100644
--- a/src/game/Traveller.h
+++ b/src/game/Traveller.h
@@ -93,7 +93,7 @@ inline float Traveller<Creature>::GetMoveDestinationTo(float x, float y, float z
     float dx = x - GetPositionX();
     float dy = y - GetPositionY();
 
-    if (i_traveller.canFly())
+    if (i_traveller.canFly() || i_traveller.IsInWater())
     {
         float dz = z - GetPositionZ();
         return sqrt((dx*dx) + (dy*dy) + (dz*dz));
Всё равно плавают на дне...
Insider42 вне форума   Ответить с цитированием
Старый 23.09.2010, 20:37   #9
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Конечно. Там в GetPositionZ() какой-то бред приходит если крича в воде или над ГО33. Причем периодически меняющийся.
rsa вне форума   Ответить с цитированием
Старый 24.09.2010, 09:44   #10
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Подозрения на коммиты 10431, 10438, 10439

Добавлено:

таблетка тут http://ru-mangos.ru/showthread.php?p=14380

Последний раз редактировалось Insider42; 24.09.2010 в 10:11.
Insider42 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lightunit (24.09.2010)
Старый 24.09.2010, 10:10   #11
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию [patch] Поднимаем мобов с дна

Суть проблемы:
Кричеры/Петы и другие живые существа при следовании за игроком, или же простом патрулировании под водой - плавают/ходят только по дну.

Таблетка (автор - я)
Код:
diff --git a/src/game/TargetedMovementGenerator.cpp b/src/game/TargetedMovementGenerator.cpp
index b8cb423..4f0f8d3 100644
--- a/src/game/TargetedMovementGenerator.cpp
+++ b/src/game/TargetedMovementGenerator.cpp
@@ -80,7 +80,7 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T &owner, bool upd
 
     // Just a temp hack, GetContactPoint/GetClosePoint in above code use UpdateGroundPositionZ (in GetNearPoint)
     // and then has the wrong z to use when creature try follow unit in the air.
-    if (owner.GetTypeId() == TYPEID_UNIT && ((Creature*)&owner)->canFly())
+    if (owner.GetTypeId() == TYPEID_UNIT && (((Creature*)&owner)->canFly() || ((Creature*)&owner)->IsInWater()))
         z = i_target->GetPositionZ();
 
     //ACE_High_Res_Timer timer = ACE_High_Res_Timer();
Проблема появилась в том же коммите, в котором и был добавлен данный хак - 10431. Также по сообщениям некоторых пользователей, стало ясно что точно такая же проблема с объектами определенного типа (лифтами, платформами и т.д., т.к. они не имеют vmap), тут я не знаю какую проверку можно забабашить... думайте сами.
Insider42 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Vladimir (25.09.2010)
Старый 25.09.2010, 07:06   #12
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Патч исправляя проблему с плаванием возрождает проблему выпрыгивания из воды в воздух мобов.

В [10529] пришлось сделать более глубокие изменений что-бы добиться надеюсь более корректного в целом результат
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
Gerald (25.09.2010), Lurker (25.09.2010), PSZ (25.09.2010), virusav (25.09.2010)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как заставить мобов типа Durnholde Rifleman стрелять из ружья? Padre Корзина 29 18.10.2010 20:07
Анимации Аттаки Мобов OFF_HAND Azerus Баг-репорты 0 27.09.2010 09:34
Передвижения мобов в отсутствие игрока brainreaver Корзина 3 05.08.2010 14:22


Текущее время: 03:09. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot