-
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:
-
Spichy
-
Content count
333 -
Joined
-
Last visited
-
Days Won
10
Posts posted by Spichy
-
-
Vyřešeno, prosím zavřít
-
Zdravím, nevím jestli je toto fórum ještě aktivní, dlouho jsem tu nebyl, ale přesto se zeptám.
Tak trochu si hraji s klientem a dělám vlastní spell systém, ale mam problém s itemy.
Itemy i sockety jsem vytvořil vlastní v DBC, ale stále se mi nezobrazují správně v inventáři a sockety mi v itemech mizí úplně (co mají dělat dělají, ale vizualizace chybí)
zde je ukázka jak systém funguje a pro představu co myslím tou špatnou vizualizací.
Za každou radu děkuji.
(Patch mám vytvořený)
S pozdravem, Spichy.
-
Z počátku jsem to také neviděl, ale v updatu je mírné typo.
ALTER TABLE `reputation_reward_rate` ADD `quest_repeatable_rate` FLOAT NOT NULL DEFAULT '1' AFTER `quest_weekly_rate`;
- 1
-
Datový typ sloupce `deleteInfos_Account` nechce přijmout zadanou hodnotu - nekompatibilní tabulka `characters` s jádrem. Nějaký update jste vynechal, pokud ne, napište sem strukturu tabulky.
Edit: Error sice popisuje co jsem napsal výše, ale dotaz používá pro tento sloupec nulovou hodnotu. Zkuste sem spolu se strukturou vložit celý výpis logu.
Dotaz pasuje do této struktury:
DROP TABLE IF EXISTS `characters`;
CREATE TABLE `characters` (
`guid` int(11) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier',
`account` int(11) unsigned NOT NULL default '0' COMMENT 'Account Identifier',
`data` longtext,
`name` varchar(12) NOT NULL default '',
`race` tinyint(3) unsigned NOT NULL default '0',
`class` tinyint(3) unsigned NOT NULL default '0',
`gender` TINYINT UNSIGNED NOT NULL default '0',
`level` TINYINT UNSIGNED NOT NULL default '0',
`xp` INT UNSIGNED NOT NULL default '0',
`money` INT UNSIGNED NOT NULL default '0',
`playerBytes` INT UNSIGNED NOT NULL default '0',
`playerBytes2` INT UNSIGNED NOT NULL default '0',
`playerFlags` INT UNSIGNED NOT NULL default '0',
`position_x` float NOT NULL default '0',
`position_y` float NOT NULL default '0',
`position_z` float NOT NULL default '0',
`map` int(11) unsigned NOT NULL default '0' COMMENT 'Map Identifier',
`instance_id` int(11) unsigned NOT NULL default '0',
`dungeon_difficulty` tinyint(1) unsigned NOT NULL default '0',
`orientation` float NOT NULL default '0',
`taximask` longtext,
`online` tinyint(3) unsigned NOT NULL default '0',
`cinematic` tinyint(3) unsigned NOT NULL default '0',
`totaltime` int(11) unsigned NOT NULL default '0',
`leveltime` int(11) unsigned NOT NULL default '0',
`logout_time` bigint(20) unsigned NOT NULL default '0',
`is_logout_resting` tinyint(3) unsigned NOT NULL default '0',
`rest_bonus` float NOT NULL default '0',
`resettalents_cost` int(11) unsigned NOT NULL default '0',
`resettalents_time` bigint(20) unsigned NOT NULL default '0',
`trans_x` float NOT NULL default '0',
`trans_y` float NOT NULL default '0',
`trans_z` float NOT NULL default '0',
`trans_o` float NOT NULL default '0',
`transguid` bigint(20) unsigned NOT NULL default '0',
`extra_flags` int(11) unsigned NOT NULL default '0',
`stable_slots` tinyint(1) unsigned NOT NULL default '0',
`at_login` int(11) unsigned NOT NULL default '0',
`zone` int(11) unsigned NOT NULL default '0',
`death_expire_time` bigint(20) unsigned NOT NULL default '0',
`taxi_path` text,
`arenaPoints` int(10) unsigned NOT NULL default'0',
`totalHonorPoints` int(10) unsigned NOT NULL default'0',
`todayHonorPoints` int(10) unsigned NOT NULL default'0',
`yesterdayHonorPoints` int(10) unsigned NOT NULL default'0',
`totalKills` int(10) unsigned NOT NULL default'0',
`todayKills` smallint(5) unsigned NOT NULL default'0',
`yesterdayKills` smallint(5) unsigned NOT NULL default'0',
`chosenTitle` int(10) unsigned NOT NULL default'0',
`watchedFaction` int(10) unsigned NOT NULL default'0',
`drunk` smallint(5) unsigned NOT NULL default'0',
`health` int(10) unsigned NOT NULL default'0',
`powerMana` int(10) unsigned NOT NULL default'0',
`powerRage` int(10) unsigned NOT NULL default'0',
`powerFocus` int(10) unsigned NOT NULL default'0',
`powerEnergy` int(10) unsigned NOT NULL default'0',
`powerHappiness` int(10) unsigned NOT NULL default'0',
`deleteInfos_Account` int(11) UNSIGNED default NULL,
`deleteInfos_Name` varchar(12) default NULL,
`deleteDate` bigint(20) default NULL,
`latency` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`),
KEY `idx_account` (`account`),
KEY `idx_online` (`online`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
Prosím o kontrolu datových typů u sloupců této tabulky.
-
-
Musíte si nejprve vytvořit složku build, ze které použijete příkaz cmake. (mkdir build && cd build && cmake [parametry])
Neboli nelze kompilovat ze source složky, vždy se musí vytvořit složka rozdílná.
-
Poprosím o reup. obrázku nebo výpis z logu.
-
Poslal jsem vám PM.
-
Postupujte tak, jak jste postupoval, chybu nemáte v revizi nebo špatné kompilaci, chyba je pouze na straně databáze. Vše co potřebujete k plné funkčností je pouze nahrání zmiňovaných sql`s ze složky sql\updates. Složku sql jste určitě otvíral, jsou v ní také sql`s pro prázdné databáze realm a characters.
Edit: doporučuji projít link viz výše a dodělat body v postupu pro zprovoznění serveru, které jste doposud neudělal.
Snad jsem pomohl, přeji hezký večer.
-
Po kompilaci a nahrání databází musíte ještě nahrát *.sql soubory, které naleznete ve složce sql/updates. Nepasují Vám tabulky k jádru.
-
Celkem by se hodilo uploadnout log nebo vypsat dané chyby.
-
-
Proměnná "me" je chráněnou součástí třídy UnitAI a plní se v jejím konstruktoru. Tato proměnná je však v základu trinitycore, takže nevím, co by jste chtěl definovat. Možná jsem tak úplně nepochopil otázku. V této http://www.trinitycore.net/ dokumentaci můžete hledat veškeré funkce, proměnné, které trinitycore ubsahuje, možná díky ní najdete odpověď na svou otázku rychleji.
- 1
-
to je tak, když člověk píše rychleji než myslí.. samozřejmě jsem myslel int32
- 1
-
-
HP jsou v clientu udávány jako hodnota typu uint32. 2147483647 je nejvyšší možné číslo, které tento datový typ může pobrat. Nelze stanovit vyšší číslo, bez následných problémů.
-
tak to nech ve stringu, pomocí regexu uděláš kontrolu, zda se jedná o text nebo o číslo. Při textu vypíše chybovou hlášku a při čísle pokračování.. číslo ze stringu do intu převedeš pomocí atoi.
- 1
-
Jestli jsem to pochopil správně, tak se zkus podívat na regex: http://www.cplusplus.com/reference/regex/
- 1
-
Mohu se zeptat jaké parametry má ten 'výkonnější' server?
-
to máš v pohodě... já mam noťas: intel core i7-2670QM CPU @ 2.20 - 3.00 GHz, 6 GB ram, nvidia geforce GT540M CUDA 2gb a seká se mi i DotA 2
-
Aha, to je přesně to co jsem potřeboval vědět..
MTEX udává zero-terminated odkazy k *.BLP, MMDX udává zero-terminated odkazy k *.M2, které se v mapě nachází. MMID pak udává offset který referuje pro MDDF blok s doodads,.
Zkusím načíst blok do bufferu a s 0x00 explodovat data do vektoru, pak dám vědět. Zatím děkuji.
Edit:
char * ReadInFile(int pos, int len) { char * ret = new char[len]; _mInFile.seekg(pos); _mInFile.read(ret, len); _mInFile.seekg(mInFilePos); return ret; } ... struct MTEX { uint32 signature; int size; //char* fileList[1024]; std::vector<std::string> filenames; }; ... void AdtFile::LoadMTEX(int len) { mTexData.signature = 'XETM'; mTexData.size = len; char * buffer = ReadInFile(mHdrData.ofsMtex + 28, len); vector<string> vec; stringstream ss; for(int i = 0; i < len; i++) { if(buffer[i] != 0x00) ss << buffer[i]; else { vec.push_back(ss.str()); ss.str(""); ss.clear(); } } mTexData.filenames = vec; for(vector<string>::iterator iter = mTexData.filenames.begin(); iter != mTexData.filenames.end(); ++iter) printf("%s \n", *iter); }
Output:
Tileset\Wetlands\Wetlandsdirt01.blp Tileset\TirisFall\TirisFallDirtRock07.blp Tileset\TirisFall\TirisFallRockyMudGrass.blp Tileset\TirisFall\TirisFallRockyMudGrassHighlight.blp Tileset\TirisFall\TirisfallShore.blp Tileset\RedRidge\RedridgeRockRoadBase.blp Tileset\Elwynn\ElwynnDirtBase2.blp Tileset\TirisFall\TirisFallgrass01.blp Tileset\Duskwood\DuskwoodRockGravel.blp Tileset\Deadwind Pass\DeadwindPassRockBase.blp
Děkuji mockrát
- 2
-
Jde o to, že nevím jak deklarovat strukturu tak, aby to pobral read a načetl data do určené struktury správně. Když definuji délku charu pomocí konstruktoru char se nenaplní daty.. Možná jsem na to šel špatně.
-
Jde o soubory *.ADT, ze hry World of Warcraft (World/Maps/). Abych pravdu řekl, nenapadá mě způsob jakým využít nothrow, osobně si myslím, že je jednodušší načíst data rovnou jako char, jelikož data udávají cestu k texturám uložené v MPQ.(Tileset\Wetlands\Wetlandsdirt01.blp,...) Daná data ze souboru ukládám do několika struktur, abych je mohl později editovat a upravená data uložit do nového souboru.
-
vektor by byl dobrý, pokud by šlo o blok dat pro array, tady jsem potřeboval použít buffer pro text s neurčenou délkou.
EDIT:
Tak jsem to vyřešil. Přepsal jsem to do OOP, přidal templates pro zmenšení kódu.
Snippet:
template<typename T> T ReadInFile() { T ret; _mInFile.read((char*)&ret, sizeof(T)); mInFilePos = (int)_mInFile.tellg(); return ret; } template<typename T> void ReadInFile(T& var, int size = 0) { int s = size > 0 ? sizeof(var) : size; _mInFile.read((char*)&var, s); mInFilePos = (int)_mInFile.tellg(); } ... struct MTEX { uint32 signature; int size; char* fileList[1024]; }; ... mVerData = ReadInFile<MVER>(); mHdrData = ReadInFile<MHDR>(); int mTexDataSize = (int)ReadInFile<uint32>(mHdrData.ofsMtex + 24); //24 bytes = MVER(12) + MHDR hdr(4) + MHDR size(4) + MHDR flags(4) ReadInFile<MTEX>(mTexData, mTexDataSize); ...
Stále se zajímám, zda je možný jiný způsob, který by více šetřil paměť.
Díky, Spichy.
[C++] Problém s addy.
in Scripting
Posted · Report reply
Psal jsem to na rychlo, nevím jestli tam mam nějakou chybu, kdyžtak si to uprav