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:  
Sign in to follow this  
Srslypwnd

[C++] Menší otázky do začátku.

Recommended Posts

Zdravím , poslední dobou mě už přestává bavit babrat se v DB a DBC souborech a mám nutkání naučit se něco nového , takže jsem se dostal k nápadu začít s cpp scriptinovaním.

Osobně mám u všech nových věcí nutkání dozvědět se co nejvíc věcí než se do toho pustím , abych byl v obraze.

 

Jen takové menší info o tom jak na tom jsem:

Dejme tomu , že když vidím normální script např. bosse tak si dokážu vydedukovat logickou úvahou jak funguje , všechny ty define , timer etc. si prostě umím vydedukovat z hlavy sám...ale pochopení samotného řádku mi dělá potíže -> jako třeba :

 

Vím že obsah "struct" bosse bloodboil udává celou fázi progressu od timeru spellu skrz nějaké targety pro spelly , emote say atd. , ale nevím proč se třeba udává na začátku scriptu

uint32 BloodboilTimer;
uint32 BloodboilCount;

uint32 FelGeyserTimer;
uint32 BewilderingStrikeTimer;

uint32 ArcingSmashTimer;
uint32 FelBreathTimer;
uint32 EjectTimer;

uint32 PhaseChangeTimer;

uint32 EnrageTimer;

uint32 Charge_Timer;

Je to něco jako informace o tom , že se v strukture bosse bude definovat timer pro spelly ? Celkově je takových věcí víc , ale doufám že to čas spláchne.

 

Poprosil bych tedy pokud by jste mi mohli zodpovědět pár otázek ohledně C++ , jelikož jsem trošku v rozpacích.

 

- Jaký je rozdíl mezi C++ code pro TC a OC emulátor ?

- Je lehčí začít s C++ od základu pomocí nějakého guide nebo stačí nějak pomocí cpp z core ?

- Jak jste začínali s C++ scriptováním ? Pár lidí mi řeklo , že se to učili vytvářením a kopírováním scriptů např. z bosse.

- Máte nějaké fóra kromě wowresource na kterých by se dalo dobře učit ?

- Nějaké tipy do začátku ?

 

Děkuji za váš čas :)

Share this post


Link to post
Share on other sites

Ten útržek kódu je definice proměnných. V C++ musíš nejdřív proměnnou nadefinovat, než jí můžeš použít. Takže řekneš jakej datovej typ má a její název...

 

Rozdíl mezi TC, OC či jakýmkoliv jiným emulátorem je v maličkostech, občas se něco jmenuje jinak, občas něco funguje jinak. Ve výsledku je to ale strašně moc podobný kód a dá se říct stejný, protože všechny emulátory vychází ze stejného jádra. Původní otázka nedávala smysl, C++ je vždy všude stejné, je to jazyk a platforma pro vytváření programů, teprve samotné programy můžou být napsané trochu jinak a tak se budou nějak lišit.

 

To záleží na tom jak moc zkušený programátor jseš. Já například měl několikaletou praxi v programování, když jsem se dostat k emulátorům a C++, takže mě trvalo tak týden, než jsem se trochu rozkoukal a začal jádro zásadně upravovat a rozšiřovat ho. Když umíš už nějaký programovací jazyk, tak ti to strašně pomůže, protože všechny programovací jazyky maj logiku stejnou, jen se to trochu jinak píše (jak se to píše si můžeš bez problému vygůglovat, stackoverflow, ...). Pokud nemáš žádný zkušenosti s programováním, tak začínat s C++ v projektu jako jsou emulátory je sebevražda. Jsou to velký projekty, všechny je propletené, spojené a pokud neovládáš základy, tak ti to bude připadat jako hromada magickýho kódu, což je špatně, protože když netušíš jak emulátor funguje, co která třída dělá, na co která funkce přesně je, tak těžko něco vytvoříš a lehce emulátor rozbiješ. Takže pokud programátor, klidně si jdi rovnou zkoušet něco v core, pokud ne, tak se nejdřív nauč programovat.

 

Já jsem začínal tak, že jsem prostě potřeboval něco udělat a udělal jsem to. Na začátku jsem 90% času trávil tím, že jsem četl kód a zjišťoval tak, co která část aplikace dělá, abych vůbec věděl, jakým způsobem a kde provést modifikace, abych docílil toho co jsem chtěl. Emulátory nemají dokumentaci, komentářů je minimum, takže kód je naprosto nezdokumentovaný, z tohoto pohledu je to naprostá katastrofa a tvoří to velkej informační blok pro nováčky, s tím budeš mít určitě problém taky. Nicméně řešení na to neexistuje, guide/howto na to neexistuje a ani se napsat nedá, je to prostě veliký a je toho hodně. Ze scriptů bossů se toho moc nenaučíš, naučíš se psát bosse a pochopíš jak fungují, nicméně to je ta triviální (a menší) část emulátoru. Pravý programování se odehrává v implementaci komunikace a základních mechanismů hry.

 

Nejvíc ti pomůžou fóra emulátorů, případně http://www.ownedcore.com/. Nic jinýho neznám... Já osobně drtivou většinu informací získal přímo z kódu, pokud máš dost trpělivosti, tak tam najdeš všechno co potřebuješ.

 

A to je asi všechno...

Edited by Tomáš Kolinger
  • Upvote 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×