-
Announcements
-
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. -
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 -
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. -
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:
-
-
Content count
2092 -
Joined
-
Last visited
-
Days Won
148
Posts posted by Wolf Officious
-
-
...nebo jí tam nevytvořil (sama se nevytvoří)Tak si tu cestu vyplnil špatně a nebo server nemá práva zapisovat do cílový složky.
...to už jsem mu tady taky psal.Appender.Arenas=2,2,0,Arena.log Logger.Arenas=35,2,Arenas
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.@WolfTohle 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.
-
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).
-
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.
-
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á.
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. Doufám že tě to alespoň trochu pobavilo a povzbudilo.
Ču$.
-
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/
- 1
-
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(); }
-
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.
-
Zkoušel jsi /bow ?
EDIT: uh... asi kravina
-
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.
-
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(); }
- 1
-
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.
- 1
-
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)
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.
-
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.
-
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.
-
Když core nevypíše zprávu o počtu načtených lokací, znamená to že se ten script NESPUSTIL. A spouští se jen přes script NPC. Tak si chybu najdi sám, protože jsem pevně přesvědčen o tom, že na mojí straně není.
A hlavně si nezapomeň smazat CACHE a WTF u WoWka...
-
všetko správne nahralo script name správne npc_dynamic_teleporter konzola nič nehlási
Zapsal jsi vůbec ten script do ScriptLoader.cpp? Asi to bude tvůj hlavní průblém (jako snad všech, kterým to nešlo). Víš, tento script vyžaduje abys uměl přidávat custom scripty...
Tobě vážně nejde pomoct.
-
A konzole hlásí co? Hmm? Zjevně nemáš správně vytvořené gossip NPC. Scriptname? (Bacha, je to case sensitive). Vytvářet gossip NPC přes SQL co je v kódu prvního příspěvku je dost vošajstlich, když jsem to psal skoro před dvěma lety.
-
Ďakujem nevedel som že je tam toho viac.
Keby si sa pozeral na ten error čo ti to vypísalo, natrieskal bys to tam sám.
Tady jsou celé soubory (aktuální, před malým okamžikem testované).
-
ď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!!!
PS: Toto je inteligencia v praxi.
-
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.
Upravené celé soubory (včetně adresářové struktury) jsou zde (ZIP):
Dynamic_Teleporter_TC_(2013_01_24).zip
-
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š.
-
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(); }
-
-
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.
No, nebudeš to mít jednoduchý. That's all.
[help] novy log system
in TrinityCore
Posted · Report reply
Nepiš do addapteru úplnou cestu!