Ru-MaNGOS

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

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

Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.10.2014, 10:17   #1
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию Спеллы

Подскажите, когда срабатывает спелл к примеру: безрассудство - ид1719,то я так понимаю ,что накладывается 3 ауры на игрока. Так вот как узнать в коде сервера выполняется ли они или узнать время выполнения?
В общем вот такая вот проблема, при срабатывании этого спелла мне удалось на 20% увеличить урон атакующему но как при окончании этого спелла вернуть базовое значение, если кто поможет с проблемой за ранее спасибо!
Код:
if (GetSpellProto()->Id == 1719)
{
    float minbasevalue, mindefferencevalue, minnewbasevalue;
    if(target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT))
    {
        SpellAuraHolder* holder = target->GetSpellAuraHolder(1719);
        Unit::AttackerSet attacker = target->getAttackers();
        for(Unit::AttackerSet::iterator itra = attacker.begin();itra != attacker.end(); ++itra)
        {
            minbasevalue = (*itra)->GetFloatValue(UNIT_FIELD_MINDAMAGE);
            mindefferencevalue = minbasevalue * 2000 /100;
            minnewbasevalue = minbasevalue + mindefferencevalue;
            (*itra)->SetFloatValue(UNIT_FIELD_MINDAMAGE, minnewbasevalue);
            if(!holder)
            {
                (*itra)->SetFloatValue(UNIT_FIELD_MINDAMAGE, minbasevalue);
                break;
            }
        }
    }
}

Последний раз редактировалось Konctantin; 21.10.2014 в 19:00. Причина: code tag
Vai Konteh вне форума   Ответить с цитированием
Старый 11.10.2014, 11:25   #2
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

Сама технология в корне неверна. Есть уже ауры и обработка целиком аур эффектов. Примеров масса в SpellAuras.cpp/SpellAuraEffects.cpp. По ID ауры есть обработка снятие/наложение и делаются действия.

Т. е вам нужно найти для спелла вашу ауру, и убедится, что она реализована. Например для аур типа Dummy нужен свой серверный скрипт.
См.
Цитата:
HandleAuraDummy
Там масса примеров, можно быстро понять что к чему, если хорошо владеете С++
MaS0n вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Vai Konteh (11.10.2014)
Старый 11.10.2014, 11:51   #3
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Да это то понятно, вопрос в другом что я не нашел ни чего подобного с чего можно было бы опереться.Если кто реально может помочь в моей проблеме ,а не писать наводящие вопросы на вопросы,за ранее спасибо!
Vai Konteh вне форума   Ответить с цитированием
Старый 11.10.2014, 16:44   #4
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Цитата:
Сообщение от Vai Konteh Посмотреть сообщение
а не писать наводящие вопросы на вопросы
Извиняюсь за эти слова, вот только ,что дошло в коде все намного проще чем я думал! Просто я пытался в наглую менять значения у всех единиц, а оказалось при внимательном изучении кода и правильном его понимании все просто ,что все значения уже есть в переменных нужного класса,в общем Mason сори за дерзость и спасибо за совет!!!
Vai Konteh вне форума   Ответить с цитированием
Старый 11.10.2014, 18:25   #5
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от Vai Konteh Посмотреть сообщение
Так вот как узнать в коде сервера выполняется ли они или узнать время выполнения?
https://ru.wikipedia.org/wiki/%D0%9E...87%D0%B8%D0%BA
Amaru вне форума   Ответить с цитированием
Старый 12.10.2014, 01:16   #6
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

http://ru-mangos.ru/showthread.php?p=13813

всю тему читать запоем
MaS0n вне форума   Ответить с цитированием
Старый 21.10.2014, 04:08   #7
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Всем привет, подскажите пожалуйста как спелу вихрь у воина изменить время восстановления, весь код перерыл примеров не нашел!
Пытался отправить клиенту пакет: SMSG_SPELL_COOLDOWN ,но он только увеличивает время восстановления ,я так понимаю что в клиенте уже есть код который изменяет время при получении какого-то пакета ,но вот какого я не знаю или может я не прав?Если кто знает подскажите пожж!
P.S. Mason cпасибо за инфу с отладкой!!!
Vai Konteh вне форума   Ответить с цитированием
Старый 21.10.2014, 10:12   #8
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Кулдауны заклинаний находятся в SpellCooldowns.dbc
__________________
Konctantin вне форума   Ответить с цитированием
Старый 22.10.2014, 15:08   #9
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Перепутал...

