Voici le script d'un PNJ qui permettra à vous joueurs de dévoiler toute la map.
[code=cpp]#include "precompiled.h"
#define MENU_1 "Je souhaite voir toute la carte"
#define MENU_2 "Au revoir !"
#define TEXTE_1 "Je ne m'occuperais pas de vous tant que vous combattrez !"
#define TEXTE_2 "Au revoir, aventurier !"
#define TEXTE_3 "La carte d'Azeroth n'a maintenant plus de secret pour vous !"
bool GossipHello_macwarrior_map(Player *player, Creature *_Creature)
{
player->ADD_GOSSIP_ITEM( 4, MENU_1, GOSSIP_SENDER_MAIN, 1000);
player->ADD_GOSSIP_ITEM( 11, MENU_2, GOSSIP_SENDER_MAIN, 1001);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());
return true;
}
void SendDefaultMenu_macwarrior_map(Player *player, Creature *_Creature, uint32 action )
{
if(!player->getAttackers().empty())
{
player->CLOSE_GOSSIP_MENU();
_Creature->MonsterSay(TEXTE_1, LANG_UNIVERSAL, NULL);
return;
}
switch(action)
{
case 1000: // Je souhaite voir toute la carte
player->CLOSE_GOSSIP_MENU();
_Creature->MonsterWhisper(TEXTE_3 ,player);
for (uint8 i=0; i<128; ++i)
{
player->SetFlag(PLAYER_EXPLORED_ZONES_1+i,0xFFFFFFFF);
}
break;
case 1001: // Au revoir !
player->CLOSE_GOSSIP_MENU();
_Creature->MonsterWhisper(TEXTE_2,player);
break;
}
}
bool GossipSelect_macwarrior_map(Player *player, Creature *_Creature, uint32 sender, uint32 action )
{
// Main menu
if (sender == GOSSIP_SENDER_MAIN)
SendDefaultMenu_macwarrior_map(player, _Creature, action);
return true;
}
void AddSC_macwarrior_map()
{
Script *newscript;
newscript = new Script;
newscript->Name = "macwarrior_map";
newscript->pGossipHello = &GossipHello_macwarrior_map;
newscript->pGossipSelect = &GossipSelect_macwarrior_map;
newscript->RegisterSelf();
}[/code]
Have Fun !
Cordialement,
MacWarrior.