Fief WoD : aucun moyen de rentrer dans un fief deja fonde
Les deux points d entree ne se declenchent que si le joueur n a PAS encore de fief : l objet Master Surveyor (233664, Horde) et Baros Alexston (79243, Alliance). Une fois le fief fonde, plus rien n y ramenait. Les trois joueurs du royaume qui en possedent un ne sont jamais alles dessus : aucun personnage n a jamais ete sur les cartes 1152, 1153, 1158, 1159, 1330 ni 1331. Gazlowe (78466) et Baros proposent desormais "Emmenez-moi a mon fief" aux proprietaires. L option est masquee quand on est deja sur une carte de fief, Gazlowe y etant aussi spawne. Le declencheur de proximite cote Horde n est pas touche : il aurait teleporte tout passant. TeleportOwnerAndPlayMovie renomme TeleportOwnerToGarrison, l ancien nom mentait depuis le retrait du film.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
-- Retour dans un fief deja fonde.
|
||||
--
|
||||
-- Les deux points d'entree du fief WoD ne se declenchent que si le joueur n'a
|
||||
-- PAS encore de fief : l'objet Master Surveyor (233664, Horde) et Baros
|
||||
-- Alexston (79243, Alliance). Une fois le fief fonde, plus rien ne permettait
|
||||
-- d'y entrer. Les trois joueurs du royaume qui possedent un fief ne sont
|
||||
-- jamais alles dessus (aucun personnage n'a jamais ete sur les cartes 1152,
|
||||
-- 1153, 1158, 1159, 1330 ni 1331).
|
||||
--
|
||||
-- Gazlowe (78466) recoit donc un script qui propose "Emmenez-moi a mon fief"
|
||||
-- aux proprietaires. Il est aussi spawne DANS les fiefs (cartes 1152, 1153,
|
||||
-- 1330) : le script n'y propose rien, il teste Map::IsGarrison().
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_gazlowe_garrison' WHERE `entry` = 78466;
|
||||
@@ -169,12 +169,12 @@ bool WodGarrison::Upgrade()
|
||||
_owner->SendGarrisonRemoteInfo();
|
||||
PhasingHandler::OnConditionChange(_owner);
|
||||
|
||||
TeleportOwnerAndPlayMovie();
|
||||
TeleportOwnerToGarrison();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WodGarrison::TeleportOwnerAndPlayMovie() const
|
||||
void WodGarrison::TeleportOwnerToGarrison() const
|
||||
{
|
||||
Position WodGarrisonEntrancePositions[2][3] =
|
||||
{
|
||||
|
||||
@@ -84,7 +84,7 @@ public:
|
||||
bool Create(uint32 garrSiteId) override;
|
||||
bool CanUpgrade(bool checkCost = true);
|
||||
bool Upgrade();
|
||||
void TeleportOwnerAndPlayMovie() const;
|
||||
void TeleportOwnerToGarrison() const;
|
||||
void Delete() override;
|
||||
|
||||
void Enter() override;
|
||||
|
||||
@@ -252,7 +252,7 @@ public:
|
||||
|
||||
if (Garrison* garr = player->GetGarrison(GARRISON_TYPE_GARRISON))
|
||||
{
|
||||
garr->ToWodGarrison()->TeleportOwnerAndPlayMovie();
|
||||
garr->ToWodGarrison()->TeleportOwnerToGarrison();
|
||||
player->KilledMonsterCredit(NPC_ESTABLISH_YOUR_GARRISON_KILL_CREDIT);
|
||||
}
|
||||
}
|
||||
@@ -366,6 +366,45 @@ class spell_groog_rampage : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
/// 78466 - Gazlowe : retour dans un fief deja fonde.
|
||||
/// Les deux points d'entree existants (l'objet Master Surveyor cote Horde,
|
||||
/// Baros Alexston cote Alliance) ne se declenchent que si le joueur n'a PAS
|
||||
/// encore de fief. Une fois celui-ci fonde, plus rien ne permettait d'y entrer.
|
||||
class npc_gazlowe_garrison : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_gazlowe_garrison() : CreatureScript("npc_gazlowe_garrison") { }
|
||||
|
||||
enum
|
||||
{
|
||||
GOSSIP_ACTION_ENTER_GARRISON = 1000
|
||||
};
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
/// Gazlowe est aussi spawne a l'interieur des fiefs : on n'y propose rien.
|
||||
if (player->GetGarrison(GARRISON_TYPE_GARRISON) && !player->GetMap()->IsGarrison())
|
||||
AddGossipItemFor(player, 0, "Emmenez-moi à mon fief.", 0, GOSSIP_ACTION_ENTER_GARRISON);
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
if (action == GOSSIP_ACTION_ENTER_GARRISON)
|
||||
if (Garrison* garrison = player->GetGarrison(GARRISON_TYPE_GARRISON))
|
||||
garrison->ToWodGarrison()->TeleportOwnerToGarrison();
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_frostfire_ridge()
|
||||
{
|
||||
/* BEGIN */
|
||||
@@ -376,6 +415,7 @@ void AddSC_frostfire_ridge()
|
||||
new npc_durotan_frostridge_begin();
|
||||
|
||||
new go_frostridge_master_surveyor();
|
||||
new npc_gazlowe_garrison();
|
||||
|
||||
new spell_frostridge_claiming();
|
||||
|
||||
|
||||
@@ -180,20 +180,29 @@ public:
|
||||
if (player->GetQuestStatus(QUEST_ESTABLISH_YOUR_GARRISON) == QUEST_STATUS_INCOMPLETE)
|
||||
AddGossipItemFor(player, 60002, 1, 0, 0);
|
||||
|
||||
/// Retour dans un fief deja fonde : sans cela plus rien n'y ramene.
|
||||
if (player->GetGarrison(GARRISON_TYPE_GARRISON) && !player->GetMap()->IsGarrison())
|
||||
AddGossipItemFor(player, 0, "Emmenez-moi à mon fief.", 0, 1000);
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 /*action*/) override
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
Garrison* garrison = player->GetGarrison(GARRISON_TYPE_GARRISON);
|
||||
if (!garrison)
|
||||
{
|
||||
CloseGossipMenuFor(player);
|
||||
player->CreateGarrison(player->IsInAlliance() ? GARRISON_SITE_WOD_ALLIANCE : GARRISON_SITE_WOD_HORDE);
|
||||
player->GetGarrison(GARRISON_TYPE_GARRISON)->ToWodGarrison()->TeleportOwnerAndPlayMovie();
|
||||
player->GetGarrison(GARRISON_TYPE_GARRISON)->ToWodGarrison()->TeleportOwnerToGarrison();
|
||||
player->KilledMonsterCredit(NPC_ESTABLISH_YOUR_GARRISON_KILL_CREDIT);
|
||||
}
|
||||
else if (action == 1000)
|
||||
{
|
||||
CloseGossipMenuFor(player);
|
||||
garrison->ToWodGarrison()->TeleportOwnerToGarrison();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user