Ru-MaNGOS

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

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

Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.

Если кто-то хочет задать вопрос по патчу - велкам.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.06.2010, 22:55   #1
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию [patch/dev]Пет нпц в бою

Давно уже заметил, что если атаковать пета-демона у нпц-варлока, то демон вступает в бой, но не атакует, а просто выступает в роли манекена.
При этом нпц-варлок не вступает в бой, поэтому от пета в данном случае нет никакого толка.

Код удалил, т.к. не то, что надо.

По информации игроков с офа при атаке пета нпц-владелец вступает в бой.

Интересует информация:
1. Если на офе убили нпц-владельца, то должен ли пет деспавниться?
2. На мангосе при атаке пета-демона без нпц-владельца не получаем никакой реакции. Как с этим на офе?
virusav вне форума   Ответить с цитированием
Старый 17.06.2010, 23:15   #2
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Вообще-то:
Код:
void PetAI::AttackedBy(Unit *attacker)
{
    //when attacked, fight back in case 1)no victim already AND 2)not set to passive AND 3)not set to stay, unless can it can reach attacker with melee attack anyway
    if(!m_creature->getVictim() && m_creature->GetCharmInfo() && !m_creature->GetCharmInfo()->HasReactState(REACT_PASSIVE) &&
        (!m_creature->GetCharmInfo()->HasCommandState(COMMAND_STAY) || m_creature->canReachWithAttack(attacker)))
        AttackStart(attacker);
}
Какое-то условие не выполнено, если не атакует?
zergtmn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
virusav (18.06.2010)
Старый 17.06.2010, 23:55   #3
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

После смерти НПС - варлока , пет не деспавниться . 100% . Я даже тикет ГМу писал по этому поводу , сказал все верно .
Lordronn вне форума   Ответить с цитированием
Старый 18.06.2010, 00:03   #4
DiffuSer
Ученый
 
Аватар для DiffuSer
 
Регистрация: 07.03.2010
Сообщений: 131
Сказал(а) спасибо: 9
Поблагодарили 10 раз(а) в 10 сообщениях
DiffuSer На верном пути
По умолчанию

Вот по поводу деспавна - подтверждаю. А если атаковать пета и не трогать НПС - НПС всё равно атакует, на чистом ядре.
DiffuSer вне форума   Ответить с цитированием
Старый 18.06.2010, 00:23   #5
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Деспавна нет после убийства владельца, на мангосе есть - это не оффлайк, также подтверждаю
При атаке только пэта хозяин на оффе также аггрится.
KiriX вне форума   Ответить с цитированием
Старый 18.06.2010, 00:57   #6
DiffuSer
Ученый
 
Аватар для DiffuSer
 
Регистрация: 07.03.2010
Сообщений: 131
Сказал(а) спасибо: 9
Поблагодарили 10 раз(а) в 10 сообщениях
DiffuSer На верном пути
По умолчанию

KiriX, на мангосе нет деспавна после убийства владельца для нпс.
DiffuSer вне форума   Ответить с цитированием
Старый 18.06.2010, 01:28   #7
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от DiffuSer Посмотреть сообщение
KiriX, на мангосе нет деспавна после убийства владельца для нпс.
KiriX вне форума   Ответить с цитированием
Старый 18.06.2010, 08:56   #8
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Цитата:
Сообщение от DiffuSer Посмотреть сообщение
Вот по поводу деспавна - подтверждаю. А если атаковать пета и не трогать НПС - НПС всё равно атакует, на чистом ядре.
Не согласен.
Вчера очередной раз проверял, тестирую на чистом.

Нагорье Арати -> Крепость Стромгард:
http://ru.wowhead.com/npc=24476

Демон стоит рядом с призывателем.
При атаке демона призыватель стоит на месте и не атакует.
Хотя сам демон только имитирует атаку, вводя игрока в состояние боя, но сам не наносит урон и не всегда приближается к игроку.

Возможно, пет должен по-нормальному начинать бой, а не только имитировать его.
virusav вне форума   Ответить с цитированием
Старый 18.06.2010, 20:26   #9
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Цитата:
Сообщение от zergtmn Посмотреть сообщение
Вообще-то:
Код:
void PetAI::AttackedBy(Unit *attacker)
{
    //when attacked, fight back in case 1)no victim already AND 2)not set to passive AND 3)not set to stay, unless can it can reach attacker with melee attack anyway
    if(!m_creature->getVictim() && m_creature->GetCharmInfo() && !m_creature->GetCharmInfo()->HasReactState(REACT_PASSIVE) &&
        (!m_creature->GetCharmInfo()->HasCommandState(COMMAND_STAY) || m_creature->canReachWithAttack(attacker)))
        AttackStart(attacker);
}
Какое-то условие не выполнено, если не атакует?
Искал функцию в Pet.cpp

В void PetAI::AttackedBy(Unit *attacker) попадаем сразу же при атаке пета, выполняется AttackStart(attacker);, но пет стоит на месте бездействует.
virusav вне форума   Ответить с цитированием
Старый 30.06.2010, 22:43   #10
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Пет нпц вступает в бой, но потом сразу выходит из него в
Код:
void Unit::Update( uint32 p_time )
т.к. проходит условие
Код:
if (m_HostileRefManager.isEmpty())
По идее, где-то должно быть объявление m_HostileRefManager и заполнение.
Нашел только в
Код:
Unit::Unit()
: WorldObject(), i_motionMaster(this), m_ThreatManager(this), m_HostileRefManager(this)
Какие мысли по этому поводу?
virusav вне форума   Ответить с цитированием
Старый 01.07.2010, 02:53   #11
xex
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 47
Сказал(а) спасибо: 45
Поблагодарили 29 раз(а) в 13 сообщениях
xex На верном пути
По умолчанию

m_HostileRefManager просто "болтается в воздухе". Заполнения нет.
Посмотрел в 322 - тоже самое.

Судя по описанию задумывалось заполнение, но не реализовано:
PHP код:
void Unit::Updateuint32 p_time )
...
        
// Check UNIT_STAT_MELEE_ATTACKING or UNIT_STAT_CHASE (without UNIT_STAT_FOLLOW in this case) so pets can reach far away
        // targets without stopping half way there and running off.
        // These flags are reset after target dies or another command is given.
        
if (m_HostileRefManager.isEmpty())
... 
Предположительно заполнять должен хозяин пета (owner) при своей атаке.
xex вне форума   Ответить с цитированием
Старый 01.07.2010, 08:36   #12
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Проблема в том, что атакуем пета нпц, а не самого нпц-хозяина.
Если атаковать последнего, то пет сразу вступает в бой.
Без нпц-хозяина пет также не вступает в бой.
virusav вне форума   Ответить с цитированием
Ответ


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

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



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


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