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:  

F0rM1s

Members
  • Content count

    60
  • Joined

  • Last visited

Posts posted by F0rM1s


  1. Tak to jsem netusil ze trinity funguje na stejnem principu jako mangos, jinak mi to pomohlo tak 50/50, prepsani zbrane funguje, ale nezmeni se mi jeji vzhled, ten zustane stejny a tenhle radek v navodu:

     

    nejak moc nechapu, jelikoz jestli tim World configem je myslen mangos.conf tak tam jsem nic takoveho nenasel...

    dit to display id taky prepis :D a nebudes mit v baglu otaznik ... :D

    a jinak trinity je akorat opachovany mangos ... takze neni co resit :D


  2. hele to request mele weapon to je stejne jako u trinity zakazaly delat nove weapony musis prepsat nejakou ktera uz je ve svete napriklad na 1 level a pak bude fungovat me tohle pomohlo staci nahradit jen vzhled a staty ale id musi byt uz pouzity

    PS : prominte za pismo :D pisu to rychlo


  3. muzete mi poradit co stim mam :(

    ../game/libgame.a(ScriptLoader.cpp.o): In function `AddCustomScripts()':

    ScriptLoader.cpp:(.text+0x45): undefined reference to `AddSC_guildmaster()'

    ../game/libgame.a(ScriptLoader.cpp.o): In function `AddScripts()':

    ScriptLoader.cpp:(.text+0x1167): undefined reference to `AddSC_guildmaster()'

    collect2: ld returned 1 exit status

    make[2]: *** [src/server/worldserver/worldserver] Error 1

    make[1]: *** [src/server/worldserver/CMakeFiles/worldserver.dir/all] Error 2

    make: *** [all] Error 2


  4. Dobry den našel by se tu nějaky hodny člověk na přeskriptování toho to scriptu ?

    je to gh system :)

     

    #include "ScriptedPch.h"
    
    //extern DatabaseMysql SD2Database;
    
    extern DatabaseType WorldDatabase;
    
    #define MSG_GOSSIP_TELE          "Teleport do vaseho Guild Housu"
    #define MSG_GOSSIP_BUY           "Koupit Guild House(1000 gold)"
    #define MSG_GOSSIP_SELL          "Prodat Guild House (500 gold)"
    #define MSG_GOSSIP_NEXTPAGE      "Dalsi Stranka -->"
    #define MSG_INCOMBAT             "¨Jsi v Combatu!"
    #define MSG_NOGUILDHOUSE         "Vase Guilda nema Guild House!"
    #define MSG_NOFREEGH             "Strpeni prosim, Vsechny guild housy jsou plne."
    #define MSG_ALREADYHAVEGH        "Prominte, Ale uz mate Guild House (%s)."
    #define MSG_NOTENOUGHMONEY       "Nemate Penize. Musite mit %u goldu ke koupeni Guild Housu."
    #define MSG_GHOCCUPIED           "Omlouvame se, ale tento Guild House se jiz pouziva."
    #define MSG_CONGRATULATIONS      "Gratulujeme! Koupili jste si Guild House!"
    #define MSG_SOLD                 "Prodal jste Guild House. Tady je %u goldu."
    #define MSG_NOTINGUILD           "Nejste v Guilde. Pripojte se nebo udelejte guildu."
    
    #define CODE_SELL                "Prodat"
    #define MSG_CODEBOX_SELL         "Vlozte \"" CODE_SELL "\" Pokud chcete opravdu Guild House prodat. Upozorneni ! : Dostanete jen 50 % hodnoty Gh !"
    
    #define OFFSET_GH_ID_TO_ACTION   1500
    #define OFFSET_SHOWBUY_FROM      10000
    
    #define ACTION_TELE              1001
    #define ACTION_SHOW_BUYLIST      1002  //deprecated. Use (OFFSET_SHOWBUY_FROM + 0) instead
    #define ACTION_SELL_GUILDHOUSE   1003
    
    #define ICON_GOSSIP_BALOON       0
    #define ICON_GOSSIP_WING         2
    #define ICON_GOSSIP_BOOK         3
    #define ICON_GOSSIP_WHEEL1       4
    #define ICON_GOSSIP_WHEEL2       5
    #define ICON_GOSSIP_GOLD         6
    #define ICON_GOSSIP_BALOONDOTS   7
    #define ICON_GOSSIP_TABARD       8
    #define ICON_GOSSIP_XSWORDS      9
    
    #define COST_GH_BUY              900000000  //1000 g.
    #define COST_GH_SELL             450000000   //500 g.
    
    #define GOSSIP_COUNT_MAX         10
    
    bool isPlayerGuildLeader(Player *player)
    {
    return (player->GetRank() == 0) && (player->GetGuildId() != 0);
    }
    
    bool getGuildHouseCoords(uint32 guildId, float &x, float &y, float &z, uint32 &map)
    {
    if (guildId == 0)
    {
    	//if player has no guild
    	return false;
    }
    
    QueryResult_AutoPtr result;
    result = WorldDatabase.PQuery("SELECT `x`, `y`, `z`, `map` FROM `guildhouses` WHERE `guildId` = %u", guildId);
    if(result)
    {
    	Field *fields = result->Fetch();
    	x = fields[0].GetFloat();
    	y = fields[1].GetFloat();
    	z = fields[2].GetFloat();
    	map = fields[3].GetUInt32();
    	return true;
    }
    return false;
    }
    
    void teleportPlayerToGuildHouse(Player *player, Creature *_creature)
    {
    if (player->GetGuildId() == 0)
    {
    	//if player has no guild
    	_creature->MonsterWhisper(MSG_NOTINGUILD, player->GetGUID());
    	return;
    }
    
    if (!player->getAttackers().empty())
    {
    	//if player in combat
    	_creature->MonsterSay(MSG_INCOMBAT, LANG_UNIVERSAL, player->GetGUID());
    	return;
    }
    
    float x, y, z;
    uint32 map;
    
    if (getGuildHouseCoords(player->GetGuildId(), x, y, z, map))
    {
    	//teleport player to the specified location
    	player->TeleportTo(map, x, y, z, 0.0f);
    }
    else
    	_creature->MonsterWhisper(MSG_NOGUILDHOUSE, player->GetGUID());
    
    }
    
    bool showBuyList(Player *player, Creature *_creature, uint32 showFromId = 0)
    {
    //show not occupied guildhouses
    
    QueryResult_AutoPtr result;
    result = WorldDatabase.PQuery("SELECT `id`, `comment` FROM `guildhouses` WHERE `guildId` = 0 AND `id` > %u ORDER BY `id` ASC LIMIT %u",
    	showFromId, GOSSIP_COUNT_MAX);
    
    if (result)
    {
    	uint32 guildhouseId = 0;
    	std::string comment = "";
    	do
    	{
    
    		Field *fields = result->Fetch();
    
    		guildhouseId = fields[0].GetInt32();
    		comment = fields[1].GetString();
    
    		//send comment as a gossip item
    		//transmit guildhouseId in Action variable
    		player->ADD_GOSSIP_ITEM(ICON_GOSSIP_TABARD, comment, GOSSIP_SENDER_MAIN,
    			guildhouseId + OFFSET_GH_ID_TO_ACTION);
    
    	} while (result->NextRow());
    
    	if (result->GetRowCount() == GOSSIP_COUNT_MAX)
    	{
    		//assume that we have additional page
    		//add link to next GOSSIP_COUNT_MAX items
    		player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOONDOTS, MSG_GOSSIP_NEXTPAGE, GOSSIP_SENDER_MAIN, 
    			guildhouseId + OFFSET_SHOWBUY_FROM);
    	}
    
    
    	player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
    
    	return true;
    } else
    {
    	if (showFromId = 0)
    	{
    		//all guildhouses are occupied
    		_creature->MonsterWhisper(MSG_NOFREEGH, player->GetGUID());
    		player->CLOSE_GOSSIP_MENU();
    	} else
    	{
    		//this condition occurs when COUNT(guildhouses) % GOSSIP_COUNT_MAX == 0
    		//just show GHs from beginning
    		showBuyList(player, _creature, 0);
    	}
    }
    
    return false;
    }
    
    bool isPlayerHasGuildhouse(Player *player, Creature *_creature, bool whisper = false)
    {
    
    QueryResult_AutoPtr result;
    
    result = WorldDatabase.PQuery("SELECT `comment` FROM `guildhouses` WHERE `guildId` = %u",
    	player->GetGuildId());
    
    if (result)
    {
    	if (whisper)
    	{
    		//whisper to player "already have etc..."
    		Field *fields = result->Fetch();
    		char msg[100];
    		sprintf(msg, MSG_ALREADYHAVEGH, fields[0].GetString());
    		_creature->MonsterWhisper(msg, player->GetGUID());
    	}
    
    	return true;
    }
    return false;
    
    }
    
    void buyGuildhouse(Player *player, Creature *_creature, uint32 guildhouseId)
    {
    if (player->GetMoney() < COST_GH_BUY)
    {
    	//show how much money player need to buy GH (in gold)
    	char msg[100];
    	sprintf(msg, MSG_NOTENOUGHMONEY, COST_GH_BUY / 10000);
    	_creature->MonsterWhisper(msg, player->GetGUID());
    	return;
    }
    
    if (isPlayerHasGuildhouse(player, _creature, true))
    {
    	//player already have GH
    	return;
    }
    
    QueryResult_AutoPtr result;
    
    //check if somebody already occupied this GH
    result = WorldDatabase.PQuery("SELECT `id` FROM `guildhouses` WHERE `id` = %u AND `guildId` <> 0",
    	guildhouseId);
    
    if (result)
    {
    	_creature->MonsterWhisper(MSG_GHOCCUPIED, player->GetGUID());
    	return;
    }
    
    //update DB
    result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = %u WHERE `id` = %u",
    	player->GetGuildId(), guildhouseId);
    
    if (result)
    
    player->ModifyMoney(-COST_GH_BUY);
    _creature->MonsterSay(MSG_CONGRATULATIONS, LANG_UNIVERSAL, player->GetGUID());
    
    }
    
    void sellGuildhouse(Player *player, Creature *_creature)
    {
    if (isPlayerHasGuildhouse(player, _creature))
    {
    	QueryResult_AutoPtr result;
    
    	result = WorldDatabase.PQuery("UPDATE `guildhouses` SET `guildId` = 0 WHERE `guildId` = %u",
    	player->GetGuildId());
    
    	if (result)
    
    	player->ModifyMoney(COST_GH_SELL);
    
    	//display message e.g. "here your money etc."
    	char msg[100];
    	sprintf(msg, MSG_SOLD, COST_GH_SELL / 10000);
    	_creature->MonsterWhisper(msg, player->GetGUID());
    }
    }
    
    bool GossipHello_guildmaster(Player *player, Creature *_creature)
    {
    player->ADD_GOSSIP_ITEM(ICON_GOSSIP_BALOON, MSG_GOSSIP_TELE, 
    	GOSSIP_SENDER_MAIN, ACTION_TELE);
    
    if (isPlayerGuildLeader(player))
    {
    	//show additional menu for guild leader
    	player->ADD_GOSSIP_ITEM(ICON_GOSSIP_GOLD, MSG_GOSSIP_BUY,
    		GOSSIP_SENDER_MAIN, ACTION_SHOW_BUYLIST);
    	if (isPlayerHasGuildhouse(player, _creature))
    	{
    		//and additional for guildhouse owner
    		player->PlayerTalkClass->GetGossipMenu().AddMenuItem(ICON_GOSSIP_GOLD, MSG_GOSSIP_SELL, GOSSIP_SENDER_MAIN, ACTION_SELL_GUILDHOUSE, MSG_CODEBOX_SELL, 0, true);
    	}
    }
    player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
    return true;
    }
    
    
    bool GossipSelect_guildmaster(Player *player, Creature *_creature, uint32 sender, uint32 action )
    {
    if (sender != GOSSIP_SENDER_MAIN)
    	return false;
    
    switch (action)
    {
    	case ACTION_TELE:
    		//teleport player to GH
    		player->CLOSE_GOSSIP_MENU();
    		teleportPlayerToGuildHouse(player, _creature);
    		break;
    	case ACTION_SHOW_BUYLIST:
    		//show list of GHs which currently not occupied
    		showBuyList(player, _creature);
    		break;
    	default:
    		if (action > OFFSET_SHOWBUY_FROM)
    		{
    			showBuyList(player, _creature, action - OFFSET_SHOWBUY_FROM);
    		} else if (action > OFFSET_GH_ID_TO_ACTION)
    		{
    			//player clicked on buy list
    			player->CLOSE_GOSSIP_MENU();
    			//get guildhouseId from action
    			//guildhouseId = action - OFFSET_GH_ID_TO_ACTION
    			buyGuildhouse(player, _creature, action - OFFSET_GH_ID_TO_ACTION);
    		}
    		break;
    }
    
    return true;
    }
    
    bool GossipSelectWithCode_guildmaster( Player *player, Creature *_creature,
    								  uint32 sender, uint32 action, const char* sCode )
    {
       if(sender == GOSSIP_SENDER_MAIN)
       {
           if(action == ACTION_SELL_GUILDHOUSE)
           {
    		int i = -1;
    		try
    		{
    			//compare code
    			if (strlen(sCode) + 1 == sizeof CODE_SELL)
    				i = strcmp(CODE_SELL, sCode);
    
    		} catch(char *str) {error_db_log(str);}
    
    		if (i == 0)
    		{
    			//right code
    			sellGuildhouse(player, _creature);
    		}
    		player->CLOSE_GOSSIP_MENU();
    		return true;
    	}
    }
    return false;
    }
    
    
    void AddSC_guildmaster()
    {
    Script *newscript;
    newscript = new Script;
    newscript->Name = "guildmaster";
    newscript->pGossipHello = &GossipHello_guildmaster;
    newscript->pGossipSelect = &GossipSelect_guildmaster;
    newscript->pGossipSelectWithCode =  &GossipSelectWithCode_guildmaster;
    newscript->RegisterSelf();
    }

     


  5. Dobrý den

     

    Chtěl bych se zeptat jestli nevíte proč mi nefunguji zbrane které si sám udělam :(

     

    Dělám na " wow-v.com "

    (už je to tam i na Trinity, dříve jsem dělal na MaNGOS)

    Ale stále to nejde <_<

     

    Hoši prd trinity core zakazalo delani svojich vlastnich zbrani takze ti to nepude udelat jako novou ja osobne sem to resil tak ze sem si vzal uz nejakou existujici zbran a prepsal sem ji na tu jakou sem chtel a pak to funguje uplne v poho :) takze distak kdyz budes chtit chowky pomoct tak zaskoc na stranky darkdreamu a tam mas myslim muj skype tak distak napis :) anebo mam skype na svym profilu :)


  6. Když chcete importovat teleportera do DB a hodí vám to chybu a script vipada takhle -

     

    DELETE FROM `creature_template` WHERE `entry` = 500102;

    INSERT INTO `creature_template` (`entry`, `modelid_A`, `modelid_A2`, `modelid_H`, `modelid_H2`, `name`, `subname`, `IconName`, `minlevel`, `maxlevel`, `minhealth`, `maxhealth`, `minmana`, `maxmana`, `armor`, `faction_A`, `faction_H`, `npcflag`, `speed`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `baseattacktime`, `rangeattacktime`, `flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `class`, `race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `flag1`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `RacialLeader`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`) VALUES (500102, 146, 0, 146, 0, 'Taxi', 'Server Teleporter', "", 255, 255, 8000000, 8000000, 0, 0, 1000000, 35, 35, 2, 2, 1, 3, 10000, 10000, 0, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10000, 10000, 3000, 6, 0, 0, 0, 0, 10000, 10000, 10000, 10000, 10000, 10000, 0, 0, 0, 0, 0, 0, '', 0, 3, 0, 1, 0, 0, 0, '');

     

     

     

    Tak ho zmněnte na tenhle script-

     

     

    DELETE FROM `creature_template` WHERE `entry` = 500102;

    INSERT INTO `creature_template` (`entry`, `heroic_entry`,`modelid_A`, `modelid_A2`, `modelid_H`, `modelid_H2`, `name`, `subname`, `IconName`, `minlevel`, `maxlevel`, `minhealth`, `maxhealth`, `minmana`, `maxmana`, `armor`, `faction_A`, `faction_H`, `npcflag`, `speed`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `baseattacktime`, `rangeattacktime`, `unit_flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `class`, `race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `RacialLeader`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`) VALUES (500102, 0, 146, 0, 146, 0, 'Taxi', 'Server Teleporter', "", 255, 255, 8000000, 8000000, 0, 0, 1000000, 35, 35, 2, 2, 1, 3, 10000, 10000, 0, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10000, 10000, 3000, 6, 0, 0, 0, 0, 10000, 10000, 10000, 10000, 10000, 10000, 0, 0, 0, 0, 0, 0, '', 0, 3, 0, 1, 0, 0, 0, '');

     

     

     

    Vpodstatě je chyba v-

    - Flags > unit_flags

    - Flags1 > type_flags

     

    dík

    Ty kravo joke stoleti ! XD ja tu umru XD


  7. Dobrý den Server Alkazan Fun (s novým vedením) hledá :

     

    1x C++ developéra a 1x Sql Developera

     

    1)C++ Developeři Požadavky :

    -Plně ovládat C++

    -Umět příkazy Tcoru

    -Být inteligentní

    -Věk 15+

    -Mít funkční mikrak a skype na poradu Gm

    -Znalost jádra TrinityCore

    -Mít skušeností z jiných serverů

     

    2)SQL Developeři Požadavky :

    -Musí umět EventAI

    -Umět Sql Příkazy (např.: Nové itemy , Opravit některé questy atd ...)

    -Být inteligentní

    -Věk 15+

    -Mít funkční mikrak a skype na poradu Gm

    -Znalost databaze emulatoru TrinityCore

    -Mít skušeností z jiných serverů

     

    Nabízím:

    -3 Gm level pro obě místa

    -level 80 pro 2 kamoše + t7

     

    Zájemci pište na:

    Skype : formis4

    Nebo sem do topicku

     

     

    Děkujeme všem kteří se zůčastní

     

    S pozdravem Bobromylus.


  8. Zdravím nevíte kde se dá opravit rychlost hráče? Mám buglý druidy jsou o něco rychlejší než ostatní. Díky za radu.

     

    V configu jsem zkoušel nastavit jinou rychlost, ale změní to i druidum a jsou ještě rychlejší.

    hele a jeste by me zajimalo co dela tenhle topic v tomhle oddeleni :P


  9. Zdravím nevíte kde se dá opravit rychlost hráče? Mám buglý druidy jsou o něco rychlejší než ostatní. Díky za radu.

     

    V configu jsem zkoušel nastavit jinou rychlost, ale změní to i druidum a jsou ještě rychlejší.

    hele a mas zaply aby meli hned vsechny spelly ja sem to mel taky na serveru vypnul sem aby meli po zacatku vsechny spelly a uz byly v normalu :)

    • Upvote 2

  10. Pokud by jsi neměl živnostenský list, či firmu dopouštíš se porušování zákona a až na tebe příjde finančák, tak budeš platit jako mourovatý....

    tak diky za oznameni :P


  11. Najdi si table battleground_template tam si najdi (podle levlu řekl bych že jsou od 71-80) ty dvě BG a dej buďto start level 81 nebo min.player třeba 400. Píšu to z hlavy tak jsou možná trošku jiný názvy :)

    dobry ja uz sem nasel vona je vzadu tabulka disabled XD


  12. ahoj wowresource poitrebuju poradit jak udelam ze se budou npc respawnovat treba za 5 s po killu estli to nekdo vi tak at mi poradi skousel sem najit v creature template nejaky respawn ale tam nic neni :( tak jesli mi nekdo poradi budu moc !! rad :( uz si fakt nevim rady :(


  13. nedoporučuji, je tam spousta chyb v kompilaci a nejsou celé tabulky

    ja vim ale skousel sem to a docela to slape samozdrejme neni to nic nejlepsiho ale myslim si ze nekterym invidium to tu staci :) (napr: pajzl XD)

    hele ale nahodou se tam da sosnout docela hodne uzitecnejch veci treba ten ICC slape uplne v poho :)

    nebo treba ten web

×