Zdravím vás,
tento topic jsem připravil pro nováčky, kteří by začali s vývojem pro Wow, ale nevědí jak.
Osvětlíme si nějaké to základní fungování a jak opravovat a upravovat questy, item, creatury ...
Jelikož jsem také nováček (vývoji se věnuji necelý rok) tak jsou mé znalosti omezené.
!!!!UPOZORNĚNÍ!!!!
Pouhé přečtení tohoto návodu vám nepostačí. Budete potřebovat spoustu času, abyste si tuto práci osvětlili.
Butede potřebovat alespoň nějakou znalost angličtiny.
1: Úvod
Databáze wow serveru v sobě uchovává veškeré informace o všech characterách, účtů, creaturách, itemech, questů a mnoha dalšího. Začněme tím, že si vytvoříme Wow Cataclysm server. Zkuste to podle mého návodu tady.
Až budete mít toto všechno budete se muset naučit jeden dotazovací programovací jazyk SQL.
Tento jazyk se používá pro komunikaci s databází. Využívá ho například PHP.
2: Základní informace
Až budete umět SQL vrhněte se na strukturu databáze.
Databázy SkyFire dělíme na 3: Auth, Characters a World
Databáze Auth:
Uchovává v sobě všechny informace o vašich účtech, informace o realmu, bannech a GM levelech.
Databáze Characters:
Uchovává v sobě všechny informace o postavách, guildách, kanálech, aukcí a dosažených achievementů.
Databáze World:
Má v sobě všechny questy, itemy, creatury, battlegroundy ...
Učit se budeme práci s itemy, questy a creaturami v databázy World.
Tady otestujete své schopnosti angličtiny na maximum.
Každá databáze má několik tabulek. každá tabulka různé informace, například creature_template má v sobě informace o statech creatůr (zvláštní slovo ), ale né o jejich "aktuálních životech a umístění". Každá tubulka má několik tzv colums (sloupců) a rows (řádků). My jako developeři upravujeme jenom řádky. sloupečky jsou už před definovány.
Ukážu to na příkladu:
id jmeno email
1 Tomas
[email protected]
2 Honza
[email protected]
veškeré emaily jsou smyšlené
Tady je ukázka tabulky.
Řádky jsou vyplněny hodnotami zadány námy a sloupce už neměníme.
V databázy wow serveru je to stejné, jen to má o mnoho víc sloupců.
Ve creature_template to může tabulka vypadat například:
entry jmeno zivoty mana idvzhledu
1 Illidan 1000000 34567000 1
2 Lich King 3451200 44444556 2
Ve skutečnosti je to mnohem složitější.
Strukturu World databáze najdete zde
Občas tam něco chybí a to můžete najít na Trinity Core wiki, databáze jsou podobné a někdy stejné. Tak se dejte do toho
3: Příklad opravy questu.
Velice často se stává, že nám nefunguje nějaký ten quest. Pokud se nejedná o nějaký složitý quest dá se spravit v databázy, ale občas to nejde a v tom okamžiku musíme použít C++.
Základní sloupce questů v tabulce quest_template jsou:
Seznam sloupců, pokusím se co nejrychleji dodat zbytek
A teď ten slibovaný příklad:
Typicky nefungující Cataclysm questy jsou ty kde máte trénovat své nově naučené schopnosti na levelu 3. Většinou to bývá tím, že je v poli ReqSpellCast špatně nastavený spell ID, takže když tuto chybu odhalíme tak najdeme id správného spellu a přepíšeme staré. Ovšem chyba může být také ve špatně nastaveném entry (to samé co id akorát používané pro NPC). To vše musíte zjistit sami. Dejme tomu, že máme nefunkční spell a našli jsme jeho správné id.
UPDATE `quest_template` SET `ReqSpellCast1` = 12345 WHERE `id` = 54321;
prosím berte navědomí, že tento script je smyšlený a neinstajulte ho do své databáze
A teď když je špatně vybraná creature
UPDATE `quest_template` SET `ReqCreatureorGO1` = 12345 WHERE `id` = 987654;
opět smyšlené hodnoty scriptu
Pomocí příkazu Update něco měníme, příkaz set nastavuje hodnotu a where nám určuje kde všude se to dá provést.
V náhledu je vidět jak vypadají řádky v tabulce.
Existuje tu spousta polí a když říkám, že spousta tak spousta
Další příklady přidám později.
Případné dotazi rád zodpovím. Možná se to pokusím jěště předělat tak, aby to bylo přehlednější a do budoucna se pokusím udělat návod na C++.
Jinak společně se svým týmem připravujeme Cata server a pokud vám to pude rádi vás přijmeme mezi své řady.