Boss la crypte
Bonjour,
Je viens partager ici mon tout dernier boss créer en c++, que m'avait demander soit disant un "Mj" de millenium (que je ne crois pas du tout, adresse du soit disant MJ "[email protected]" pseudo millenium : Ashnou).

Enfin bref, vue que sa traine dans mes dossier je le partage ici.
Si vous avez remarques, critiques ou autres, je suis preneur :

Nom : La crypte
Compatible : 3.3.3a & 3.3.5

Voici ce qu'il fait :

Des le pull :
- Il annonce le script texte "1999926".
- Lance un sort de no cooldown, id = "45813".
- Puis suivit d'un auras de givre, id = "55799".

A 50% :
- Il annonce le script texte "1999927".
- Puis passe en bersek, id = "2825"

Des le kill :
- Il annonce le script texte "1999928".

Cycle dps :
- Il lance une slave de givre toute les 10 secondes, id = "61594".
- Il lance une explosion des arcanes toutes les 30 secondes, id = "29973".
- Il lance un bump toute les 60 secondes, id = "24910".
- Il lance une invocation de bête toute les 90 secondes, id = "63708".


[code=cpp]
// Créer par Forbidden, merci de pas supprimer cette ligne pour respecter mon travail.

#include "precompiled.h"

#define SAY_AGGRO -1999926
#define SAY_SUMMON50 -1999927
#define SAY_KILL -1999928

#define SPELL_INSTANTANER 45813
#define SPELL_AURA_GIVRE 55799
#define SPELL_SLAVE_GIVRE 61594
#define SPELL_EXPLOSION_ARCANE 29973
#define SPELL_CORRUPTION_TERRE 24910
#define SPELL_INVOCATION_BETE 63708
#define SPELL_BERSEK 2825

struct MANGOS_DLL_DECL boss_la_crypteAI : public ScriptedAI
{
boss_la_crypteAI(Creature* pCreature) : ScriptedAI(pCreature) {Reset();}

uint32 SLAVE_GIVRE_Timer;
uint32 EXPLOSION_ARCANE_Timer;
uint32 CORRUPTION_TERRE_Timer;
uint32 INVOCATION_BETE_Timer;
bool Spectrals50;
bool Spectrals100;

void Reset()
{
SLAVE_GIVRE_Timer = 10000;
EXPLOSION_ARCANE_Timer = 30000;
CORRUPTION_TERRE_Timer = 60000;
INVOCATION_BETE_Timer = 90000;
Spectrals50 = false;
Spectrals100 = false;
}

void Aggro(Unit *who)
{
DoScriptText(SAY_AGGRO, m_creature); //Des le pull il annonce "SAY_AGGRO"
DoCastSpellIfCan(m_creature,SPELL_INSTANTANER);
}

void Kill(Unit *who)
{
DoScriptText(SAY_KILL, m_creature);
}

void UpdateAI(const uint32 diff)
{
{
if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
return;

if (!Spectrals100 && m_creature->GetHealthPercent() < 100.0f)
{
DoCastSpellIfCan(m_creature,SPELL_AURA_GIVRE);
Spectrals100 = true;
}

if (!Spectrals50 && m_creature->GetHealthPercent() < 50.0f)
{
DoScriptText(SAY_SUMMON50, m_creature);
DoCastSpellIfCan(m_creature,SPELL_BERSEK);
Spectrals50 = true;
}

//SLAVE_GIVRE_Timer
if (SLAVE_GIVRE_Timer < diff)
{
DoCastSpellIfCan(m_creature,SPELL_SLAVE_GIVRE);
SLAVE_GIVRE_Timer = 10000;
} else SLAVE_GIVRE_Timer -= diff;

//EXPLOSION_ARCANE_Timer
if (EXPLOSION_ARCANE_Timer < diff)
{
DoCastSpellIfCan(m_creature,SPELL_EXPLOSION_ARCANE);
EXPLOSION_ARCANE_Timer = 30000;
} else EXPLOSION_ARCANE_Timer -= diff;

//CORRUPTION_TERRE_Timer
if (CORRUPTION_TERRE_Timer < diff)
{
DoCastSpellIfCan(m_creature,SPELL_CORRUPTION_TERRE);
CORRUPTION_TERRE_Timer = 60000;
} else CORRUPTION_TERRE_Timer -= diff;

//INVOCATION_BETE_Timer
if (INVOCATION_BETE_Timer < diff)
{
DoCastSpellIfCan(m_creature,SPELL_INVOCATION_BETE);
DoCastSpellIfCan(m_creature,SPELL_INVOCATION_BETE);
INVOCATION_BETE_Timer = 90000;
} else INVOCATION_BETE_Timer -= diff;
}
DoMeleeAttackIfReady();
}

void KilledUnit()
{
DoScriptText(SAY_KILL, m_creature);
}
};

CreatureAI* GetAI_boss_la_crypte(Creature* pCreature)
{
return new boss_la_crypteAI(pCreature);
}

void AddSC_boss_la_crypte()
{
Script *newscript;
newscript = new Script;
newscript->Name = "boss_la_crypte";
newscript->GetAI = &GetAI_boss_la_crypte;
newscript->RegisterSelf();
}[/code]

Inclure dans la base de donnée ScriptDev2 :

[code=sql]REPLACE INTO script_texts (entry, content_default, content_loc2, sound, type, language, emote, comment) VALUES
(-8388606, "Vous êtes arrivés à la fin de votre voyage. C'est terminé pour vous.", "Vous êtes arrivés à la fin de votre voyage. C'est terminé pour vous.", 5830, 1, 0, 0, "Npc texte Pull - La Crypte"),
(-8388607, "Vous êtes finis !", "Vous êtes finis !", 5830, 1, 0, 0, "Npc texte 50% - La Crypte"),
(-8388608, "Vous... Vous..., vous m'avez vaincu ! Je reviendrai ! Misérables aventuriers !", "Vous... Vous..., vous m'avez vaincu ! Je reviendrai ! Misérables aventuriers !", 5830, 1, 0, 0, "Npc texte Kill - La Crypte");[/code]

Update de la base de donnée mangos :

[code=sql]-- Vous devez crée 1 PNJ en 1er !
UPDATE `creature_template` SET ScriptName='boss_la_crypte' WHERE `entry`= ID_BOSS;[/code]

Autres : Ainsi inclut le cahier des charges de l'event qu'il m'avait donner.

Support à la suite du message.
Cordialement.
Pièce(s) jointe(s)
.rar  La crypte.rar (Taille : 2.82 Ko)

Retourner en haut Accueil