|
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
19.06.2012, 19:25 | #1 |
Администратор
|
[12018] [patch][spell=51519]Death Knight Initiate Visual
Спелл 51519 должен менять модель в зависимости от расы и пола.
Патч во вложении. Дублирую: Код:
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 4e88889..848198b 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -7338,6 +7338,34 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) return; } + case 51519: // Death Knight Initiate Visual + { + if (!unitTarget) + return; + + uint8 gender = unitTarget->getGender(); + uint8 race = unitTarget->getRace(); + uint32 spellId = 0; + switch (race) + { + case RACE_HUMAN: spellId = (gender == GENDER_MALE ? 51520 : 51534); break; + case RACE_DWARF: spellId = (gender == GENDER_MALE ? 51538 : 51537); break; + case RACE_NIGHTELF: spellId = (gender == GENDER_MALE ? 51535 : 51536); break; + case RACE_GNOME: spellId = (gender == GENDER_MALE ? 51539 : 51540); break; + case RACE_DRAENEI: spellId = (gender == GENDER_MALE ? 51541 : 51542); break; + case RACE_ORC: spellId = (gender == GENDER_MALE ? 51543 : 51544); break; + case RACE_UNDEAD: spellId = (gender == GENDER_MALE ? 51549 : 51550); break; + case RACE_TAUREN: spellId = (gender == GENDER_MALE ? 51547 : 51548); break; + case RACE_TROLL: spellId = (gender == GENDER_MALE ? 51546 : 51545); break; + case RACE_BLOODELF: spellId = (gender == GENDER_MALE ? 51551 : 51552); break; + default: + return; + } + if (spellId) + unitTarget->CastSpell(unitTarget, spellId, true); + + return; + } case 51770: // Emblazon Runeblade { Unit* caster = GetAffectiveCaster(); |
5 пользователя(ей) сказали cпасибо: | Astoria (19.06.2012), Den (19.06.2012), partizanes (19.06.2012), rsa (19.06.2012), schmoozerd (24.06.2012) |
20.06.2012, 20:16 | #2 |
MaNGOS Dev
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
|
Small note: with this implemented we need to remove the hacks from the sd2 scripts.
I assume you tested without them? |
21.06.2012, 09:10 | #3 |
Администратор
|
Я тестировал на чистом ядре, без СД2.
I tested it on a clean kernel without SD2. |
21.06.2012, 19:55 | #4 |
MaNGOS Dev
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
|
Actualy this patch seems to be wrong:
Код:
// equal to player Race field, but creature does not have race SetByteValue(UNIT_FIELD_BYTES_0, 0, 0); |
22.06.2012, 09:37 | #5 |
Администратор
|
Если спелл кастует игрок, то меняем условие
Код:
if (!unitTarget) Код:
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) |
22.06.2012, 10:14 | #6 |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
|
22.06.2012, 20:44 | #7 |
MaNGOS Dev
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
|
maybe it was unclear in the beginning if npcs can have a race.
and it uses UNIT_FIELD_BYTES_1(0), so it is with some reason on unit-level. About this patch. I see no other way then to use the way sd2 handles this (by display-id) - which could be ported to mangos-code. This would actually be nicer as it would then be a script-effect. But move something rather ugly to mangos. Hence I think the ugly code is better left in sd2 even if it must be considered a hack there |
Пользователь сказал cпасибо: | KiriX (23.06.2012) |
23.06.2012, 01:05 | #8 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Код:
struct CreatureDisplayInfoExtraEntry { uint32 DisplayExtraId; // 0 m_ID CreatureDisplayInfoEntry::m_extendedDisplayInfoID uint32 Race; // 1 m_DisplayRaceID [Added] In fact, in DBCStores.h exist special function for this: Код:
MANGOS_DLL_SPEC uint32 GetCreatureModelRace(uint32 model_id);
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 23.06.2012 в 01:21. |
4 пользователя(ей) сказали cпасибо: |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[12018] Implement spell 51519 | newsbot | CMaNGOS Commits | 0 | 24.06.2012 20:41 |
[11685] Death Knight T9 Melee 2P Bonus | newsbot | CMaNGOS Commits | 0 | 27.06.2011 15:40 |
[11685][fix] Death Knight T9 Melee 2P Bonus | Den | Принятые патчи | 1 | 27.06.2011 15:34 |
Реализация Death Knight T8 Melee 4P Bonus + упрощение расчетов бонусов от болезней ДК | Warlord123 | Патчи на рассмотрении | 0 | 22.10.2010 19:01 |