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:  

ariczek

Members
  • Content count

    408
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by ariczek

  1. C++ a kopie pointeru...

    on pořád myslí ty jeho crashe... kdy ukazatel ukazuje na neco, co uz je smazanyho. http://www.oneb1t.cz/paste/index.php/lists http://www.wowresource.eu/index.php?showtopic=23849&view=findpost&p=213290 ktere by timhle nejspis vyresit sly - ale vyzadovalo by to zmeny na dost mistech v core, a do toho se mu nechce
  2. C++ a kopie pointeru...

    jasny, to prvni byla jen ukazka, ze samotnej delete nestaci, jeste je potreba nastavit ukazatel na NULL. V podstate jen ilustrovalo kdyz to smazes, ale neprepises ukazatel, co se stane. to druhy je moc pekny... teda reference na ukazatel ... tuhle konstrukci jsem snad v zivote nevidel fuj osklive, zlata java edit: uz se v tom motam
  3. Smart script tabulka

    DB jako takovou stahnes tady. a asi nejsnazsi mas si ji nahrat celou do jine DB, a exportem si vytahnout jen tu tabulku co potrebujes, SQLyog to umi
  4. [C++]-Opakovač Eventů

    asi jsi se inspiroval spatne priklad z funkce updateAI u lady z ICC: case EVENT_P2_SUMMON_WAVE: SummonWaveP2(); events.ScheduleEvent(EVENT_P2_SUMMON_WAVE, 45000, 0, PHASE_TWO); break; case EVENT_P2_FROSTBOLT: DoCastVictim(SPELL_FROSTBOLT); events.ScheduleEvent(EVENT_P2_FROSTBOLT, urand(10000, 11000), 0, PHASE_TWO); break; a priklad od tebe case EVENT_FIRE_BLAST: DoCastAOE(FIRE_BLAST); break; chybi ti tam ten sheduling dalsiho
  5. C++ a kopie pointeru...

    to je v podstatě jinak zapsané řešení s přidáním úrovně ukazatele Abych uvedl, co jsem neuvedl - na hulákadle jsme řešili že core spadne v handleru std::set (tam chyba nebude) i když Player* neni NULL, protože je to pravděpodobně kopie, která se smazala z jiného ukazatele... (jiny thread ?) Takže tohle řešení by v daných místech vyžadovalo přidání hvězdiček navíc... to mi pořád přijde ujeté, není ještě jiná možnost ?
  6. TC2 a cloudové zpracování ?

    Zdravíčko hledal jsem, a nenašel jsem ani fň, a vzhledem k tomu že to nemají ani velké servery - ** a podobně... tak to asi neexistuje, ale stejně se zeptám vás ? Nevíte někdo o úpravě TC2 (obecně libovolného emulu wowka) která by podporovalo cloudové (či alespoň paralelní na úrovni několika serverů) zpracování ? Pokud bude odpověď negativní - což předpokládám... měl bych tu návrh: Co takhle spojit síly serverů CZ/SK wow scény dohromady, spojit nejlepší programátory z nich, a třeba pod záštitou WS si ho vytvořit ? Co by bylo potřeba pro začátek: 1) dokonale porozumět jak funguje emul... tím nemyslím: hurá napsal jsem si teleportera umím všechno... nebo hurá opravil jsem spell... tady bychom šli mnohem hlouběji, na úrovni vláken, synchronizace vícevláknové aplikace, komunikace world <-> realm <-> DB <-> klient a podobně... 2) může být trochu problém - získat dump komunikace z offi - tam je novější patch... do cata bych se nepouštěl. hlavně třeba možnosti přesměrování serverové IP či portu... při přechodu z mapy do mapy - kalimdor <-> EK, nebo kdekoliv <-> BG ... případně LFG a dung ? ... kterej packet či opcode to má na starosti a podobně - souvisí s 1) 3) dát dohromady první takový milník - dokázat oddělit world a třeba BG server... že by server nesestával z realm.exe a world.exe, ale přidal by se třeba ještě bg.exe z tohohle milníku by se už pak dalo pokračovat podle potřeby relativně snadno - program pro každou mapu - Kal, EK, OL, NR, - proces pro dungy ... proces pro BG, areny... a proč to všechno ? Jednak rozdělení zátěže - s dostatečným HW třeba 10K lidí bez lagu na jednom realmu ? A pak třeba mezirealmové BG či LFG Myslím že by to všem zúčastněným přineslo spoustu nových poznatků, znalostí atd, a myslím že komunita kolem wow emulace by za to utrhala ruce . Takže se ptám, byl by o něco podobného zájem, dále byli by zdatní programátoři ochotni spolupracovat ? Osobně bych se musel hodně věcí doučit - netvrdím že vše co sem napsal výše v bodu 1 zvládám Sleduji fórko WS celkem pečlivě, a mam vytipováno pár vhodných lidí (bLuma, Wolf Officious, Smrtokvitek, Hkarta, ...) s dostatečným potenciálem tohle zvládnout - pokud by měli zájem a byli by ochotní prohlubovat své veliké znalosti dále - bylo by to super... Ariczek
  7. TC2 a cloudové zpracování ?

    Ach jo, že já vůl se tu vůbec o něco snažím... zase, vedete diskuzi, že vezmete malej detail, ten vytrhnete z kontextu, na tom argumentujete... a zbytek - ten důležitej - někde zapadne. Ale holt budu vyvracet i ty detaily... tím ADT jsem kupříkladu myslel následující situaci - core použije Vector či dokonce normální pole... i když předem ví, že podle něčeho budou hledat... proč nepoužijí prioritní frontu ? nebo hashovací tabulky ? nebo vyhledávací stromy ? ... (podle situace) Nebo třeba nikdy neslyšeli o návrhu dobrého API ? ... (např. Multithreading) co je to za moresy startovat thread v kostruktoru ? nebo třeba pojmenovat funkci join() jako wait() ? Nebo že i v aktuálním core se párkrát nachází situace: int a = 0; ... //dlouhej kod... { int a = návratová_hodnota_důležitá_potom(); ... } funkce(a); A místo toho, aby to opravili tady, tak to řešej na 5ti dalších místech hotfixama...
  8. TC2 a cloudové zpracování ?

    SneakerXZ: čoveče, proč seš takovej negativista úplně na všechno ? moc posunů nenastalo ? takže dneska pořád používáme 286ky, máme MS-Dos, používáme jedno-vláknové aplikace a podobně ? Jeden příklad za všechny: pokud by použili jeden z algoritmů, co jsou známy 10 let ? možná i déle... tak by core nemohlo nikdy freeznout... jmenuje se to deadlock avoidance, existuke i v distribuované verzi... o tom ovšem emuly ani neslyšely různá prohledávání a řazení - používají zbytečně složité - algoritmy se složitostí řádově vyšší ! a takhle bych mohl jmenovat dál a dál, a nestihnul bych to ani do Vánoc Ty zas věř tomu, že informatika je jeden z nejvíce se vyvíjejících oborů vůbec Ať už to jsou softwarový věci - UML, dokumentace, návrhy rozsáhlejch systémů... síťařina - distribuovaný věci... paralelní věci různý algoritmy pro využití dat... překladače, analyzátory, komprese a podobně ... to jsou všechno obory kde se postupuje mílovými kroky dopředu... Já nechci po žádným emulu novinky, co byly před 2ma měsícema někde na konferenci... chraň pánbůh... ale proč nepoužívaj ani naprostý základy z computer science... který před 7mi rokama byly v 2 semestru bakalářskýho studia, a dneska se berou na středních školách počítačovejch ?
  9. AddItem

    timhle zacni - zbytek zahod Kdyz ho prokliknes pravym, hodi ti menu - to zajistuje metoda bool OnGossipHello(Player *player, Creature *_creature) Kdyz kliknes na neco - potrebujes nejakej handler toho co se stalo to zajistuje metoda bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) a tuhle funkci musime nejak nadefinovat co je v player a creature to je jasne, uiSender je pro nas nepodstatne, a uiAction - tam jsou ty cislicka - 1 a 2 co mas v horni funkci na konci. cele by to mohlo vypadat nejak takhle: ty case mam v {} pro jednoznacnost, pri slozitejsim kodu by to bez nich mohlo delat binec... bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) { //smazeme menu, tady to asi neni potreba, ale mohlo by to delat bordel player->PlayerTalkClass->ClearMenus(); //ted nejaky vetveni programu podle toho co nam prislo... switch(uiAction) { //1ka case (1): { player->AddItem(id_itemu,pocet); player->CLOSE_GOSSIP_MENU(); break; } //2ka case (2): { player->CLOSE_GOSSIP_MENU(); break; } } //navratova hodnota return true; } Takze cele by to mohlo vypadat nejak takhle (pro jednoduchost neresim navratovou hodnotu AddItem): snad je to ok, kompilovat jsem to nezkousel. Edit: Pridam jeste trochu teorie navrch kdyz delame takovejhle script - vlastne pouzivam objektove programovani, vytvarime potomka nejake tride. v tomhle konkretnim pripade je to tride CreatureScript, ktera je definovana takto: v souboru /src/server/game/Scripting/ScriptMgr.h - kde jsou k naleznuti i dalsi.
  10. TC2 a cloudové zpracování ?

    OneB1t: to už se ovšem bavíš o aplikacích na jiné úrovni... za wow emul se neplatí, ani bych neřešil legálnost, a 98% lidí tady na wowresource má server na takovém HW, co jim zrovna přišel pod ruku / byl nejlevnější... a i tak: kdyz si prectes muj prvni post v tomhle topicu - presne tohle je cilem jen jsem chtěl v první fázi rozdělit world program na 2 - world a BG to je totiz mnohem vetsi vyzva nez stabilita... na stabilitě si dělá většina serverů sama... a jeste k te stabilite - ono se neni cemu divit, projizdel jsem vcera jen tak ze zajimavosti TC2, jak je řešená vícevláknovost - CLI, world, SOAP etc... v prvních 3 souborech jsem našel pár chyb, hodně prasáren... že je vůbec div že to funguje, a to jsem došel jen ke spuštění těch threadů... pak jsem radši šel dělat něco jinýho Čím dál víc si myslím, že nejlepší možnost bude napsat emul od nuly, a vyvarovat se těch kiksů co jsou v emulech teď už několik let protože aktuální emuly jsou vnitřně napsaný stylem člověka, co si přečet knížku programujeme v C, pak si přečet tutoriál jak psát v C++... a napsal emul Protože nějaká teorie programování, ADT, algoritmy, návrhové vzory, dokumentace... to je všechno na úrovni tak roku 1990...
  11. AddItem

    zkus rozepsat o co se snažíš, z toho skriptu mi to není jasné ...
  12. OpenSSL

    Tohle je light verze, nejsou tam knihovny stahni si tu verzi bez light slovicka v nazvu
  13. TC2 a cloudové zpracování ?

    Asi se zeptám blbě, kdo je raczman ? Vůbec netuším kam ho zařadit, o koho jde
  14. TC2 a cloudové zpracování ?

    Stavíš mě do role obhájce C++... ale jo, paměť je důležitá, my jsme na našem projektu měli třeba 6GB RAM... a na tom jelo: 1x auth, 2x world, 1x DB, 1x ET, 2x CS:S, a nejaky drobnosti jako TS, ventrilo takze tam opravdu pametova narocnost byla kriticka ne kazdej ma na to koupit si nejvykonnejsi servr, mozna ty top servry wowka Jinak já nechci bejt zastánce C++ v týhle debatě ! Já si za 2 měsíce u obhajoby diplomky budu muset obhájit, že jsem pro serverovou část zvolil javu ! Wolfiku: proto ze je to narocny jsem udelal tenhle topic, Ted tomu dam tak tyden jestli se ozve jeste nekdo ochotnej spolupracovat - zatim jsme tri, ja, stoner a ty. A pak bych nejak probral na co v tom slozeni mame, a na co ne
  15. TC2 a cloudové zpracování ?

    To je na velmi dlouhou diskuzi s nejasným koncem - zda C++ nebo java třeba v javě nemáš takovou kontrolu nad uvolňováním paměti... což je u projektu týhle velikosti jako wow emul kritická vlastnost ale to bychoom zabrousili off topic
  16. TC2 a cloudové zpracování ?

    aha rikam, jen jsem precet nazvy, a blizsi hledani si nechavam na vecer, ale jo, i ja umim lip s javou - aspon J2SE, nez s C++ netusil jsem tu provazanost na javu. Edit: Navíc... aspon z lidí tady javu znáš nejspíš Ty, na FELu je povinná... pak bLuma, no a tím jsem asi skončil, C++ je tu mezi wowkařema rozšířenější
  17. TC2 a cloudové zpracování ?

    Děkuji za zajímavé poznatky a odkazy - budu mít večer před spaním co číst a o čem přemýšlet ad SneakerXZ: to routování na víc serverů - to je věc proč mě štve, že na offi je cata (přeci jen wotlk na TC2 je o řád funkčnější)... teď už se bude blbě dohledávat nějaký tcpdump komunikace, zda lze přesměrovat IP, či aspoň port... nikdy jsem také nenapsal, že to bude jednoduché, být to easy, tak už to někdo dávno udělal... nicméně nějak to musí být řešeno na offi - cross realm BG - kde se podle mého názoru musí měnit port... pro začátek by myslím byl dobrý cíl to rozříznutí world.exe na 2 nezávislé procesy. I to by dalo hodně přehled, co je možné, a co ne. Tyhle všeobjímající problémy - chat - guild, world channel, whisp etc. by se nechaly převést do vlastního procesu... všechno je to o dělení zátěže... pokud bychom měli například 9 serverů - po jednom pro každý svět (4), BG, dungy, chat, realm, DB - spojené rychlou sítí např. Infiniband a dostatečnou konektivitou ven - cisco routery s dostatecnou propustnosti... tak by ten bottleneck se nechal celkem eliminovat. to UDP jsem myslel pro komunikaci mezi servery - na LAN je většinou nulová ztrátovost, takže nepotřebujeme potvrzování... případně použít něco pro cloudy - MPI na wiki - ten se taky právě stará sám o to rozdělení, programuje se to jako multithread na lokalu Pokud by byl zájem, můžu ukázat jak v tom vypadá napsaná jednoduchá semestrálka na prohledávání do hloubky - paralelně. Jinak tyhle "jiné" jazyky - já z těch Actor model like znám trochu jen Smalltalk... a napsání v tom emulu - to je podle mě ještě o řád vyšší dívčí než to co jsem prvotně navrhnul já, ale zase by nám to asi dalo i víc věcí do života Páč C++ umí pořád o řád víc lidí než tyhlensty ad Jamira: tohle by zas takovej HC nebyl... něco podobnýho dělaj studenti CVUT FITu v druhym semestru - vlastní správce paměti. Nejjednoduší verze by byla - přidat nějakou třídu pro správu paměti(RAM a disk(SSD)) - a pro každou jednu třídu v core (uffff a ze jich je) přetížit operátory new a delete s pomocí tohoto správce... tam používat nějaké návrhové vzory, jako singleton - proč vytvářet objekt 6x, když stačí jednou, a zničí ho až poslední destruktor? Tohle by taky bylo na hlubší analýzu co a jak, a vyžadovalo výbornou znalost emu (jmenovat se Burlex pro ascent... )
  18. TC2 a cloudové zpracování ?

    SneakerXZ: zkus trochu rozepsat, co myslis ze bychom nezvladli ? Znalosti C++ ? znalosti knihoven v C++ ? znalosti emulu ? znalosti wowka ? Nebo navrhnout vhodnej algoritmus pro vymenu dat mezi stroji ? TCP/UDP komunikace ? Tohle odrazovani ze na neco nemame, bez zduvodneni nemam rad Ale rekni fakta.
  19. TC2 a cloudové zpracování ?

    Hm, tohle je info ktery nezna ani google... nemaj ho ani v changelogu nikde... pravda ingame jsem nešel, ale MW byl prvni server na ktery jsem koukal... jediny info co ma google - je z forka nekdy z dubna, ze snad nekdy v budoucnu... kazdpopadne nepredpokladam, ze kdyby to MW meli, ze by se o to volne podelili se vsema Wolf: prave proto ze to bude hardcore na dlouho, jsem udělal tenhle topic, sám to nedávám Jinak nemám problém, pokud by se sehnal i anglicky mluvící programátor přepnout do angličtiny... na TC2 né, ale jak arcemu tak aspire Hearthstone má pár commitů ode mě... na jejich IRC jsem byl pečenej vařenej to je bohužel i moje mínus - do dnes si víc rozumím s klony ascentu než s klony mangosu...
  20. [C++] metody AddItem a AddItemSet

    Skoro bych rek, ze ti to takhle nepujde... vzhledem k definici: void SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked = MAIL_CHECK_MASK_NONE, uint32 deliver_delay = 0); to nelze volat: draft.SendMailTo(this, MailSender(this, MAIL_STATIONERY_GM), MAIL_CHECK_MASK_COPIED); chybi ti tam SQLTransaction edit: aha... koukam ze TC2 ma jinou definici nez OC... OC tam to SQLTransaction nema... moje chyba...
  21. Wolf: Me spis slo o to, aby byl nekde dohledatelnej odkaz na to irc. Ale budiž, beru to jako ne, holt budem muset spamovat tenhle topic, aby to nezapadlo. Sejde z očí, sejde z mysli. bLuma: ty bany bych nerozvadel, ani bych je do tyhle diskuze netahal... sry - pokud nekdo dostane ban na forum jen pro to, ze se znelibi adminovi - rekne od plic co si mysli, pripadne nejakou nabidku odmitne... tohle je jasnej pripad zneuziti pravomocí... V reálným světě by za to byl soud pro zneužití pravomocí veřejného činitele (pokud beru admina jako kombo starosta/policista), tady to adminovi holt projde... Tím nechci říct že je vina jen na jedné straně, nejsem soudce, nemám k tomu právo. Druhá strana též má chyby - vše se dá napsat slušně... Můžu s tím nesouhlasit, ale to je vše co můžu. A doufám že si někdo přečte i zbytek tohohle postu, a nebude se dalších 5 stránek řešit jen tahle malá poznámka... to radši rovnou smažte celej topic Xmat: děkuji za reakce, stačilo napsat ne. Asi holt tu snahu opravdu videt nechci... kdyz jsem napsal tenhle topic, nechali jste to na komunite, team od toho daval ruce pryc, ze se to nechytne... kdybys to tenkrat zalozil Ty ci jiny clen teamu, taks měl dneska podmínky splněné, založil to někdo jiný, a tohle z toho vzniklo. A nevidím ani snahu o dialog - Ty jsi viceadmin WS, bobisu je owner IRC... kde se chcete domluvit když ty na IRC nechodíš neb nechceš, on sem nechodí bo nemůže. Když píšeš o té vstřícnosti a komunikaci... Pro všechny: omlouvám se, že jsem se dovolil, z pozice pouhého otce myšlenky, nikoli realizátora, zeptat na tuto věc, a spustil tím tuto flamovací debatu, kde i já tímto příspěvkem přilévám olej do ohně. Ariczek
  22. Xmat: nejsem ani founder, ani nemam OP status na IRC, takže tvé podmínky komentovat nemohu... Ti lidé, co ten OP/founder status mají, mají též ban na WS, takž zde nemohou reagovat. Takže bližší domluva, přijď na IRC, až tam budou. A ty poznámky na Wladasse - on se tu nemůže bránit (má ban na WS)... já o žádných řečech nevím, a to jsem na IRC téměř pořád, a jedinej ban na IRC má Nightavanger, který se tam neustále do všech navážel a nadával, takže kdyžtak konkretizuj co myslíš, netuším vo co go...
  23. "Zmizení" Itemu

    Pak jsou ještě 2 možnosti... první se hodí někde na fun serveru Najít si ID itemu které je obsaženo v http://getmangos.com/wiki/ItemExtendedCost.dbc v chtěnejch cenách, přičemž ten item je třeba nedůležitej, nezískatelnej atd. a ten si upravit název A pak je druhá možnost - do dbc přidat záznam, akorát je problém že pro správnou funkčnost => úprava klienta.
  24. WOW error

    . je speciální označení - pro aktuální adresář pokud jseš v /home/user - pak . znamená /home/user. Pokud seš v C:\users pak . znamená C:\users jedná se ospeciální znak určený pro zjednodušení psaní příkazů v linuxu není v path aktuální adresář takže pokud jsme v /home/user/prgs/pokusy/pokus6/bin2/ a chceme spustit script.sh, máme min 2 možnosti /home/user/prgs/pokusy/pokus6/bin2/script.sh nebo ./script.sh další zástupnej znak je .. který značí o adresář výš ! jsme-li v: /home/user/prgs/ .. je synonymem /home/user/
  25. Problém s NPC + gameobject

    vmapy tady nepomuzou - TC2 ani jinej emul neumi dynamicky vmapy... takze i kdyz je nahraje, rucne spawnutej GO ho mit nebude... my jsme to resili bud dobrym postavenim dane veci (skakacky...) ze NPC vyslo nekam na zem - treba hora etc. a nebo ho zkus spawnout metr nad... on pak nez stihne propadnout, tak core pocita i s tim GO pod tim, a zastavi se - ale neni to 100% ...
×