Search the Community

Showing results for tags 'trinitycore'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Important
    • Announcements
    • Getting Started
    • The Graveyard
  • Modding
    • Modeling
    • Level Design
    • Interface
    • Serverside
    • Noggit
    • Miscellaneous
    • Retro-Porting
    • Useful Services
  • Projects
    • Recruitment
    • Paid Work
    • Showcase
    • Machinima
  • Community
    • General
    • Random
    • Gallery
    • Releases


  • Tools
    • Uncategorized
    • Map Editing
    • Model Editing
    • DBC & DB2 Editing
    • Serverside
    • CASC & MPQ
  • Resources
    • Graphics
    • Uncategorised
    • Models
    • Maps
    • Client Patches
  • 010 Editor Scripts and Templates


  • Projects
  • Machinima
  • Software Development


  • Beginner
    • Русский
    • Deutsch
  • Modeling
    • Česky
    • Français
  • Level Design
  • Interface
  • Serverside
  • Miscellaneous
    • Česky
    • Français
  • Retro-Porting
  • Machinima


  • Tutorials
  • Timelapse
  • Miscellaneous


  • [RP] Wake: Fall of Arathor
  • Emberstone
  • Warcraft: the Old Age
  • "Titan"
  • Haradon
  • World of SeaCraft: Pirates of the Caribbean
  • Mythia
  • [RP] The Sunset Of Lordaeron
  • Undying-WoW - Vengeance of Egorius
  • Dalaran V2
  • [RP] Book of the Fallen: Northeron
  • World Of Star Wars Galaxies
  • [Release] Improved models for 1.12
  • The Verdant Heart
  • Duronar
  • World of Warcraft The South Seas
  • Wasteland
  • The Experimenst Era

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start






