Reset des cooldowns, de la vie et de la mana après un duel
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]
Il pourrais avoir un problème si ce serait un voleur ou autre n'ayant pas de mana, non ?
Non la fonction gère si le joueur a le POWER_MANA.
Mathman =O

Merci ça me servira a faire une zone de duel Hihi
Y'a plus simple comme script mais merci Hihi
(13-05-2011 17:46)vlamer a écrit :  Y'a plus simple comme script mais merci Hihi

Ha, bah vas y montre nous Smile
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

J'aimerais bien savoir comment faire pour délimiter les zone , pour le modifier a ma convenance.
Tu modifie 14 & 12 par la mapID que tu veut[code=cpp]
if (winner->GetZoneId() == 14 || winner->GetZoneId() == 12)[/code]
Ca prend toute la map là, il faut une autre modif mais j'ai oublier
Bonjour est-ce normal que je ne trouve pas les fichiers ayant l'extension .cpp ?
Normal oui, il n'y pas à trouver le fichier .cpp mais à le faire, sauf pour le fichier ScriptLoader.cpp et le fichier CMakeLists.txt Heureux

Retourner en haut Accueil