Ce petit patch permet de reset les cooldowns, la vie et la mana des joueurs après chaque duel. Ici le script est limité à la foret elewynn et a durotar. Ce script utilise les hooks crées par Shocker.
src/server/game/Scripting/ScriptLoader.cpp
[code=diff]@@ -1145,6 +1145,7 @@
void AddSC_npc_outils();
void AddSC_BG_npc_tp_aleatoire();
void AddSC_Pnj_metier();
+void AddSC_Reset();
#endif
void AddCustomScripts()
@@ -1155,5 +1156,6 @@
AddSC_npc_outils();
AddSC_BG_npc_tp_aleatoire();
AddSC_Pnj_metier();
+ AddSC_Reset();
#endif
}[/code]
src/server/scripts/Custom/CMakeLists.txt
[code=diff]@@ -4,6 +4,7 @@
Custom/npc_outils.cpp
Custom/BG_npc_tp_aleatoire.cpp
Custom/Pnj_metier.cpp
+ Custom/Reset_duel.cpp
)
message(" -> Prepared: Custom")[/code]
src/server/scripts/Custom/Reset_duel.cpp
[code=diff]@@ -0,0 +1,26 @@
+#include "ScriptPCH.h"
+
+class Reset_OnDuelEnd : public PlayerScript
+{
+ public:
+ Reset_OnDuelEnd() : PlayerScript("Reset_OnDuelEnd") {}
+
+ void OnDuelEnd(Player *winner, Player *looser, DuelCompleteType type)
+ {
+ // reset cooldowns in elewynn forest and durotar
+ if (winner->GetZoneId() == 14 || winner->GetZoneId() == 12)
+ {
+ winner->RemoveArenaSpellCooldowns();
+ looser->RemoveArenaSpellCooldowns();
+ winner->SetHealth(winner->GetMaxHealth());
+ winner->SetPower(POWER_MANA, winner->GetMaxPower(POWER_MANA));
+ looser->SetHealth(looser->GetMaxHealth());
+ looser->SetPower(POWER_MANA, looser->GetMaxPower(POWER_MANA));
+ }
+ }
+};
+
+void AddSC_Reset()
+{
+ new Reset_OnDuelEnd;
+}[/code]