Последний раз редактировалось Den; 25.10.2014 в 09:13.
Den вне форума   Ответить с цитированием
Старый 26.10.2014, 13:30   #10
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Всем привет, да я знаю ,что все колдауны там находятся ,только не понятно вы хотели мне посоветовать: изменить значения в SpellCooldowns.dbc или что-то другое? Кстати вот еще вопрос у этого спела вихрь есть эффект: 64, это урон от левой руки , почему не реализовано не в тринити не в мангосе?
Vai Konteh вне форума   Ответить с цитированием
Старый 27.10.2014, 12:15   #11
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Блин вот я невежда ,все там реализовано, только не понятно почему способность наносит урон 2 раза?
Vai Konteh вне форума   Ответить с цитированием
Старый 27.10.2014, 14:33   #12
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от Vai Konteh Посмотреть сообщение
Блин вот я невежда ,все там реализовано, только не понятно почему способность наносит урон 2 раза?
2 урон эффекта - 2 раза урон
Amaru вне форума   Ответить с цитированием
Старый 28.10.2014, 06:11   #13
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Всем здравствуйте, ну подскажите кто ни-будь, как сократить колдаун способности вихрь при условии если способность наносит 4 целям урон!Как проверить есть ли в радиусе 4 цели я понял в роди и как проверить есть ли у воина в правой руке оружие, тоже в роди разобрался ,а вот с колдауном не как не могу весь мозг уже вынес себе, если кто знает подскажите пожалуйста!

Добавлено через 1 час 57 минут
Все нашел решение, спасибо TrinityCore и их реализованной функции: void Player::ModifySpellCooldown(uint32 spellId, int32 cooldown)!!!
Vai Konteh вне форума   Ответить с цитированием
Старый 29.10.2014, 04:19   #14
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Всем привет, кстати реализация левой руки-44949 у способности вихрь-1680 не правильная, потому-что в клиенте реализована правая рука по другому то есть наноситься нормал урон эфф. и 65% от оружия только в том случае если тип оружия для правой руки ,а другими типами на пример просто одноручным или двуручным только нормал,и исходя из этой логики левая должна работать так же ,но она наносит 2 урон-эффекта ,любым типом оружия ,то есть на сервере нет должной обработки этого события!Вот сижу думаю как исправить!

А нет блин все правильно работает, это я что-то туплю!! Но вот есть реальный вопрос, почему бывает ,что не срабатывает 64-ый эффект у спелла вихрь?

Последний раз редактировалось Vai Konteh; 29.10.2014 в 11:50.
Vai Konteh вне форума   Ответить с цитированием
Старый 30.10.2014, 15:20   #15
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

Всем привет, Кружась в смертоносном вихре, вы атакуете всех противников в радиусе $a1 м, нанося каждому из них $m2% урона от оружия ближнего боя как правой, так и левой рукой. Если способность наносит урон 4 и более целям оружием в правой руке, время ее восстановления снижается до $m3 сек., это описание спелла в spell.dbc!!!Кто нибудь объясните как это расшифровать $m2% или это dbc редактор не правильно считывает данные?
Vai Konteh вне форума   Ответить с цитированием
Старый 30.10.2014, 19:59   #16
qvip
Новичок
 
Регистрация: 05.09.2010
Сообщений: 26
Сказал(а) спасибо: 2
Поблагодарили 4 раз(а) в 3 сообщениях
qvip На верном пути
По умолчанию

кажется я знаю, почему на форум больше никто не заходит...
qvip вне форума   Ответить с цитированием
Старый 30.10.2014, 22:22   #17
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Просветите?
__________________
Konctantin вне форума   Ответить с цитированием
Старый 31.10.2014, 06:28   #18
Vai Konteh
Новичок
 
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Vai Konteh На верном пути
По умолчанию

народ подскажите , сколько урона должен наносить ,спелл удар?
Vai Konteh вне форума   Ответить с цитированием
Старый 01.11.2014, 13:40   #19
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от qvip Посмотреть сообщение
кажется я знаю, почему на форум больше никто не заходит...
Народ хочет знать.
Den вне форума   Ответить с цитированием
Старый 01.11.2014, 17:55   #20
Karazhan
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
Karazhan На верном пути
По умолчанию

