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:  

Zachy

Members
  • Content count

    943
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Zachy

  1. Jak na download z nova.cz ?

    Lidi, nevíte prosím vás jak lze stáhnout videa ze serveru nova.cz ? Předem díky .
  2. Jak na download z nova.cz ?

    Tak vypadá, že na to zatím nikdo nepřišel. Díly Comebacku, alespoň co jsem já pochopil, jsou nahrávány přímo z vysílání pomocí technologie IPTV >>> Televize přes internetový protokol.
  3. [Funny] Rekapitulace uplynulého roku

    Nejlepší Method-Manovo avatar
  4. Hledám GM Post

    K čemu ,,WoW Game Master'' potřebuje znát PHP a HTML?
  5. [PATCH] Dům pro guildy

    SOURCE : http://www.ascentcommunity.com/forums/showthread.php?t=167 AUTOR : joalglok + Příkaz na portnutí do GH + Příkaz na naspawnování dveří Dveře po naspawnování mohou otevřít pouze členové guildy Index: src/ascent-world/Chat.cpp =================================================================== --- src/ascent-world/Chat.cpp (revision 5002) +++ src/ascent-world/Chat.cpp (working copy) @@ -317,6 +317,10 @@ { "export", 'o', &ChatHandler::HandleGOExport, "Exports the current GO selected", NULL, 0, 0, 0 }, { "move", 'g', &ChatHandler::HandleGOMove, "Moves gameobject to player xyz", NULL, 0, 0, 0 }, { "rotate", 'g', &ChatHandler::HandleGORotate, "Rotates gameobject x degrees", NULL, 0, 0, 0 }, + + //Puerta de Casa de Guild + { "SpawnGuildHouseDoor",'o', &ChatHandler::HandleGOSpawnGuildHouseDoor,"SpawnGuildHouseDoor GuildName - Spawns a special door for use in guild house construction",NULL,0,0,0 }, + { NULL, 0, NULL, "", NULL, 0, 0 } }; dupe_command_table(GameObjectCommandTable, _GameObjectCommandTable); @@ -504,6 +508,8 @@ { "save", 's', &ChatHandler::HandleSaveCommand, "Save's your character", NULL, 0, 0, 0}, { "saveall", 's', &ChatHandler::HandleSaveAllCommand, "Save's all playing characters", NULL, 0, 0, 0}, { "start", 'm', &ChatHandler::HandleStartCommand, "Teleport's you to a starting location", NULL, 0, 0, 0}, + //Guild House + { "guildhouse", '0', &ChatHandler::HandleGuildHouseCommand,"Teleport's you to your guild's house",NULL,0, 0, 0 }, { "additem", 'm', &ChatHandler::HandleAddInvItemCommand, "", NULL, 0, 0, 0}, { "invincible", 'j', &ChatHandler::HandleInvincibleCommand, ".invincible - Toggles INVINCIBILITY (mobs won't attack you)", NULL, 0, 0, 0}, { "invisible", 'i', &ChatHandler::HandleInvisibleCommand, ".invisible - Toggles INVINCIBILITY and INVISIBILITY (mobs won't attack you and nobody can see you, but they can see your chat messages)", NULL, 0, 0, 0}, Index: src/ascent-world/Chat.h =================================================================== --- src/ascent-world/Chat.h (revision 5002) +++ src/ascent-world/Chat.h (working copy) @@ -210,6 +210,7 @@ bool HandleGMListCommand(const char* args, WorldSession *m_session); bool HandleGmLogCommentCommand( const char *args , WorldSession *m_session); bool HandleRatingsCommand( const char *args , WorldSession *m_session ); + bool HandleGuildHouseCommand(const char* args, WorldSession *m_session); // Level 1 commands bool CmdSetValueField(WorldSession *m_session, uint32 field, uint32 fieldmax, const char *fieldname, const char* args); @@ -304,6 +305,7 @@ bool HandleGOMove(const char * args, WorldSession * m_session); bool HandleAddAIAgentCommand(const char* args, WorldSession *m_session); bool HandleListAIAgentCommand(const char* args, WorldSession *m_session); + bool HandleGOSpawnGuildHouseDoor(const char *args, WorldSession *m_session); // Level 3 commands bool HandleMassSummonCommand(const char* args, WorldSession *m_session); Index: src/ascent-world/GameObject.cpp =================================================================== --- src/ascent-world/GameObject.cpp (revision 5002) +++ src/ascent-world/GameObject.cpp (working copy) @@ -486,7 +486,11 @@ void GameObject::EventCloseDoor() { - SetUInt32Value(GAMEOBJECT_STATE, 0); + //Door never Close and never come usable again + //SetUInt32Value(GAMEOBJECT_STATE, 0); + + SetUInt32Value(GAMEOBJECT_STATE, 1); + SetUInt32Value(GAMEOBJECT_FLAGS, 0); } void GameObject::UseFishingNode(Player *player) Index: src/ascent-world/Level0.cpp =================================================================== --- src/ascent-world/Level0.cpp (revision 5002) +++ src/ascent-world/Level0.cpp (working copy) @@ -145,6 +145,81 @@ return true; } +bool ChatHandler::HandleGuildHouseCommand(const char* args, WorldSession *m_session) +{ + + if( m_session == NULL ) + return false; + + + Player *m_plyr = m_session->GetPlayer(); + + + if ( m_plyr->IsAttacking() ) + { + RedSystemMessage(m_session, "Can't go to guild house when attacking."); + return false; + } + + if ( m_plyr->IsMounted() ) + { + RedSystemMessage(m_session, "Can't go to guild house when mounted."); + return false; + } + + if ( m_plyr->isDead() ) + { + RedSystemMessage(m_session, "Can't go to guild house when dead."); + return false; + } + + if (m_plyr->GetGuild()!=NULL) + { + const char* guild = m_plyr->GetGuild()->GetGuildName(); + QueryResult *result = WorldDatabase.Query( "SELECT * FROM recall ORDER BY name" ); + + if( result == NULL) + return false; + + do + { + Field* fields = result->Fetch(); + const char* locname = fields[1].GetString(); + uint32 locmap = fields[2].GetUInt32(); + float x = fields[3].GetFloat(); + float y = fields[4].GetFloat(); + float z = fields[5].GetFloat(); + + if( strnicmp( const_cast< char* >( guild ), locname, strlen( guild ) ) == 0 ) + { + if( m_plyr!=NULL ) + { + GreenSystemMessage(m_session,"Teleporting you to %s guild's house", guild); + m_session->GetPlayer()->SafeTeleport(locmap, 0, LocationVector(x, y, z)); + delete result; + return true; + } + else + { + RedSystemMessage(m_session, "The guild %s don't own a house.", guild); + delete result; + return false; + } + } + }while (result->NextRow()); + + delete result; + return false; + } + else + { + RedSystemMessage(m_session,"You are not in a Guild!"); + return false; + } + +} + bool ChatHandler::HandleStartCommand(const char* args, WorldSession *m_session) { std::string race; Index: src/ascent-world/Level2.cpp =================================================================== --- src/ascent-world/Level2.cpp (revision 5002) +++ src/ascent-world/Level2.cpp (working copy) @@ -753,6 +753,92 @@ return true; } +bool ChatHandler::HandleGOSpawnGuildHouseDoor(const char *args, WorldSession *m_session) +{ + if(!*args) + return false; + + std::stringstream sstext; + + char* pEntryID = "177444"; //We will use the GO id 177444 because it's a nice door :) + //strtok((char*)args, " "); + + uint32 EntryID = atoi(pEntryID); + + + GameObjectInfo* goi = GameObjectNameStorage.LookupEntry(EntryID); + if(!goi) + { + sstext << "GameObject Info '" << EntryID << "' Not Found" << '\'; + SystemMessage(m_session, sstext.str().c_str()); + return true; + } + + sLog.outDebug("Spawning GO Entry '%u' as a guild house door", EntryID); + sstext << "Spawning GameObject as a guild house door, using Entry '" << EntryID << "'" << '\'; + SystemMessage(m_session, sstext.str().c_str()); + + GameObject *go = m_session->GetPlayer()->GetMapMgr()->CreateGameObject(EntryID); + + Player *chr = m_session->GetPlayer(); + uint32 mapid = chr->GetMapId(); + float x = chr->GetPositionX(); + float y = chr->GetPositionY(); + float z = chr->GetPositionZ(); + float o = chr->GetOrientation(); + + go->SetInstanceID(chr->GetInstanceID()); + go->CreateFromProto(EntryID,mapid,x,y,z,o); + + /* fuck blizz coordinate system */ + go->SetFloatValue(GAMEOBJECT_ROTATION_02, sinf(o / 2)); + go->SetFloatValue(GAMEOBJECT_ROTATION_03, cosf(o / 2)); + go->PushToWorld(m_session->GetPlayer()->GetMapMgr()); + + // Create spawn instance + GOSpawn * gs = new GOSpawn; + gs->entry = go->GetEntry(); + gs->facing = go->GetOrientation(); + gs->faction = go->GetUInt32Value(GAMEOBJECT_FACTION); + gs->flags = go->GetUInt32Value(GAMEOBJECT_FLAGS); + gs->id = objmgr.GenerateGameObjectSpawnID(); + gs->o = go->GetFloatValue(GAMEOBJECT_ROTATION); + gs->o1 = go->GetFloatValue(GAMEOBJECT_ROTATION_01); + gs->o2 = go->GetFloatValue(GAMEOBJECT_ROTATION_02); + gs->o3 = go->GetFloatValue(GAMEOBJECT_ROTATION_03); + go->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.4); + gs->x = go->GetPositionX(); + gs->y = go->GetPositionY(); + gs->z = go->GetPositionZ(); + gs->state = go->GetUInt32Value(GAMEOBJECT_STATE); + + + uint32 cx = m_session->GetPlayer()->GetMapMgr()->GetPosX(m_session->GetPlayer()->GetPositionX()); + uint32 cy = m_session->GetPlayer()->GetMapMgr()->GetPosY(m_session->GetPlayer()->GetPositionY()); + + m_session->GetPlayer()->GetMapMgr()->GetBaseMap()->GetSpawnsListAndCreate(cx,cy)->GOSpawns.push_back(gs); + go->m_spawn = gs; + + + + + // Guardar en la DB + go->SaveToDB(); + + //sGMLog.writefromsession( m_session, "Puerta de casa de guild creada %s, entry %u at %u %f %f %f%s", GameObjectNameStorage.LookupEntry(gs->entry)->Name, gs->entry, m_session->GetPlayer()->GetMapId(), gs->x, gs->y, gs->z, ", saved in DB" : "" ); + + //Saves in special Table Guild Door info Table Name="guild_doors" + + std::stringstream ss; + ss << "REPLACE INTO guild_doors VALUES(" + << ((gs == NULL) ? 0 : gs->id) << ",'" + << args << "')"; + + WorldDatabase.Execute(ss.str().c_str()); + + return true; +} + bool ChatHandler::HandleGOInfo(const char *args, WorldSession *m_session) { std::string name; Index: src/ascent-world/MiscHandler.cpp =================================================================== --- src/ascent-world/MiscHandler.cpp (revision 5002) +++ src/ascent-world/MiscHandler.cpp (working copy) @@ -1267,9 +1267,54 @@ obj->EventCloseDoor(); else { - obj->SetUInt32Value(GAMEOBJECT_FLAGS, 33); - obj->SetUInt32Value(GAMEOBJECT_STATE, 0); - sEventMgr.AddEvent(obj,&GameObject::EventCloseDoor,EVENT_GAMEOBJECT_DOOR_CLOSE,20000,1,0); + //Check if door is Guild House Door + std::stringstream ss; + ss << "SELECT * FROM guild_doors where GoGuid=" << ((obj->m_spawn->id == NULL) ? 0 : obj->m_spawn->id); + QueryResult *result = WorldDatabase.Query( ss.str().c_str() ); + + bool opendoor = true; + + if( result != NULL) + { //Check Player Guild + Field* fields = result->Fetch(); + const char* guildname = fields[1].GetString(); + + if ( plyr->IsInGuild() != NULL ) + { + const char* playerguild = plyr->GetGuild()->GetGuildName(); + + if ( strnicmp( const_cast< char* >( guildname ), playerguild, strlen( guildname ) ) == 0 ) + { + //plyr->PlaySoundToSet(11706); + const LocationVector & loc = plyr->GetPosition(); + bool res = CollideInterface.IsIndoor(plyr->GetMapId(), loc.x, loc.y, loc.z + 2.0f); + if ( res ) + { SystemMessage("Wellcome to %s Guild House",guildname); } + else + { SystemMessage("Safe Travel!");} + } + else if ( playerguild = "<< PUT STAFF GUILD NAME HERE >>" ) + { SystemMessage("Staff Guild Override - Opening door!"); } + else + { + SystemMessage("You need to be a member of %s to gain access",guildname); + opendoor=false; + } + } + else + { + SystemMessage("You can join %s guild to gain access to this guild house",guildname); + opendoor=false; + } + } + + if ( opendoor ) + { + obj->SetUInt32Value(GAMEOBJECT_FLAGS, 33); + obj->SetUInt32Value(GAMEOBJECT_STATE, 0); + if(obj->GetMapMgr()->GetMapInfo()->type==INSTANCE_NULL)//dont close doors for instances + sEventMgr.AddEvent(obj,&GameObject::EventCloseDoor,EVENT_GAMEOBJECT_DOOR_CLOSE,20000,1,0); + } } }break; case GAMEOBJECT_TYPE_FLAGSTAND: CREATE TABLE `guild_doors` ( `GOGuid` int(10) unsigned NOT NULL, `GuildName` char(32) DEFAULT NULL, PRIMARY KEY (`GOGuid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1
  6. [Funny] Rekapitulace uplynulého roku

    V celku pěkné pobavení Malé virtuální zpestření nového roku.
  7. TrinityRepack by Sythes

    Drž se ,,MaNGOS návodu'' .
  8. Demence nezná hranici

    Ehm, 3kila = 300,- Kč
  9. Demence nezná hranici

    O čem je vlastně tento topic? Nechápu podnět a smysl.
  10. Mini Notebook

    A nebo také Apple, že?
  11. Mini Notebook

    Já o těchto malých notebookách také přemýšlel. Je to pěkné a malé. Kdykoliv bych si ho mohl vzít kam bych chtěl, ale to je ono. Kam ho potřebuji nosit? Nikam. Také my vadí, že neobsahuje CD/DVD mechaniku. Daleko více se vyplatí koupit osobní počítač, za stejnou cennu bude hardwarově lepší než onen notebook. A pokud ti jde o to, aby PC mělo malé rozměry a zajímavý desing, tak zajímavá volba by mohla být také Mini notebook ASUS EEE BOX . Neboj, není to notebook ... no, koukni a uvidíš sám. EDIT : K tvému notebooku, myslím, že tu máš vše na co jsi se tu ptal - http://notebook.cz/clanky/recenze-notebook...8/toshiba-nb100 . I s fotogalerií.
  12. Mini Notebook

    Také se my líbí notebooky s úhlopříčkou 8.9" , ale teď se naskytuje otázka. K čemu potřebuješ tento notebook? Jaké využití bude mít?
  13. To se my moc nezdá. Už jen kolik si vezme samotné OS. Jinak pamatuji na doby, kdy jsem měl 32MB RAM K návodu, je to vskutku zajímavé řešení, ale neupřednostňoval bych ho. Toto řešení bych použil pouze pro výtvor vlastního music patche, jednou jsem tu o tom psal.
  14. WoW kapela

    Jednou se tu něco takového řešilo, neviditelný NPC z L70ETC. Zkus hledat.
  15. L70TEC

    Jinora, z tvého textu jsem nepochopil co má básník na srdci.
  16. L70TEC

    http://www.wowresource.eu/index.php?showtopic=7789
  17. ArcEmu. ID I am murlock.

    Opravdu není, musíš to řešit vlastním patchem jako my.
  18. WoLK server

    www.google.com , mimochodem jsi vybral špatnou sekci.
  19. Prophet´s Lair [Trinity Core2.Mangos][neplacený]

    Není tento server totožný s tímto? http://www.wowresource.eu/index.php?showtopic=9497
  20. [Navrh] Zakaz postovani serveru pres hamachi

    Ano, máš pravdu, ale tady jde o to, že 99% uživatelů co zde vytvoří téma ohledně svého serveru běžící přes hamachi nepřesahují věku 12-13 let. Také my vadí to jejich - ,,Server je zapnutý od 8:00 - 20:00 hodin'' . Na to jsem úplně alergický.
  21. [Navrh] Zakaz postovani serveru pres hamachi

    Tady nejde o to, že používáš hamachi a proto nesmíš navštěvovat toto fórum. Zde je debata ohledně zákazu postovaní WOW serverů běžící skrz hamachi. Mimochodem, píšeš, že jsi se na tvém serveru dosti naučil. Když by ti tam nehráli hráči, tak se tolik nepřiučíš?
  22. [Webové info] o PC

    Ano, server k ničemu, ale to je mimo topic.
  23. Co je to IP adresa

    Pokud by někdo toužil vědět přesně co to je IP adresa, našel by si to sám na wikipedii, popřípadě kdo nezná wikipedii, tak pomůže google, dokonce v tomto směru i seznam. Zbytečná práce. EDIT: Jak na to tak koukám, co to má společného s MaNGOSem?
  24. [Webové info] o PC

    A takto vypadá ukázka v češtině >>> http://server.exotic-cz.com/sysinfo/ , pokud to vezmete jako reklamu, prosím o smazání.
  25. Domluva na serveru

    Oč tu kráčí?
×