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:  

Wolf Officious

Administrátor
  • Content count

    2092
  • Joined

  • Last visited

  • Days Won

    148

Posts posted by Wolf Officious


  1.  

    Tak si tu cestu vyplnil špatně a nebo server nemá práva zapisovat do cílový složky.

    ...nebo jí tam nevytvořil (sama se nevytvoří) :D
    Appender.Arenas=2,2,0,Arena.log
    Logger.Arenas=35,2,Arenas

    ...to už jsem mu tady taky psal.

     

    @Wolf

    Tohle je totálně anti-user friendly, myšlenka je dobrá, provedení je příšerný. To samé se dá konfigurovat mnohem lépe a bez hledání IDček v popisu ;).

    I když popravdě nevidím v tomhle logování moc smysl. Nejlepší způsob je logovat do databáze (gm, areny, atp.) a zbytek do souborů s datumem v názvu. Ostatní možnosti jsou IMHO zbytečné a nikdo je nevyužije.

     

    Spiš by měli trochu rozšířit tabulku `logs`, vyhledávat v ní je peklo.

    Jo, má to mouchy. Alespoň se nebáli změny. S tím logováním většiny věcí do DB souhlasím (ikdyž je tabulka navržená příšerně), ale je dobrý mít možnost si to házet do souborů (v tomhle systému se to dá nastvit i tak, že se to bude logovat do obou (db+file)). Já si nemyslím že by toho nikdo nevyužil. Teď tam mají třeba docela užitečnou věc řekl bych - limity velikostí souborů s logy.

  2. Letmo jsem projížděl commity na githubu TC... Hele, jak starou revizi vlastně máš? Tu co jsem stahoval 24.1.2013 to má trochu jinak.

    ...a nemáš nastavenou neexistující cestu v configu? (LogsDir)

     

    (Logs directory must exists, or log file creation will be disabled).


  3. Myslím, že ten dotaz zněl "jak nastavit logovani aren do souboru", nikoliv do DB.

    Appender.Arenas=2,2,0,Arena.log
    Logger.Arenas=35,2,Arenas

    Takhle to jde do souboru a level je debug.

     

    Tom K.: Rozšířená možnost customizace logování je zde na místě. Zkus se nad tím zamyslet místo toho tvého klasického shazování věcí, kterým nerozimíš. Když něco nechápeš, neznamená to přeci že to musí být automaticky blbost. LogLevely u Appenderu a Loggeru smysl mají. Jsem zvědavej, za jak dlouho na to přijdeš taky. :)


  4. Po pravdě - je to horor. Na první "poop" to sice není zas uplně zlý... Totiž, není to uplně blbě, ale moc dobře to taky nevypadá. :D

    Jak bych to jen řekl... Prostě je to jak vytažený ze septiku, následně vypraný s tunou aviváže a přejetý napařovačkou na 300 stupňů bez vody.

    Rohy nesedí, ty černý rámy třískaj do očí, nic se k sobě nehodí, barvy jsou jak černý tričko po dvou týdnech na sluníčku (zšedne).

     

    Hlavně to ber to s úsměvem. :) A neper hulkovi trencle. :D Doufám že tě to alespoň trochu pobavilo a povzbudilo. :lol:

     

    Ču$.


  5. A ještě mám jeden dotaz. Někde sem slyšel ze se ve visualu dá zapnout nápověda, něco co nabizí např funkce podle prvního pismena co napišu a me by zajimalo kde se to dá zapnout. Děkuji za odpovědi.

    Pokud myslíš "InteliSense", tak myslím že v určitých verzích tahle funkce chybí. Teď si tím ale nejsem jistý, jen si pamatuji že to tady někdo zmiňoval v souvoslosti s Visual C++ 2010 Express. Já mám Visual C++ 2008 Express Edition a tam je funkce InteliSense impicitně zapnutá.

     

    Zkus zapátrat na MSDN. http://msdn.microsoft.com/

    • Upvote 1

  6. Celej ten kód jsi určitě domrvil. Nauč se nejdřív alespoň základní syntax C/C++, nebo používej to, co už je na foru.

    Taky kdyby ses kouknul třeba do example scriptů, kreré jsou součástí zdrojáku TC, máš to tam a lze to vypreparovat a použít.

    Buď od té lásky a udělej něco pro tohle forum: vytáhni si hlavu ze zadku, přemýšlej a přestaň porušovat pravidla.

     

    Boha jeho, vždyť stačí jednoduše přidat kód na určité místo a borci ti to tady už psali. Nejde o refaktorizaci kódu jádra, tak snad prostý copy&paste zvládneš.

     

    EDIT : Tohle si vůbec nezasloužíš, jenom chci abys už konečně zmlknul. Nastavení je zapsaný pod includama v definicích.

     

    /*************************************************************
    * File:'dynamic_teleporter.cpp'
    * ScriptName:'npc_dynamic_teleporter'
    * (c)2011-2013 Wolf Officious WLEZLEY.EU Simulation Software
    *************************************************************/
    
    /* -- NPC SQL EXAMPLE
    REPLACE INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `WDBVerified`)
    VALUES('700020','0','0','0','0','0','736','0','0','0','Dynamic Teleporter','TEST','','0','80','80','1','35','35','1','1','1.14286','2','0','5000','5000','0','35000','10','1','0','1','512','0','0','0','0','0','0','10000','10000','68','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','','0','3','20','20','20','0','0','0','0','0','0','0','0','255','0','0','0','npc_dynamic_teleporter','0');
    */
    
    #include "ScriptPCH.h"
    #include "DynamicTeleportMgr.h"
    
    #define MY_NPC_AI_TIMER_LOOP    30
    #define MY_NPC_TEXT_TO_SAY      "KISS MY SHINY ASS!"
    #define MY_NPC_SPELLID_TO_CAST  66400
    
    class npc_dynamic_teleporter : public CreatureScript
    {
    private:
    
       // COMBAT CHECKER
       inline
       bool isInCombat(Player *player)
       {
           if(player->isInCombat())
           {
               player->GetSession()->SendNotification("You are in combat!");
               return true;
           }
           return false;
       }
    
       // SHOW MENU BY ID
       inline
       void ShowMenu(Player *player, Creature *_Creature, uint32 menu_id)
       {
           if(!sDynamicTeleportMgr->isLoaded())
           {
               player->CLOSE_GOSSIP_MENU();
               return;
           }
    
           uint32 count = 0;
           uint8  send_counter = 0;
    
           if(player->isGameMaster() && menu_id == 0)
           {
               ++count;
               player->ADD_GOSSIP_ITEM(5, "~RELOAD TELEPORTER DATA~\n", GOSSIP_SENDER_MAIN, 666);
           }
    
           for(uint32 itr = 0; itr < sDynamicTeleportMgr->GetCount(); itr++)
           {
               TeleportData const* td;
               td = sDynamicTeleportMgr->GetTeleportData(itr);
    
               if(td)
               {
                   if(td->menu_parent == menu_id)
                   {
                       if(td->faction == 0 || player->GetTeam() == td->faction) // HORDE 67, ALLIANCE 469
                       {
                           uint8 icon_id = td->icon;
    
                           if(icon_id > 9)
                           {
                               icon_id = 0;
                           }
    
                           player->ADD_GOSSIP_ITEM(icon_id, td->name.c_str(), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + td->entry);
    
                           ++count;
                           ++send_counter;
    
                           if(send_counter >= 10)
                           {
                               player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _Creature->GetGUID());
                               send_counter = 0;
                           }
                       }
                   }
               }
               else
               {
                   sLog->outError(LOG_FILTER_GENERAL, "TD_ERROR: UNK1 (!td)");
                   return;
               }
           }
    
           if(send_counter != 0 || count == 0)
               player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _Creature->GetGUID());
       }
    
       // TELEPORT PROCESS
       inline
       void TeleportToTarget(Player *player, uint32 target_id)
       {
           if(!sDynamicTeleportMgr->isLoaded())
           {
               player->CLOSE_GOSSIP_MENU();
               return;
           }
    
           TeleportLoc const* tl;
           tl = sDynamicTeleportMgr->GetTeleportLoc(target_id);
    
           if(tl)
           {
               player->TeleportTo(tl->map, tl->position_x, tl->position_y, tl->position_z, tl->position_o);
           }
           else
           {
               sLog->outError(LOG_FILTER_GENERAL, "TD_ERROR: UNK1 (!tl)");
           }
    
           return;
       }
    
       // ACTION TYPE HANDLER
       inline
       bool HandleMenuAction(Player *player, Creature *_Creature, uint32 action)
       {
           if(!sDynamicTeleportMgr->isLoaded())
               return false;
    
           for(uint32 itr = 0; itr < sDynamicTeleportMgr->GetCount(); itr++)
           {
               TeleportData const* td;
               td = sDynamicTeleportMgr->GetTeleportData(itr);
    
               if(td)
               {
                   if(td->entry == action - GOSSIP_ACTION_INFO_DEF)
                   {
                       if(td->menu_sub < 0)
                       {
                           TeleportToTarget(player, action - GOSSIP_ACTION_INFO_DEF);
                           return true;
                       }
                       else
                       {
                           ShowMenu(player, _Creature, td->menu_sub);
                           return true;
                       }
                   }
               }
               else
               {
                   sLog->outError(LOG_FILTER_GENERAL, "TD_ERROR: UNK1 (!td)");
                   return false;
               }
           }
    
           return false;
       }
    
    public:
       npc_dynamic_teleporter() : CreatureScript("npc_dynamic_teleporter") { }
    
       // AI
       struct npc_dynamic_teleporterAI : public ScriptedAI
       {
           npc_dynamic_teleporterAI(Creature* c): ScriptedAI(c)
           {
               Reset();
           }
           uint32 timer;
           void Reset()
           {
               timer = MY_NPC_AI_TIMER_LOOP * 1000;
           }
           void EnterCombat(Unit* who) { }
           void UpdateAI(const uint32 diff)
           {
               if (timer <= diff)
               {
                   me->MonsterSay(MY_NPC_TEXT_TO_SAY, LANG_UNIVERSAL, 0); // SAY  THE MESSAGE
                   DoCast(MY_NPC_SPELLID_TO_CAST);                        // CAST SPELL (without victim)
                 //DoCast(me->getVictim(), MY_NPC_SPELLID_TO_CAST);       // CAST SPELL (with victim)
                   timer = MY_NPC_AI_TIMER_LOOP * 1000;                   // NEXT_TIME (in milliseconds)
               } else timer -= diff;
           }
       };
       CreatureAI* GetAI(Creature* c) const
       {
           return new npc_dynamic_teleporterAI(c);
       }
    
       bool OnGossipHello(Player *player, Creature *_Creature)
       {
           if(isInCombat(player) || !sDynamicTeleportMgr->isLoaded())
               return false;
    
           ShowMenu(player, _Creature, 0);
    
           return true;
       }
    
       bool OnGossipSelect(Player *player, Creature *_Creature, uint32 sender, uint32 action)
       {
           if(sender != GOSSIP_SENDER_MAIN || isInCombat(player) || !sDynamicTeleportMgr->isLoaded())
           {
               player->CLOSE_GOSSIP_MENU();
               return true;
           }
    
           player->PlayerTalkClass->ClearMenus();
    
           if(action == 666 && player->isGameMaster())
           {
               player->CLOSE_GOSSIP_MENU();
               sDynamicTeleportMgr->Update();
               player->GetSession()->SendNotification("Reloaded..");
               return true;
           }
    
           if(!HandleMenuAction(player, _Creature, action))
           {
               player->CLOSE_GOSSIP_MENU();
           }
    
           return true;
       }
    };
    
    void AddSC_npc_dynamic_teleporter()
    {
       new npc_dynamic_teleporter();
    }
    

     


  7. Wolfe, při vší úctě, já si toho dovedu představit fakt docela dost. Nevím, kde pracuješ ty, ale jednou z náplní mé práce je starat se o IT výbavu ne zrovna malé pobočky jedné americké firmy. Denně mi rukama projde dost HW na to abych si stál za svým. Navíc tvůj případ nevyvrací to co jsem napsal - pokud nefungují ovladače ze stránek výrobce laptopu, je vhodné se obrátit na stránky výrobce oné komponenty. Ale v životě by mě nenapadlo instalovat drivery skrze all-in-one packy a další zběsilosti.

    Tak ještě jednou. MSI nenabízí aktualizovaný ovladače pro mojí grafiku, proto je stahuju od výrobce grafiky. U toho asusu jsem tak nějak neměl na výběr.

    Nikde jsem napsal, že instaluju ovladače přes nějaký all-in-one srágory. Klidně si za svým stůj - ale snad chápeš že naše názory jsou si dost podobný.

    Nic nevyvracím. Jen říkám že volba stahovat ovladače od výrobce NB kontra stahovat ovladače od výrobce komponenty je individuální. Pochop to.


  8. Jeden příklad za všechny - mám firemní Latitude E6430 a oficiální intelovské ovladače grafiky zrovna na tomhle stroji nefungují optimálně. Ty ze stránek Dellu ano. Měl by to být stejný HW, ale někde něco není kompatibilní ;)

    Já když jsem měl Asus A6U, byla tam grafika SIS Mirage 720M a ovladače od Asusu pro tuhle "mobilní" verzi grafiky nedělali dobrotu. Bylo to pomalý, nešel připojit externí monitor ani nešel nastavit TV výstup. Nainstaloval jsem ovladač přímo od SIS pro nemobilní verzi a všechno fungovalo perfektně. Ono je to asi více individuální, než si dokážeš představit.


  9. Metoda Unmount() se změnila na Dismount(), tak si to tam oprav.

     

     

    /*********************************
    *         Cäsh (c) 2010         *
    *    Edited by Brseker 2011     *
    * Edited by Wolf Officious 2013 *
    *      for wowresource.eu       *
    *********************************/
    
    #include "ScriptPCH.h"
    
    #define MSG1                    "Jsi v combatu. Vrat se pozdeji!"
    #define MSG2                    700044
    #define MSG3                    "Opravdu si chces pujcit tohoto mounta?"     
    #define MSG4                    "Nemas dostatek penez!"
    #define MSG5                    "Nemas spell Cold Weather Flying."
    #define PRICE                   200000   // Default: 200000(cooper) => 20G
    
    class custom_npc_mounts : public CreatureScript
    {
    public:
       custom_npc_mounts() : CreatureScript("custom_npc_mounts") { }
    
       bool OnGossipHello(Player *pPlayer, Creature *pCreature)
       {
           if (pPlayer->isInCombat())
           {
               pPlayer->CLOSE_GOSSIP_MENU();
               pCreature->MonsterWhisper(MSG1, pPlayer->GetGUID());
               return true;
           }
    
           pPlayer->SEND_GOSSIP_MENU(MSG2, pCreature->GetGUID());
    
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Red Riding Nether Ray",         GOSSIP_SENDER_MAIN, 7001, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Swift Freen Wind Rider",        GOSSIP_SENDER_MAIN, 7002, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Ashes of Al'ar",                GOSSIP_SENDER_MAIN, 7003, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Green Proto-Drake",             GOSSIP_SENDER_MAIN, 7004, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Mimiron's Head",                GOSSIP_SENDER_MAIN, 7005, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Turbo-Charged Flying Machine",  GOSSIP_SENDER_MAIN, 7006, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "X-51 Nether-Rocket X-TREME",    GOSSIP_SENDER_MAIN, 7007, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Flying Broom",                  GOSSIP_SENDER_MAIN, 7008, MSG3, PRICE, false);
           pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Deadly Gladiator's Frost Wyrm", GOSSIP_SENDER_MAIN, 7009, MSG3, PRICE, false);
           pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
    
           return true;
       }
    
       bool OnGossipSelect(Player *pPlayer, Creature *pCreature, uint32 sender, uint32 action)
       {
           if (sender != GOSSIP_SENDER_MAIN)
               return true;
    
           if (pPlayer->isInCombat())
           {
               pPlayer->CLOSE_GOSSIP_MENU();
               pCreature->MonsterWhisper(MSG1, pPlayer->GetGUID());
               return true;
           }
    
           switch(action)
           {
               case 7001: //Red Riding Nether Ray
                   AddAuraMount(pPlayer, pCreature, 39800);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7002: //Swift Green Wind Rider
                   AddAuraMount(pPlayer, pCreature, 32295);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7003: //Ashes of Al'ar
                   AddAuraMount(pPlayer, pCreature, 40192);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7004: //Green Proto-Drake
                   AddAuraMount(pPlayer, pCreature, 61294);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7005: //Mimiron's Head
                   AddAuraMount(pPlayer, pCreature, 63796);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7006: //Turbo-Charged Flying Machine
                   AddAuraMount(pPlayer, pCreature, 44151);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7007: //X-51 Nether-Rocket X-TREME
                   AddAuraMount(pPlayer, pCreature, 46199);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7008: //Flying Broom
                   AddAuraMount(pPlayer, pCreature, 42667);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               case 7009: //Deadly Gladiator's Frost Wyrm
                   AddAuraMount(pPlayer, pCreature, 64927);
                   pPlayer->CLOSE_GOSSIP_MENU();
                   break;
    
               default:
                   return true;
           }
    
           return true;
       }
    
    private:
       void AddAuraMount(Player *pPlayer, Creature *pCreature, uint32 mount)
       {
           if (pPlayer->GetMoney() >= PRICE)
           {
               if(pPlayer->HasSpell(54197))
               {
                   if(pPlayer->IsMounted())
                   {
                       pPlayer->Dismount();
                       pPlayer->RemoveAurasByType(SPELL_AURA_MOUNTED);
                   }
    
                   pPlayer->ModifyMoney(-PRICE);
                   pCreature->AddAura(mount, pPlayer);
               }
               else
                   pCreature->MonsterWhisper(MSG5, pPlayer->GetGUID());
           }
           else
               pCreature->MonsterWhisper(MSG4, pPlayer->GetGUID());
       }
    };
    
    void AddSC_custom_npc_mounts()
    {
       new custom_npc_mounts();
    }

     

    • Upvote 1

  10. Promiň, ale žádné stahování ovladačů skrze "driver genius"... Ani na Stolní a už vůbec né do notebooků..

    Tam patří výhradně jen ovladače stažitelné u výrobce...

    Souhlas. To je jako bych do svýho MSI stahoval aktualizace třeba pro ovladače na grafiku nVidia přes nějaký zastaralý krávoviny od výrobce NB. Výrobce NB != výrobce komponentů v NB obsažených. Bacha na to.

    • Downvote 1

  11. ja tomu nechápem všetko som nahral bez chybi i to npc a nefunguje mi to. prosím ta veľmi pekne pomôžeš mi? budem ti veľmy vdačný.

    Aktualizoval som novú reviziu. Spúštam to na tom core kde je script ešte dávam výpis servera (World)

    http://pastebin.com/xxN0zK6g

    Blbče, nedělej doubleposty! Hrabe ti snad, nebo co? Přečti si pravidla!

     

    A jak jsem říkal už mnohokrát: Pomož si sám, je to tvoje věc. Tady je spousta témat jak řešit podobný chujoviny.


  12.  

    môžeš mi to poslať ako to máš ti?

     

    treba dať do core aj Úprava souboru WORLD.CPP (kvůli chybám na linuxu) ??? lebo server localhost mám na windowse

     

    Na Windows to není potřeba. Na linuxu to řeší problémy s kompilací. Je to jen "HARD-FIX" pro linux. Ale když to máš na win, nic se tím nezkazí. A na tvůj problém by tohle rozhodně nemělo mít žádný vliv. Ty máš problém s přiřazením scriptu k hernímu objektu, v tomto případě tedy k NPC.

     

    Ještě jednou si ověř, že spouštíš správné core (to, které je zkompilováno s tímto patchem a scriptem). Koukni do logu, jestli ti to nevyhodilo chybu, že scriptname, který jsi zvolil neexistuje.

     

    Pokud vše selže, zkus to hodit na jinou revizi. Problém může být i ve "front-side" (vývojáři TC) - ikdyž o tom docela pochybuji.


  13. Jo, ale ty nechápeš jednu uplně jednoduchou věc. To NPC, co tam máš, není propojený s tím scriptem. Tohle si musíš vyřešit sám. Když to řešit neumíš, řekni nekomu kdo na tebe bude mít čas a nervy.

     

    Podle mě máš u toho NPC v tý databázi blbě scriptname, nebo jinou chybu, kterou jsem tu už vyjmenoval. Nebaví mě se opakovat.

     

    EDIT: Jestli já mám někde chybu a ukazuješ svojí DB jako argument - dává to nějaký smysl? Jestli já tam mám chybu, tak ty jsi prezident zeměkoule.


  14. ďakujem pekne idem skúsiť

     

    edit:

    nefunguje zase

     

    4>..\..\..\..\TrinityCore\src\server\game\Entities\Player\DynamicTeleportMgr.cpp(22): error C2039: 'outString' : is not a member of 'Log'

    4> C:/Server/TrinityCore/src/server/shared/Logging\Log.h(33) : see declaration of 'Log'

    3> npc_dynamic_teleporter.cpp

    3>..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_dynamic_teleporter.cpp(111): error C2660: 'Log::outError' : function does not take 1 arguments

    3>..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_dynamic_teleporter.cpp(147): error C2660: 'Log::outError' : function does not take 1 arguments

    5>------ Build started: Project: ALL_BUILD, Configuration: Release Win32 ------

    5> Build all projects

    ========== Build: 3 succeeded, 2 failed, 14 up-to-date, 0 skipped ==========-

    Ty blázne, těch řádků co je třeba upravit je v každým soboru víc!!! Na každý error jeden! BOHA!!! :death:

     

    PS: Toto je inteligencia v praxi.


  15. Zdravím dal by sa tento script aktualizovať? mám najnovšie Core a vypisuje mi

    ....

    ďakujem vopred.

     

    Soubor DynamicTeleportMgr.cpp - Vyhledej kousek kódu:

    sLog->outString("

    ...nahraď za:

    sLog->outInfo(LOG_FILTER_GENERAL, "

     

    Soubor npc_dynamic_teleporter.cpp - Vyhledej kousek kódu:

    sLog->outError("

    ...nahraď za:

    sLog->outError(LOG_FILTER_GENERAL, "

     

    EDIT: Typo...

    EDIT2: POZOR! Popis úprav souborů je redundantní. To znamená, že v kódu je více řádků, které se musí opravit stejným způsobem.

     

    Btw, stejně je zajímý, že i po dvou letech to používáte. :) Neřikam nic, je to dobře, jsem šťastný. ;)

    Díky za report. :in_love:

     

    Upravené celé soubory (včetně adresářové struktury) jsou zde (ZIP):

    Dynamic_Teleporter_TC_(2013_01_24).zip

     


  16. Tak na to příště nezapomeň, fakt si dávej pozor. Také není nic jednoduššího než se kouknout, jak jsou napsané ty scripty, které už tam jsou. Prostě to okoukej. :)

     

    Dále když si ve Visual C++ označíš celý text souboru (Ctrl + A), pak půjdeš do menu > "Edit" > "Advanced", je tam celkem užitečnej nástroj na zarovnání kódu: "Format Selection" (nebo rovnou "Format Document"). V podstatě tak, jak ti to naformátuje ten text, tak bys to měl psát automaticky, abys v tom měl přehled a pořádek. Čistota a formátování kódu je vizitka programátora. Nejhorší věc je, když to pak ani sám po sobě nepřečteš. :lol:

     

    vcformtxt.png


  17. Funkce void AddSC_npc_test_gossip() NEPATŘÍ do třídy class npc_test_gossip : public CreatureScript. Musíš jí definovat mimo třídu. Kompilace proběhne bez chyb díky prototypu ve ScriptLoaderu, ale linker začne řvát, protože nenajde zkompilovaný referenční objekt. Kdybys měl v kódu pořádek, všimnul by sis toho sám.

     

    Vidíš ten rozdíl? Všimni si kde je funkce AddSC_npc_test_gossip() - nesmí být vnořená do třídy scriptu!

     

    #include "ScriptPCH.h"
    
    class npc_test_gossip : public CreatureScript
    {
    public:
       npc_test_gossip() : CreatureScript("npc_test_gossip") {}
    
       bool OnGossipHello(Player* player, Creature* creature)
       {
           player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleporter" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
           player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Repair me", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
           player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Heal", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
           player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
    
           return true;
       }
    
       bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
       {
           player->PlayerTalkClass->ClearMenus();
    
           if(sender == GOSSIP_SENDER_MAIN)
           {
               switch (action)
               {
               case GOSSIP_ACTION_INFO_DEF+1:
                   player->TeleportTo(0, -8837.37f, 617.611f, 112.9705f, 0.907485f);
                   player->SEND_GOSSIP_MENU(1, creature->GetGUID());
                   break;
    
               case GOSSIP_ACTION_INFO_DEF+2:
                   player->DurabilityRepairAll(0,0,0);
                   player->SEND_GOSSIP_MENU(1, creature->GetGUID());
                   break;
    
               case GOSSIP_ACTION_INFO_DEF+3:
                   player->SetHealth(player->GetMaxHealth());
                   player->SEND_GOSSIP_MENU(1, creature->GetGUID());
                   break;
               }
           }
    
           return true;
       }
    };
    
    void AddSC_npc_test_gossip()
    {
       new npc_test_gossip();
    }
    

     


  18. Hele, je to asi takhle. Většina lidí co by chtěli vlastní server: 1.) nedělali by blizzlike, 2.) jejich věk je pod 18 let 3.) nemají dost zkušeností. Zbývající hrstka zkušených lidí nad 18 let už má většinou jiné starosti a chybí jim čas. To jsme se zase dostali do slepé uličky.

     

    Mně by nevadilo to rozject, ale nesmělo by mi to brát víc než 2 hodiny denně. A nesehnal bych tým, protože schopný lidi který znám jsou natolik zaneprázdněný (nebo znechucený, nebo mají vlastní projekt), že by do toho nešli. Pro mě osobně je výhodnější nabídnout někomu jednorázovou pomoc, než starat se o projekt. Na takový věci už jsem moc starej. :lol:

     

    No, nebudeš to mít jednoduchý. That's all.

×