Версии:
1)На Cmangos форум перебрались.
2)Вов задолбал.
3)Придумайте сами XD
Цитата:
народ подскажите , сколько урона должен наносить ,спелл удар?
Код:
// SpellEffect.dbc
struct SpellEffectEntry
{
    //uint32    Id;                                           // 0        m_ID
    uint32    Effect;                                       // 73-75    m_effect
    float     EffectMultipleValue;                          // 106-108  m_effectAmplitude
    uint32    EffectApplyAuraName;                          // 100-102  m_effectAura
    uint32    EffectAmplitude;                              // 103-105  m_effectAuraPeriod
    int32     EffectBasePoints;                             // 82-84    m_effectBasePoints (don't must be used in spell/auras explicitly, must be used cached Spell::m_currentBasePoints)
    //float   unk_320_4;                                    // 169-171  3.2.0
    float     DmgMultiplier;                                // 156-158  m_effectChainAmplitude
    uint32    EffectChainTarget;                            // 109-111  m_effectChainTargets
    int32     EffectDieSides;                               // 76-78    m_effectDieSides
    uint32    EffectItemType;                               // 112-114  m_effectItemType
    uint32    EffectMechanic;                               // 85-87    m_effectMechanic
    int32     EffectMiscValue;                              // 115-117  m_effectMiscValue
    int32     EffectMiscValueB;                             // 118-120  m_effectMiscValueB
    float     EffectPointsPerComboPoint;                    // 124-126  m_effectPointsPerCombo
    uint32    EffectRadiusIndex;                            // 94-96    m_effectRadiusIndex - spellradius.dbc
    uint32    EffectRadiusMaxIndex;                         // 97-99    4.0.0
    float     EffectRealPointsPerLevel;                     // 79-81    m_effectRealPointsPerLevel
    ClassFamilyMask EffectSpellClassMask;                   // 127-129  m_effectSpellClassMask
    uint32    EffectTriggerSpell;                           // 121-123  m_effectTriggerSpell
    uint32    EffectImplicitTargetA;                        // 88-90    m_implicitTargetA
    uint32    EffectImplicitTargetB;                        // 91-93    m_implicitTargetB
    uint32    EffectSpellId;                                // new 4.0.0
    uint32    EffectIndex;                                  // new 4.0.0
    //uint32 unk;                                           // 24 - 4.2.0

    // helpers

    int32 CalculateSimpleValue() const { return EffectBasePoints; }

    uint32 GetRadiusIndex() const
    {
        if (EffectRadiusIndex != 0)
            return EffectRadiusIndex;

        return EffectRadiusMaxIndex;
    }
};
int32 EffectBasePoints; // 82-84 m_effectBasePoints (don't must be used in spell/auras explicitly, must be used cached Spell::m_currentBasePoints)

Это с Катаклизма правда, но всё таки вот - Base Point отвечают за то, сколько урона он нанесёт. В ядре же CalculateSimpleValue(Рассчитать простое значение)
Код:
UNIT_FLAG_IN_COMBAT
Не по существу вопрос конечно. Но что даёт установка этого флага скажем скриптом?
Код:
case EVENT_T_TIMER_IN_COMBAT:
            if (!m_creature->isInCombat())
                return false;
Моб будет думать, что он в бою? Или нет? Если да, то круто. Если нет, досадно!
__________________
So foolish.

Последний раз редактировалось Karazhan; 01.11.2014 в 18:02.
Karazhan вне форума   Ответить с цитированием
Старый 01.11.2014, 21:36   #21
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Код:
case EVENT_T_TIMER_IN_COMBAT:
            if (!m_creature->isInCombat())
                return false;
Если существо не в бою, то скрипт не сработает.

Цитата:
Моб будет думать, что он в бою? Или нет? Если да, то круто. Если нет, досадно!
Моб вообще думать ничего не будет, потому что у него мозгов нету. ))))) Моб будет в бою.

Последний раз редактировалось NeatElves; 02.11.2014 в 00:10.
Den вне форума   Ответить с цитированием
Старый 02.11.2014, 00:23   #22
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от Karazhan Посмотреть сообщение
Версии:
1)На Cmangos форум перебрались.
2)Вов задолбал.
3)Придумайте сами XD
4)Задолбали эмуляторы
5)Задолбались на тупые вопросы отвечать
Amaru вне форума   Ответить с цитированием
Старый 02.11.2014, 08:53   #23
Karazhan
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
Karazhan На верном пути
По умолчанию

Цитата:
4)Задолбали эмуляторы
Глядя то, что творится на оффе - даже туда возвращаться неохото.
Цитата:
5)Задолбались на тупые вопросы отвечать
Каждому своё.
Цитата:
Моб вообще думать ничего не будет, потому что у него мозгов нету. ))))) Моб будет в бою.
Попробую ему флаг при спавне присандалить - посмотрю что выйдет.
__________________
So foolish.
Karazhan вне форума   Ответить с цитированием
Старый 02.11.2014, 17:17   #24
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

6) появились другие интересы.
__________________
Konctantin вне форума   Ответить с цитированием
Старый 03.11.2014, 02:12   #25
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

7) Лайфят по-черному
Amaru вне форума   Ответить с цитированием
Старый 04.11.2014, 02:28   #26
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

и чернят по лайфному)
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Спеллы ObeDve Баг-репорты 0 01.11.2011 15:15
Спеллы (создание/иземенение) Apocaliptyn Корзина 2 25.06.2011 17:12
[patch/dev]Спеллы квестов Охота на драконов [11919,11940] virusav Патчи на рассмотрении 4 19.03.2011 00:20
[patch]Спеллы, учитывающие пол цели virusav Принятые патчи 1 15.07.2010 05:32
Некоторые Спеллы MaxXx2021 Корзина 7 31.03.2010 07:53


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


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