Found 12 results

  1. Version [Up to date]


    Check official source repository for latest features
  2. Version 1.0


    I always disliked how the AuctionHouseBot handled selling and buying items randomly in the recent TrinityCore releases. It used the in-game npc seller price to determine both the sell and buy prices on the AH for the bot resulting in prices being to damn low (generally) or really too high (less often) and sold strange random items sometimes never sold by players. With this version of the AuctionHouseBot, the sell and buy prices are worked out from an external table in the world database called auction_prices which simply contains item ids and their price in copper. ONLY items belonging to this table can be sold or bought by the bot and their price in the table is used to determine both the sell price and the buy price. The contents of the auction_prices table has been generated using sampled AH data from several private servers and will be updated from time to time. General rules : The chance of an item being bought when the price is higher than the table price is a decaying exponential. The exponential decays later if no other instance of an item is sold. E.G. If you have a monopoly on [Copper Ore] then the bot knows that the price of [Copper Ore] is a bit higher than usual. The bot will NEVER buy an item if another instance of that item is sold for less. This is simply more realistic. An item sold by a player that can be bought from a npc using base money will never be bought by the bot even if it appears in auction_prices, to avoid exploit. They still can be sold by the bot, though. Of course, a code is never perfect. Should you have any suggestion for the bot behavior, problems to report or improvements to make in the code, feel free to leave a comment. Installation : Move the 6 .cpp files to your \src\server\game\AuctionHouseBot TrinityCore source directory and replace the existing ones Don't forget to commit them if you use git Recompile your core Apply the auction_prices.sql statement to your world database Apply the update.sql statement to your world database, if there is one. [Repeat step 5 only for each future update]
  3. Trinity Item Creator [3.3.5] (Open source)What this application can do Save item as *.sql Copy query to clipboard Import to database Save/Load custom templates Load premade templates DisplayID finder Stats generator Reset all fields Make item.dbc What can you do?Help us maintain the application with latest trinitycore database structure and keep features functional by reporting any issue or request on our github issue tracker [here]. Available LinksOpen source repositoryLatest downloadable version Thanks Sdyees, Freddan962 for contribution
  4. Hello, I am currently working on a small housing system and am almost done with the bare bones but something is still refusing to work properly. I want to add a very small description of how the housing system works in a gossip menu, but as soon as SendGossipMenuFor it triggers the OnGossipHello instantly. I compared this part to the Transmogrifier script of Rochet2, which works fine, and it really looks the same so I do not get what I am doing wrong. More concretly, when I click "Why acquire a property ?" in the first menu, the relevant action (case 1 in OnGossipSelect in the code below) is executed (as expected) but then instantly the action made available in the next menu is also executed instantly (default case, with action = 3) : in the end the second menu never appears, instead OnGossipHello is executed again. Does anyone have any idea how to avoid this ? Thanks in advance for your time ! class npc_house_seller : public CreatureScript { public: npc_house_seller() : CreatureScript("npc_house_seller") { } class npc_house_sellerAI : public ScriptedAI { public: npc_house_sellerAI(Creature* creature) : ScriptedAI(creature) {} bool GossipHello(Player* player) override { return OnGossipHello(player, me); } static bool OnGossipHello(Player* player, Creature* creature) { WorldSession* session = player->GetSession(); AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Misc_Book_11:30:30:-18:0|tWhy acquire a property ?", 1, 0); std::stringstream warningMessage; warningMessage.str(std::string()); warningMessage << "Are you sure you want to proceed ? It will cost you " << HousingSystem::instance()->HouseFromSeller(creature->GetSpawnId())->_price / 10000 << " gold and strip you of any previous estate property."; AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/INV_Enchant_Disenchant:30:30:-18:0|tPurchase this estate", 2, 0, warningMessage.str().c_str(), 0, false); SendGossipMenuFor(player, 800001, creature->GetGUID()); return true; } bool GossipSelect(Player* player, uint32 /*menu_id*/, uint32 gossipListId) override { uint32 sender = player->PlayerTalkClass->GetGossipOptionSender(gossipListId); uint32 action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); return OnGossipSelect(player, me, sender, action); } static bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) { ClearGossipMenuFor(player); WorldSession* session = player->GetSession(); switch (sender) { case 1: { AddGossipItemFor(player, GOSSIP_ICON_MONEY_BAG, "|TInterface/ICONS/Ability_Spy:30:30:-18:0|tBack..", 3, 0); SendGossipMenuFor(player, 800002, creature->GetGUID()); } break; case 2: if (player->HasEnoughMoney(HousingSystem::instance()->HouseFromSeller(creature->GetSpawnId())->_price)) { House* house = HousingSystem::instance()->HouseFromPlayer(player->GetGUID().GetCounter()); if (house != nullptr) { house->_owner = 0; // Respawn NPC Map* map = sMapMgr->FindBaseNonInstanceMap(house->_map_id); Position pos(house->_coord_x, house->_coord_y, house->_coord_z, house->_orientation); Creature* cbuffer = new Creature(); if (!cbuffer->Create(map->GenerateLowGuid<HighGuid::Unit>(), map, PHASEMASK_ANYWHERE, 50006, pos)) delete cbuffer; cbuffer->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), PHASEMASK_ANYWHERE); ObjectGuid::LowType db_guid = cbuffer->GetSpawnId(); // To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells() // current "creature" variable is deleted and created fresh new, otherwise old values might trigger asserts or cause undefined behavior cbuffer->CleanupsBeforeDelete(); delete cbuffer; cbuffer = new Creature(); if (!cbuffer->LoadFromDB(db_guid, map, true, true)) delete cbuffer; sObjectMgr->AddCreatureToGrid(db_guid, sObjectMgr->GetCreatureData(db_guid)); house->_seller = db_guid; HousingSystem::instance()->AdaptSellerMapOnHouseChange(db_guid, house); house->SaveToDB(); } house = HousingSystem::instance()->HouseFromSeller(creature->GetSpawnId()); house->_owner = player->GetGUID().GetCounter(); house->_seller = 0; house->SaveToDB(); HousingSystem::instance()->AdaptPlayerMapOnHouseChange(house->_owner, house); // Remove Creature ObjectGuid::LowType guid = creature->GetGUID().GetCounter(); creature->CombatStop(); creature->DeleteFromDB(); creature->AddObjectToRemoveList(); player->ModifyMoney(0-HousingSystem::instance()->HouseFromSeller(creature->GetSpawnId())->_price, false); std::stringstream yay; yay.str(std::string()); yay << "Congratulations ! You are now the proud owner of this estate ! "; WorldPacket data(SMSG_MOTD); Tokenizer motdTokens(yay.str(), '@'); data << uint32(motdTokens.size()); for (Tokenizer::const_reference token : motdTokens) data << token; player->GetSession()->SendPacket(&data); player->AddItem(60073,1); player->PlayerTalkClass->SendCloseGossip(); } else { std::stringstream nope; nope.str(std::string()); nope << "You cannot afford that property ! You need at least " << HousingSystem::instance()->HouseFromSeller(creature->GetSpawnId())->_price/10000 << " gold."; session->SendNotification(nope.str().c_str()); player->PlayerTalkClass->SendCloseGossip(); } break; default: { std::stringstream nope; nope.str(std::string()); nope << "Triggered " << sender << " !"; session->SendNotification(nope.str().c_str()); } return OnGossipHello(player, creature); } return true; } }; CreatureAI* GetAI(Creature *creature) const override { return new npc_house_sellerAI(creature); } };
  5. Hi there ! As I'm not quite sure to know where the problem originates, I'm posting in misc. I'm actually following Amaroth's english tutorials and I just started painting mountains and beach of a small test island. On Noggit (Version compiled from repo a week ago), it looks like this : But in game (WotLK), it looks like this with low shadows : And like this with all parameters to ultra : The first screen displaying noggit was made AFTER I saw the problem, so as you can see, most of the textures are fine, but there are still some stripes on the left that were definitely not there when I painted it, and the chunk near the circled cursor got pretty weird too. Maybe it's a very simple problem I don't know (But I hope so !). I tried to search for it but I didn't find anything, so if you have any idea, please let me know.
  6. I've been trying to install a wow trinitycore server on a dedicated vps I rent and I've run into a few issues along the way, all fixed now tho. But I can't find anything about the latest problem I'm having. When I try to run "worldserver" it's supposed to fill the databases the first time, and it filled all the databases except for one, "World". For the 'world' database to be filled the worldserver needs a file called "TDB_full_world_335.62_2016_10_17.sql" to be located with the worldserver binary. I've placed the file both in the binary and where the binary is located. For some goddamn reason the worldserver can't find the file. I've checked the name and it's exactly the same. I really can't find the problem and I hate it cause I'm really close to being finished. I'm running the server on Linux Debian v8 on a machine with a dual core CPU and 4 gigs of ram. Any help at all would be greatly appreciated.
  7. Hey! I decided to try, once again, to compile a server on my own. I followed this guide, using this source. All was fine until I got to the part where you set up the SQL tables. I connected to root (using Navicat), ran create_mysql.sql, and ended up having the following databases: auth, characters, information_schema, mysql, performance_schema, test, and world. Auth, characters, test, and world are empty. Following the guide, I downloaded TDB_full_world_434.15_2017_01_02.sql and placed it in the same folder as bnetserver.exe. I then ran the latter in hopes that it would prompt me to create databases and all would be wonderful, BUT NO! Bnetserver.exe just closes instantly (which makes sense, since there are no tables for it to connect to). What should I do?
  8. Pokud chcete dělat jen úpravy textur, map nebo DBCček, která není třeba nahrát na server, aby se úpravy správně projevily v plném rozsahu (volně přeloženo úpravy jen vizuálních aspektů hry), testovací server nutně nepotřebujete a tím pádem můžete i zvážit přeskočení celého tohoto návodu. Nicméně v rámci pochopení, co jak funguje a co jak lze upravovat doporučuji krok instalace testovacího serveru projít. Pro ostatní, pokud jste opravdu hodně líní, můžete si stáhnout nějaký co nejnovější TrinityCore2 repack a podle návodu k němu přiloženému jej zkusit rozchodit. Já jsem repacky nikdy nepoužíval (jen jednou mangosácký před X lety), takže v tomto směru se mě moc nesnažte kontaktovat, pokud budete mít problémy. Jakkoliv není instalace TrinityCore2 nějak extra složitá, stále bude pravděpodobně tím nejsložitějším, čím si zde projdete, pokud se nerozhodnete celou sérii návodů označených 3kou přeskočit. Já se zde budu zabývat skutečnou instalací nejnovější revize TrinityCore, přesněji získání a nakonfigurování jeho zdrojového kódu a následnou kompilací, vytvořením MySQL serveru, jeho konfigurací a celkovým zprovozněním serveru. Vypadá to šíleně a složitě, ale jednotlivé kroky jsou velice jednoduché. Pravda, pokud jste naprostí začátečníci a v životě jste nic podobného nedělali, může se vám stát, že u některých kroků zamrznete a zprovoznění serveru vám tak zabere dost dlouhou dobu, nicméně jak říkám, jednotlivé kroky jsou poměrně jednoduché, já se je pokusím popsat co nejnázorněji a doufám, že s nimi nikdo nebude mít příliš velké problémy. Nakonec strávíte většinu času jen čekáním, až proběhne nějaká dlouho trvající hromada operací. Abych ještě vysvětlil, proč nevolím repack (přičemž řada jiných vývojářů, i zkušenějších, se s nimi spokojuje). Repacky mají sklon být zastaralé, to je jedna a někdy překážející věc, mnohem důležitější je ale fakt, že stažením a rozběhnutím repacku se naučíte naprosto velké kulové. Není nic nešťastnějšího, než člověk, který se snaží vrtat ve věcech, o kterých absolutně nic neví. Tato série návodů a MC-Net jako projekt celkově vás mají naučit, jak se věci dělají, ne je obcházet a jen stahovat práci jiných. Už jen během spouštění serveru se mnohé naučíte, a nabyté zkušenosti se vám budou hodit jak při vývoji, tak při případném rozbíhání vlastního ostrého serveru pro hráče. Pokud jedete na OS X, nemám vám jak pomoct. Návod jsem se snažil doplnit o snad dostatečné množství názorných screenů, jsou zde na ně pouze odkazy, i bez zobrazených obrázků je tahle zeď docela dlouhá. Tento návod je pro Windows, druhá, Linuxová část, na něj nepřímo navazuje a doporučuji ji případně podstoupit až po této. Původní návod (OS X uživatelé se budou muset spokojit s ním) je zde. Oba návody na instalaci TC jsou (výjimečně) překlady původního návodu. Důležitá poznámka téměř na konec (nebo spíše na skutečný začátek). Každý krok vždy přečtěte úplně celý a teprve pak až jej začněte postupně provádět. Vyhnete se tak nutnosti něco instalovat znovu atd. A úplně poslední poznámka, tento návod nemusí být vždy udržován úplně aktuální. Projděte si hlavně originální návod a sem zabruste jen pokud se vám bude hodit i české vysvětlení a hlavně jakmile dojde na konfiguraci. Potřebné programy Nalinkované v samotném návodu. Potřebné počáteční znalosti Předpokládá se, že jste si prošli předchozí části tohoto návodu a máte základní přehled, jak funguje TrinityCore2 server. Potřebný software Aplikace potřebné na rozběhnutí serveru jsem hned z několika důvodů nehodil do tutoriálového packu, nicméně dodám sem linky k jejich stažení. Vyjma samotného programu k přeložení kódu nezaberou moc místa. Po úspěšném rozběhnutí serveru budete moci drtivou většinu smazat, pokud nebudete chtít emulátor už nikdy aktualizovat. Dejte si pozor, abyste všude nastavovali a vybírali správně svůj typ procesoru a systému (32-bit nebo 64-bit). GitExtensions - Stáhněte si instalátor při instalaci se ujistěte, že máte zaškrtnuté Git, MySYSGit i KDiff. Potřebujete všechny 3. Instalace pak bude pokračovat ve třech fázích, pro každou aplikaci jedna. Všude nechte výchozí hodnoty vyjma Gitu. Na jedné ze stránek budete mít možnost zaškrtnout Run Git from the Windows command prompt. Učiňte tak, jinak vám nepoběží konfigurace zdrojáků před kompilací. Visual Studio Community 2013 with Update 4 - Zde není moc co říct, naše nejotravněji velká aplikace, holt ji budete muset překousnout. Snad jen si dejte pozor, ať stáhnete, co máte, stránka je poněkud nepřehledná. Doporučuji jej hned po instalaci bezplatně registrovat, ať vám to pořád neřve. Pozor, pokud si budete chtít stáhnout verzi 2015, musíte v ní zaškrtnout, že chcete C++ překladač! MySQL Server Community Edition - Náš MySQL server, na kterém pojedou všechny 3 databáze, potřebné pro fungování emulátoru. Stáhněte a nainstalujte si nejnovější 5.6.x verzi. Po instalaci nechte zaškrtnuté Launch configuration wizard (najít tuto konfiguraci dodatečně jinou cestou než skrze instalátor jde, ale většinou hodně mizerně). Při konfiguraci nechte vše ve výchozí podobě, snad jen budete chtít nastavit svůj počítač jako Developer machine a také si nastavte výchozí přístupový účet (root). Heslo si tam nechte klidně klasické root, do vašeho MySQL serveru přes tento přístup stejně nikdo nevleze (pokud nebude u vašeho počítače). SQLYog Community Edition - Náš editor pro databáze. Je možné použít i HeidySQL nebo MySQL Workbench, případně MySQL cli. NEPOUŽÍVEJTE Navicat, ne při nastavování databází. Až se budete hrabat přímo v už fungující a hotové databázi, klidně si běhejte kolem s navikočkou, ale na její prvotní vytvoření a nastavení Navicat nepoužívejte (a na vytváření nebo dokonce nahrávání záloh raději také ne) - byli jste varováni. Boost - Stáhněte si nejnovější Release verzi pro váš operační systém. V instalaci nechte výchozí nastavení (i pro cestu). Pak si otevřete Ovládací panely, pokračujte do Systém a zabezpečení, dále jděte do Systém, Upřesnit nastavení systému (vlevo). V okně, které se vám objeví, klikněte na Proměnné prostředí, pak klikněte na Nová..., a vyplňte: BOOST_ROOT C:/local/boost_1_57_0 Pokud budete mít novější verzi Boostu jak 1.57, na příklad 1.58, vyplníte 58čku místo 57čky. Screen pro ty, které jsem zmátl v té štrece k nastavení: CMake - Stáhněte si nejnovější win32-x86.exe (i pro 64-bit). Při nastavování je možné, že narazíte na alternativní značení pro Visual Studio. 2013 verze je to samé jako verze 12, a to je to samé jako verze MSC 18.0 (co se týče typu CPU a OS, tam už protentokrát volte správně 32-bit nebo 64-bit). Hlavu za to rozbijte mrkvosoftu, ne mě. MySQL dev soubory - Stáhněte si je a dejte někam stranou, budete je potřebovat. OpenSSL - Stáhněte si nejnovější verzi, která NENÍ označená jako Light. Pokud máte 64-bitový systém, možná budete muset stáhnout i 32-bit verzi, i 64-bit verzi (tady si nejsem jistý). Během instalace zvolte, ať se vám DLL soubory uloží do cesty /bin, nikoliv do Windows system directory, abyste je byli později schopni snáze najít. ZeroMQ - 32-bit:, 64-bit: Instalace emulátoru (a jeho aktualizování) První a trochu zmatenou část máme za sebou, teď to, doufám, jednodušší. Začněte tvorbou složky, do které si budete chtít stáhnout zdrojový kód emulátoru. Na příklad C:\Trinity. Klikněte pravým na vaši složku a dále na GitExt Clone... Dále vyplňte: C:\Trinity 3.3.5 Nějak takto: A nakonec klikněte na Clone. Stáhne se vám zdrojový kód a pár dalších věcí, které budete potřebovat později. Dále potřebujete nakonfigurovat zdrojáky před přeložením. K tomu nám poslouží CMake. Vytvořte si cestu, kde budete chtít mít samotný emulátor serveru, na příklad C:\TrinityCore. Spusťte CMake a vyplňte cestu ke zdrojovým kódům a cestu, kde má být přeložený emulátor uložen. Nějak takto: Pokračujte kliknutím na Configure. Tady vyplňte svou verzi Visual Studia (pamatujete si ještě na poznámku o bordelu ve značení verze?), tedy verzi 2013 nebo verzi 12, je to to samé (a nezapomeňte si dát pozor na 32/64-bit). Klikněte na Finish. Rozjede se ověření zdrojových kódů. Jen projeďte očima položky k zaškrtnutí a zkontrolujte, že je zaškrtnuto TOOLS. Pak klikněte znovu na Configure. A na konec klikněte na Generate. Nyní k samotné kompilaci. Vlezte do složky, kam jste nechali CMake připravit zdrojáky k přeložení, u nás to je C:\TrinityCore. V této složce byste měli najít soubor TrinityCore.sln (soubor typu solution). Ten otevřete za užití Visual Studia. Nějakou chvíli potrvá, než se vše nahraje. V horním menu klikněte na BUILD a tam na Configuration Manager... Vlevo nahoře vyberte u Active solution configuration možnost Release. Vpravo nahoře vyberte svůj typ systému, tedy 32/64-bit. Okno pak můžete zavřít. Ukázka: Nyní klikněte pravým tlačítkem vpravo v okně Solution Explorer na ALL_BUILD a klikněte na Clean. Takto: Pak klikněte znovu pravým na ALL_BUILD a klikněte na Build. Kompilace potrvá řádově až několik desítek minut. Nyní potřebujete serveru ještě sehnat pár věcí, aby fungoval. Začneme DLLky. Tyto 3 potřebujete najít ve zmíněných cestách a zkopírovat je do složky C:\TrinityCore\bin\Release (v našem případě), kde budete mít po kompilaci samotný emulátor.: libmySQL.dll - C:\Program Files\MySQL\MySQL Server 5.x\lib libeay32.dll, ssleay32.dll - C:\OpenSSL-Win32\bin libzmq-v120-mt-4_0_4.dll - C:\Program Files\ZeroMQ 4.0.4\bin Další potřebné soubory dodáme serveru ve čtvrtém bloku návodu. Pokud byste chtěli někdy aktualizovat svoje core, musíte kliknout pravým tlačítkem na původní složku se zdrojáky (naše staré C:\Trinity) a kliknout na GitExt Browse. V něm klikněte na šipku směřující dolů a v okně, co se objeví, klikněte na Pull. Tak zaktualizujete svoje zdrojáky. Pak projeďte celou tuto sekci znovu - tedy spusťe CMake, klikněte na Configure, Generate. Pak otevřete zase solution, dejte vyčistit ALL_BUILD a pak znovu spusťte Build přes ALL_BUILD. Je možné, že budete muset také zaktualizovat svou databázi, na to se podíváme v databázím věnované sekci. Příprava databází (a jejich aktualizace a zálohování) Nyní se pustíme do databází. MySQL server už máte nainstalovaný a většinu věcí k němu už máte staženou společně se zdrojovými kódy emulátoru, ale ještě vám chybí aktuální databáze world. Tu stáhnete zde. Hledáte soubor TDB 335.X kde X je verze (v době psaní návodu je to 59). Otevřete stránku s poslední verzí TDB a stáhněte ji. Spusťte si SQLYog (případně alternativu, kterou jste zvolili místo něj, další popis bude dělaný podle Yogu, ale v jiných editorech bude postup velmi podobný). Pokud se tak nestane automaticky se spuštěním aplikace, zvolte v menu File možnost New connection... a v dialogovém okně, které se objeví, klikněte na New... Následně vyplňte název pro připojení (jakýkoliv, třeba Local). Následně musíte vyplnit další specifikace připojení. Do MySQL Host Address vyplňte IP adresu MySQL serveru. V tomto případě děláte lokální server, takže IP adresa bude nebo LocalHost (je to to samé). Username bude root a Password jste si volili při instalaci MySQL serveru (doporučoval jsem vám zvolit taktéž root). Port je vždy 3306. Vypadat by to tedy mělo nějak takto. Pak se zkuste připojit přes Connect. Mělo by se vám podařit dostat se na MySQL server. Pokud ne, zkontrolujte si údaje, hlavně heslo. V nejhorším přeinstalujte server a tentokrát si dejte větší pozor na zadávání hesla při instalaci. Nyní klikněte pravým tlačítkem myši do levého panelu se stromem databází a v lokální nabídce, která vám vyskočí, zvolte Execute SQL script... V dialogovém okně klikněte na ... a vlezte do následujícího adresáře: C:\Trinity\sql\create\. Zvolte soubor create_mysql, ujistěte se, že máte zaškrtnuté Abort on error (toto ve vlastním zájmu NIKDY neodškrtávejte, dokud nebudete velice dobře vědět, co děláte a co přesně všechno je v SQL scriptu, který aktuálně odesíláte serveru). Klikněte na Execute. Měl by se vytvořit účet pro emulátor s plnými přístupy (login trinity, heslo trinity) a dále 3 databáze; auth, characters a world. Nejspíše je hned neuvidíte - v takovém případě restartujte SQLYog (nebo připojení). Měly by se pak již objevit ve stromu databází v levém panelu. Nyní klikněte pravým na databázi auth, zvolte Import a Execute SQL script... a pokračujte jako v předešlém kroku, nicméně nyní spuťte script auth_database v C:\Trinity\sql\base\. Tímto scriptem vyplníte auth databázi tabulkami s výchozími daty (většina z nich tedy bude prázdná, jde jen o to je vytvořit). To samé udělejte s databází characters - opět pravým na ní, Execute SQL script a tentokrát ve stejném adresáři zvolte script characters_database. Nakonec proveďte to samé i s databází world, na tu aplikujte script, který jste stáhli na začátku v .7z archivu (ten TDB_verze...). Obsahu složky update_only v archivu si při instalaci nové databáze nevšímejte. Zcela na závěr ještě přichází nejotravnější část tohoto kroku. Na vaši world databázi opět pošlete scripty, nyní ze složky C:\Trinity\sql\updates\world\. Aplikujte na databázi všechny scripty v této složce. Scripty v C:\Trinity\sq\updates\characters\ a C:\Trinity\sq\updates\auth\ však NEPOUŽÍVEJTE. Nejsou pro nově nainstalovanou databázi (updaty pro world jsou tedy v tomto výjimkou). V případě, že se pokusíte aplikovat 2x po sobě stejný script, je vysoce pravděpodobné, že vám vyskočí error - ten můžete ignorovat a pokračovat dalšími scripty. Nyní by měly být všechny tři vaše databáze připravené k použití. Ještě se budu věnovat aktualizaci databází. V první řadě si zaktualizujte emulátor, jak je popsáno na konci 2. sekce návodu. Pak se podívejte, jaká je nejnovější verze databáze ke stažení. Pokud je k dispozici novější revize, než je ta vaše, stáhněte archiv 7z. Pokud si nejste jistí, jakou revizi databáze máte na svém současném serveru, najdete ji v databázi world v tabulce version ve sloupci db_version (tabulku otevřete kliknutím na ní, dále klikněte v hlavičce pravého dolního panelu na záložku Table Data). Z archivu si vezměte pouze scripty ve složce update_only a každý aplikujte na příslušnou databázi. Pokud se vám stane, že "propásnete" více verzí, budete muset postupně aktualizovat svou databázi po jednotlivých verzích (takže přechod z verze 56 na 58 uděláte tak, že nejdříve přejdete na 57 a až pak z hotové 57 na 58, nelze přeskakovat). Pouze dodám, že aktualizace databáze obsahuje změny struktury některých tabulek a taktéž změny obsahu některých tabulek. Druhá skupina může být velmi nežádoucí u serveru, který nepoužívá blizzlike databázi (což bude případ většiny z vás), proto si vždy udělejte raději zálohu své databáze před její aktualizací. Zálohu lze vytvořit za pomoci funkce Backup Database As SQL Dump v Export/Backup (při kliknutí pravým tlačítkem myši na databázi). Mnohem více ale doporučuji kliknout pravým do stromu databází, zvolit Create Database a vytvořit si takto záložní databáze. Jména si můžete zde dát libovolná (třeba worldbackup atd.), Database charset doporučuji utf8 a Database collation utf8_general_ci. Pak klikněte pravým na původní databázi, zvolte Copy Database to Different Host/Database... a zvolte PEČLIVĚ svou nově vytvořenou záložní databázi. Takto si můžete vytvořit i několik záložních verzí všech databází a v nich se ve všech bez problému hrabat, porovnávat jejich obsah, strukturu atd. - to se vám může velmi hodit, pokud budete mít problémy s aktualizací neblizzlike databáze. Navicat nabízí svůj systém zálohování tabulek a databází, jednoduchý na použití, ale údajně ne úplně spolehlivý. Poslední přípravy Blížíme se ke konci našeho zdlouhavého tutoriálu. Přejděte do složky, kde máte zkompilovaný emulátor (tedy C:\TrinityCore\bin\Release\. Nejspíše jste si už všimli aplikací mapextractor.exe, vmap4extractor.exe, vmap4assembler.exe a mmaps_generator.exe. Pokud chcete, aby vám server jen "fungoval", můžete v následujících krocích vynechat vše, co se týká mmap a pokud se nepletu, i vmapy můžete ignorovat. Tyto 2 věci jsou pouze volitelné a ve velké zkratce, laicky řečeno, se díky nim budou NPCčka alespoň snažit ve hře tvářit, že vědí, jak vypadá svět kolem nich (a nebudou tedy všude probíhat skrze zdi atd.). Pro testovací lokální server si vystačíte bez nich, jinak se bez nich ale spíše zblázníte. Pokud už máte nějaký svůj patch s vlastní lokací, nebudou vám mapy, vmapy a mmapy správně fungovat ve vašich přidaných oblastech (server nicméně poběží jak má). Této problematice se zde věnovat nebudu, podobné problémy budu řešit v dalších návodech. Vezměte všechny (až) 4 zmíněné .exe soubory a vložte je do kořenové složky svého herního klienta (tedy C:\Program Files\World of Warcraft\ nebo něco podobného). Dále si spusťe poznámkový blok, vytvořte nový soubor, do něj zkopírujte následující: vmap4extractor.exe md vmaps vmap4assembler.exe Buildings vmaps pause Uložte tento nový soubor jako makevmaps_simple.bat (koncovka .bat je důležitá!) do vaší kořenové složky s herním klientem. Nyní spusťte mapextractor a počkejte, než doběhne. Pokračujte spuštěním makevmaps_simple, opět počkejte, než doběhne. Nakonec vytvořte složku mmaps ve vaší složce s WoWkem a spusťte mmaps_generator.exe. Extraktory mohou běžet několik desítek minut až několik hodin (hlavně ten na mmapy), takže si vymezte dostatek času a trpělivosti, protože extrakce umí být dost zatěžující pro počítač. Po dokončení extrakcí zkopírujte složky dbc, maps, vmaps a mmaps do C:\Trinity\bin\Release\. Nyní se podíváme na konfigurační soubory world a auth serverů. Ve vaší složce Release by měly být authserver.conf a worldserver.conf soubory. Pokud tam najdete stejně pojmenované, ale ještě s příponou .dist za .conf, vytvořte jejich kopie (jako zálohy) a .dist pak odstraňte. Oba soubory si otevřete v nějakém textovém editoru, doporučuji WordPad (klasický poznámkový blok je na podobné věci otřesný). Zde si můžete nastavit mnohé funkce, upravit nastavení serveru. Pokud chcete blizzlike server, nemusíte se zde hrabat takřka vůbec (a u lokálního testovacího serveru už absolutně vůbec), jinak budete možná chtít překopat takřka celé konfiguráky odshora dolů. Rozhodně byste ale měli věnovat pozornost nastavením vmap a mmap (v závislosti na tom, zda-li jste je extrahovali a chcete je používat je vypněte, nebo zapněte). Taktéž věnujte pozornost proměnným LoginDatabaseInfo, WorldDatabaseInfo a CharacterDatabaseInfo (používejte ctrl+f na hledání v souboru). Ve výchozím nastavení databáze jste si vytvořili účet trinity s heslem trinity a konfigurační soubory obsahují identické údaje pro připojení (na příklad LoginDatabaseInfo = ";3306;trinity;trinity;auth"). Jak vidíte, používá se jako výchozí IP local, port 3306, login trinity, heslo trinity. U veřejného serveru patrně budete chtít změnit většinu těchto údajů, ale nyní jen vezměte na vědomí, kde se nastavuje připojení emulátoru na databáze. I u lokálního serveru však budete možná chtít občas změnit alespoň názvy používaných databází, pokud budete na příklad chtít spustit server s alternativní (nebo záložní) databází. Viz konec 2. sekce návodu. Někoho pokročilejšího by ještě i u blizzlike serveru mohla zajímat konfigurace exportu logů, která je u konce konfiguračních souborů. Nyní si otevřete v SQLYogu databázi auth a v ní tabulku realmlist. V této tabulce se nastavují připojení authserveru k jednotlivým worldserverům. Opět, pouze berte na vědomí, že zde tato tabulka je a k čemu je. V případě instalace lokálního testovacího serveru s ní nemusíte nic dělat. U serveru, který má být veřejně přístupný, přepište IP adresu ze na IP adresu serveru a pravděpodobně budete chtít editovat i další pole v tabulce. Nyní by mělo být vše připraveno. Spusťte ve složce Release authserver.exe a pak worldserver.exe. Přes konzoli serveru si vytvořte účet do hry. Můžete do ní psát standartní GM commandy. Pro vytvoření GM accountu jsou třeba následující dva.: .account create [nick] [heslo] .account set gmlevel [nick] 3 -1 A následně si otevřete a přepište jeho obsah na set realmlist (drobná rada, pokud napíšete vícekrát pod sebe set realmlist [adresa], bude vždy brán v potaz pouze poslední řádek). Nyní by vám měl server běžet a vy byste se na něj měli bez potíží připojit. Pokud se vám jeden či druhý server emulátoru odmítne spustit (respektive se spustí a pak crashne), zkontrolujte Server.txt, Auth.txt a DBErrors.txt. To jsou výchozí logy. Na jejich konci najdete, co crash způsobilo a podle toho můžete většinou bez větších obtíží vydedukovat, co jste zapomněli nebo udělali špatně. Pokud se vám to nepodaří zjistit, můžete mě zkusit kontaktovat a třeba na to přijdeme společně.
  9. Pro někoho tohle bude otravou, pro někoho velkou úlevou - návod na Linux bude počítat s tím, že jste v životě neviděli konzoli Linuxu ani dálkové přístupy na VPS server, na který budete s nejvyšší pravděpodobností core instalovat. Návod vypadá šíleně, ale ve výsledku pro vás bude jen opakovaným kopírováním mnou připravených příkazů. Předpokládám, že si zkusíte nejdříve nainstalovat testovací Windowsový server u sebe a že pak si, s nejvyšší pravděpodobností, někde pořídíte VPS s Linuxem. Pokud jde o výběr konkrétního Linuxu, nikdy jsem neměl důvod si stěžovat na Debian. Na jiné se můžou některé kroky v návodu trochu lišit a budete si muset sami dogooglit v čem. Pokud jde o HW nároky serveru, na disku zabere i se systémem z pravidla něco mezi 7 a 10GB, RAM stačí 4GB a CPU doporučuji alespoň dvoujádro o taktu alespoň 2.5GHz. Takovýto stroj by vám měl naprosto bez problémů utáhnout 100 hráčů online, pro větší servery si budete muset konfiguraci HW odhadnout a ideálně i vyzkoušet sami, nemám s takovými projekty vlastní zkušenosti. Potřebné programy Nalinkované v samotném návodu, případně v návodu sesterském. Potřebné počáteční znalosti Předpokládá se, že jste si prošli předchozí části tohoto návodu a máte základní přehled, jak funguje TrinityCore2 server. V ideálním případě jste také již prošli sesterský návod pro Windows. Jak na dálkový přístup Na přístup do serveru budeme potřebovat 2 programy, prvním je PuTTy, přes který polezeme do příkazového řádku, druhým je WinSCP (pokud jste více spřátelení s jinou alternativou jako Filezilla, klidně použijte tu). V obou si nastavte IP vaší VPS, port 22 a zkontrolujte, že máte u PuTTy connection type SSH a u WinSCP přenosový protokol SFTP. Ve WinSCP také vyplníte login (admin je z pravidla root) a heslo (to dostanete od poskytovatele při zřízení služby). Údaje pro připojení si v obou můžete uložit. Pro jistotu screen.: WinSCP vám bude sloužit pro nahrávání dat, která server potřebuje, a dále pro úpravu souborů. PuTTy vás provede instalacemi. První co budete chtít pravděpodobně udělat, je změnit si heslo, které vám nastavil poskytovatel. Značka $ bude od teď vždy označovat příkaz, který přijde do konzole (tu značku tam nekopírujte, do příkazu nepatří, ale u příkazů přes více řádků vám bude v návodu přehledně rozlišovat, kde začíná další). Napište do konzole následující příkaz, stiskněte enter a vyplňte staré a pak 2x nové heslo, až je po vás systém bude chtít.: $ passwd Poznámka: Pokud si u sebe v počítači dáte něco na ctrl+c, do konzole to nakopírujete přes shift+insert. Opačně, z konzole kopírujete přes ctrl+insert a pak do počítače vkládáte už přes klasické ctrl+v. Poznámka 2: V Linuxu jsou na rozdíl od Windowsu rozlišována velká a malá písmena (hlavně v názvech složek/souborů apod.), pozor na to. Příprava před kompilací V první řadě si zaktualizujte aptitude.: $ aptitude update Pokračovat budeme vytvořením druhého účtu do systému, který bude mít zvýšená práva, avšak nebude na úrovni roota (volně přeloženo, trochu "bezpečnější" účet než root na to, abyste jej např. půjčili někomu, kdo vám se serverem pomáhá apod.). Rovněž se nedoporučuje nechávat běžet servery přímo pod účtem root. Dále si nainstalujeme sudo. Během instalací všeho možného většinou dostanete otázku <Y/n>. Napište do konzole vždy Y a zmáčkněte enter. Příkazy posílejte postupně po jednom. U sudo adduser si zvolte libovolné jméno nového uživatele, já použiji třeba trinity. $ aptitude install sudo $ sudo adduser trinity $ sudo adduser trinity sudo Máme účet, na kterém server pojede, až bude fungovat. Nyní je na čase dát dohromady samotné TrinityCore2. Nakopírujte do konzole následující 3 příkazy.: $ sudo apt-get install openssl libssl-dev mysql-server mysql-client libmysqlclient-dev libmysql++-dev libreadline6-dev $ sudo apt-get install openssl libssl-dev mysql-server mysql-client libmysqlclient-dev libmysql++-dev libreadline6-dev $ sudo apt-get install libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-iostreams-dev Během instalace MySQL budete tázáni na root heslo do databáze. Zvolte si nějaké, které nezapomenete, budete jej potřebovat později. Nyní máte vše potřebné ke kompilaci. Zdrojové kódy a kompilace Následující příkazy vás vrátí do kořenového adresáře pro případ, že byste v něm nebyli a stáhnou vám zdrojové kódy TrinityCore. $ cd ~/ $ git clone -b 3.3.5 git:// A nyní si připravíme zdrojáky na kompilaci. Nastavení u cmaku můžete zvolit i jiné (můžete zvolit např. jiné cesty), nicméně pokud toto čtete, jste začátečníci a nedoporučuji vám se u prvního serveru moc toulat na vlastní pěst s experimenty. $ cd TrinityCore $ mkdir build $ cd build $ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/trinity/server -DCONF_DIR=/home/trinity/server/etc -DLIBSDIR=/home/trinity/server/lib Nyní kompilace a instalace. Místo make -j použijte jen make, pokud máte pouze 1 CPU (což drtivá většina serverů nemá, ověřte si, kolik CPU jader má vaše VPS). U příkazu make -j vyplňte svůj počet jader procesoru, pro mě to jsou 2. $ make -j 2 $ make install Aktualizace coru V případě, že byste chtěli někdy zaktualizovat svoje TrinityCore, běžte ve WinSCP do cesty /root/TrinityCore/build, vše v této složce smažte (to je vhodné udělat před každou kompilací, ne vždy nutné ale pro vás bezpečnější) a pak použijte následující příkazy (zase si případně upravte počet jader CPU či použijte make místo make -j, také si případně upravte cesty a další nastavení u cmaku podle potřeby).: $ cd ~/TrinityCore/ $ git pull origin 3.3.5 $ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/trinity/server -DCONF_DIR=/home/trinity/server/etc -DLIBSDIR=/home/trinity/server/lib $ make -j 2 $ make install Příprava MySQL serveru MySQL už máte nainstalované, nicméně je třeba mít do něj také přístupy, jinak vám je k ničemu.: $ cd ~/ $ mysql -u root -p Vyplňte heslo, které jste si zvolili při instalaci a dostanete se do konzole MySQL. Nyní si vytvořte uživatele (jméno a heslo si zvolte nějaké svoje, pozor na správné umístění ' mimochodem) a dejte mu plná oprávnění.: $ CREATE USER 'login'@'%' IDENTIFIED BY 'heslo'; $ GRANT ALL PRIVILEGES ON *.* TO 'login'@'%' WITH GRANT OPTION; Dále přes WinSCP dojděte do cesty /etc/mysql/, otevřete my.cnf dvojklikem a ověřte si, zda je bind-address = Pokud ano, přepište na IP vaší VPSky, aby byl MySQL server přístupný z vnějšku, ne jen ze systému. Nyní byste měli mít možnost se přes svůj nový účet do MySQL normálně připojit. Pokud ano, dejte si dohromady databázi. Postup je naprosto identický jako na Windows (tedy viz druhý 03 návod). Potřebujete tedy vytvořit účet pro trinitycore, vytvořit auth, characters a world databáze a ty naplnit tabulkami a výchozími daty. Data pro servery a konfigurace Ve složce, kam jste si nainstalovali TrinityCore (tedy pro nás to bylo /home/trinity/server/) nyní budeme pracovat s WinSCP. Měli byste zde mít složku bin, ve které je authserver a worldserver, a dále složku etc, kde máte konfiguráky s příponou .dist, což jsou čistě záložní soubory. Udělejte si kopii konfiguráků (klik pravý tlačítkem a Duplikovat) a odmažte z názvu kopie to .dist na konci. Konfiguráky otevřete. Znak # označuje jen komentář a vše co je za ním až do konce řádku je ignorováno. Needitujte proto prosím řádky začínající #, protože to nic neudělá a jen si dobrovolně odmažete dokumentaci od tvůrců emulátoru. V konfigurácích vás budou zajímat hlavně přístupy do databází. Najděte přes ctrl+f v obou konfigurácích podobný řádek.: ";3306;trinity;trinity;auth" pro každou databázi. přepiště na IP vaší VPS a ujistěte se, že sedí i ostatní údaje (tedy přístupy pro trinity do MySQL, které jste měli během instalace databází vytvořit). Dále věnujte ve worldserver.conf také pozornost čemukoliv, co nějak souvisí s mmapami a vmapami. Pokud je nebudete chtít používat, vypněte je zde. Můžete také omrknout DataDir a LogsDir, pro případ, že chcete upravit cesty, kde budou uloženy mapy, dbc, vmapy, mmapy a případně logy. Osobně doporučuji tyto cesty nastavit následujícím způsobem.: DataDir = "/home/trinity/server/data" LogsDir = "/home/trinity/server/logs" Další nastavení v konfiguráku můžete alespoň zatím přeskočit a případně si jej projít později. Pro funkčnost serveru tohle postačí. DBC, mapy, vmapy, mmapy Postup pro získání těchto dat je zcela identický jako u Windows (4. část druhého 03 návodu). Jakmile budete mít všechna data, uploadněte je přes WinSCP do cesty, kterou jste v konfigu nastavili jako DataDir. V našem případě tedy nejspíše budete mít na příklad všechna DBCčka v /home/trinity/server/data/dbc/. Nyní je server připravený na spuštění, budeme však potřebovat restarter, aby nám sám znovu nabíhal po restartu a aby nám jel na pozadí. Restarter Na restarter již existuje český návod zde. Jakkoliv je tento restarter trochu prasácký (a ne úplně ideální pro více realmů), já jej používám dodnes a stačí mi ke štěstí. Budete si jen muset přepsat v restarteru cesty tak, aby pasovaly k vám. To, že je psaný na Mangos neřešte - pokud správně přepíšete názvy souborů (a cesty), bude fungovat bez rozdílu i pro TC2. Malý tip, pro vytvoření souborů restarteru vlezte do WinSCP, klikněte pravým tlačítkem myši a dejte Nový, Soubor. Editujte soubory výhradně jen přímo ve WinSCP. Nějaký texťák vytvořený a upravený ve Windows a pak uploadnutý vám vážně nebude fungovat, nebudu vás zatěžovat vysvětlováním proč (pokud to nevíte sami). Závěr Jakkoliv jsem se vynasnažil návod napsat tak, aby i naprostý Linuxový negramot dokázal na Linuxu zprovoznit plně funkční server, důrazně doporučuji si přečíst něco o Linuxu a projít si základními návody k němu. Ryan Chadwick udělal skvělou sérii kterou mohu vřele doporučit, snad se alespoň u ní přenesete přes angličtinu.
  10. Mít alespoň 2 realmy je často velmi praktické, a to především pro servery otevřené veřejnosti, kdy je jeden server ostrý a druhý testovací. Návod slouží jen jako nástavba ke zbylým dvěma návodům pro Windows a pro Linux. Kompilace První věc, kterou začneme, je otevření si cesty, kam nám CMake nakonfiguroval připravené zdrojáky. Pokud jste následovali návod pro Windows, měla by to být složka C:\TrinityCore\cmake, u Linuxu /root/TrinityCore/cmake, pokud jste si cesty neměnili. Obsah této složky vymažte, tak, aby byla prázdná. Nyní můžete postupovat stejně, jako při prvotní instalaci. Otevřete si CMake, nechte jej nakonfigurovat zdrojáky. Tentokrát si budete muset však velmi opatrně pohlídat cesty. Musíte zvolit jinou cestu, do které se budou servery instalovat a ve které budou mít konfiguráky. Příklad upravené konfigurace na Linuxu: $ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/trinity/server2 -DCONF_DIR=/home/trinity/server2/etc -DLIBSDIR=/home/trinity/server2/lib Pouze jsem připsal 2ky za server. I Windowsu by mělo stačit v oknu CMaku jen poupravit kolonku "Where to build the binaries". Pak zase spusťte kompilaci (tedy Visual Studio nebo příkazy make a make install). Instalace databáze Vytvořte si druhou characters a world databázi, na příklad characters2 a world2, stejně jako jste vytvářeli databáze první (případně je můžete vytvořit jako kopie těch prvních, pokud nechcete výchozí blizzlike). Nezapomeňte se ujistit, že uživatel trinity má do obou nových databází plný přístup. Konfigurace Kompilace vám vytvoří druhý, úplně samostatný emulátor. Authserver můžete smazat, nebudete jej potřebovat, stejně tak jeho konfigurák. Vlezte si do konfiguráku worldserveru a nastavte jej obdobně, jako konfigurák prvního realmu. Všimněte si, že jsme nevytvářeli druhou auth databázi - ta bude pro oba realmy společná a tedy v konfigurácích úplně stejná. Také budete muset nastavit jiný port, na kterým worldserver poběží. Výchozí je 8085. Váš druhý realm musí mít jiný, třeba 8086. Taktéž přepište ReamID. Příklad.: RealmID = 2 LoginDatabaseInfo = ";3306;trinity;trinity;auth" WorldDatabaseInfo = ";3306;trinity;trinity;world2" CharacterDatabaseInfo = ";3306;trinity;trinity;characters2" WorldServerPort = 8086 Dále navštivte auth databázi, tabulku realmlist a přidejte do ní nový řádek pro nový realm. Vyplňte správně ID realmu a port (volili jsme 2 ID a port 8086, ale obdobně tak můžete činit i pro další realmy s ID 3 a portem 8087 atd.). Menší tip, allowedSecurityLevel uzavře realm všem, kteří nemají dostatečná oprávnění (2ka je pro TrinityCore GM). Příklad.: Linuxový restarter Pokud provozujete server na Linuxu, budete jej ještě chtít přihodit do restarteru. Zde by mělo být celkem jasné, co je třeba udělat, je třeba vytvořit rest-world ve složce se spouštěcím souborem worldserveru a trochu poupravit soubor, ze kterého všechny restartovací scripty spouštíte. Pro jistotu ale příklad podoby funkce start v souboru ve složce /etc/init.d s názvem mangos, pokud jste následovali v Linuxovém návodu vše doslovně. start) log_daemon_msg "Starting Trinity Realm & World daemons.." screen -dmS realmlist sudo sh /home/wow/server/bin/rest-realm sleep 1 screen -dmS world sudo sh /home/wow/server/bin/rest-world sleep 1 screen -dmS world2 sudo sh /home/wow/server2/bin/rest-world sleep 1 screen -dmS world_myth sudo sh /home/wow/server_myth/bin/rest-world log_end_msg 0 ;; A to je vše, máme hotovo.
  11. Greetings Model-Changing community, I posted this on Emu-devs not too long ago maybe someone has use for it. How to setup? Create an item in the database with an on use effect, use a test spell such as modify scriptname column to the scriptname of the script and you're done. Limitations When re logging visual of mount is removed and the current mount aura will override it. Tooltip of spell still shows the real mount aura(your mount visual will obviously be different however) enum mount_timer { MOUNT_TIMER = 3000, }; enum MountSpells { SPELL_MOUNT_SPECTRAL_TIGER = 42777, //We use this as the actual mount spell, the display id overrides it via the script. }; enum MountDisplayIds { RABID_BEAR_MOUNT_DISPLAY_ID = 1082, }; /* [Reins Of The Custom Bear] */ class item_reins_of_the_custom_bear : public ItemScript { public: item_reins_of_the_custom_bear() : ItemScript("item_reins_of_the_custom_bear") { } bool OnUse(Player* player, Item* item, SpellCastTargets const& targets) { player->CastSpell(player, SPELL_MOUNT_SPECTRAL_TIGER, false); //A mount spell to modify ground movement speed player->m_Events.AddEvent(new reins_of_the_custom_bear_handler(player), player->m_Events.CalculateTime(MOUNT_TIMER)); // OnUse is instant so we need to delay the changing of mount visual until cast is complete. return true; } class reins_of_the_custom_bear_handler : public BasicEvent { public: reins_of_the_custom_bear_handler(Player* player) : player(player) {} bool Execute(uint64 /*time*/, uint32 /*diff*/) { if (player->HasAura(SPELL_MOUNT_SPECTRAL_TIGER)) //Check if mounted before changing mount visual, prevents bugs { player->Mount(RABID_BEAR_MOUNT_DISPLAY_ID); //The custom mount display id } return true; } Player* player; }; }; void AddSC_item_custom_mounts() { new item_reins_of_the_custom_bear(); }
  12. ProjectVersionRepositoryWebsiteWikiBased onLanguageArcEmu3.3.5LinkLinkLinkAntrixC++Arkania4.3.4LinkLinkLinkMaNGOSC++AscEmu2.4.3LinkLinkLinkAntrixC++AscEmu3.3.5LinkLinkLinkAntrixC++CMaNGOS1.12LinkLinkLinkMaNGOSC++CMaNGOS2.4.3LinkLinkLinkMaNGOSC++CMaNGOS3.3.5LinkLinkLinkMaNGOSC++CMaNGOS4.3.4LinkLinkLinkMaNGOSC++MaNGOS1.12LinkLinkLinkMaNGOSC++MaNGOS2.4.3LinkLinkLinkMaNGOSC++MaNGOS3.3.5LinkLinkLinkMaNGOSC++MaNGOS4.3.4LinkLinkLinkMaNGOSC++MaNGOS5.4.1LinkLinkLinkMaNGOSC++MaNGOS VB1.12LinkLink--VB.NETMaNGOS VB2.4.3LinkLink--VB.NETMaNGOS VB3.3.5LinkLink--VB.NETOregonCore2.4.3LinkLinkLink MaNGOSC++Project SkyFire5.4.1LinkLinkLinkMaNGOSC++TrinityCore3.3.5LinkLinkLinkMaNGOSC++TrinityCore6.xLinkLinkLinkMaNGOSC++WCellUnknownLinkLinkLink-C#.NETCredits: I stole this list from Tulba from elitePvPers. Thanks to him! I thought it's a good idea to share this list here. He also made this awesome image where you can follow the "history" of the WoW emulation scene: