Ru-MaNGOS

Вернуться   Ru-MaNGOS > Флуд > Флудильня

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

Флудильня Разговоры на любые темы.

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2010, 13:18   #1
xmolex
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 79
Сказал(а) спасибо: 3
Поблагодарили 10 раз(а) в 8 сообщениях
xmolex На верном пути
По умолчанию Planning for the Future: Create Snowfall Glade Pup Cover

Не знал в каком разделе лучше написать, поэтому пишу здесь.
Заметил, что на сервере не совсем корректно работает спелл Planning for the Future: Create Snowfall Glade Pup Cover, предмет не создается, хотя моб умирает. Он имеет dummy эффект. Отлично идем в SpellEffects.cpp и видим код:
Код:
                case 46167:                                 // Planning for the Future: Create Snowfall Glade Pup Cover
                case 50926:                                 // Gluttonous Lurkers: Create Zul'Drak Rat Cover
                case 51026:                                 // Create Drakkari Medallion Cover
                case 51592:                                 // Pickup Primordial Hatchling
                case 51961:                                 // Captured Chicken Cover
                {
                    if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || m_caster->GetTypeId() != TYPEID_PLAYER)
                        return;

                    uint32 spellId = 0;

                    switch(m_spellInfo->Id)
                    {
                        case 46167: spellId = 46773; break;
                        case 50926: spellId = 50927; break;
                        case 51026: spellId = 50737; break;
                        case 51592: spellId = 51593; break;
                        case 51961: spellId = 51037; break;
                    }

                    if (const SpellEntry *pSpell = sSpellStore.LookupEntry(spellId))
                    {
                        unitTarget->CastSpell(m_caster, spellId, true);

                        Creature* creatureTarget = (Creature*)unitTarget;

                        if (const SpellCastTimesEntry *pCastTime = sSpellCastTimesStore.LookupEntry(pSpell->CastingTimeIndex))
                            creatureTarget->ForcedDespawn(pCastTime->CastTime + 1);
                    }
                    return;
                }
Все вроде бы цивильно. Запускаю отладку и вижу, что условия все выполняются нормально. spellId становится равным 46773. потом выполняется unitTarget->CastSpell(m_caster, spellId, true), тоесть передается в castspell все чинно.
46773 имеет эффект Create Item. Ставлю в EffectCreateItem флаг и начинаю отладку. До него не доходит. Тоесть мы на перса кастуем спелл 46773, но его эффект не проходит. Однако, если я кастую с помощью команды .cast 46773 на себя, то предмет создается.
Если мы работаем с 50926 (аналогичный спелл), то до EffectCreateItem доходит и предмет создается. Куда копать? Почему не доходит до EffectCreateItem?

Последний раз редактировалось xmolex; 28.03.2010 в 14:16.
xmolex вне форума   Ответить с цитированием
Старый 28.03.2010, 15:09   #2
timmit
YTDB Dev
 
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
timmit На верном пути
По умолчанию

Проверьте Эвент_АИ на мобе+
Цитата:
if (const SpellCastTimesEntry *pCastTime = sSpellCastTimesStore.LookupEntry(pSpell->CastingTimeIndex))
creatureTarget->ForcedDespawn(pCastTime->CastTime + 1);
Это срабатывает раньше

После небольшой правки скриптов нормально работает. Время для деспавна увеличте

Последний раз редактировалось timmit; 28.03.2010 в 15:13.
timmit вне форума   Ответить с цитированием
Старый 28.03.2010, 18:58   #3
xmolex
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 79
Сказал(а) спасибо: 3
Поблагодарили 10 раз(а) в 8 сообщениях
xmolex На верном пути
По умолчанию

Я уже пытался сделать как в теме http://ytdb.ru/showthread.php?t=3806&highlight=50926
Эффекта ноль.
Делал так:
Код:
INSERT IGNORE INTO `creature_ai_scripts` VALUES 
(2620050, 26200, 8, 0, 100, 0, 46167, -1, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'тест');
UPDATE `creature_template` SET `AIName` = 'EventAI' WHERE `entry` = '26200';
Объясните пожалуйста, почему именно у нас не происходит каст. Как я понимаю creatureTarget->ForcedDespawn(pCastTime->CastTime + 1) - это функция убийства моба. Ну убили мы моба, а спелл кастуем же не на него, а на себя. А мы живы, не вижу связи. Объясните пожалуйста.
xmolex вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10301] Init guild create date at create in same value in memory and DB. newsbot CMaNGOS Commits 0 31.07.2010 22:11
[9713] Update future release info in NEWS newsbot CMaNGOS Commits 0 09.04.2010 23:51
[9597] create battleground map at bg creation newsbot CMaNGOS Commits 0 17.03.2010 02:06


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


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