|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
11.10.2014, 10:17 | #1 |
Новичок
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
Спеллы
Подскажите, когда срабатывает спелл к примеру: безрассудство - ид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 |
11.10.2014, 11:25 | #2 | |
Модератор
|
Сама технология в корне неверна. Есть уже ауры и обработка целиком аур эффектов. Примеров масса в SpellAuras.cpp/SpellAuraEffects.cpp. По ID ауры есть обработка снятие/наложение и делаются действия.
Т. е вам нужно найти для спелла вашу ауру, и убедится, что она реализована. Например для аур типа Dummy нужен свой серверный скрипт. См. Цитата:
|
|
Пользователь сказал cпасибо: | Vai Konteh (11.10.2014) |
11.10.2014, 11:51 | #3 |
Новичок
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
Да это то понятно, вопрос в другом что я не нашел ни чего подобного с чего можно было бы опереться.Если кто реально может помочь в моей проблеме ,а не писать наводящие вопросы на вопросы,за ранее спасибо!
|
11.10.2014, 16:44 | #4 |
Новичок
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
Извиняюсь за эти слова, вот только ,что дошло в коде все намного проще чем я думал! Просто я пытался в наглую менять значения у всех единиц, а оказалось при внимательном изучении кода и правильном его понимании все просто ,что все значения уже есть в переменных нужного класса,в общем Mason сори за дерзость и спасибо за совет!!!
|
11.10.2014, 18:25 | #5 | |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
Цитата:
|
|
12.10.2014, 01:16 | #6 |
Модератор
|
|
21.10.2014, 04:08 | #7 |
Новичок
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
Всем привет, подскажите пожалуйста как спелу вихрь у воина изменить время восстановления, весь код перерыл примеров не нашел!
Пытался отправить клиенту пакет: SMSG_SPELL_COOLDOWN ,но он только увеличивает время восстановления ,я так понимаю что в клиенте уже есть код который изменяет время при получении какого-то пакета ,но вот какого я не знаю или может я не прав?Если кто знает подскажите пожж! P.S. Mason cпасибо за инфу с отладкой!!! |
22.10.2014, 15:08 | #8 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Перепутал...
Последний раз редактировалось Den; 25.10.2014 в 09:13. |
26.10.2014, 13:30 | #9 |
Новичок
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
Всем привет, да я знаю ,что все колдауны там находятся ,только не понятно вы хотели мне посоветовать: изменить значения в SpellCooldowns.dbc или что-то другое? Кстати вот еще вопрос у этого спела вихрь есть эффект: 64, это урон от левой руки , почему не реализовано не в тринити не в мангосе?
|
27.10.2014, 12:15 | #10 |
Новичок
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
Блин вот я невежда ,все там реализовано, только не понятно почему способность наносит урон 2 раза?
|
30.10.2014, 19:59 | #12 |
Новичок
Регистрация: 05.09.2010
Сообщений: 26
Сказал(а) спасибо: 2
Поблагодарили 4 раз(а) в 3 сообщениях
|
кажется я знаю, почему на форум больше никто не заходит...
|
01.11.2014, 13:40 | #13 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
|
31.10.2014, 06:28 | #15 |
Новичок
Регистрация: 14.09.2013
Адрес: пос.Усть-Омчуг
Сообщений: 13
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
народ подскажите , сколько урона должен наносить ,спелл удар?
|
01.11.2014, 17:55 | #16 | |
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Версии:
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; } }; Это с Катаклизма правда, но всё таки вот - 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. |
|
02.11.2014, 00:23 | #17 |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
|
01.11.2014, 21:36 | #18 | |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Код:
case EVENT_T_TIMER_IN_COMBAT: if (!m_creature->isInCombat()) return false; Цитата:
Последний раз редактировалось NeatElves; 02.11.2014 в 00:10. |
|
02.11.2014, 08:53 | #19 | |||
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Цитата:
Цитата:
Цитата:
__________________
So foolish. |
|||
03.11.2014, 02:12 | #21 |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
7) Лайфят по-черному
|
04.11.2014, 02:28 | #22 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
и чернят по лайфному)
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Спеллы | 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 |