Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
Sign in to follow this  
Wolf Officious

[Patch] AutoBroadcast ještě rychleji

Recommended Posts

Přijde mi blbost rvát to do Worldu ;) co když mám dva realmy které mají společnou DB ale na každý realm chcu jinou announci?

Jinak fajn +1

Edited by nEcroVisiOn

Share this post


Link to post
Share on other sites

Přijde mi blbost rvát to do Worldu ;) co když mám dva realmy které mají společnou DB ale na každý realm chcu jinou announci?

Jinak fajn +1

 

Vždyť kadždý world démon musí mít vlastní DB. Takže každý bude mít svoje broadcasty. nEcro's FAIL.. :D:diablo:

 

EDIT: Upraveno dne 14.6.2010

Edited by Wolf Officious
  • Upvote 1

Share this post


Link to post
Share on other sites

Já bych to dal do Characters ;) ten co ti poradil World nemá v hlavě mozek ale pivo :D

 

Z pohledu developera a administrátora serveru to v characers nemá co dělat, tam mají být jen data characterů. Co má na starosti core, nechme v hlavní DB core (v DB worldu). ;)

 

EDIT: Upraveno dne 14.6.2010

Edited by Wolf Officious
  • Upvote 1

Share this post


Link to post
Share on other sites

Jen tak náhodou nemáš to v patchi protože když si takhle stáhnu nejnovější kompilační soubory ať to nemusím 1hodinu dělat :)

Share this post


Link to post
Share on other sites

Jen tak náhodou nemáš to v patchi protože když si takhle stáhnu nejnovější kompilační soubory ať to nemusím 1hodinu dělat :)

 

Možná časem udělám ten patch, ale zkušenému developerovi tahle ruční úprava nezabere víc jak 15 minut.

 

EDIT: Upraveno dne 14.6.2010

Edited by Wolf Officious
  • Upvote 1

Share this post


Link to post
Share on other sites

Jen tak náhodou nemáš to v patchi protože když si takhle stáhnu nejnovější kompilační soubory ať to nemusím 1hodinu dělat :)

 

Když něco chceš, tak by jsi tomu ten čas měl obětovat, jinak se na to vykašlat. Kam to spějeme... ;)

Share this post


Link to post
Share on other sites

Tak to skus na nejnovější

 

Ach jo.. A proč si to neuděláš sám? Rozepisoval jsem to kvůli méně zkušenným userům, aby to dokázal každý.

Edited by Wolf Officious
  • Upvote 1

Share this post


Link to post
Share on other sites

hloupa otazka :-X hlavne ne -rep jo xD jakej ma vyznam ukladani do db kdy byl naposled vypsan autobrodcast do worldu?aby po restartu nadale pokracoval ve spravnem case,dam priklad ,autobrodcast je nastaven aby se psal kazdou hodinu...takze se napise ve 12:00 nejaka zprava,ve 12:30 se restartne server tim padem vse jede od znova,takze se nenapise ve 13:00 ale ve 13:30.Ty prvni casove udaje jsou uvedeny pokud bych mel tento patch a ten druhy cas bez nej...nevim zda jsem to pochopil spravne,to jak bylo mysleno ale prijde mi to jako hloupost kterou hrac ani nepostrehne a podle me je v celku autobrodcast nezajima..pokud to neni novinka.Jinak prace se ceni to je jasne,jeste aby ne,ale jen bych zadal vysvetleni .)

Share this post


Link to post
Share on other sites

EDIT1: Vím, že přidávání souborů do projektu není žádný med, zvášť pak pro linuxáky. Kdyby si někdo nevěděl rady, nechť napíše. Jeho prosbě bude za včasu vyhověno. :) Sice jsem člen "Wlků", ale i přes to mám v sobě špetku lidství. :D

 

Máš na myslis Serevr Wlci nebo se jen pletu ???

Share this post


Link to post
Share on other sites

hloupa otazka :-X hlavne ne -rep jo xD jakej ma vyznam ukladani do db kdy byl naposled vypsan autobrodcast do worldu?aby po restartu nadale pokracoval ve spravnem case,dam priklad ,autobrodcast je nastaven aby se psal kazdou hodinu...takze se napise ve 12:00 nejaka zprava,ve 12:30 se restartne server tim padem vse jede od znova,takze se nenapise ve 13:00 ale ve 13:30.Ty prvni casove udaje jsou uvedeny pokud bych mel tento patch a ten druhy cas bez nej...nevim zda jsem to pochopil spravne,to jak bylo mysleno ale prijde mi to jako hloupost kterou hrac ani nepostrehne a podle me je v celku autobrodcast nezajima..pokud to neni novinka.Jinak prace se ceni to je jasne,jeste aby ne,ale jen bych zadal vysvetleni .)

 

