PDA

Просмотр полной версии : [patch] Shaman T10 Elemental 2P Bonus


Den
03.07.2011, 17:27
Кое-какая информация по опкоду SMSG_MODIFY_COOLDOWN , была взята отсюда: http://ru-mangos.ru/showthread.php?t=2708

Автор: ?
diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp
index 92347ec..024a02b 100644
--- a/src/game/UnitAuraProcHandler.cpp
+++ b/src/game/UnitAuraProcHandler.cpp
@@ -2385,6 +2385,23 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura
basepoints[0] = int32(triggerAmount * damage / 100) / GetSpellAuraMaxTicks(triggered_spell_id);
break;
}
+ // Item - Shaman T10 Elemental 2P Bonus
+ case 70811:
+ {
+ // Lightning Bolt == 0x0000000000000001, Chain Lightning == 0x0000000000000002
+ if (procSpell->IsFitToFamilyMask(UI64LIT(0x0000000000000003)))
+ {
+ uint32 cooldown = ((Player*)this)->GetSpellCooldownDelay(16166);
+ ((Player*)this)->AddSpellCooldown(16166, 0, uint32(time(NULL) + cooldown));
+
+ WorldPacket data(SMSG_MODIFY_COOLDOWN, 4 + 8 + 4);
+ data << uint32(16166);
+ data << uint64(GetObjectGuid());
+ data << int32(-2000);
+ ((Player*)this)->GetSession()->SendPacket(&data);
+ return SPELL_AURA_PROC_OK;
+ }
+ }
}
// Storm, Earth and Fire
if (dummySpell->SpellIconID == 3063)

Amaru
04.07.2011, 21:12
не понятно.

спеллу выставляется такой же кулдаун, какой и был.
клиенту высылается обновление кулдауна, хотя это не произошло.
и что клиент будет думать, если оставшееся кд, например, 1 секунда, а ему приходит изменение на -2 сек?
конверт uint64(GetObjectGuid()) вроде бы не нужен, не так ли?
зачем обрабатывать прок, если кд на спелле нет?
не хватает break в case

2000 хранится в basepoints, а прок можно было бы запилить в spell_proc_event

Den
04.07.2011, 22:11
Ну попробуйте.

зачем break после return ? О_о

add
а прок можно было бы запилить в spell_proc_event

имхо лишние записи в бд, не к чему .

Vipertv
05.07.2011, 10:01
До использования таких вещей как ((Player*)this), возможно стоит проверять на соответствие GetTypeId к TYPEID_PLAYER. Это позволит избежать хоть и маловероятного но все-таки краша.

Den
20.07.2011, 18:52
Хм... это не мое "творение"... патч с ссылкой на http://ru-mangos.ru/showthread.php?t=2708 случайно залетел в папку /мои_патчи, и при чем довольна таки давно лежал там. Может быть с гетмангоса или с форка какого.

Amaru
21.07.2011, 22:42
Ну попробуйте.
зачем break после return ? О_о.
потому что если спелл не чайник и не болт, то при наличии кода после этого кейса на прок, свитч провалится дальше.

имхо, треш а не патч :bad:

HuntsMan
22.07.2011, 01:53
А почему бы момент с отсылкой пакета SMSG_MODIFY_COOLDOWN не перенести в AddSpellCooldown?