Ha az arénán a játékosok rákattintanak az gameobjectre akkor hamarabb elkezdődhet a harc!
SQL:http://pastebin.com/d48DHVJH
src/server/game/Battlegrounds/Battleground.cpp
Keresd meg m_Events |= BG_STARTING_EVENT_4; ezt a sort és alá másold be ami plusz jellel van jelőlve.
m_Events |= BG_STARTING_EVENT_4;
+ DespawnCrystals();
+
Ha megvagy akkor a Battleground.cpp fájl legvégére menyél és másold be az alábbi sorokat.
+
+uint8 Battleground::ClickFastStart(Player *player, GameObject *go)
+{
+ if (!isArena())
+ return 0;
+
+ std::set<uint64>::iterator pIt = m_playersWantsFastStart.find(player->GetGUID());
+ if (pIt != m_playersWantsFastStart.end() || GetStartDelayTime() < BG_START_DELAY_15S)
+ return m_playersWantsFastStart.size();
+
+ m_playersWantsFastStart.insert(player->GetGUID());
+ std::set<GameObject*>::iterator goIt = m_crystals.find(go);
+
+ if (goIt == m_crystals.end())
+ m_crystals.insert(go);
+
+ uint8 playersNeeded = 0;
+ switch(GetArenaType())
+ {
+ case ARENA_TYPE_2v2:
+ playersNeeded = 4;
+ break;
+ case ARENA_TYPE_3v3:
+ playersNeeded = 6;
+ break;
+ case ARENA_TYPE_5v5:
+ playersNeeded = 10;
+ break;
+ }
+
+ if (m_playersWantsFastStart.size() == playersNeeded)
+ {
+ DespawnCrystals();
+ SetStartDelayTime(BG_START_DELAY_15S);
+ }
+
+ return m_playersWantsFastStart.size();
+}
+
+void Battleground::DespawnCrystals()
+{
+ if (m_crystals.empty())
+ return;
+ /* for (std::set<GameObject*>::iterator itr = m_crystals.begin(); itr != m_crystals.end(); itr)
+ { } */
+}
src/server/game/Battlegrounds/Battleground.h fájlt nyisd meg és keresd meg a virtual uint32 GetPrematureWinner(); sort és másold alá a + jeles sorokat.
virtual uint32 GetPrematureWinner();
+ uint8 ClickFastStart(Player *player, GameObject *go);
+ void DespawnCrystals();
+
Még mindig a Battleground.h fájlban vagyunk keresd meg az alábbi sort: char const* m_Name;
ha megvan akkor alá másold be:
char const* m_Name;
+ std::set<uint64> m_playersWantsFastStart;
+ std::set<GameObject*> m_crystals;
+
src/server/game/Scripting/ScriptLoader.cpp
void AddSC_fast_arena_start();
AddSC_fast_arena_start();
src/server/scripts/Custom/CMakeLists.txt
+ Custom/arena_fast_start.cpp
src/sever/scripts/Custom/arena_fast_start.cpp
/*******************************************************************************************
* ______ ______ _____ *
* / _____) | ___ \ / ___ \ _ *
* | / ___ ____ ____ _ _| | _ | | ___ _ _ ____| | | |_ _| |_ *
* | | (___)/ _ |/ ___) | | | || || |/ _ \ | | / _ ) | | | | | | _) *
* | \____/( ( | | | | |_| | || || | |_| \ V ( (/ /| |___| | |_| | |__ *
* \_____/ \_||_|_| \__ |_||_||_|\___/ \_/ \____)\_____/ \____|\___) *
* (____/ *
* or any other files are protected. You cannot re-release *
* anywhere unless you were given permission. *
* (C) GaryMoveOut 2013. All rights reserved. *
********************************************************************************************/
#include "ScriptPCH.h"
#include "Battleground.h"
class fast_arena_start : public GameObjectScript
{
public:
fast_arena_start() : GameObjectScript("fast_arena_start")
{ }
bool OnGossipHello(Player* player, GameObject* go)
{
if (Battleground *bg = player->GetBattleground())
if (bg->isArena())
ChatHandler(player->GetSession()).PSendSysMessage("Players clicked: %u", bg->ClickFastStart(player, go));
return false;
}
};
void AddSC_fast_arena_start()
{
new fast_arena_start();
}
a + jeleket töröld a sorok elejéről!
Egy ilyet valóban nem nehéz írni, de ha már "publikálsz" valamit publikáld az egészet légyszíves...
"bg->ClickFastStart(player, go)":
A ClickFastStart egy saját függvény aminélkül szart sem ér az egész.