[C++]Arena Fast Start

Indította MySQL, 2013 augusztus 28, 08:32:25 DÉLUTÁN

Előző téma - Következő téma

MySQL

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!

EroniX

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.
Azuregos Delta Force

Powered by EzPortal