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:  

Smrtokvitek

Members
  • Content count

    171
  • Joined

  • Last visited

  • Days Won

    31

Everything posted by Smrtokvitek

  1. [C++] Apokalypsa WoW Server - Reputation Giver

    Preboha veď to bolo moje možno prvé NPC v C++ tak neviem čo to toľko komentujete...
  2. C++ additem

    Tak chyba ti tam pred každym AddItem identifier, buď player-> , alebo neviem ako to máš vyššie definované (môže byť aj Player-> , _player-> , _Player->)
  3. C++ additem

    Ten item ma kto dať ? Creatura abo kto?
  4. C++ additem

    V player.cpp maš niečo taketo (Sú tam aj kontroly volného miesta, a podobne veci) bool Player::AddItem(uint32 itemId, uint32 count) { uint32 noSpaceForCount = 0; ItemPosCountVec dest; uint8 msg = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, count, &noSpaceForCount); if (msg != EQUIP_ERR_OK) count = noSpaceForCount; if (count == 0 || dest.empty()) { // -- TODO: Send to mailbox if no space ChatHandler(this).PSendSysMessage("You don't have any space in your bags."); return false; } Item* item = StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId)); if(item) SendNewItem(item,count,true,false); else return false; return true; } Čiže ti stači použivať AddItem(IDitemu, Pocet); PS: Dúfam , že som poradil správne
  5. [C++] Quel'thalas Keep

    Ja som už 3ti rok na Apokalypse bež šikovného DEVa , nikto schopný sa nenašiel. Akurát Rean, ale ten je len SQL Dev. No rád by som zohnal nejakého šikovného core DEVa ktorý by mi dosť pomohol Najprv chcem dokončiť túto verziu, áno opravujem to aby to šlapalo na Apokalypse, potom to možno rozšírim a budem aj aktualizovať tento patch na novšie revizie. To všetko podľa záujmu ostatních. Ja ešte fixujem Player.cpp , do Worldu som sa nedostal ešte , vyčkaj a dnes sa mi to podarí cele doopravovať.
  6. [C++] Quel'thalas Keep

    Spustenie na Apokalypse sa troška posunie nestiham, akurat to kompilujem, a fixujem errory a dolaďujem
  7. [C++] Arena System 1v1

    Complete: 40% Autori: Smrtokvítek Už viac ako mesiac sa snažím spraviť custom patch na Arena System 1v1. Je to patch určený hlavne pre Fun & Instant servery. Mal som rôzne nápady, plno z nich ale zlyhalo. Myslím si, keďže som začiatočník, že to sám nedokážem. Prinášam teda podrobný popis tejto mojej rozrobenej práce a dúfam, že sa niekto schopný nájde, čo by bol ochotný pridať sa kumne a pomôcť dokončiť tento patch. Tento topic som sem nedal, aby ste kritizovali aké to je "trápne", "o ničom" a podobné komenty tích ktorí tu píšu len blbosti, ale preto, aby som našiel niekoho na pomoc a aby ste písali vaše návrhy na zlepšenie. Dúfam, že o týždeň tu nenájdem topic s názvom "Arena System 1v1" a bude tam časť mojej práce použitá. Základné informácie • Arena System 1v1 - Je pripravovaný custom aréna systém player vs player. Do teraz sa hráči stretávali v arénach 2v2, 3v3, 5v5. Tak ma napadlo, že vymyslím niečo nové, čo by bolo celkom dobré. • Tento systém nebude pracovať na systéme ako typické 2v2,3v3,5v5 arény. To znamená, že tu nebudú teamy a arena rating teamový + personal. Bude tu registrácia do ligy, ktorá vás zaregistrujte aby ste mohli bojovať v 1v1 arénach. Bude sa hrať o pointy, ktoré sa získajú tzv. Prepočtom 1v1 hier pomocou príkazu ".conversion" ktorý funguje 1výhra - 1point. Tento príkaz bude na vás či dáte 1x za týždeň, alebo 1x za deň. Neskôr sa možno pridá aj automatický prepočet ktorý sa bude dať nastaviť podľa potreby a vypnúť/zapnúť v configu. • Ako si hráč zistí koľko má pointov keď to bude len v DB? Tak buď pripravím niečo pre weby, ale hlavne chcem spraviť informačný príkaz napr. ".points" ktorý zobrazí aktuálny počet získaných pointov, odohratých hier, a pozíciu v tabuľke ligy (Rank). • Odohrávať sa budú zápasy (No a tu som sa tak povediac zastavil). Buď to budú original arény, alebo to budú custom arény postavené na nejakých tajných nevyužitých lokáciach. To všetko záleží od šikovnosti mňa, respektíve aj toho kto mi pomôže. Ale jedno viem na 100%, maximálne chcem zasiahnuť do úpravy core + DB + dbc (v prípade nutnosti). Klienta upravovať neviem, a hlavne nechcem. • Odmeny za arény niesú premyslené pretože to nechám na každého zvlášť. Môžem akurát pripraviť vendora. Ale je isté, že bude predávať za pointy ktoré hráči získaju za arény. Chcem ešte pripomenúť, nieje to otestované robené je to naslepo ale malo by to fungovať zatial to čo tu dám. Otestované a skompilované to bude v tom prípade keď tu bude 100%. C++ Časť [ src/server/game/World/World.cpp ] (Toto sa využije v tom prípade ak uprednostníme nové arény v tajných lokáciach, a využijeme to pri portovaní keď sa to použije pri kontrole koľko hráčov je v danej zóne, aby sa predišlo, že sa stretne viac hráčov v jednej aréne ako je 2) m_realmCharCallback.GetResult(result); _UpdateRealmCharCount(result, param); m_realmCharCallback.FreeResult(); } } +uint32 World::GetPlayersInZone(uint32 zoneid) +{ + uint32 count=0; + + HashMapHolder<Player>::MapType& m = sObjectAccessor.GetPlayers(); + for(HashMapHolder<Player>::MapType::const_iterator itr = m.begin(); itr != m.end(); ++itr) +if(itr->second->GetZoneId() == zoneid) +count++; + +return count; +} //No newline at the end of file! [ src/server/game/World/World.h ] World(); ~World(); + uint32 GetPlayersInZone(uint32 zoneid); WorldSession* FindSession(uint32 id) const; void AddSession(WorldSession *s); void SendAutoBroadcast(); [ src/server/game/Chat/Commands/Level3.cpp ] +bool ChatHandler::HandleConversionCommand(const char* /*args*/) +{ + //Cycle that gives league points to all players + CharacterDatabase.PExecute("UPDATE league_score SET Points = Points + Wins_Week"); + CharacterDatabase.PExecute("UPDATE league_score SET Wins_All = Wins_All + Wins_Week"); + CharacterDatabase.PExecute("UPDATE league_score SET Wins_Week = 0"); + + sWorld->SendWorldText(LANG_1V1_CONVERSION_POINTS); + return true; +} //No newline at the end of file! [ src/server/game/Chat/Chat.cpp ] { "unbindsight", SEC_ADMINISTRATOR, false, OldHandler<&ChatHandler::HandleUnbindSightCommand>, "", NULL }, + { "conversion", SEC_ADMINISTRATOR, false, OldHandler<&ChatHandler::HandleConversionCommand>, "", NULL }, { "playall", SEC_GAMEMASTER, false, OldHandler<&ChatHandler::HandlePlayAllCommand>, "", NULL }, [ src/server/game/Chat/Chat.h ] bool HandleUnbindSightCommand(const char* args); + bool HandleConversionCommand(const char* args); bool HandleGuildCreateCommand(const char* args); [ src/server/game/Miscellaneous/Language.h ] // Use for custom patches 11000-11999 LANG_AUTO_BROADCAST = 11000, LANG_INVALID_REALMID = 11001, + LANG_1V1_NO_REGISTER = 11022, + LANG_1V1_YES_REGISTER = 11023, + LANG_1V1_REGISTER_COMPLETE = 11024, + LANG_1V1_CONVERSION_POINTS = 11025, + LANG_1V1_SCORE = 11026, // Level 4 (CLI only commands) LANG_COMMAND_EXIT = 1000, [ src/server/scripts/Custom/CMakeLists.txt ] set(scripts_STAT_SRCS ${scripts_STAT_SRCS} +Custom/npc_arena.cpp ) [ src/server/game/Scripting/ScriptLoader.cpp ] // custom +void AddSC_npc_arena(); ... void AddCustomScripts() { #ifdef SCRIPTS + AddSC_npc_arena(); #endif } [ src/server/scripts/Custom/npc_arena.cpp ] (New File) #include "ScriptPCH.h" #include "World.h" /* extern CharacterDatabaseWorkerPool CharacterDatabase; */ class npc_arena_master : public CreatureScript { public: npc_arena_master() : CreatureScript("npc_arena_master") { } bool OnGossipHello(Player *player, Creature *_creature) { if (player->isInCombat()) { player->CLOSE_GOSSIP_MENU(); _creature->MonsterWhisper("Combat!", player->GetGUID()); return true; } else { player->ADD_GOSSIP_ITEM( 9, "I am ready to fight" , GOSSIP_SENDER_MAIN, 1); player->ADD_GOSSIP_ITEM( 10, "Register me to the 1v1 League" , GOSSIP_SENDER_MAIN, 2); player->ADD_GOSSIP_ITEM( 6, "Sell me some rewards" , GOSSIP_SENDER_MAIN, 3); QueryResult result = CharacterDatabase.PQuery("SELECT `name` FROM `league_score` WHERE name = '%s' ", player->GetName()); if (result) //If Registered { player->ADD_GOSSIP_ITEM( 7, "My Score" , GOSSIP_SENDER_MAIN, 4); } return true; } player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); return true; } bool OnGossipSelect(Player *player, Creature *_creature, uint32 sender, uint32 uiAction) { if (sender == GOSSIP_SENDER_MAIN) { player->PlayerTalkClass->ClearMenus(); switch(uiAction) { case 1://I am ready to fight ????? break; case 2://Register me to the 1v1 League QueryResult result = CharacterDatabase.PQuery("SELECT `name` FROM `league_score` WHERE name = '%s' ", player->GetName()); if (result) //Already Registered { ChatHandler(player).SendSysMessage(LANG_1V1_YES_REGISTER); player->CLOSE_GOSSIP_MENU(); } else //No Registered { QueryResult result = CharacterDatabase.PExecute("INSERT INTO `league_score` VALUES ('%u', '%s', 0, 0, 0)", player->GetGUIDLow(), player->GetName()); ChatHandler(player).SendSysMessage(LANG_1V1_REGISTER_COMPLETE); } return true; break; case 3://My Score QueryResult result = CharacterDatabase.PQuery("SELECT `Name`, `Games`, `Wins_Week`, `Wins_All`, `Wins_Points`, FROM `league_score`"); if (result) { Field *fields = result->Fetch(); return fields[0].GetInt32() + fields[1].GetInt32() + fields[2].GetInt32() + fields[3].GetInt32() + fields[4].GetInt32(); } ChatHandler(player).SendSysMessage(LANG_1V1_SCORE); player->CLOSE_GOSSIP_MENU(); break; default: break; } } return true; } }; void AddSC_npc_arena() { new npc_arena_master(); } DB Časť [ trinity_string ] INSERT INTO `trinity_string` VALUES ('11022', 'You are not registered in the league!', null, null, null, null, null, null, null, null); INSERT INTO `trinity_string` VALUES ('11023', 'You are already registered in the league!', null, null, null, null, null, null, null, null); INSERT INTO `trinity_string` VALUES ('11024', 'Registration success!', null, null, null, null, null, null, null, null); INSERT INTO `trinity_string` VALUES ('11025', 'Successful conversion points!', null, null, null, null, null, null, null, null); INSERT INTO `trinity_string` VALUES ('11026', '1v1 League Score: %s -- Games: [%u], Wins Week: [%u], Wins Total: [%u], Points: [%u]', null, null, null, null, null, null, null, null); [ command ] INSERT INTO `command` VALUES ('conversion', '4', 'Conversion Points - Arena System 1v1'); /* Table structure for `league_template` - World Database */ DROP TABLE IF EXISTS `league_template`; CREATE TABLE `league_template` ( `ArenaID` int(11) NOT NULL default '0', `x` float default NULL, `y` float default NULL, `z` float default NULL, `Map` int(11) default NULL, `ArenaName` varchar(50) default NULL, PRIMARY KEY (`ArenaID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; Táto tabuľka sa dá využiť v tom prípade, že sa uprednostnia vlastné arény. Uľahčí sa nám portovanie do arén, aby sme nemuseli všetko cez core robiť. /* Table structure for `league_score` - Characters Database*/ DROP TABLE IF EXISTS `league_score`; CREATE TABLE `league_score` ( `Guid` int(11) default NULL, `Name` varchar(50) default NULL, `Games` int(11) NOT NULL default '0', `Wins_Week` int(11) NOT NULL default '0', `Wins_All` int(11) NOT NULL default '0', `Points` int(11) NOT NULL default '0', PRIMARY KEY (`Guid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; Táto tabuľka má zatiaľ takúto podobu, no časom sa možno upraví o páru vymožeností. Načom ešte pracujem? • Úprava systému zapisovania do DB. Chcel by som pridať a hlavne rozdeliť výhry, na výhry celkovo, a výhry za posledné obdobie (Obdobie od prepočtu). Tým sa aj upraví systém prepočtu. • Príkaz .points - na zistenie pointov, a aktuálnej pozície v tabulke ligy. • Autoannouncer v prípade joinutia arén. Na záver Treba toho ešte veľa spraviť, hlavný systém kde sa budú odohrávať zápasy, vylepšiť to všetko, systém čakania no proste je toho dosť. Preto dúfam, že sa nájdú ľudia schopní ktorí by chceli priložiť ruku k dielu. V prípade záujmu ma kontaktujte prostredníctvom PM tu na Fóre .
  8. [C++] Arena System 1v1

    Changelog 22.01.2011 - 2 • Pridaná možnosť zobrazenia score v lige 'My Score' (Zobrazuje Počet hier, výhier celkovo, výhier od posledného prepočtu) [ src/server/scripts/Custom/npc_arena.cpp ] player->ADD_GOSSIP_ITEM( 9, "I am ready to fight" , GOSSIP_SENDER_MAIN, 1); player->ADD_GOSSIP_ITEM( 10, "Register me to the 1v1 League" , GOSSIP_SENDER_MAIN, 2); player->ADD_GOSSIP_ITEM( 6, "Sell me some rewards" , GOSSIP_SENDER_MAIN, 3); + + QueryResult result = CharacterDatabase.PQuery("SELECT `name` FROM `league_score` WHERE name = '%s' ", player->GetName()); + if (result) //If Registered + { + player->ADD_GOSSIP_ITEM( 7, "My Score" , GOSSIP_SENDER_MAIN, 4); + } + return true; + } + player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID()); return true; ChatHandler(player).SendSysMessage(LANG_1V1_REGISTER_COMPLETE); } return true; break; + + case 3://My Score + QueryResult result = CharacterDatabase.PQuery("SELECT `Name`, `Games`, `Wins_Week`, `Wins_All`, `Wins_Points`, FROM `league_score`"); + + if (result) + { + Field *fields = result->Fetch(); + return fields[0].GetString() + fields[1].GetInt32() + fields[2].GetInt32() + fields[3].GetInt32() + fields[4].GetInt32(); + ChatHandler(player).SendSysMessage(LANG_1V1_SCORE); + } + else + { + ChatHandler(player).SendSysMessage(LANG_1V1_NO_REGISTER); + } + return true; + player->CLOSE_GOSSIP_MENU(); + break; + default: break; [ src/server/game/Miscellaneous/Language.h ] LANG_1V1_REGISTER_COMPLETE = 11024, LANG_1V1_CONVERSION_POINTS = 11025, + LANG_1V1_SCORE = 11026, // Level 4 (CLI only commands) LANG_COMMAND_EXIT [ trinity_strings ] INSERT INTO `trinity_string` VALUES ('11026', '1v1 League Score: %s -- Games: [%u], Wins Week: [%u], Wins Total: [%u], Points: [%u]', null, null, null, null, null, null, null, null); (Niesom si veľmi istý či to bude fungovať, ale malo by. Ale určite sa tam nájde nejaká malinká chyba, hlavne v "case 3://My Score") • Aktualizovaný custom PatchFile 'All in One' ArenaSystem1v1.patch
  9. [C++] Arena System 1v1

    Changelog 22.01.2011 - 1 • Úprava tabuľky 'league_score' (Rozdelené Wins - "Wins_Week" & "Wins_All") DROP TABLE IF EXISTS `league_score`; CREATE TABLE `league_score` ( `Guid` int(11) default NULL, `Name` varchar(50) default NULL, `Games` int(11) NOT NULL default '0', `Wins_Week` int(11) NOT NULL default '0', `Wins_All` int(11) NOT NULL default '0', `Points` int(11) NOT NULL default '0', PRIMARY KEY (`Guid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; • Úprava commandu 'conversion' (Rozdelené Wins - "Wins_Week" & "Wins_All") m_session->GetPlayer()->StopCastingBindSight(); return true; } +bool ChatHandler::HandleConversionCommand(const char* /*args*/) +{ + //Cycle that gives league points to all players + CharacterDatabase.PExecute("UPDATE league_score SET Points = Points + Wins_Week"); + CharacterDatabase.PExecute("UPDATE league_score SET Wins_All = Wins_All + Wins_Week"); + CharacterDatabase.PExecute("UPDATE league_score SET Wins_Week = 0"); + + sWorld->SendWorldText(LANG_1V1_CONVERSION_POINTS); + return true; +} • Pridaný Jednoduchý script pre Web 'Top 1v1 League Players' <?php /* Nastavenia */ $ip = 'localhost'; //Mysql Adresa $user = 'root'; //Mysql Uživateľ $pass = 'root'; //Mysql Heslo $characters = 'chars'; //Char db $top = 10; //Koľko Najlepších /* Pripojenie */ $connect = mysql_pconnect($ip, $user, $pass) or die ("Spojenie so serverom $ip nebolo uspesne"); /* Vybratie Databázy */ mysql_select_db($characters, $connect); /* Dotaz */ $sql = "SELECT * FROM league_score ORDER BY Wins_All DESC LIMIT $top"; $result = mysql_query($sql); echo "<center><h1> League 1v1 TOP $top Players</H1> <table border='1'> <tr><td>Name</td><td>Games</td><td>Wins</td> </tr>"; while ($vypis=mysql_fetch_array($result)) { echo "<tr><td>".$vypis['Name']."</td> <td>".$vypis['Games']."</td> <td>".$vypis['Wins_All']."</td></tr>"; } echo "<center></table>"; mysql_close(); ?> • Pridaný custom PatchFile 'All in One' ArenaSystem1v1.patch
  10. [Predám] LOTRO EU Account

    The Lord of the Rings Online (Tento topic sa týka jedného môjho známeho, ktorý by mal záujem predať premium acc LOTRO, na serveri Snowbourn - Bez Datadiskov) Menšie info: Class: Minstrel Race: Man Gender: Male Level: 40 DP: 4466 Gold: 8 EQ: veci su hlavne z questov, ale najdu sa aj veci z profesii/aukcie Staty: 1900 morale, 1850 mana Preferuje sa platba cez PayPal
  11. [C++] Apokalypsa WoW Server - NPCs

    Dobrý deň V poslednej dobe ma to začalo baviť. Prinášam Vám niektoré NPC (TC2 nová revka), snaď sa Vám niektorým zídu (Niektoré NPC som tu už videl, no sú prerobené a vylepšené) !! Keďže sú to NPC robené na Apokalypsu, niektoré bude treba troška prerobiť !! Upozornujem nieje to nič extra , keďže čo sa tíka C++ som začiatočník, a nevenujem sa tomu dlho. 1.Rename/Customize NPC (Názov súboru npc_customize.cpp) 2.Teleport NPC (Názov súboru npc_teleport.cpp) 3.Morph NPC (Názov súboru npc_morph.cpp) Pracujem na Title Giverovi + Equip Changerovi Pridám neskôr
  12. Leviticus Hledá tým

    Chcel by som mať lvl 8
  13. Mega nábor

    Pekne spísane Wladass ako vždy Rep + Keby som nemal svoj server, určite by som sa prihlásil, no možno pošlem nejakých známych Prajem veľa šťastia
  14. NEW Custom Profession!- Určené pre TrinityCore2 10283+ (Malo by to fungovať aj na starších revkach) Hlavne pre Fun servery & instanty! Základné informácie o profesii Searching je nová custom profesia, ktorá pracuje na základe špeciálneho skillovania. Takisto tu sú ranky profesie (Apprentice, Journeyman...). V searchingu ide vlastne o hľadanie pokladov. V každom Treasure Cheste sa ukrýva Treasure (Podľa rankov sú treasure chesty, a aj treasure napr. Small Treasure sa nachádza v Small Searching Chest). 75 treasur daného ranku = nový rank = Nový Rank Item príklad: 75 Small Treasure = Apprentice Searching čo znamená že dostanete Apprentice Searching Token , ktorý je potrebný na otváranie ďalšieho ranku Treasur atď. Je to veľmi jednoduchý systém a dá sa pochopiť (Na otváranie prvého ranku Treasur bedničiek je potrebný token Treasure , ktorý sa kúpi u trainera Searchingu) Apprentice Searching - Small Treasure (Small Searching Chest) Journeyman Searching - Medium Treasure (Medium Searching Chest) Expert Searching - Large Treasure (Large Searching Chest) Artisan Searching - Southsea Treasure (Southsea Searching Chest) Master Searching - Family Treasure (Family Searching Chest) Grand Master Searching - Extreme Treasure (Extreme Searching Chest) Povolené Rasy & Classy Táto profesia je povolená pre all rasy & classy Skily Profesie Parachute - (Spell) Furbolg Form - (Spell) Water Breathing - (Spell) Frost Wyrm Mount - (Spell) Track Demons - (Spell) Track Dragonkin - (Spell) Track Elementals - (Spell) Track Giants - (Spell) Track Humanoids - (Spell) Track Undead - (Spell) Track Hidden - (Spell) Searching Hat - (Item) Searching Regalia - (Item) Searching Slippers - (Item) DATABÁZA /src/server/game/Miscellaneous/Language.h // Room for in-game strings 820-999 not used + LANG_YOU_NOT_HAVE_TREASURE = 820, + LANG_TREASURE_TREASURE = 821, + LANG_TREASURE_APPRENTICE = 822, + LANG_TREASURE_JOURNEYMAN = 823, + LANG_TREASURE_EXPERT = 824, + LANG_TREASURE_ARTISAN = 825, + LANG_TREASURE_MASTER = 826, + LANG_TREASURE_GRANDMASTER = 827, // Level 4 (CLI only commands) LANG_COMMAND_EXIT = 1000, /src/server/scripts/Custom/CMakeLists.txt set(scripts_STAT_SRCS ${scripts_STAT_SRCS} +Custom/npc_profession.cpp +Custom/go_profession.cpp ) /src/server/game/Scripting/ScriptLoader.cpp // custom +void AddSC_npc_professionbase(); +void AddSC_npc_professionother(); +void AddSC_go_chestsmall(); +void AddSC_go_chestmedium(); +void AddSC_go_chestlarge(); +void AddSC_go_chestsouthsea(); +void AddSC_go_chestfamily(); +void AddSC_go_chestextreme(); void AddCustomScripts() { #ifdef SCRIPTS + AddSC_npc_professionbase(); + AddSC_npc_professionother(); + AddSC_go_chestsmall(); + AddSC_go_chestmedium(); + AddSC_go_chestlarge(); + AddSC_go_chestsouthsea(); + AddSC_go_chestfamily(); + AddSC_go_chestextreme(); #endif } GENERAL & OTHER SKILLS Trainer - npc_profession.cpp Treasure Chests - go_profession.cpp Spawny bedničiek (Chestov) som nedal, naspawnujte si ich podľa seba, počet a lokácie sú uvedené v informačnej tabulke, ktorú treba spawnut ku Trainerom, aby sa hráčom lepšie hľadalo. PS: Dúfam, že sa to niekomu zíde, je tam určite pár chýb, a hlavne by som chcel poprosiť aby to niekto otestoval, pretože som nemal čas to odskúšať, ale malo by to bez problémov ísť, možno nejaká syntax chybyčka sa nájde ale určite to otestujem jak budem mať čas. Vaše návrhy na zlepšenie, a chyby mi hláste!
  15. [C++] Apokalypsa WoW Server - Custom Profession

    Ahojte, tak síce tu už nechodím, ale ajtak... Spravil som najnovšiu verziu Custom Profession Searching • Upravené na TrinityCore2 rev.10476+ • Opravené errory pri kompilácii , menšie úpravy (100% Funkčné Otestované) • Pridané Spawny Chestov (Bedničiek - Sú naspawnované celkom kvalitne nie všetko pri sebe, abo len tak od veci, niektoré sú poskrývané a podobne) • Pridaný Teleporter pre uľahčenie dostavenia sa na územie , kde sa nachádzajú dané Chesty (Bedničky) CustomProfession.patch [1339 Riadkov] (Poprípade link na sťiahnutie http://www.apokalypsa.sk/CustomProfession.patch ) Dúfam, že sa to niekomu zíde
  16. [Command] Anti-Fly Hack

    Dobrý deň prajem Dnes Vám prinášam celkom šikovný command na nájdenie FlyHackerov. Je to pre TrinityCore2 10137+ (Malo by to fungovať aj na starších revkach) Nieje to moja práca našiel som to na jednom fórku dávnejšie. Možno sa niekomu bude hodiť. Neskôr by som chcel podľa toho spraviť niečo také aj na SpeedHackerov. src/server/game/Chat/Chat.cpp + { "findflyhacker", SEC_PLAYER, false, &ChatHandler::HandleFlyHackerCommand, "", NULL }, src/server/game/Chat/Chat.h + bool HandleFlyHackerCommand(const char * args); src/server/game/Chat/Commands/Level3.cpp +bool ChatHandler::HandleFlyHackerCommand(const char* args) +{ + bool foundAtLeastOneFlyHacker = false; + Player *player = m_session->GetPlayer(); + if(!player->isGameMaster()) + { + SendSysMessage("Command Error"); + return true; + } + sObjectAccessor.GetPlayers(); + ACE_GUARD_RETURN(ACE_Thread_Mutex, guard, *HashMapHolder<Player>::GetLock(), true); + HashMapHolder<Player>::MapType const& plist = sObjectAccessor.GetPlayers(); + for (HashMapHolder<Player>::MapType::const_iterator itr = plist.begin(); itr != plist.end(); ++itr) + { + if(itr->second->HasUnitMovementFlag(MOVEMENTFLAG_FLYING) && !itr->second->isGameMaster() && !itr->second->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !itr->second->HasAuraType(SPELL_AURA_FLY)) + { + foundAtLeastOneFlyHacker = true; + PSendSysMessage("Flyhacker %s",itr->second->GetName()); + } + } + + if(!foundAtLeastOneFlyHacker) + { + PSendSysMessage("Flyhackers not found"); + } + return true ; + } +
  17. [C++] Apokalypsa WoW Server - Custom Profession

    Diki Diki. A máte sa načo tešiť pripravujem niečo nové a veľkéé
  18. [C++] Apokalypsa WoW Server - Custom Profession

    AJ ja som rád , že som tu ostal a budem sa snažiť pre WS robiť čo najviac noviniek, a pomáhať
  19. [C++] Apokalypsa WoW Server - Custom Profession

    Zas toľko nepreháňajme
  20. [Hledáme] Developery/SQL fixery

    Keby som nemal svoj vlastný projekt tak by som aj mal záujem
  21. [C++] Apokalypsa WoW Server - Custom Profession

    Každý sa len klania to je až take dobre?
  22. [C++] Apokalypsa WoW Server - Custom Profession

    Diki snažil som sa
  23. PvP & PvE Equip Changer - Určené pre TrinityCore2 10137+ (Malo by to fungovať aj na starších revkach) Changer PvP & PvE Setov (Zatiaľ funkčná len PvP Časť , PvE bude dorobené časom) • Equip Changer je vhodná pomôcka pre Funy/Instanty , no možno aj blizzlike servery • Equip Changer je určený , na zmenu typu eq (Podľa zamerania) príklad: Holy Paladin má full Wrathfull set, no prestalo ho baviť Holy a chce byť Retribution Paladin. Arena Team + Aréna Pointy už ale nemá, poprípade nechce sa mu dorábať rating ktorý možno stratil, a nazbierať Aréna pointy, na nakúpenie Retribution Wrathfull setu. Čo teraz? Jednoducho príde, a zamení si Holy set za Retribution set. Chyby? • Jedinú chybu čo som našiel, je blbnutie ikoniek v Goosip Menu, správa sa to veľmi čudne , ale to si určite všimnete. Ak by mal niekto riešenie tak budem rád keď napíšte. EQUIP CHANGER - npc_equip.cpp Prípadné návrhy na vylepšenie, poprípade chyby mi hláste Dúfam, že sa to niekomu zíde
  24. [C++] Apokalypsa WoW Server - Equip Changer PvP & PvE

    Thx ochviľku sa pustím do ďalších classov
  25. [C++] Apokalypsa WoW Server - Equip Changer PvP & PvE

    PvP & PvE Equip Changer - Určené pre TrinityCore2 10137+ (Malo by to fungovať aj na starších revkach) Version 2.2 - Pridaná PvE Časť - Druid EQUIP CHANGER version 2.2- npc_equip.cpp
×