Ultima Online: Manawydan - Role Playing shard

Manawydan.cz používá na svých webových stránkách cookies. Chcete-li získat informace o používání a nastavení cookies, prosím přečtěte si naše Prohlášení o ochraně soukromí. Nedostatečným nastavením blokování cookies dáváte souhlas k jejich využívání.


SVN 4191: (svn4191)
System kouzel: (FIX)
- Opravena spotreba many pri uspesnem vycasteni
SVN 4195: (svn4195)
System kouzel:
- Pridana textova indikace, zda vam chybi nebo dochazi reagenty pro zakouzlene kouzlo (pro <=10 regu)
SVN 4201: (svn4201)
System hledani cesty: (FIX)
- Opraveno hledani cesty u summonu, aby se nezasekavali o hrace a ostatni summony s Warmodem
<NERD_ALERT>
SVN 4197: (svn4197)
Optimalizace PairKeyValue -> KeyValuePair:
- PairKeyValue byl typu class
- KeyValuePair je typu struct a je v defaultnich knihovnach .NETu
- Zasadni rozdil je ve vytvareni a velikosti takovych objektu
- Class typ se vytvari tak, ze se vytvori reference na stacku a objekt na kterej reference ukazuje na heapu, coz pro hodne prvku jako byl PairKeyValue muze vytvare obrovsky overhead jak rychlosti, tak pameti.
- Struct typ se vytvari rovnou na stacku jako value typ a nema zadny overhead pri vytvareni ani zadny overhead pro velikost.
SVN 4198: (svn4198)
Optimalizace smazani Point3DList:
- Byla to naivni implementace List<Point3D>, ale ne moc optimalizovana.
- Vyuzivala se jenom v Map.cs, kde jsem to nahradil za List<Point3D>
SVN 4199: (svn4199)
Optimalizace smazani TileList:
- Byla to naivni implementace Listu, ale ne moc optimalizovana.
- Pri nahrazovani za List<Tile> jsem zjistil, ze TileList mel sideeffect v metode ToArray(), kterej puvodni list smazal. Jeste ze to nikdo nikde nepouzil mimo RunUO tym. (Stejne tak to mel Point3DList, ale to se nikde nepouzilo nastesti)
- Nahrazeny vsechny vyskyty TileListu s tim, ze u kazdyho ToArray jsem smazal dodatecne predchozi List<Tile> pres .Clear() (bez toho se ve hre nedalo hejbat. fakt divna implementace od RunUO tymu)
SVN 4200: (svn4200)
Optimalizace smazani KeywordList:
- To samy jako predchozi 2 commity
</NERD_ALERT>
SVN 4189: (svn4189)
[url='http://mantis.manawydan.eu/view.php?id=1457' target='_blank']bug1457[/a> uzavren
Zasadni zmeny v systemu kouzleni a modliteb: (BUFF)
- Nektere kouzla prestoze nefiznuli, tak nic neudelali, protoze mohli narazit na nejakou ukoncujici podminku. (Napr. U UnlockSpellu, kdyz se vybere neco jinyho nez zamek, tak se kouzlo sice povede, sezere manu a ukonci se v tzv ukoncovani vetvi)
- Trosku jsem zmenil zakladni system magie, ktery zahrnuje i modleni, aby se dalo u kazdeho kouzla rozpoznat, jestli se ukoncilo v ukoncovaci vetvi nebo uspesnym/resistnutym seslanim.
- Na zaklade teto zmeny jsem musel prepsat vsechny kouzla a modlitby, aby na upravenem systemu fungovali spravne.
- Co to ve vysledku znamena? Nekolik veci:
1. Pokud kouzlo fizne nebo selze v ukoncovaci vetvi, tak nyni sebere pouze pulku many, co stoji kouzlo a nebudou se pri fizu spotrebovavat regy ani to nebude brat dodatecnou manu za regy, ktere pro dane kouzlo nemate.
2. Pokud kouzlo bude uspesne seslano nebo rezistnuto, tak se nic nemeni a kouzla berou na zacatku kouzleni pulku many a po uspesnem seslani zbytek many + regy + dodatecnou manu za regy, ktere jste nemeli u sebe.
- Tato zmena by mela prevazne pomoct zacinajicim magum, protoze ti prevazne fizujou a kdyz zacasti nejake silnejsi kouzlo, tak se casto stavalo, ze je zabilo.
- V prubehu prepisovani vsech kouzel jsem nektera vcelku i optimalizoval a standardizoval, takze by to melo taky trosku ulehcit serveru.
- Funkcionalita kouzel by ale mela byt z 95% zachovana. Pouze u nekterych jsem provedl mensi zmeny, kdyz se mi u nich neco nezdalo.
- Prepis modliteb zatim neprobehl, pouze jejich uprava, aby fungovali se zmenenym systemem magie.

Dalsi zasadni zmena je v oprave a optimalizaci me znamych memory leaku pri ziskavani poli objektu. Vsechny byli nahrazeny listama, ktery podlehaj garbage collectoru.
Od toho si slibuju vetsi stabilizaci serveru co se zalagovani po delsim case tyce. Mozna i clienta.
Copyright © 2003-2025, RT Manawydan.