"Vždycky mě štvalo, že AutoBroadcast po restartu začal zas od začátku. Vyřešil jsem to ukládáním hodnoty do databáze jako autobroadcast ID 0, kam se ukládá se hodnota `next` z naposledy postnutého Broadcastu do worldu. Po restartu se čte hodnota `next` z tabulky `autobroadcast` ID 0." - Není to stand jasné?

 

Vypisovat v určitej čas by to šlo, pak by ale bylo nejspíš potřeba čekovat to každou minutu. Tabulka by neobsahovala ID ani next, jenom text a timestamp. Můžu to přepsat, ale bude to chvilku trvat. <_<

 

Máš na myslis Serevr Wlci nebo se jen pletu ???

 

Nemám, opravdu se pleteš. :D Ta poznámka byl jen výstřelek mojí výstřední fantazie. :ermm:

 

EDIT: Já jsem tak krásně línej.. :beach:

Edited by Wolf Officious

Share this post


Link to post
Share on other sites

Na novějších revizích (z hruba někde okolo revize 10000+) se vyskytl problém. Dva ze souborů, které přidáváte do projektu game nejdou zkompilovat. Tohle by mělo problém vyřešit. V podstatě jsou jen přidány includes nových souborů. Mangos project neustále pracuje s kódem a dělí ho do více souborů a proto původní použít nelze.

 

POZN.: V těchto upravených souborech je možná neco includováno zbytečně, ale teď bohužel nemám čas na to, abych to řešil.

 

UPRAVENÝ SOUBOR src/game/AutoBroadcastMgr.h pro novější revize:

 

/*
* Copyright (C) 2005-2010 MaNGOS <http://getmangos.com/>
* 
* Wlk Wlezley 2010 <http://WoWResource.eu/>
* 
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#ifndef _ABRMGR_H
#define _ABRMGR_H

#include <string>
#include "Policies/Singleton.h"
#include "Utilities/UnorderedMap.h"

struct AutoBroadcastData
{
   std::string msg;
   uint32 nextid;
};
typedef UNORDERED_MAP<uint32, AutoBroadcastData> AutoBroadcastDataMap;

class AbrMgr
{
   friend struct AutoBroadcastData;

   // Constructors
   public:
       AbrMgr();
       ~AbrMgr();

   // Accessors (const or static functions)
public:
       // AutoBroadcast get data
       AutoBroadcastData const* GetAutoBroadcastData(uint32 abr_id) const
       {
           AutoBroadcastDataMap::const_iterator itr = mAutoBroadcastData.find( abr_id );
           if( itr != mAutoBroadcastData.end( ) )
               return &itr->second;
           return NULL;
       }

       static AbrMgr& Instance();
       void LoadAbrData();

   private:
	AutoBroadcastDataMap mAutoBroadcastData;
};
#define sAbrMgr AbrMgr::Instance()
#endif

 

 

UPRAVENÝ SOUBOR src/game/AutoBroadcastMgr.cpp pro novější revize:

 

/*
* Copyright (C) 2005-2010 MaNGOS <http://getmangos.com/>
* 
* Wlk Wlezley 2010 <http://WoWResource.eu/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#include "World.h"
#include "Common.h"
#include "ProgressBar.h"
#include "Database/DatabaseEnv.h"
#include "Database/SQLStorage.h"
#include "Database/SQLStorageImpl.h"

#include "AutoBroadcastMgr.h"

AbrMgr::AbrMgr()
{
}

AbrMgr::~AbrMgr()
{
}

AbrMgr& AbrMgr::Instance()
{
   static AbrMgr abrMgr;
   return abrMgr;
}
void AbrMgr::LoadAbrData()
{
   uint32 count = 0;
   //                                                0   1     2
   QueryResult *result = WorldDatabase.Query("SELECT id, text, next FROM autobroadcast");
   if (!result)
   {
       barGoLink bar( 1 );
       bar.step();
       sLog.outString();
       sLog.outString( ">> Loaded %u auto broadcast messages", count );
       return;
   }
   barGoLink bar((int)result->GetRowCount());
   do
   {
       Field *fields = result->Fetch();
       bar.step();
       uint32 Abr_ID = fields[0].GetUInt32();
       AutoBroadcastData abd;
       abd.msg    = fields[1].GetString();
       abd.nextid = fields[2].GetUInt32();
       mAutoBroadcastData[Abr_ID] = abd;
       ++count;
   } while( result->NextRow() );
   delete result;
   sLog.outString();
   sLog.outString( ">> Loaded %u auto broadcast messages", count - 1 );
   return;
}

 

Edited by Wolf Officious
  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×