Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Опкоды, Формулы, Клиент > Опкоды

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

Опкоды Опкоды

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.02.2011, 17:56   #1
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию SMSG_COMBAT_LOG_MULTIPLE 13623

Не получается разобрать структуру лог тайпа SPELL_LOG_EXECUTE

Первый эффект считываю, а дальше получаю кашу

Код:
                    AppendFormatLine("Caster: {0}", reader.ReadPackedGuid().FullGuid());
                    AppendFormatLine("Spell ID: {0}", reader.ReadInt32());
                    AppendFormatLine("Effect count: {0}", reader.ReadInt32());
                    for (byte i = 0; i < 3; ++i) 
                    {
                        AppendFormatLine("Effect {0}: {1}", i, (SpellEffects)reader.ReadInt32());
                    }
Пробовал также в цикле использовать Effect count. В таком случае дальше 1 эффекта дело не идет

Код:
                    AppendFormatLine("Caster: {0}", reader.ReadPackedGuid().FullGuid());
                    AppendFormatLine("Spell ID: {0}", reader.ReadInt32());
                    int effectCount = reader.ReadInt32();
                    AppendFormatLine("Effect count: {0}", effectCount);
                    for (byte i = 0; i < effectCount; ++i) 
                    {
                        AppendFormatLine("Effect {0}: {1}", i, (SpellEffects)reader.ReadInt32());
                    }
Lordronn вне форума   Ответить с цитированием
Старый 04.03.2011, 18:25   #2
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Разобрал. Вот если надо кому нибудь

Код:
            BinaryReader reader = Packet.CreateReader();
            AppendFormatLine("Caster: {0}", reader.ReadPackedGuid().FullGuid());
            AppendFormatLine("Spell ID: {0}", reader.ReadInt32());
            int Count = reader.ReadInt32();
            AppendFormatLine("Effect count: {0}", Count);
            for (int i = 0; i < Count; ++i)
            {
                SpellEffects effect = (SpellEffects)reader.ReadInt32();
                AppendFormatLine("Spell Effects: {0}", effect);
                int Count2 = reader.ReadInt32();
                for (int c = 0; c < Count2; ++c)
                {
                    switch (effect)
                    {
                        case SpellEffects.SPELL_EFFECT_POWER_DRAIN:
                        case SpellEffects.SPELL_EFFECT_POWER_BURN:
                            AppendFormatLine("Target: {0}", reader.ReadPackedGuid().FullGuid());
                            AppendFormatLine("SpellID: {0}", reader.ReadInt32());
                            AppendFormatLine("Unk2: {0}", reader.ReadInt32());
                            AppendFormatLine("Unk3: {0}", reader.ReadInt32());
                            break;
                        case SpellEffects.SPELL_EFFECT_ADD_EXTRA_ATTACKS:
                        case SpellEffects.SPELL_EFFECT_INTERRUPT_CAST:
                            AppendFormatLine("Target: {0}", reader.ReadPackedGuid().FullGuid());
                            AppendFormatLine("SpellID: {0}", reader.ReadInt32());
                            break;
                        case SpellEffects.SPELL_EFFECT_DURABILITY_DAMAGE:
                            AppendFormatLine("Target: {0}", reader.ReadPackedGuid().FullGuid());
                            AppendFormatLine("SpellID: {0}", reader.ReadInt32());
                            AppendFormatLine("Unk3: {0}", reader.ReadInt32());
                            break;
                        case SpellEffects.SPELL_EFFECT_OPEN_LOCK:
                            AppendFormatLine("Target: {0}", reader.ReadPackedGuid().FullGuid());
                            break;
                        case SpellEffects.SPELL_EFFECT_CREATE_ITEM:
                        case SpellEffects.SPELL_EFFECT_CREATE_RANDOM_ITEM:
                        case SpellEffects.SPELL_EFFECT_CREATE_ITEM_2:
                            AppendFormatLine("ItemID: {0}", reader.ReadInt32());
                            break;
                        case SpellEffects.SPELL_EFFECT_SUMMON:
                        case SpellEffects.SPELL_EFFECT_TRANS_DOOR:
                        case SpellEffects.SPELL_EFFECT_SUMMON_PET:
                        case SpellEffects.SPELL_EFFECT_SUMMON_OBJECT_WILD:
                        case SpellEffects.SPELL_EFFECT_CREATE_HOUSE:
                        case SpellEffects.SPELL_EFFECT_DUEL:
                        case SpellEffects.SPELL_EFFECT_SUMMON_OBJECT_SLOT1:
                        case SpellEffects.SPELL_EFFECT_171:
                            AppendFormatLine("Summoned: {0}", reader.ReadPackedGuid().FullGuid());
                            break;
                        case SpellEffects.SPELL_EFFECT_FEED_PET:
                            AppendFormatLine("EatID: {0}", reader.ReadInt32());
                            break;
                        case SpellEffects.SPELL_EFFECT_DISMISS_PET:
                            AppendFormatLine("Pet: {0}", reader.ReadPackedGuid().FullGuid());
                            break;
                        case SpellEffects.SPELL_EFFECT_RESURRECT:
                        case SpellEffects.SPELL_EFFECT_RESURRECT_NEW:
                        case SpellEffects.SPELL_EFFECT_172:
                            AppendFormatLine("Target: {0}", reader.ReadPackedGuid().FullGuid());
                            break;
                    }
                }
            }
Lordronn вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
HuntsMan (04.03.2011), LordJZ (04.03.2011)
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IDB WoW 5.2.0 Build 16650 TOM_RUS Копаем клиент 74 26.03.2016 03:04
6.0.2 Обсуждение [Live 19005] TOM_RUS Флудильня 478 11.02.2015 14:02
SMSG_COMBAT_LOG_MULTIPLE Fmut Опкоды 2 12.09.2010 02:08


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


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