+ Reply to Thread
Results 1 to 3 of 3

Thread: MMORPG s použitím jazyka PHP a SQL

  1. #1

    MMORPG s použitím jazyka PHP a SQL

    Na začiatok by som chcel podotknúť že ide o veľmy jednoduchú formu MMORPG(Masive Multiplayer Online Roll Play Game), čiže nečakajte niečo ako O-game či The West či azda Bitefight. Jedná sa o MMORPG ktorá je založená na princípe klikačky. Čiže menej populárna forma.
    Možno že nebudem schopný nahádzať všetky scripty naraz ale určite do týždna budú v tomto topicu.
    Môžeme začať. Ako vždy si najskôr vytvoríme databázu.To malé dk_ pre každou tabuľkov je prefix ktorý si môžete zmeniť.

    Code:
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_babble`
    -- 
    
    CREATE TABLE `dk_babble` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `posttime` time NOT NULL default '00:00:00',
      `author` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `babble` varchar(120) collate latin2_czech_cs NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=13 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_babble`
    -- 
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_control`
    -- 
    
    CREATE TABLE `dk_control` (
      `id` tinyint(3) unsigned NOT NULL auto_increment,
      `gamename` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `gamesize` smallint(5) unsigned NOT NULL default '0',
      `gameopen` tinyint(3) unsigned NOT NULL default '0',
      `gameurl` varchar(200) collate latin2_czech_cs NOT NULL default '',
      `adminemail` varchar(100) collate latin2_czech_cs NOT NULL default '',
      `forumtype` tinyint(3) unsigned NOT NULL default '0',
      `forumaddress` varchar(200) collate latin2_czech_cs NOT NULL default '',
      `class1name` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `class2name` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `class3name` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `diff1name` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `diff1mod` float unsigned NOT NULL default '0',
      `diff2name` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `diff2mod` float unsigned NOT NULL default '0',
      `diff3name` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `diff3mod` float unsigned NOT NULL default '0',
      `compression` tinyint(3) unsigned NOT NULL default '0',
      `verifyemail` tinyint(3) unsigned NOT NULL default '0',
      `shownews` tinyint(3) unsigned NOT NULL default '0',
      `showbabble` tinyint(3) unsigned NOT NULL default '0',
      `showonline` tinyint(3) unsigned NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=2 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_control`
    -- 
    
    INSERT INTO `dk_control` (`id`, `gamename`, `gamesize`, `gameopen`, `gameurl`, `adminemail`, `forumtype`, `forumaddress`, `class1name`, `class2name`, `class3name`, `diff1name`, `diff1mod`, `diff2name`, `diff2mod`, `diff3name`, `diff3mod`, `compression`, `verifyemail`, `shownews`, `showbabble`, `showonline`) VALUES 
    (1, 'MMORPG', 250, 1, 'www.url.sk', 'werewolf@abc.sk', 1, '', 'Mage', 'Warrior', 'Paladin', 'Easy', 1, 'Medium', 1.2, 'Hard', 1.5, 1, 1, 1, 1, 1);
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_drops`
    -- 
    
    CREATE TABLE `dk_drops` (
      `id` mediumint(8) unsigned NOT NULL auto_increment,
      `name` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `mlevel` smallint(5) unsigned NOT NULL default '0',
      `type` smallint(5) unsigned NOT NULL default '0',
      `attribute1` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `attribute2` varchar(30) collate latin2_czech_cs NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=33 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_drops`
    -- 
    
    INSERT INTO `dk_drops` (`id`, `name`, `mlevel`, `type`, `attribute1`, `attribute2`) VALUES 
    (1, 'Kryštáľ života #1', 1, 1, 'maxhp,10', 'X'),
    (2, 'Kryštáľ života #2', 10, 1, 'maxhp,25', 'X'),
    (3, 'Kryštáľ života #3', 25, 1, 'maxhp,50', 'X'),
    (4, 'Magický kryštáľ #1', 1, 1, 'maxmp,10', 'X'),
    (5, 'Magický kryštáľ #2', 10, 1, 'maxmp,25', 'X'),
    (6, 'Magický kryštáľ #3', 25, 1, 'maxmp,50', 'X'),
    (7, 'Dračie oko', 10, 1, 'defensepower,25', 'X'),
    (8, 'Dračía šupina', 30, 1, 'defensepower,50', 'X'),
    (9, 'Dračí pazúr', 10, 1, 'attackpower,25', 'X'),
    (10, 'Dračí zub', 30, 1, 'attackpower,50', 'X'),
    (11, 'Dračia slza', 35, 1, 'strength,50', 'X'),
    (12, 'Dračie srdce', 35, 1, 'dexterity,50', 'X'),
    (13, 'Krv Skuruthaja', 35, 1, 'maxhp,-50', 'strength,50'),
    (14, 'Rasertonov prst', 35, 1, 'maxmp,-55', 'strength,60'),
    (15, 'Piesok s Exolry ', 45, 1, 'maxhp,-100', 'strength,100'),
    (16, 'Sceriov zub', 45, 1, 'maxmp,-100', 'strength,110'),
    (17, 'Aggeritovo pero', 25, 1, 'maxhp,25', 'strength,25'),
    (18, 'Glusove vlasy', 30, 1, 'maxhp,50', 'strength,50'),
    (19, 'Handshiftovo kladivo', 35, 1, 'maxhp,75', 'strength,75'),
    (20, 'Smithershildova duša', 40, 1, 'maxhp,100', 'strength,100'),
    (21, 'Kôra večného stromu', 25, 1, 'maxmp,25', 'dexterity,25'),
    (22, 'Mana s krajny Emines', 30, 1, 'maxmp,50', 'dexterity,50'),
    (23, 'Bloodscreamova šupina', 35, 1, 'maxmp,75', 'dexterity,75'),
    (24, 'Libellin prsteň', 40, 1, 'maxmp,100', 'dexterity,100'),
    (25, 'Rubýn', 50, 1, 'maxhp,150', 'X'),
    (26, 'Perla', 50, 1, 'maxmp,150', 'X'),
    (27, 'Emarald', 50, 1, 'strength,150', 'X'),
    (28, 'Topaz', 50, 1, 'dexterity,150', 'X'),
    (29, 'Obsidian', 50, 1, 'attackpower,150', 'X'),
    (30, 'Diamand', 50, 1, 'defensepower,150', 'X'),
    (31, 'Drahokam zručnosti', 5, 1, 'expbonus,10', 'X'),
    (32, 'Dwarfov amulet', 5, 1, 'goldbonus,10', 'X');
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_forum`
    -- 
    
    CREATE TABLE `dk_forum` (
      `id` int(11) NOT NULL auto_increment,
      `postdate` datetime NOT NULL default '0000-00-00 00:00:00',
      `newpostdate` datetime NOT NULL default '0000-00-00 00:00:00',
      `author` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `parent` int(11) NOT NULL default '0',
      `replies` int(11) NOT NULL default '0',
      `title` varchar(100) collate latin2_czech_cs NOT NULL default '',
      `content` text collate latin2_czech_cs NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=5 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_forum`
    -- 
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_items`
    -- 
    
    CREATE TABLE `dk_items` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `type` tinyint(3) unsigned NOT NULL default '0',
      `name` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `buycost` smallint(5) unsigned NOT NULL default '0',
      `attribute` smallint(5) unsigned NOT NULL default '0',
      `special` varchar(50) collate latin2_czech_cs NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=34 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_items`
    -- 
    
    INSERT INTO `dk_items` (`id`, `type`, `name`, `buycost`, `attribute`, `special`) VALUES 
    (1, 1, 'Palica', 10, 2, 'X'),
    (2, 1, 'Kyjak', 30, 4, 'X'),
    (3, 1, 'Sekerka', 40, 5, 'X'),
    (4, 1, 'Krátky meč', 90, 8, 'X'),
    (5, 1, 'Sekera', 150, 12, 'X'),
    (6, 1, 'Vojnová sekera', 200, 16, 'X'),
    (7, 1, 'Oštep', 300, 25, 'X'),
    (8, 1, 'Halapartňa', 500, 35, 'X'),
    (9, 1, 'Meč', 800, 45, 'X'),
    (10, 1, 'Obojstranná sekera', 1200, 50, 'X'),
    (11, 1, 'Šabľa', 2000, 60, 'X'),
    (12, 1, 'Sekera temnoty', 3000, 100, 'expbonus,-5'),
    (13, 1, 'Meč temnoty', 4500, 125, 'expbonus,-10'),
    (14, 1, 'Meč svetla', 6000, 100, 'expbonus,10'),
    (15, 1, 'Dračí meč', 10000, 150, 'maxmp,50'),
    (16, 1, 'Meč osudu', 50000, 250, 'strength,50'),
    (17, 2, 'Tričko', 25, 2, 'goldbonus,10'),
    (18, 2, 'Košela', 50, 5, 'X'),
    (19, 2, 'Koženné brnenie', 75, 10, 'X'),
    (20, 2, 'Stvrdené koženné brnenie', 150, 25, 'X'),
    (21, 2, 'Železná košela', 300, 30, 'X'),
    (22, 2, 'Bronzové brnenie', 900, 50, 'X'),
    (23, 2, 'Ocelové brnenie', 2000, 100, 'X'),
    (24, 2, 'Dračie brnenie', 4000, 125, 'maxmp,50'),
    (25, 2, 'Brnenie temnoty', 5000, 150, 'expbonus,-10'),
    (26, 2, 'Brnenie svetla', 10000, 175, 'expbonus,10'),
    (27, 2, 'Brnenie osudu', 50000, 200, 'dexterity,50'),
    (28, 3, 'Drevenná doska', 50, 2, 'X'),
    (29, 3, 'Malý štít', 100, 4, 'X'),
    (30, 3, 'Stit', 500, 10, 'X'),
    (31, 3, 'Siroký štít', 2500, 30, 'X'),
    (32, 3, 'Dračí štít', 10000, 60, 'X'),
    (33, 3, 'Stit osudu', 25000, 100, 'maxhp,50');
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_levels`
    -- 
    
    CREATE TABLE `dk_levels` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `1_exp` mediumint(8) unsigned NOT NULL default '0',
      `1_hp` smallint(5) unsigned NOT NULL default '0',
      `1_mp` smallint(5) unsigned NOT NULL default '0',
      `1_tp` smallint(5) unsigned NOT NULL default '0',
      `1_strength` smallint(5) unsigned NOT NULL default '0',
      `1_dexterity` smallint(5) unsigned NOT NULL default '0',
      `1_spells` tinyint(3) unsigned NOT NULL default '0',
      `2_exp` mediumint(8) unsigned NOT NULL default '0',
      `2_hp` smallint(5) unsigned NOT NULL default '0',
      `2_mp` smallint(5) unsigned NOT NULL default '0',
      `2_tp` smallint(5) unsigned NOT NULL default '0',
      `2_strength` smallint(5) unsigned NOT NULL default '0',
      `2_dexterity` smallint(5) unsigned NOT NULL default '0',
      `2_spells` tinyint(3) unsigned NOT NULL default '0',
      `3_exp` mediumint(8) unsigned NOT NULL default '0',
      `3_hp` smallint(5) unsigned NOT NULL default '0',
      `3_mp` smallint(5) unsigned NOT NULL default '0',
      `3_tp` smallint(5) unsigned NOT NULL default '0',
      `3_strength` smallint(5) unsigned NOT NULL default '0',
      `3_dexterity` smallint(5) unsigned NOT NULL default '0',
      `3_spells` tinyint(3) unsigned NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=101 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_levels`
    -- 
    
    INSERT INTO `dk_levels` (`id`, `1_exp`, `1_hp`, `1_mp`, `1_tp`, `1_strength`, `1_dexterity`, `1_spells`, `2_exp`, `2_hp`, `2_mp`, `2_tp`, `2_strength`, `2_dexterity`, `2_spells`, `3_exp`, `3_hp`, `3_mp`, `3_tp`, `3_strength`, `3_dexterity`, `3_spells`) VALUES 
    (1, 0, 15, 0, 5, 5, 5, 0, 0, 15, 0, 5, 5, 5, 0, 0, 15, 0, 5, 5, 5, 0),
    (2, 15, 2, 5, 1, 0, 1, 1, 18, 2, 4, 1, 2, 1, 1, 20, 2, 5, 1, 0, 2, 1),
    (3, 45, 3, 4, 2, 1, 2, 0, 54, 2, 3, 2, 3, 2, 0, 60, 2, 3, 2, 1, 3, 0),
    (4, 105, 3, 3, 2, 1, 2, 6, 126, 2, 3, 2, 3, 2, 0, 140, 2, 4, 2, 1, 3, 0),
    (5, 195, 2, 5, 2, 0, 1, 0, 234, 2, 4, 2, 2, 1, 6, 260, 2, 4, 2, 0, 2, 6),
    (6, 330, 4, 5, 2, 2, 3, 0, 396, 3, 4, 2, 4, 3, 0, 440, 3, 5, 2, 2, 4, 0),
    (7, 532, 3, 4, 2, 1, 2, 11, 639, 2, 3, 2, 3, 2, 0, 710, 2, 3, 2, 1, 3, 0),
    (8, 835, 2, 4, 2, 0, 1, 0, 1003, 2, 3, 2, 2, 1, 11, 1115, 2, 4, 2, 0, 2, 11),
    (9, 1290, 5, 3, 2, 3, 4, 2, 1549, 4, 2, 2, 5, 4, 0, 1722, 4, 2, 2, 3, 5, 0),
    (10, 1973, 10, 3, 2, 4, 3, 0, 2369, 10, 2, 2, 6, 3, 0, 2633, 10, 3, 2, 4, 4, 0),
    (11, 2997, 5, 2, 2, 3, 4, 0, 3598, 4, 1, 2, 5, 4, 2, 3999, 4, 1, 2, 3, 5, 2),
    (12, 4533, 4, 2, 2, 2, 3, 7, 5441, 4, 1, 2, 4, 3, 0, 6047, 4, 2, 2, 2, 4, 0),
    (13, 6453, 4, 3, 2, 2, 3, 0, 7745, 4, 2, 2, 4, 3, 0, 8607, 4, 2, 2, 2, 4, 0),
    (14, 8853, 5, 4, 2, 3, 4, 17, 10625, 4, 3, 2, 5, 4, 7, 11807, 4, 4, 2, 3, 5, 7),
    (15, 11853, 5, 5, 2, 3, 4, 0, 14225, 4, 4, 2, 5, 4, 0, 15808, 4, 4, 2, 3, 5, 0),
    (16, 15603, 5, 3, 2, 3, 4, 0, 18725, 5, 2, 2, 5, 4, 0, 20807, 5, 3, 2, 3, 5, 0),
    (17, 20290, 4, 2, 2, 2, 3, 12, 24350, 4, 1, 2, 4, 3, 0, 27057, 4, 1, 2, 2, 4, 0),
    (18, 25563, 4, 2, 2, 2, 3, 0, 30678, 3, 1, 2, 4, 3, 14, 34869, 3, 2, 2, 2, 4, 17),
    (19, 31495, 4, 5, 2, 2, 3, 0, 37797, 3, 4, 2, 4, 3, 0, 43657, 3, 4, 2, 2, 4, 0),
    (20, 38169, 10, 6, 2, 3, 3, 0, 45805, 10, 5, 2, 5, 3, 0, 53543, 10, 6, 2, 3, 4, 0),
    (21, 45676, 4, 4, 2, 2, 3, 0, 54814, 4, 3, 2, 4, 3, 0, 64664, 4, 3, 2, 2, 4, 0),
    (22, 54121, 5, 5, 2, 3, 4, 0, 64949, 4, 4, 2, 5, 4, 12, 77175, 4, 5, 2, 3, 5, 12),
    (23, 63622, 5, 3, 2, 3, 4, 0, 76350, 4, 2, 2, 5, 4, 0, 91250, 4, 2, 2, 3, 5, 0),
    (24, 74310, 5, 5, 2, 3, 4, 0, 89176, 4, 4, 2, 5, 4, 0, 107083, 4, 5, 2, 3, 5, 0),
    (25, 86334, 4, 4, 2, 2, 3, 3, 103605, 3, 3, 2, 4, 3, 17, 124895, 3, 3, 2, 2, 4, 14),
    (26, 99861, 6, 3, 2, 4, 5, 0, 119837, 5, 2, 2, 6, 5, 0, 144933, 5, 3, 2, 4, 6, 0),
    (27, 115078, 6, 2, 2, 4, 5, 0, 138098, 5, 1, 2, 6, 5, 0, 167475, 5, 1, 2, 4, 6, 0),
    (28, 132197, 4, 2, 2, 2, 3, 0, 158641, 4, 1, 2, 4, 3, 0, 192835, 4, 2, 2, 2, 4, 0),
    (29, 151456, 6, 3, 2, 4, 5, 0, 181751, 5, 2, 2, 6, 5, 3, 221365, 5, 2, 2, 4, 6, 3),
    (30, 173121, 10, 4, 3, 4, 4, 0, 207749, 10, 3, 3, 6, 4, 0, 253461, 10, 4, 3, 4, 5, 0),
    (31, 197494, 5, 5, 3, 3, 4, 8, 236996, 4, 3, 3, 5, 4, 0, 289568, 4, 3, 3, 3, 5, 0),
    (32, 224913, 6, 4, 3, 4, 5, 0, 269898, 5, 3, 3, 6, 5, 0, 330188, 5, 4, 3, 4, 6, 0),
    (33, 255758, 5, 4, 3, 3, 4, 0, 306912, 5, 3, 3, 5, 4, 0, 375885, 5, 3, 3, 3, 5, 0),
    (34, 290458, 6, 4, 3, 4, 5, 0, 348552, 5, 3, 3, 6, 5, 8, 427294, 5, 4, 3, 4, 6, 8),
    (35, 329495, 5, 3, 3, 3, 4, 0, 395397, 4, 2, 3, 5, 4, 0, 485126, 4, 2, 3, 3, 5, 0),
    (36, 373412, 4, 3, 3, 2, 3, 18, 448097, 5, 2, 3, 4, 3, 0, 550188, 5, 3, 3, 2, 4, 0),
    (37, 422818, 5, 4, 3, 3, 4, 0, 507384, 5, 3, 3, 5, 4, 0, 623383, 5, 3, 3, 3, 5, 0),
    (38, 478399, 6, 5, 3, 4, 5, 0, 574081, 5, 4, 3, 6, 5, 15, 705726, 5, 5, 3, 4, 6, 18),
    (39, 540927, 6, 4, 3, 4, 5, 0, 649115, 5, 3, 3, 6, 5, 0, 798362, 5, 3, 3, 4, 6, 0),
    (40, 611271, 15, 3, 3, 5, 5, 13, 733528, 15, 2, 3, 7, 5, 0, 902577, 15, 3, 3, 5, 6, 0),
    (41, 690408, 7, 3, 3, 5, 2, 0, 828492, 6, 2, 3, 7, 2, 0, 1019818, 6, 2, 3, 5, 3, 0),
    (42, 779437, 7, 4, 3, 5, 6, 0, 935326, 6, 3, 3, 7, 6, 0, 1151714, 6, 4, 3, 5, 7, 0),
    (43, 879592, 8, 5, 3, 6, 7, 0, 1055514, 7, 4, 3, 8, 7, 0, 1300096, 7, 4, 3, 6, 8, 0),
    (44, 992268, 6, 3, 3, 4, 5, 0, 1190725, 5, 2, 3, 6, 5, 0, 1448478, 5, 3, 3, 4, 6, 0),
    (45, 1119028, 5, 8, 3, 3, 4, 4, 1325936, 5, 8, 3, 5, 4, 18, 1596860, 5, 8, 3, 3, 5, 4),
    (46, 1245788, 6, 5, 3, 4, 5, 0, 1461147, 5, 4, 3, 6, 5, 0, 1745242, 5, 5, 3, 4, 6, 0),
    (47, 1372548, 7, 4, 3, 5, 6, 0, 1596358, 6, 3, 3, 7, 6, 0, 1893624, 6, 3, 3, 5, 7, 0),
    (48, 1499308, 6, 4, 3, 4, 5, 0, 1731569, 5, 3, 3, 6, 5, 0, 2042006, 5, 4, 3, 4, 6, 0),
    (49, 1626068, 5, 3, 3, 3, 4, 0, 1866780, 4, 2, 3, 5, 4, 0, 2190388, 4, 2, 3, 3, 5, 0),
    (50, 1752828, 15, 3, 3, 5, 5, 0, 2001991, 15, 2, 3, 7, 5, 0, 2338770, 15, 3, 3, 5, 6, 0),
    (51, 1879588, 6, 2, 3, 4, 5, 9, 2137202, 5, 1, 3, 6, 5, 13, 2487152, 5, 1, 3, 4, 6, 13),
    (52, 2006348, 7, 2, 3, 5, 6, 0, 2272413, 6, 1, 3, 7, 6, 0, 2635534, 6, 2, 3, 5, 7, 0),
    (53, 2133108, 8, 2, 3, 6, 7, 0, 2407624, 7, 1, 3, 8, 7, 0, 2783916, 7, 1, 3, 6, 8, 0),
    (54, 2259868, 8, 4, 3, 6, 7, 0, 2542835, 7, 3, 3, 8, 7, 0, 2932298, 7, 4, 3, 6, 8, 0),
    (55, 2386628, 7, 4, 3, 5, 6, 0, 2678046, 6, 3, 3, 7, 6, 0, 3080680, 6, 3, 3, 5, 7, 0),
    (56, 2513388, 7, 4, 3, 5, 6, 0, 2813257, 6, 3, 3, 7, 6, 0, 3229062, 6, 4, 3, 5, 7, 9),
    (57, 2640148, 6, 5, 3, 4, 5, 0, 2948468, 6, 4, 3, 6, 5, 0, 3377444, 6, 4, 3, 4, 6, 0),
    (58, 2766908, 5, 5, 3, 3, 4, 0, 3083679, 5, 4, 3, 5, 4, 19, 3525826, 5, 5, 3, 3, 5, 0),
    (59, 2893668, 8, 3, 3, 6, 7, 0, 3218890, 7, 2, 3, 8, 7, 0, 3674208, 7, 2, 3, 6, 8, 0),
    (60, 3020428, 15, 4, 4, 6, 6, 19, 3354101, 15, 3, 4, 8, 6, 0, 3822590, 15, 4, 4, 6, 7, 15),
    (61, 3147188, 8, 5, 4, 6, 7, 0, 3489312, 7, 4, 4, 8, 7, 0, 3970972, 7, 4, 4, 6, 8, 0),
    (62, 3273948, 8, 4, 4, 6, 7, 0, 3624523, 7, 3, 4, 8, 7, 0, 4119354, 7, 4, 4, 6, 8, 0),
    (63, 3400708, 9, 5, 4, 7, 8, 0, 3759734, 8, 4, 4, 9, 8, 0, 4267736, 8, 4, 4, 7, 9, 0),
    (64, 3527468, 5, 5, 4, 3, 4, 0, 3894945, 5, 4, 4, 5, 4, 0, 4416118, 5, 5, 4, 3, 5, 0),
    (65, 3654228, 6, 4, 4, 4, 5, 0, 4030156, 6, 3, 4, 6, 5, 0, 4564500, 6, 3, 4, 4, 6, 0),
    (66, 3780988, 8, 4, 4, 6, 7, 0, 4165367, 8, 3, 4, 8, 7, 0, 4712882, 8, 4, 4, 6, 8, 0),
    (67, 3907748, 7, 3, 4, 5, 6, 0, 4300578, 7, 2, 4, 7, 6, 0, 4861264, 7, 2, 4, 5, 7, 0),
    (68, 4034508, 9, 3, 4, 7, 8, 0, 4435789, 8, 2, 4, 9, 8, 0, 5009646, 8, 3, 4, 7, 9, 0),
    (69, 4161268, 5, 4, 4, 3, 4, 0, 4571000, 5, 3, 4, 5, 4, 0, 5158028, 5, 3, 4, 3, 5, 0),
    (70, 4288028, 20, 4, 4, 6, 6, 5, 4706211, 20, 3, 4, 8, 6, 16, 5306410, 20, 4, 4, 6, 7, 0),
    (71, 4414788, 5, 5, 4, 3, 4, 0, 4841422, 5, 4, 4, 5, 4, 0, 5454792, 5, 4, 4, 3, 5, 0),
    (72, 4541548, 6, 2, 4, 4, 5, 0, 4976633, 5, 1, 4, 6, 5, 0, 5603174, 5, 2, 4, 4, 6, 0),
    (73, 4668308, 8, 4, 4, 6, 7, 0, 5111844, 8, 3, 4, 8, 7, 0, 5751556, 8, 3, 4, 6, 8, 0),
    (74, 4795068, 7, 5, 4, 5, 6, 0, 5247055, 6, 4, 4, 7, 6, 0, 5899938, 6, 5, 4, 5, 7, 0),
    (75, 4921828, 5, 3, 4, 3, 4, 0, 5382266, 5, 2, 4, 5, 4, 0, 6048320, 5, 2, 4, 3, 5, 0),
    (76, 5048588, 6, 3, 4, 4, 5, 0, 5517477, 6, 2, 4, 6, 5, 0, 6196702, 6, 3, 4, 4, 6, 0),
    (77, 5175348, 6, 4, 4, 4, 5, 0, 5652688, 7, 3, 4, 6, 5, 0, 6345084, 7, 3, 4, 4, 6, 0),
    (78, 5302108, 7, 4, 4, 5, 6, 0, 5787899, 7, 3, 4, 7, 6, 0, 6493466, 7, 4, 4, 5, 7, 0),
    (79, 5428868, 8, 4, 4, 6, 7, 10, 5923110, 7, 3, 4, 8, 7, 0, 6641848, 7, 3, 4, 6, 8, 0),
    (80, 5555628, 20, 5, 4, 6, 7, 0, 6058321, 20, 4, 4, 8, 7, 0, 6790230, 20, 5, 4, 6, 8, 0),
    (81, 5682388, 7, 3, 4, 5, 6, 0, 6193532, 7, 2, 4, 7, 6, 0, 6938612, 7, 2, 4, 5, 7, 0),
    (82, 5809148, 6, 4, 4, 4, 5, 0, 6328743, 5, 3, 4, 6, 5, 0, 7086994, 5, 4, 4, 4, 6, 0),
    (83, 5935908, 6, 2, 4, 4, 5, 0, 6463954, 6, 1, 4, 6, 5, 0, 7235376, 6, 1, 4, 4, 6, 0),
    (84, 6062668, 5, 4, 4, 3, 4, 0, 6599165, 5, 3, 4, 5, 4, 0, 7383758, 5, 4, 4, 3, 5, 0),
    (85, 6189428, 7, 4, 4, 5, 6, 0, 6734376, 6, 3, 4, 7, 6, 0, 7532140, 6, 3, 4, 5, 7, 0),
    (86, 6316188, 8, 5, 4, 6, 7, 0, 6869587, 8, 4, 4, 8, 7, 0, 7680522, 8, 5, 4, 6, 8, 0),
    (87, 6442948, 8, 4, 4, 6, 7, 0, 7004798, 7, 3, 4, 8, 7, 0, 7828904, 7, 3, 4, 6, 8, 0),
    (88, 6569708, 9, 5, 4, 7, 8, 0, 7140009, 8, 4, 4, 9, 8, 0, 7977286, 8, 5, 4, 7, 9, 0),
    (89, 6696468, 5, 2, 4, 3, 4, 0, 7275220, 5, 1, 4, 5, 4, 0, 8125668, 5, 1, 4, 3, 5, 0),
    (90, 6823228, 20, 2, 5, 7, 8, 0, 7410431, 20, 1, 5, 9, 8, 0, 8274050, 20, 2, 5, 7, 9, 0),
    (91, 6949988, 5, 3, 5, 3, 4, 0, 7545642, 5, 2, 5, 5, 4, 0, 8422432, 5, 2, 5, 3, 5, 0),
    (92, 7076748, 6, 3, 5, 4, 5, 0, 7680853, 4, 2, 5, 6, 5, 0, 8570814, 4, 3, 5, 4, 6, 0),
    (93, 7203508, 8, 4, 5, 6, 7, 0, 7816064, 6, 2, 5, 8, 7, 0, 8719196, 6, 2, 5, 6, 8, 0),
    (94, 7330268, 4, 4, 5, 3, 3, 0, 7951275, 4, 3, 5, 5, 3, 0, 8867578, 4, 4, 5, 3, 4, 0),
    (95, 7457028, 3, 3, 5, 5, 2, 0, 8086486, 4, 2, 5, 7, 2, 0, 9015960, 4, 2, 5, 5, 3, 0),
    (96, 7583788, 5, 3, 5, 4, 3, 0, 8221697, 5, 2, 5, 7, 3, 0, 9164342, 5, 3, 5, 4, 4, 0),
    (97, 7710548, 5, 4, 5, 4, 5, 0, 8356908, 5, 3, 5, 7, 5, 0, 9312724, 5, 3, 5, 4, 6, 0),
    (98, 7837308, 4, 5, 5, 4, 3, 0, 8492119, 4, 3, 5, 7, 3, 0, 9461106, 4, 4, 5, 4, 4, 0),
    (99, 7964068, 50, 5, 5, 6, 5, 0, 8627330, 50, 3, 5, 9, 5, 0, 9609488, 50, 4, 5, 6, 6, 0),
    (100, 16777215, 0, 0, 0, 0, 0, 0, 16777215, 0, 0, 0, 0, 0, 0, 16777215, 0, 0, 0, 0, 0, 0);
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_monsters`
    -- 
    
    CREATE TABLE `dk_monsters` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `name` varchar(50) collate latin2_czech_cs NOT NULL default '',
      `maxhp` smallint(5) unsigned NOT NULL default '0',
      `maxdam` smallint(5) unsigned NOT NULL default '0',
      `armor` smallint(5) unsigned NOT NULL default '0',
      `level` smallint(5) unsigned NOT NULL default '0',
      `maxexp` smallint(5) unsigned NOT NULL default '0',
      `maxgold` smallint(5) unsigned NOT NULL default '0',
      `immune` tinyint(3) unsigned NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=152 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_monsters`
    -- 
    
    INSERT INTO `dk_monsters` (`id`, `name`, `maxhp`, `maxdam`, `armor`, `level`, `maxexp`, `maxgold`, `immune`) VALUES 
    (1, 'Blue Slime', 4, 3, 1, 1, 1, 1, 0),
    (2, 'Red Slime', 6, 5, 1, 1, 2, 1, 0),
    (3, 'Critter', 6, 5, 2, 1, 4, 2, 0),
    (4, 'Creature', 10, 8, 2, 2, 4, 2, 0),
    (5, 'Shadow', 10, 9, 3, 2, 6, 2, 1),
    (6, 'Drake', 11, 10, 3, 2, 8, 3, 0),
    (7, 'Shade', 12, 10, 3, 3, 10, 3, 1),
    (8, 'Drakelor', 14, 12, 4, 3, 10, 3, 0),
    (9, 'Silver Slime', 15, 100, 200, 30, 15, 1000, 2),
    (10, 'Scamp', 16, 13, 5, 4, 15, 5, 0),
    (11, 'Raven', 16, 13, 5, 4, 18, 6, 0),
    (12, 'Scorpion', 18, 14, 6, 5, 20, 7, 0),
    (13, 'Illusion', 20, 15, 6, 5, 20, 7, 1),
    (14, 'Nightshade', 22, 16, 6, 6, 24, 8, 0),
    (15, 'Drakemal', 22, 18, 7, 6, 24, 8, 0),
    (16, 'Shadow Raven', 24, 18, 7, 6, 26, 9, 1),
    (17, 'Ghost', 24, 20, 8, 6, 28, 9, 0),
    (18, 'Frost Raven', 26, 20, 8, 7, 30, 10, 0),
    (19, 'Rogue Scorpion', 28, 22, 9, 7, 32, 11, 0),
    (20, 'Ghoul', 29, 24, 9, 7, 34, 11, 0),
    (21, 'Magician', 30, 24, 10, 8, 36, 12, 0),
    (22, 'Rogue', 30, 25, 12, 8, 40, 13, 0),
    (23, 'Drakefin', 32, 26, 12, 8, 40, 13, 0),
    (24, 'Shimmer', 32, 26, 14, 8, 45, 15, 1),
    (25, 'Fire Raven', 34, 28, 14, 9, 45, 15, 0),
    (26, 'Dybbuk', 34, 28, 14, 9, 50, 17, 0),
    (27, 'Knave', 36, 30, 15, 9, 52, 17, 0),
    (28, 'Goblin', 36, 30, 15, 10, 54, 18, 0),
    (29, 'Skeleton', 38, 30, 18, 10, 58, 19, 0),
    (30, 'Dark Slime', 38, 32, 18, 10, 62, 21, 0),
    (31, 'Silver Scorpion', 30, 160, 350, 40, 63, 2000, 2),
    (32, 'Mirage', 40, 32, 20, 11, 64, 21, 1),
    (33, 'Sorceror', 41, 33, 22, 11, 68, 23, 0),
    (34, 'Imp', 42, 34, 22, 12, 70, 23, 0),
    (35, 'Nymph', 43, 35, 22, 12, 70, 23, 0),
    (36, 'Scoundrel', 43, 35, 22, 12, 75, 25, 0),
    (37, 'Megaskeleton', 44, 36, 24, 13, 78, 26, 0),
    (38, 'Grey Wolf', 44, 36, 24, 13, 82, 27, 0),
    (39, 'Phantom', 46, 38, 24, 14, 85, 28, 1),
    (40, 'Specter', 46, 38, 24, 14, 90, 30, 0),
    (41, 'Dark Scorpion', 48, 40, 26, 15, 95, 32, 1),
    (42, 'Warlock', 48, 40, 26, 15, 100, 33, 1),
    (43, 'Orc', 49, 42, 28, 15, 104, 35, 0),
    (44, 'Sylph', 49, 42, 28, 15, 106, 35, 0),
    (45, 'Wraith', 50, 45, 30, 16, 108, 36, 0),
    (46, 'Hellion', 50, 45, 30, 16, 110, 37, 0),
    (47, 'Bandit', 52, 45, 30, 16, 114, 38, 0),
    (48, 'Ultraskeleton', 52, 46, 32, 16, 116, 39, 0),
    (49, 'Dark Wolf', 54, 47, 36, 17, 120, 40, 1),
    (50, 'Troll', 56, 48, 36, 17, 120, 40, 0),
    (51, 'Werewolf', 56, 48, 38, 17, 124, 41, 0),
    (52, 'Hellcat', 58, 50, 38, 18, 128, 43, 0),
    (53, 'Spirit', 58, 50, 38, 18, 132, 44, 0),
    (54, 'Nisse', 60, 52, 40, 19, 132, 44, 0),
    (55, 'Dawk', 60, 54, 40, 19, 136, 45, 0),
    (56, 'Figment', 64, 55, 42, 19, 140, 47, 1),
    (57, 'Hellhound', 66, 56, 44, 20, 140, 47, 0),
    (58, 'Wizard', 66, 56, 44, 20, 144, 48, 0),
    (59, 'Uruk', 68, 58, 44, 20, 146, 49, 0),
    (60, 'Siren', 68, 400, 800, 50, 10000, 50, 2),
    (61, 'Megawraith', 70, 60, 46, 21, 155, 52, 0),
    (62, 'Dawkin', 70, 60, 46, 21, 155, 52, 0),
    (63, 'Grey Bear', 70, 62, 48, 21, 160, 53, 0),
    (64, 'Haunt', 72, 62, 48, 22, 160, 53, 0),
    (65, 'Hellbeast', 74, 64, 50, 22, 165, 55, 0),
    (66, 'Fear', 76, 66, 52, 23, 165, 55, 0),
    (67, 'Beast', 76, 66, 52, 23, 170, 57, 0),
    (68, 'Ogre', 78, 68, 54, 23, 170, 57, 0),
    (69, 'Dark Bear', 80, 70, 56, 24, 175, 58, 1),
    (70, 'Fire', 80, 72, 56, 24, 175, 58, 0),
    (71, 'Polgergeist', 84, 74, 58, 25, 180, 60, 0),
    (72, 'Fright', 86, 76, 58, 25, 180, 60, 0),
    (73, 'Lycan', 88, 78, 60, 25, 185, 62, 0),
    (74, 'Terra Elemental', 88, 80, 62, 25, 185, 62, 1),
    (75, 'Necromancer', 90, 80, 62, 26, 190, 63, 0),
    (76, 'Ultrawraith', 90, 82, 64, 26, 190, 63, 0),
    (77, 'Dawkor', 92, 82, 64, 26, 195, 65, 0),
    (78, 'Werebear', 92, 84, 65, 26, 195, 65, 0),
    (79, 'Brute', 94, 84, 65, 27, 200, 67, 0),
    (80, 'Large Beast', 96, 88, 66, 27, 200, 67, 0),
    (81, 'Horror', 96, 88, 68, 27, 210, 70, 0),
    (82, 'Flame', 100, 90, 70, 28, 210, 70, 0),
    (83, 'Lycanthor', 100, 90, 70, 28, 210, 70, 0),
    (84, 'Wyrm', 100, 92, 72, 28, 220, 73, 0),
    (85, 'Aero Elemental', 104, 94, 74, 29, 220, 73, 1),
    (86, 'Dawkare', 106, 96, 76, 29, 220, 73, 0),
    (87, 'Large Brute', 108, 98, 78, 29, 230, 77, 0),
    (88, 'Frost Wyrm', 110, 100, 80, 30, 230, 77, 0),
    (89, 'Knight', 110, 102, 80, 30, 240, 80, 0),
    (90, 'Lycanthra', 112, 104, 82, 30, 240, 80, 0),
    (91, 'Terror', 115, 108, 84, 31, 250, 83, 0),
    (92, 'Blaze', 118, 108, 84, 31, 250, 83, 0),
    (93, 'Aqua Elemental', 120, 110, 90, 31, 260, 87, 1),
    (94, 'Fire Wyrm', 120, 110, 90, 32, 260, 87, 0),
    (95, 'Lesser Wyvern', 122, 110, 92, 32, 270, 90, 0),
    (96, 'Doomer', 124, 112, 92, 32, 270, 90, 0),
    (97, 'Armor Knight', 130, 115, 95, 33, 280, 93, 0),
    (98, 'Wyvern', 134, 120, 95, 33, 290, 97, 0),
    (99, 'Nightmare', 138, 125, 100, 33, 300, 100, 0),
    (100, 'Fira Elemental', 140, 125, 100, 34, 310, 103, 1),
    (101, 'Megadoomer', 140, 128, 105, 34, 320, 107, 0),
    (102, 'Greater Wyvern', 145, 130, 105, 34, 335, 112, 0),
    (103, 'Advocate', 148, 132, 108, 35, 350, 117, 0),
    (104, 'Strong Knight', 150, 135, 110, 35, 365, 122, 0),
    (105, 'Liche', 150, 135, 110, 35, 380, 127, 0),
    (106, 'Ultradoomer', 155, 140, 115, 36, 395, 132, 0),
    (107, 'Fanatic', 160, 140, 115, 36, 410, 137, 0),
    (108, 'Green Dragon', 160, 140, 115, 36, 425, 142, 0),
    (109, 'Fiend', 160, 145, 120, 37, 445, 148, 0),
    (110, 'Greatest Wyvern', 162, 150, 120, 37, 465, 155, 0),
    (111, 'Lesser Devil', 164, 150, 120, 37, 485, 162, 0),
    (112, 'Liche Master', 168, 155, 125, 38, 505, 168, 0),
    (113, 'Zealot', 168, 155, 125, 38, 530, 177, 0),
    (114, 'Serafiend', 170, 155, 125, 38, 555, 185, 0),
    (115, 'Pale Knight', 175, 160, 130, 39, 580, 193, 0),
    (116, 'Blue Dragon', 180, 160, 130, 39, 605, 202, 0),
    (117, 'Obsessive', 180, 160, 135, 40, 630, 210, 0),
    (118, 'Devil', 184, 164, 135, 40, 666, 222, 0),
    (119, 'Liche Prince', 190, 168, 138, 40, 660, 220, 0),
    (120, 'Cherufiend', 195, 170, 140, 41, 690, 230, 0),
    (121, 'Red Dragon', 200, 180, 145, 41, 720, 240, 0),
    (122, 'Greater Devil', 200, 180, 145, 41, 750, 250, 0),
    (123, 'Renegade', 205, 185, 150, 42, 780, 260, 0),
    (124, 'Archfiend', 210, 190, 150, 42, 810, 270, 0),
    (125, 'Liche Lord', 210, 190, 155, 42, 850, 283, 0),
    (126, 'Greatest Devil', 215, 195, 160, 43, 890, 297, 0),
    (127, 'Dark Knight', 220, 200, 160, 43, 930, 310, 0),
    (128, 'Giant', 220, 200, 165, 43, 970, 323, 0),
    (129, 'Shadow Dragon', 225, 200, 170, 44, 1010, 337, 0),
    (130, 'Liche King', 225, 205, 170, 44, 1050, 350, 0),
    (131, 'Incubus', 230, 205, 175, 44, 1100, 367, 1),
    (132, 'Traitor', 230, 205, 175, 45, 1150, 383, 0),
    (133, 'Demon', 240, 210, 180, 45, 1200, 400, 0),
    (134, 'Dark Dragon', 245, 215, 180, 45, 1250, 417, 1),
    (135, 'Insurgent', 250, 220, 190, 46, 1300, 433, 0),
    (136, 'Leviathan', 255, 225, 190, 46, 1350, 450, 0),
    (137, 'Grey Daemon', 260, 230, 190, 46, 1400, 467, 0),
    (138, 'Succubus', 265, 240, 200, 47, 1460, 487, 1),
    (139, 'Demon Prince', 270, 240, 200, 47, 1520, 507, 0),
    (140, 'Black Dragon', 275, 250, 205, 47, 1580, 527, 1),
    (141, 'Nihilist', 280, 250, 205, 47, 1640, 547, 0),
    (142, 'Behemoth', 285, 260, 210, 48, 1700, 567, 0),
    (143, 'Demagogue', 290, 260, 210, 48, 1760, 587, 0),
    (144, 'Demon Lord', 300, 270, 220, 48, 1820, 607, 0),
    (145, 'Red Daemon', 310, 280, 230, 48, 1880, 627, 0),
    (146, 'Colossus', 320, 300, 240, 49, 1940, 647, 0),
    (147, 'Demon King', 330, 300, 250, 49, 2000, 667, 0),
    (148, 'Dark Daemon', 340, 320, 260, 49, 2200, 733, 1),
    (149, 'Titan', 360, 340, 270, 50, 2400, 800, 0),
    (150, 'Black Daemon', 400, 400, 280, 50, 3000, 1000, 1),
    (151, 'Lucifuge', 600, 600, 400, 50, 10000, 10000, 2);
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_news`
    -- 
    
    CREATE TABLE `dk_news` (
      `id` mediumint(8) unsigned NOT NULL auto_increment,
      `postdate` datetime NOT NULL default '0000-00-00 00:00:00',
      `content` text collate latin2_czech_cs NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=3 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_news`
    -- 
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_spells`
    -- 
    
    CREATE TABLE `dk_spells` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `name` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `mp` smallint(5) unsigned NOT NULL default '0',
      `attribute` smallint(5) unsigned NOT NULL default '0',
      `type` smallint(5) unsigned NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=20 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_spells`
    -- 
    
    INSERT INTO `dk_spells` (`id`, `name`, `mp`, `attribute`, `type`) VALUES 
    (1, 'Ošetrenie', 5, 10, 1),
    (2, 'Liečenie', 10, 25, 1),
    (3, 'Oživenie', 25, 50, 1),
    (4, 'Vzkriesenie', 50, 100, 1),
    (5, 'Gaja', 75, 150, 1),
    (6, 'Ohnivá guľa', 5, 15, 2),
    (7, 'Blesk', 12, 35, 2),
    (8, 'Zemetrasenie', 25, 70, 2),
    (9, 'Smršť', 40, 100, 2),
    (10, 'Deštrukcia', 50, 130, 2),
    (11, 'Uspanie', 10, 5, 3),
    (12, 'Omráčenie', 30, 9, 3),
    (13, 'Zmrazenie', 60, 13, 3),
    (14, 'Posilnenie', 10, 10, 4),
    (15, 'Zúrivosť', 20, 25, 4),
    (16, 'Pometenie', 30, 50, 4),
    (17, 'Odolnosť', 10, 10, 5),
    (18, 'Skamenenie', 20, 25, 5),
    (19, 'Bariéra', 30, 50, 5);
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_towns`
    -- 
    
    CREATE TABLE `dk_towns` (
      `id` tinyint(3) unsigned NOT NULL auto_increment,
      `name` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `latitude` smallint(6) NOT NULL default '0',
      `longitude` smallint(6) NOT NULL default '0',
      `innprice` tinyint(4) NOT NULL default '0',
      `mapprice` smallint(6) NOT NULL default '0',
      `travelpoints` smallint(5) unsigned NOT NULL default '0',
      `itemslist` text collate latin2_czech_cs NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=9 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_towns`
    -- 
    
    INSERT INTO `dk_towns` (`id`, `name`, `latitude`, `longitude`, `innprice`, `mapprice`, `travelpoints`, `itemslist`) VALUES 
    (1, 'Northstand', 0, 0, 5, 0, 0, '1,2,3,17,18,19,28,29'),
    (2, 'Deuil', 30, 30, 10, 25, 5, '2,3,4,18,19,29'),
    (3, 'Sampier', 70, -70, 25, 50, 15, '2,3,4,5,18,19,20,29.30'),
    (4, 'Wealia', -100, 100, 40, 100, 30, '5,6,8,10,12,21,22,23,29,30'),
    (5, 'Highville', -130, -130, 60, 500, 50, '4,7,9,11,13,21,22,23,29,30,31'),
    (6, 'Garsur', 170, 170, 90, 1000, 80, '10,11,12,13,14,23,24,30,31'),
    (7, 'Radamas', 200, -200, 100, 3000, 110, '12,13,14,15,24,25,26,32'),
    (8, 'Endworld', -250, -250, 125, 9000, 160, '16,27,33');
    
    -- --------------------------------------------------------
    
    -- 
    -- Štruktúra tabuľky pre tabuľku `dk_users`
    -- 
    
    CREATE TABLE `dk_users` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `username` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `password` varchar(32) collate latin2_czech_cs NOT NULL default '',
      `email` varchar(100) collate latin2_czech_cs NOT NULL default '',
      `verify` varchar(8) collate latin2_czech_cs NOT NULL default '0',
      `charname` varchar(30) collate latin2_czech_cs NOT NULL default '',
      `regdate` datetime NOT NULL default '0000-00-00 00:00:00',
      `onlinetime` datetime NOT NULL default '0000-00-00 00:00:00',
      `authlevel` tinyint(3) unsigned NOT NULL default '0',
      `latitude` smallint(6) NOT NULL default '0',
      `longitude` smallint(6) NOT NULL default '0',
      `difficulty` tinyint(3) unsigned NOT NULL default '0',
      `charclass` tinyint(4) unsigned NOT NULL default '0',
      `racetype` tinyint(4) unsigned NOT NULL default '0',
      `currentaction` varchar(30) collate latin2_czech_cs NOT NULL default 'In Town',
      `currentfight` tinyint(4) unsigned NOT NULL default '0',
      `currentmonster` smallint(6) unsigned NOT NULL default '0',
      `currentmonsterhp` smallint(6) unsigned NOT NULL default '0',
      `currentmonstersleep` tinyint(3) unsigned NOT NULL default '0',
      `currentmonsterimmune` tinyint(4) NOT NULL default '0',
      `currentuberdamage` tinyint(3) unsigned NOT NULL default '0',
      `currentuberdefense` tinyint(3) unsigned NOT NULL default '0',
      `currenthp` smallint(6) unsigned NOT NULL default '15',
      `currentmp` smallint(6) unsigned NOT NULL default '0',
      `currenttp` smallint(6) unsigned NOT NULL default '10',
      `maxhp` smallint(6) unsigned NOT NULL default '15',
      `maxmp` smallint(6) unsigned NOT NULL default '0',
      `maxtp` smallint(6) unsigned NOT NULL default '10',
      `level` smallint(5) unsigned NOT NULL default '1',
      `gold` mediumint(8) unsigned NOT NULL default '100',
      `experience` mediumint(8) unsigned NOT NULL default '0',
      `goldbonus` smallint(5) NOT NULL default '0',
      `expbonus` smallint(5) NOT NULL default '0',
      `strength` smallint(5) unsigned NOT NULL default '5',
      `dexterity` smallint(5) unsigned NOT NULL default '5',
      `attackpower` smallint(5) unsigned NOT NULL default '5',
      `defensepower` smallint(5) unsigned NOT NULL default '5',
      `weaponid` smallint(5) unsigned NOT NULL default '0',
      `armorid` smallint(5) unsigned NOT NULL default '0',
      `shieldid` smallint(5) unsigned NOT NULL default '0',
      `slot1id` smallint(5) unsigned NOT NULL default '0',
      `slot2id` smallint(5) unsigned NOT NULL default '0',
      `slot3id` smallint(5) unsigned NOT NULL default '0',
      `weaponname` varchar(30) collate latin2_czech_cs NOT NULL default 'None',
      `armorname` varchar(30) collate latin2_czech_cs NOT NULL default 'None',
      `shieldname` varchar(30) collate latin2_czech_cs NOT NULL default 'None',
      `slot1name` varchar(30) collate latin2_czech_cs NOT NULL default 'None',
      `slot2name` varchar(30) collate latin2_czech_cs NOT NULL default 'None',
      `slot3name` varchar(30) collate latin2_czech_cs NOT NULL default 'None',
      `dropcode` mediumint(8) unsigned NOT NULL default '0',
      `spells` varchar(50) collate latin2_czech_cs NOT NULL default '0',
      `towns` varchar(50) collate latin2_czech_cs NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=9 ;
    
    -- 
    -- Sťahujem dáta pre tabuľku `dk_users`
    -- 
    
    -- --------------------------------------------------------
    Všetko o hrách a novinkách s herného sveta nájdete na http://the-guild.cz/.

  2. #2

    Talking MMORPG s použitím jazyka PHP a SQL

    Teraz ideme na samotné PHP. Ako to mám rád začneme od a a teda od scriptu týkajúci sa administrácie. Avšak ešte predtým vysvetlím ako má vypadať zloška v ktorej sa naša mmorpg má nachádzať. vytvoríme si priečinok MMORPG a v ňom vytvoríme priečinok images a priečinok templates. Ďalej tam nahádžeme tieto scripty:

    admin.php

    Code:
    <?php 
    
    include('functions.php');
    include('cookies.php');
    $link = opendb();
    $userrow = checkcookies();
    if ($userrow == false) { die("<center>Prosim prihlaste sa do <a href=\"login.php?do=login\">hry</a> aby ste mohli vyuzivat administratosky panel.</center>"); }
    if ($userrow["authlevel"] != 1) { die("Niesy admin."); }
    $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
    $controlrow = mysql_fetch_array($controlquery);
    
    if (isset($_GET["do"])) {
        $do = explode(":",$_GET["do"]);
        
        if ($do[0] == "main") { main(); }
        elseif ($do[0] == "items") { items(); }
        elseif ($do[0] == "edititem") { edititem($do[1]); }
        elseif ($do[0] == "drops") { drops(); }
        elseif ($do[0] == "editdrop") { editdrop($do[1]); }
        elseif ($do[0] == "towns") { towns(); }
        elseif ($do[0] == "edittown") { edittown($do[1]); }
        elseif ($do[0] == "monsters") { monsters(); }
        elseif ($do[0] == "editmonster") { editmonster($do[1]); }
        elseif ($do[0] == "levels") { levels(); }
        elseif ($do[0] == "editlevel") { editlevel(); }
        elseif ($do[0] == "spells") { spells(); }
        elseif ($do[0] == "editspell") { editspell($do[1]); }
        elseif ($do[0] == "users") { users(); }
        elseif ($do[0] == "edituser") { edituser($do[1]); }
        elseif ($do[0] == "news") { addnews(); }
        
    } else { donothing(); }
    
    function donothing() {
        
        $page = "Vitajte v administratorskom panely nasej MMORPG. Rad by som podotkol ze je to dost mohutny administratosky nastroj tak ze pozor da sa snim vela spravit aj vela znicit. Tak ze prijemnu modifikaciu.";
        admindisplay($page, "Admin Home");
        
    }
    
    function main() {
        
        if (isset($_POST["submit"])) {
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($gamename == "") { $errors++; $errorlist .= "Nezadal si meno hry.
    "; }
            if (($gamesize % 5) != 0) { $errors++; $errorlist .= "Velkost mapy musi byt delitelny piatimy.
    "; }
            if (!is_numeric($gamesize)) { $errors++; $errorlist .= "Velkost mapy musi byt v numerickych hodnotach.
    "; }
            if ($forumtype == 2 && $forumaddress == "") { $errors++; $errorlist .= "Musis napisat url fora ak chces vyuzivat externe forum.
    "; }
            if ($class1name == "") { $errors++; $errorlist .= "Meno prveho classu nebolo vyplnene.
    "; }
            if ($class2name == "") { $errors++; $errorlist .= "Meno druheho classu nebolo vyplnene.
    "; }
            if ($class3name == "") { $errors++; $errorlist .= "Meno tretieho classu nebolo vyplnene.
    "; }
    		if ($racetype == "") { $errors++; $errorlist .= "Nezadali ste meno prvej rasy.
    "; }
            if ($diff1name == "") { $errors++; $errorlist .= "Nezadal si meno prvej obtiaznosti.
    "; }
            if ($diff2name == "") { $errors++; $errorlist .= "Nezadal si meno druhej obtiaznosti.
    "; }
            if ($diff3name == "") { $errors++; $errorlist .= "Nezadal si meno tretej obtiaznosti.
    "; }
            if ($diff2mod == "") { $errors++; $errorlist .= "Hodnota obtiaznosti 2 nebola vyplnena.
    "; }
            if ($diff3mod == "") { $errors++; $errorlist .= "Hodnota obtiaznosti 3 nebola vyplnena.
    "; }
            
            if ($errors == 0) { 
                $query = doquery("UPDATE {{table}} SET gamename='$gamename',gamesize='$gamesize',forumtype='$forumtype',forumaddress='$forumaddress',compression='$compression',class1name='$class1name',class2name='$class2name',class3name='$class3name',racetype='$racetype',diff1name='$diff1name',diff2name='$diff2name',diff3name='$diff3name',diff2mod='$diff2mod',diff3mod='$diff3mod',gameopen='$gameopen',verifyemail='$verifyemail',gameurl='$gameurl',adminemail='$adminemail',shownews='$shownews',showonline='$showonline',showbabble='$showbabble' WHERE id='1' LIMIT 1", "control");
                admindisplay("Nastavenia boli uspesne ulozene.","Main Settings");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Main Settings");
            }
        }
        
        global $controlrow;
        
    $page = <<<END
    <u>Základné nastavenia</u>
    
    Pomocov týchto nastavení môzete modifikovat zakledne crty hry.
    
    
    <form action="admin.php?do=main" method="post">
    <table width="90%">
    <tr><td width="20%"><span class="highlight">Stav hry:</span></td><td><select name="gameopen"><option value="1" {{open1select}}>Otvorena</option><option value="0" {{open0select}}>Uzamknuta</option></select>
    <span class="small">V prípade ze hru vylepsujete alebo inak menite zakladne nastavenia je dobre hru uzamknut aby hraci nemali pristup a server mohol v pokoji zmeny nahodit.</span></td></tr>
    <tr><td width="20%">Nazov hry:</td><td><input type="text" name="gamename" size="30" maxlength="50" value="{{gamename}}" />
    <span class="small">Pri zmene mena nastane zmena mena na vsetkých urovniach.</span></td></tr>
    <tr><td width="20%">URL:</td><td><input type="text" name="gameurl" size="50" maxlength="100" value="{{gameurl}}" />
    <span class="small">Prosím vyplnte URL kde sa nachádza hra na vasom servery napr.("http://www.server.com/dkpath/index.php").  Je to dôležité kôli registracnemu e-mailu.</span></td></tr>
    <tr><td width="20%">Admin Email:</td><td><input type="text" name="adminemail" size="30" maxlength="100" value="{{adminemail}}" />
    <span class="small">Tento e-mail sa bude vyuzivat ak hra bude posielat hromadnu korespondeciu uzivatelom.</span></td></tr>
    <tr><td width="20%">Velkost mapy:</td><td><input type="text" name="gamesize" size="3" maxlength="3" value="{{gamesize}}" />
    <span class="small">Zakladna je 250. Na velkost tohto pola pripada 50 priser lvl od 1-50 co znamena ze pri zviseni o 5 bude velkost mapy 255 a na pridanom kvadrante nebudu prisery alebo budu s neadekvatnym lvl. Pri doplnani mapy priamo umerne doplnajte aj prisery.</span></td></tr>
    <tr><td width="20%">Typ fora:</td><td><select name="forumtype"><option value="0" {{selecttype0}}>Vypnut</option><option value="1" {{selecttype1}}>Interne</option><option value="2" {{selecttype2}}>Externe</option></select>
    <span class="small">'Vypnut' vymaze link fora s menu. 'Interne' vyuzije vopred vypracovane jednoduche forum. 'Externe' vyuzije vase osobne forum.</span></td></tr>
    <tr><td width="20%">Externe forum:</td><td><input type="text" name="forumaddress" size="30" maxlength="200" value="{{forumaddress}}" />
    <span class="small">Ak ste si nastavili 'Externe,' forum, zadajte URL aby link ktory sa uzivatelo zobrazi bol spravne adresovaný.</span></td></tr>
    <tr><td width="20%">Compresia:</td><td><select name="compression"><option value="0" {{selectcomp0}}>Vypnuta</option><option value="1" {{selectcomp1}}>Zapnuta</option></select>
    <span class="small">Povolte len ak to dovoluje vas server.</span></td></tr>
    <tr><td width="20%">Overovací e-mail:</td><td><select name="verifyemail"><option value="0" {{selectverify0}}>Vypnuty</option><option value="1" {{selectverify1}}>Zapnuty</option></select>
    <span class="small">Bezny overovaci mail.</span></td></tr>
    <tr><td width="20%">Zobrazovat hlasenia:</td><td><select name="shownews"><option value="0" {{selectnews0}}>Nie</option><option value="1" {{selectnews1}}>Ano</option></select>
    <span class="small">Zobrazí administratoske pokyny v meste.</td></tr>
    <tr><td width="20%">Zobrazovanie online hracov:</td><td><select name="showonline"><option value="0" {{selectonline0}}>Ano</option><option value="1" {{selectonline1}}>Nie</option></select>
    <span class="small">Zobrazi kdo je online, sprava sa zobrazuje len v meste.</span></td></tr>
    <tr><td width="20%">Zobrazit Chat box:</td><td><select name="showbabble"><option value="0" {{selectbabble0}}>Nie</option><option value="1" {{selectbabble1}}>Ano</option></select>
    <span class="small">Zobrazi mali verejny chat box, moznost chatovat je len v meste.</span></td></tr>
    <tr><td width="20%">Class 1 :</td><td><input type="text" name="class1name" size="20" maxlength="50" value="{{class1name}}" />
    </td></tr>
    <tr><td width="20%">Class 2 :</td><td><input type="text" name="class2name" size="20" maxlength="50" value="{{class2name}}" />
    </td></tr>
    <tr><td width="20%">Class 3 :</td><td><input type="text" name="class3name" size="20" maxlength="50" value="{{class3name}}" />
    </td></tr>
    <tr><td width="20%">Rasa 1 :</td><td><input type="text" name="racetype" size="20" maxlength="50" value="{{racetype}}" />
    </td></tr>
    <tr><td width="20%">Obtiaznost 1:</td><td><input type="text" name="diff1name" size="20" maxlength="50" value="{{diff1name}}" />
    </td></tr>
    <tr><td width="20%">Obtiaznost 2:</td><td><input type="text" name="diff2name" size="20" maxlength="50" value="{{diff2name}}" />
    </td></tr>
    <tr><td width="20%">Hodnota obtiaznosti 2:</td><td><input type="text" name="diff2mod" size="3" maxlength="3" value="{{diff2mod}}" />
    <span class="small">Predvolena je 1.2.</span></td></tr>
    <tr><td width="20%">Obtiaznost 3:</td><td><input type="text" name="diff3name" size="20" maxlength="50" value="{{diff3name}}" />
    </td></tr>
    <tr><td width="20%">Hodnota obtiaznosti 3</td><td><input type="text" name="diff3mod" size="3" maxlength="3" value="{{diff3mod}}" />
    <span class="small">Predvolena je 1.5.</span></td></tr>
    </table>
    <input type="submit" name="submit" value="Ulozit" /> <input type="reset" name="reset" value="Reset" />
    </form>
    END;
    
        if ($controlrow["forumtype"] == 0) { $controlrow["selecttype0"] = "selected=\"selected\" "; } else { $controlrow["selecttype0"] = ""; }
        if ($controlrow["forumtype"] == 1) { $controlrow["selecttype1"] = "selected=\"selected\" "; } else { $controlrow["selecttype1"] = ""; }
        if ($controlrow["forumtype"] == 2) { $controlrow["selecttype2"] = "selected=\"selected\" "; } else { $controlrow["selecttype2"] = ""; }
        if ($controlrow["compression"] == 0) { $controlrow["selectcomp0"] = "selected=\"selected\" "; } else { $controlrow["selectcomp0"] = ""; }
        if ($controlrow["compression"] == 1) { $controlrow["selectcomp1"] = "selected=\"selected\" "; } else { $controlrow["selectcomp1"] = ""; }
        if ($controlrow["verifyemail"] == 0) { $controlrow["selectverify0"] = "selected=\"selected\" "; } else { $controlrow["selectverify0"] = ""; }
        if ($controlrow["verifyemail"] == 1) { $controlrow["selectverify1"] = "selected=\"selected\" "; } else { $controlrow["selectverify1"] = ""; }
        if ($controlrow["shownews"] == 0) { $controlrow["selectnews0"] = "selected=\"selected\" "; } else { $controlrow["selectnews0"] = ""; }
        if ($controlrow["shownews"] == 1) { $controlrow["selectnews1"] = "selected=\"selected\" "; } else { $controlrow["selectnews1"] = ""; }
        if ($controlrow["showonline"] == 0) { $controlrow["selectonline0"] = "selected=\"selected\" "; } else { $controlrow["selectonline0"] = ""; }
        if ($controlrow["showonline"] == 1) { $controlrow["selectonline1"] = "selected=\"selected\" "; } else { $controlrow["selectonline1"] = ""; }
        if ($controlrow["showbabble"] == 0) { $controlrow["selectbabble0"] = "selected=\"selected\" "; } else { $controlrow["selectbabble0"] = ""; }
        if ($controlrow["showbabble"] == 1) { $controlrow["selectbabble1"] = "selected=\"selected\" "; } else { $controlrow["selectbabble1"] = ""; }
        if ($controlrow["gameopen"] == 1) { $controlrow["open1select"] = "selected=\"selected\" "; } else { $controlrow["open1select"] = ""; }
        if ($controlrow["gameopen"] == 0) { $controlrow["open0select"] = "selected=\"selected\" "; } else { $controlrow["open0select"] = ""; }
    
        $page = parsetemplate($page, $controlrow);
        admindisplay($page, "Main Settings");
    
    }
    
    function items() {
        
        $query = doquery("SELECT id,name FROM {{table}} ORDER BY id", "items");
        $page = "<u>Editovat artefakty</u>
    Ak chces zmenit nazov alebo vlastnosti nejakeho artefaktu, staci nanho tuknut.
    
    <table width=\"50%\">\n";
        $count = 1;
        while ($row = mysql_fetch_array($query)) {
            if ($count == 1) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=edititem:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 2; }
            else { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=edititem:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 1; }
        }
        if (mysql_num_rows($query) == 0) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">Nenasli sa ziadne artefakty.</td></tr>\n"; }
        $page .= "</table>";
        admindisplay($page, "Editovat artefakty");
        
    }
    
    function edititem($id) {
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($name == "") { $errors++; $errorlist .= "Nezadali ste meno.
    "; }
            if ($buycost == "") { $errors++; $errorlist .= "Nezadali ste cenu.
    "; }
            if (!is_numeric($buycost)) { $errors++; $errorlist .= "Cena musi obsahovat numericku hodnotu.
    "; }
            if ($attribute == "") { $errors++; $errorlist .= "Neboly zadane atributy artefaktu.
    "; }
            if (!is_numeric($attribute)) { $errors++; $errorlist .= "Atrubuty musia obsahovat numericku hodnotu.
    "; }
            if ($special == "" || $special == " ") { $special = "X"; }
            
            if ($errors == 0) { 
                $query = doquery("UPDATE {{table}} SET name='$name',type='$type',buycost='$buycost',attribute='$attribute',special='$special' WHERE id='$id' LIMIT 1", "items");
                admindisplay("Artefakt upraveny.","Editovat artefakty");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Editovat artefakty");
            }        
            
        }   
            
        
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "items");
        $row = mysql_fetch_array($query);
    
    $page = <<<END
    <u>Editovat artefakty</u>
    
    
    <form action="admin.php?do=edititem:$id" method="post">
    <table width="90%">
    <tr><td width="20%">ID:</td><td>{{id}}</td></tr>
    <tr><td width="20%">Meno:</td><td><input type="text" name="name" size="30" maxlength="30" value="{{name}}" /></td></tr>
    <tr><td width="20%">Typ:</td><td><select name="type"><option value="1" {{type1select}}>Zbran</option><option value="2" {{type2select}}>Brnenie</option><option value="3" {{type3select}}>Stit</option></select></td></tr>
    <tr><td width="20%">Cena:</td><td><input type="text" name="buycost" size="5" maxlength="10" value="{{buycost}}" /> zlata</td></tr>
    <tr><td width="20%">Atributy:</td><td><input type="text" name="attribute" size="5" maxlength="10" value="{{attribute}}" />
    <span class="small">Atributy su hodnoty ktore vyadruju kolko sily alebo obrany zbran ci brnenie pridava.</span></td></tr>
    <tr><td width="20%">Specialne:</td><td><input type="text" name="special" size="30" maxlength="50" value="{{special}}" />
    <span class="small">Zadajte specialne oznacenie alebo <span class="highlight">X</span>ak nechcete aby zbran mala unikatne schopnosti. Nemenit, ak menit tak len v krajnm pripade.</span></td></tr>
    </table>
    <input type="submit" name="submit" value="Ulozit" /> <input type="reset" name="reset" value="Reset" />
    </form>
    Specialne oznacenia:
    
    maxhp - max HP
    
    maxmp - max MP
    
    maxtp - max TP
    
    goldbonus - bonus v zlata, v percentach
    
    expbonus - exp bonus, taktiez v percentach
    
    strength - doda zbrani schopnosti pridavat silu, co pridava aj utocnu silu
    
    dexterity - doda zbrani schopnosti pridavat presnost, co prida aj do obrany
    
    attackpower - totalna utocna sila
    
    defensepower - totalna obranna sila
    END;
        
        if ($row["type"] == 1) { $row["type1select"] = "selected=\"selected\" "; } else { $row["type1select"] = ""; }
        if ($row["type"] == 2) { $row["type2select"] = "selected=\"selected\" "; } else { $row["type2select"] = ""; }
        if ($row["type"] == 3) { $row["type3select"] = "selected=\"selected\" "; } else { $row["type3select"] = ""; }
        
        $page = parsetemplate($page, $row);
        admindisplay($page, "Editovat artefakty");
        
    }
    
    function drops() {
        
        $query = doquery("SELECT id,name FROM {{table}} ORDER BY id", "drops");
        $page = "<u>Editovat obsah protivnikov</u>
    Kliknite na vec ktoru chcete modifikovat.
    
    <table width=\"50%\">\n";
        $count = 1;
        while ($row = mysql_fetch_array($query)) {
            if ($count == 1) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=editdrop:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 2; }
            else { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=editdrop:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 1; }
        }
        if (mysql_num_rows($query) == 0) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">Neboli najdene ziadne veci.</td></tr>\n"; }
        $page .= "</table>";
        admindisplay($page, "Editovat obsah protivnikov");
        
    }
    
    function editdrop($id) {
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($name == "") { $errors++; $errorlist .= "Nezadal si meno.
    "; }
            if ($mlevel == "") { $errors++; $errorlist .= "Level prisery obsahujuci tento artefakt nebol vyplneny.
    "; }
            if (!is_numeric($mlevel)) { $errors++; $errorlist .= "Level musi byt cislo.
    "; }
            if ($attribute1 == "" || $attribute1 == " " || $attribute1 == "X") { $errors++; $errorlist .= "Nezadali ste atributy.
    "; }
            if ($attribute2 == "" || $attribute2 == " ") { $attribute2 = "X"; }
            
            if ($errors == 0) { 
                $query = doquery("UPDATE {{table}} SET name='$name',mlevel='$mlevel',attribute1='$attribute1',attribute2='$attribute2' WHERE id='$id' LIMIT 1", "drops");
                admindisplay("Item updated.","Editovat obsah protivnikov");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Editovat obsah protivnikov");
            }        
            
        }   
            
        
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "drops");
        $row = mysql_fetch_array($query);
    
    $page = <<<END
    <u>Edit Drops</u>
    
    
    <form action="admin.php?do=editdrop:$id" method="post">
    <table width="90%">
    <tr><td width="20%">ID:</td><td>{{id}}</td></tr>
    <tr><td width="20%">Meno:</td><td><input type="text" name="name" size="30" maxlength="30" value="{{name}}" /></td></tr>
    <tr><td width="20%">Level:</td><td><input type="text" name="mlevel" size="5" maxlength="10" value="{{mlevel}}" />
    <span class="small">Level prisery s ktorej bude dana vec padat.</span></td></tr>
    <tr><td width="20%">Atribut 1:</td><td><input type="text" name="attribute1" size="30" maxlength="50" value="{{attribute1}}" />
    <span class="small">Toto pole musi byt vyplnene specialnym kodom.</span></td></tr>
    <tr><td width="20%">Atribut 2:</td><td><input type="text" name="attribute2" size="30" maxlength="50" value="{{attribute2}}" />
    <span class="small">Zadaj <span class="highlight">X</span> ak nechces aby bol zadany druhy atribut.</span></td></tr>
    </table>
    <input type="submit" name="submit" value="Uloz" /> <input type="reset" name="reset" value="Reset" />
    </form>
    Specialne kody:
    
    maxhp - max hit points
    
    maxmp - max magic points
    
    maxtp - max travel points
    
    goldbonus - gold bonus, in percent
    
    expbonus - experience bonus, in percent
    
    strength - strength (which also adds to attackpower)
    
    dexterity - dexterity (which also adds to defensepower)
    
    attackpower - total attack power
    
    defensepower - total defense power
    END;
        
        $page = parsetemplate($page, $row);
        admindisplay($page, "Editovat obsah protivnikov");
        
    }
    
    function towns() {
        
        $query = doquery("SELECT id,name FROM {{table}} ORDER BY id", "towns");
        $page = "<u>Editovat mesta</u>
    Click an town's name to edit it.
    
    <table width=\"50%\">\n";
        $count = 1;
        while ($row = mysql_fetch_array($query)) {
            if ($count == 1) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=edittown:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 2; }
            else { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=edittown:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 1; }
        }
        if (mysql_num_rows($query) == 0) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">Ziadne mesta sa nenasli.</td></tr>\n"; }
        $page .= "</table>";
        admindisplay($page, "Editovat mesta");
        
    }
    
    function edittown($id) {
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($name == "") { $errors++; $errorlist .= "Je potrebne zadat meno.
    "; }
            if ($latitude == "") { $errors++; $errorlist .= "Nezadali ste zemepisnu sirku.
    "; }
            if (!is_numeric($latitude)) { $errors++; $errorlist .= "Zemepisna sirka musi byt cislo.
    "; }
            if ($longitude == "") { $errors++; $errorlist .= "Zemepisna dlzka nebola zadana.
    "; }
            if (!is_numeric($longitude)) { $errors++; $errorlist .= "Zemepisna dlzka musi byt cislo.
    "; }
            if ($innprice == "") { $errors++; $errorlist .= "Nezadali ste cenu noclahu v krcme.
    "; }
            if (!is_numeric($innprice)) { $errors++; $errorlist .= "Cena noclazneho musi byt cislo.
    "; }
            if ($mapprice == "") { $errors++; $errorlist .= "Nezadali ste cenu mapy.
    "; }
            if (!is_numeric($mapprice)) { $errors++; $errorlist .= "Cena mapy musi byt cislo.
    "; }
    
            if ($travelpoints == "") { $errors++; $errorlist .= "Nezadali ste TP.
    "; }
            if (!is_numeric($travelpoints)) { $errors++; $errorlist .= "TP musia byt cislo.
    "; }
            if ($itemslist == "") { $errors++; $errorlist .= "Nezadali ste sortiment artefaktov.
    "; }
            
            if ($errors == 0) { 
                $query = doquery("UPDATE {{table}} SET name='$name',latitude='$latitude',longitude='$longitude',innprice='$innprice',mapprice='$mapprice',travelpoints='$travelpoints',itemslist='$itemslist' WHERE id='$id' LIMIT 1", "towns");
                admindisplay("Town updated.","Editovat mesta");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Editovat mesta");
            }        
            
        }   
            
        
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "towns");
        $row = mysql_fetch_array($query);
    
    $page = <<<END
    <u>Edit Towns</u>
    
    
    <form action="admin.php?do=edittown:$id" method="post">
    <table width="90%">
    <tr><td width="20%">ID:</td><td>{{id}}</td></tr>
    <tr><td width="20%">Meno:</td><td><input type="text" name="name" size="30" maxlength="30" value="{{name}}" /></td></tr>
    <tr><td width="20%">Zemepisna sirka:</td><td><input type="text" name="latitude" size="5" maxlength="10" value="{{latitude}}" />
    <span class="small">Mozes zadat aj minusovu hodnotu.</span></td></tr>
    <tr><td width="20%">Zemepisna dlzka:</td><td><input type="text" name="longitude" size="5" maxlength="10" value="{{longitude}}" />
    <span class="small">Mozes zadat aj minusovu hodnotu.</span></td></tr>
    <tr><td width="20%">Cena noclazneho:</td><td><input type="text" name="innprice" size="5" maxlength="10" value="{{innprice}}" /> zlata</td></tr>
    <tr><td width="20%">Cena mapy:</td><td><input type="text" name="mapprice" size="5" maxlength="10" value="{{mapprice}}" /> zlata
    <span class="small">Cena mapy ktora ta dovedie do tohto mesta.</span></td></tr>
    <tr><td width="20%">TP:</td><td><input type="text" name="travelpoints" size="5" maxlength="10" value="{{travelpoints}}" />
    <span class="small">Kolko TP sa minie pri presune do daneho mesta.</span></td></tr>
    <tr><td width="20%">Sortiment:</td><td><input type="text" name="itemslist" size="30" maxlength="200" value="{{itemslist}}" />
    <span class="small">Sem zadajte ID artefaktu ktory sa bude dat v meste kupit v obchode. (Priklad: <span class="highlight">1,2,3,6,9,10,13,20</span>)</span></td></tr>
    </table>
    <input type="submit" name="submit" value="Ulozit" /> <input type="reset" name="reset" value="Reset" />
    </form>
    END;
        
        $page = parsetemplate($page, $row);
        admindisplay($page, "Editovat mesta");
        
    }
    
    function monsters() {
        
        global $controlrow;
        
        $statquery = doquery("SELECT * FROM {{table}} ORDER BY level DESC LIMIT 1", "monsters");
        $statrow = mysql_fetch_array($statquery);
        
        $query = doquery("SELECT id,name FROM {{table}} ORDER BY id", "monsters");
        $page = "<u>Editovat prisery</u>
    ";
        
        if (($controlrow["gamesize"]/5) != $statrow["level"]) {
            $page .= "<span class=\"highlight\">POZOR!:</span> Levely tvojich priser sa nezhoduju s velkostou mapy. Najvissi lvl by mal byt ".($controlrow["gamesize"]/5).", tvoje lvl je ".$statrow["level"].". Prosim budz viste rozzsah mapy alebo zmensite lvl vasich priser.
    
    ";
        } else { $page .= "Levely vasich priser a velkost mapy su vybalansovane.
    
    "; }
        
        $page .= "Tukni na priseru ktoru chces modifikovat.
    
    <table width=\"50%\">\n";
        $count = 1;
        while ($row = mysql_fetch_array($query)) {
            if ($count == 1) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=editmonster:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 2; }
            else { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=editmonster:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 1; }
        }
        if (mysql_num_rows($query) == 0) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">Nenasli sa ziadne prisery.</td></tr>\n"; }
        $page .= "</table>";
        admindisplay($page, "Editovat prisery");
        
    }
    
    function editmonster($id) {
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($name == "") { $errors++; $errorlist .= "Nezadal si meno.
    "; }
            if ($maxhp == "") { $errors++; $errorlist .= "Nezadal si maximum HP.
    "; }
            if (!is_numeric($maxhp)) { $errors++; $errorlist .= "HP musí byt cislo.
    "; }
            if ($maxdam == "") { $errors++; $errorlist .= "Nezadal si maximum DMG.
    "; }
            if (!is_numeric($maxdam)) { $errors++; $errorlist .= "DMG musi byt cislo.
    "; }
            if ($armor == "") { $errors++; $errorlist .= "Nezadal si armor.
    "; }
            if (!is_numeric($armor)) { $errors++; $errorlist .= "Armor musi byt cislo.
    "; }
            if ($level == "") { $errors++; $errorlist .= "Nezadal si level.
    "; }
            if (!is_numeric($level)) { $errors++; $errorlist .= "Level musi byt cislo.
    "; }
            if ($maxexp == "") { $errors++; $errorlist .= "Nezadal si exp.
    "; }
            if (!is_numeric($maxexp)) { $errors++; $errorlist .= "Exp musi byt cislo.
    "; }
            if ($maxgold == "") { $errors++; $errorlist .= "Nezadal si kolko maximalne zlata prisera bude obsahovat.
    "; }
            if (!is_numeric($maxgold)) { $errors++; $errorlist .= "Zlato musi byt cislo.
    "; }
            
            if ($errors == 0) { 
                $query = doquery("UPDATE {{table}} SET name='$name',maxhp='$maxhp',maxdam='$maxdam',armor='$armor',level='$level',maxexp='$maxexp',maxgold='$maxgold',immune='$immune' WHERE id='$id' LIMIT 1", "monsters");
                admindisplay("Monster updated.","Editovat prisery");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Editovat prisery");
            }        
            
        }   
            
        
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "monsters");
        $row = mysql_fetch_array($query);
    
    $page = <<<END
    <u>Editovat prisery</u>
    
    
    <form action="admin.php?do=editmonster:$id" method="post">
    <table width="90%">
    <tr><td width="20%">ID:</td><td>{{id}}</td></tr>
    <tr><td width="20%">Meno:</td><td><input type="text" name="name" size="30" maxlength="30" value="{{name}}" /></td></tr>
    <tr><td width="20%">Maximum HP:</td><td><input type="text" name="maxhp" size="5" maxlength="10" value="{{maxhp}}" /></td></tr>
    <tr><td width="20%">Maximum DMG:</td><td><input type="text" name="maxdam" size="5" maxlength="10" value="{{maxdam}}" />
    <span class="small">Pozor na to aby priseri neboli moc silne.</span></td></tr>
    <tr><td width="20%">Armor:</td><td><input type="text" name="armor" size="5" maxlength="10" value="{{armor}}" />
    <span class="small">Pozor na to aby priseri neboli moc silne.</span></td></tr>
    <tr><td width="20%">Level:</td><td><input type="text" name="level" size="5" maxlength="10" value="{{level}}" />
    <span class="small">Tento atribut urcuje kde sa bude dana prisera nachadzat a ake artefakty bude obsahovat.</span></td></tr>
    <tr><td width="20%">Maximum exp:</td><td><input type="text" name="maxexp" size="5" maxlength="10" value="{{maxexp}}" />
    <span class="small">Kolko maximalne dostane hrac za zabitu priseru.</span></td></tr>
    <tr><td width="20%">Maximum zlata:</td><td><input type="text" name="maxgold" size="5" maxlength="10" value="{{maxgold}}" />
    <span class="small">Kolko maximalne dostane hrac za zabitu priseru.</span></td></tr>
    <tr><td width="20%">Aury:</td><td><select name="immune"><option value="0" {{immune0select}}>Ziadne</option><option value="1" {{immune1select}}>Utocne kuzla</option><option value="2" {{immune2select}}>Utocne a omracujuce kuzla</option></select>
    <span class="small">Zadaním aury dáte prísere schopnost odrazit urcite kuzlo.</span></td></tr>
    </table>
    <input type="submit" name="submit" value="Uloz" /> <input type="reset" name="reset" value="Reset" />
    </form>
    END;
        
        if ($row["immune"] == 1) { $row["immune1select"] = "selected=\"selected\" "; } else { $row["immune1select"] = ""; }
        if ($row["immune"] == 2) { $row["immune2select"] = "selected=\"selected\" "; } else { $row["immune2select"] = ""; }
        if ($row["immune"] == 3) { $row["immune3select"] = "selected=\"selected\" "; } else { $row["immune3select"] = ""; }
        
        $page = parsetemplate($page, $row);
        admindisplay($page, "Editovat prisery");
        
    }
    
    function spells() {
        
        $query = doquery("SELECT id,name FROM {{table}} ORDER BY id", "spells");
        $page = "<u>Editovat kuzla</u>
    Klikni na kuzlo ktore chces editovat.
    
    <table width=\"50%\">\n";
        $count = 1;
        while ($row = mysql_fetch_array($query)) {
            if ($count == 1) { $page .= "<tr><td width=\"8%\" style=\"background-color: ##000000;\">".$row["id"]."</td><td style=\"background-color: ##000000;\"><a href=\"admin.php?do=editspell:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 2; }
            else { $page .= "<tr><td width=\"8%\" style=\"background-color: ##000000;\">".$row["id"]."</td><td style=\"background-color: ##000000;\"><a href=\"admin.php?do=editspell:".$row["id"]."\">".$row["name"]."</a></td></tr>\n"; $count = 1; }
        }
        if (mysql_num_rows($query) == 0) { $page .= "<tr><td width=\"8%\" style=\"background-color: ##000000;\">Neboli najdene ziadne kuzla.</td></tr>\n"; }
        $page .= "</table>";
        admindisplay($page, "Editovat kuzla");
        
    }
    
    function editspell($id) {
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($name == "") { $errors++; $errorlist .= "Nezadal si meno.
    "; }
            if ($mp == "") { $errors++; $errorlist .= "Nebola zadana hodnota MP.
    "; }
            if (!is_numeric($mp)) { $errors++; $errorlist .= "MP musi byt cislo.
    "; }
            if ($attribute == "") { $errors++; $errorlist .= "Nezadali ste atributy.
    "; }
            if (!is_numeric($attribute)) { $errors++; $errorlist .= "Atrubuty musia byt cislo.
    "; }
            
            if ($errors == 0) { 
                $query = doquery("UPDATE {{table}} SET name='$name',mp='$mp',attribute='$attribute',type='$type' WHERE id='$id' LIMIT 1", "spells");
                admindisplay("Spell updated.","Editovat kuzla");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Editovat kuzla");
            }        
            
        }   
            
        
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "spells");
        $row = mysql_fetch_array($query);
    
    $page = <<<END
    <u>Editovat kuzla</u>
    
    
    <form action="admin.php?do=editspell:$id" method="post">
    <table width="90%">
    <tr><td width="20%">ID:</td><td>{{id}}</td></tr>
    <tr><td width="20%">Meno:</td><td><input type="text" name="name" size="30" maxlength="30" value="{{name}}" /></td></tr>
    <tr><td width="20%">MP:</td><td><input type="text" name="mp" size="5" maxlength="10" value="{{mp}}" />
    <span class="small">Kolko MP treba na dane kuzlo.</span></td></tr>
    <tr><td width="20%">Atributy:</td><td><input type="text" name="attribute" size="5" maxlength="10" value="{{attribute}}" />
    <span class="small">Je to hodnota ktora urcuje kolko HP kuzlo prida alebo vezme.</span></td></tr>
    <tr><td width="20%">Typ:</td><td><select name="type"><option value="1" {{type1select}}>Liecenie</option><option value="2" {{type2select}}>Utocne</option><option value="3" {{type3select}}>Omracujuce</option><option value="4" {{type4select}}>Zvisovanie utoku</option><option value="5" {{type5select}}>Zvisovanie obrany</option></select>
    <span class="small">
    </table>
    <input type="submit" name="submit" value="Uloz" /> <input type="reset" name="reset" value="Reset" />
    </form>
    END;
    
        if ($row["type"] == 1) { $row["type1select"] = "selected=\"selected\" "; } else { $row["type1select"] = ""; }
        if ($row["type"] == 2) { $row["type2select"] = "selected=\"selected\" "; } else { $row["type2select"] = ""; }
        if ($row["type"] == 3) { $row["type3select"] = "selected=\"selected\" "; } else { $row["type3select"] = ""; }
        if ($row["type"] == 4) { $row["type4select"] = "selected=\"selected\" "; } else { $row["type4select"] = ""; }
        if ($row["type"] == 5) { $row["type5select"] = "selected=\"selected\" "; } else { $row["type5select"] = ""; }
        
        $page = parsetemplate($page, $row);
        admindisplay($page, "Editovat kuzla");
        
    }
    
    function levels() {
    
        $query = doquery("SELECT id FROM {{table}} ORDER BY id DESC LIMIT 1", "levels");
        $row = mysql_fetch_array($query);
        
        $options = "";
        for($i=2; $i<$row["id"]; $i++) {
            $options .= "<option value=\"$i\">$i</option>\n";
        }
        
    $page = <<<END
    <u>Editovat levely</u>
    Vyber level ktorý chces zmenit.
    
    
    <form action="admin.php?do=editlevel" method="post">
    <select name="level">
    $options
    </select> 
    <input type="submit" name="go" value="Vyber" />
    </form>
    END;
    
        admindisplay($page, "Editovat levely");
        
    }
    
    function editlevel() {
    
        if (!isset($_POST["level"])) { admindisplay("Nenasli sa ziadne levely na upravu.", "Editovat levely"); die(); }
        $id = $_POST["level"];
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($_POST["one_exp"] == "") { $errors++; $errorlist .= "Nezadali ste vysku exp u Maga pre tento level.
    "; }
            if ($_POST["one_hp"] == "") { $errors++; $errorlist .= "Nezadali ste HP u Maga pre tento level.
    "; }
            if ($_POST["one_mp"] == "") { $errors++; $errorlist .= "Nezadali ste MP u Maga pre tento level.
    "; }
            if ($_POST["one_tp"] == "") { $errors++; $errorlist .= "Nezadali ste TP u Maga pre tento level.
    "; }
            if ($_POST["one_strength"] == "") { $errors++; $errorlist .= "Nezadali ste silu u Maga pre tento level.
    "; }
            if ($_POST["one_dexterity"] == "") { $errors++; $errorlist .= "Nezadali ste presnost u Maga pre tento level.
    "; }
            if ($_POST["one_spells"] == "") { $errors++; $errorlist .= "Nezdali ste Magove kuzla pre tento level.
    "; }
            if (!is_numeric($_POST["one_exp"])) { $errors++; $errorlist .= "Exp musí byt cislo.
    "; }
            if (!is_numeric($_POST["one_hp"])) { $errors++; $errorlist .= "HP musi byt cislo.
    "; }
            if (!is_numeric($_POST["one_mp"])) { $errors++; $errorlist .= "MP musi byt cislo.
    "; }
            if (!is_numeric($_POST["one_tp"])) { $errors++; $errorlist .= "TP musi byt cislo.
    "; }
            if (!is_numeric($_POST["one_strength"])) { $errors++; $errorlist .= "Sila musi byt cislo.
    "; }
            if (!is_numeric($_POST["one_dexterity"])) { $errors++; $errorlist .= "Presnost musi byt cislo.
    "; }
            if (!is_numeric($_POST["one_spells"])) { $errors++; $errorlist .= "Kuzla sa pridavaju podla ciselneho ID.
    "; }
    
            if ($_POST["two_exp"] == "") { $errors++; $errorlist .= "Nezadali ste vysku exp u Warriera pre tento level.
    "; }
            if ($_POST["two_hp"] == "") { $errors++; $errorlist .= "Nezadali ste HP u Warriera pre tento level.
    "; }
            if ($_POST["two_mp"] == "") { $errors++; $errorlist .= "Nezadali ste MP u Warriera pre tento level.
    "; }
            if ($_POST["two_tp"] == "") { $errors++; $errorlist .= "Nezadali ste TP u Warriera pre tento level.
    "; }
            if ($_POST["two_strength"] == "") { $errors++; $errorlist .= "Nezadali ste silu u Warriera pre tento level.
    "; }
            if ($_POST["two_dexterity"] == "") { $errors++; $errorlist .= "Nezadali ste presnost u Warriera pre tento level.
    "; }
            if ($_POST["two_spells"] == "") { $errors++; $errorlist .= "Nezdali ste Warrierove kuzla pre tento level.
    "; }
            if (!is_numeric($_POST["two_exp"])) { $errors++; $errorlist .= "Exp musí byt cislo.
    "; }
            if (!is_numeric($_POST["two_hp"])) { $errors++; $errorlist .= "HP musí byt cislo.
    "; }
            if (!is_numeric($_POST["two_mp"])) { $errors++; $errorlist .= "MP musí byt cislo.
    "; }
            if (!is_numeric($_POST["two_tp"])) { $errors++; $errorlist .= "TP musí byt cislo.
    "; }
            if (!is_numeric($_POST["two_strength"])) { $errors++; $errorlist .= "Sila musi byt cislo.
    "; }
            if (!is_numeric($_POST["two_dexterity"])) { $errors++; $errorlist .= "Presnost musi byt cislo.
    "; }
            if (!is_numeric($_POST["two_spells"])) { $errors++; $errorlist .= "Kuzla sa pridavaju podla ciselneho ID.
    "; }
                    
            if ($_POST["three_exp"] == "") { $errors++; $errorlist .= "Nezadali ste vysku exp u Paladina pre tento level.
    "; }
            if ($_POST["three_hp"] == "") { $errors++; $errorlist .= "Nezadali ste HP u Paladina pre tento level.
    "; }
            if ($_POST["three_mp"] == "") { $errors++; $errorlist .= "Nezadali ste MP u Paladina pre tento level.
    "; }
            if ($_POST["three_tp"] == "") { $errors++; $errorlist .= "Nezadali ste TP u Paladina pre tento level.
    "; }
            if ($_POST["three_strength"] == "") { $errors++; $errorlist .= "Nezadali ste silu u Paladina pre tento level.
    "; }
            if ($_POST["three_dexterity"] == "") { $errors++; $errorlist .= "Nezadali ste presnost u Paladina pre tento level.
    "; }
            if ($_POST["three_spells"] == "") { $errors++; $errorlist .= "Nezdali ste Paladinove kuzla pre tento level.
    "; }
            if (!is_numeric($_POST["three_exp"])) { $errors++; $errorlist .= "Exp musí byt cislo.
    "; }
            if (!is_numeric($_POST["three_hp"])) { $errors++; $errorlist .= "HP musí byt cislo.
    "; }
            if (!is_numeric($_POST["three_mp"])) { $errors++; $errorlist .= "MP musí byt cislo.
    "; }
            if (!is_numeric($_POST["three_tp"])) { $errors++; $errorlist .= "TP musí byt cislo.
    "; }
            if (!is_numeric($_POST["three_strength"])) { $errors++; $errorlist .= "Sila musi byt cislo.
    "; }
            if (!is_numeric($_POST["three_dexterity"])) { $errors++; $errorlist .= "Presnost musi byt cislo.
    "; }
            if (!is_numeric($_POST["three_spells"])) { $errors++; $errorlist .= "Kuzla sa pridavaju podla ciselneho ID.
    "; }
    
            if ($errors == 0) { 
    $updatequery = <<<END
    UPDATE {{table}} SET
    1_exp='$one_exp', 1_hp='$one_hp', 1_mp='$one_mp', 1_tp='$one_tp', 1_strength='$one_strength', 1_dexterity='$one_dexterity', 1_spells='$one_spells',
    2_exp='$two_exp', 2_hp='$two_hp', 2_mp='$two_mp', 2_tp='$two_tp', 2_strength='$two_strength', 2_dexterity='$two_dexterity', 2_spells='$two_spells',
    3_exp='$three_exp', 3_hp='$three_hp', 3_mp='$three_mp', 3_tp='$three_tp', 3_strength='$three_strength', 3_dexterity='$three_dexterity', 3_spells='$three_spells'
    WHERE id='$id' LIMIT 1
    END;
    			$query = doquery($updatequery, "levels");
                admindisplay("Level updated.","Editovat levely");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Editovat levely");
            }        
            
        }   
            
        
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "levels");
        $row = mysql_fetch_array($query);
        global $controlrow;
        $class1name = $controlrow["class1name"];
        $class2name = $controlrow["class2name"];
        $class3name = $controlrow["class3name"];
    
    $page = <<<END
    <u>Editovat levely</u>
    
    
    Hodnota Exp pozadovana v tomto panely pre urcitý level je hodnota celkových Exp ktoré hrac ma v danom levely. Vsetky ostatne hodnoty su hodnoty pripocitavajuce sa uz nadobudnutym hodnotam.
    
    
    <form action="admin.php?do=editlevel" method="post">
    <input type="hidden" name="level" value="$id" />
    <table width="90%">
    <tr><td width="20%">ID:</td><td>{{id}}</td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">$class1name Exp:</td><td><input type="text" name="one_exp" size="10" maxlength="8" value="{{1_exp}}" /></td></tr>
    <tr><td width="20%">$class1name HP:</td><td><input type="text" name="one_hp" size="5" maxlength="5" value="{{1_hp}}" /></td></tr>
    <tr><td width="20%">$class1name MP:</td><td><input type="text" name="one_mp" size="5" maxlength="5" value="{{1_mp}}" /></td></tr>
    <tr><td width="20%">$class1name TP:</td><td><input type="text" name="one_tp" size="5" maxlength="5" value="{{1_tp}}" /></td></tr>
    <tr><td width="20%">$class1name sila:</td><td><input type="text" name="one_strength" size="5" maxlength="5" value="{{1_strength}}" /></td></tr>
    <tr><td width="20%">$class1name presnost:</td><td><input type="text" name="one_dexterity" size="5" maxlength="5" value="{{1_dexterity}}" /></td></tr>
    <tr><td width="20%">$class1name kuzla:</td><td><input type="text" name="one_spells" size="5" maxlength="3" value="{{1_spells}}" /></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">$class2name Exp:</td><td><input type="text" name="two_exp" size="10" maxlength="8" value="{{2_exp}}" /></td></tr>
    <tr><td width="20%">$class2name HP:</td><td><input type="text" name="two_hp" size="5" maxlength="5" value="{{2_hp}}" /></td></tr>
    <tr><td width="20%">$class2name MP:</td><td><input type="text" name="two_mp" size="5" maxlength="5" value="{{2_mp}}" /></td></tr>
    <tr><td width="20%">$class2name TP:</td><td><input type="text" name="two_tp" size="5" maxlength="5" value="{{2_tp}}" /></td></tr>
    <tr><td width="20%">$class2name sila:</td><td><input type="text" name="two_strength" size="5" maxlength="5" value="{{2_strength}}" /></td></tr>
    <tr><td width="20%">$class2name presnost:</td><td><input type="text" name="two_dexterity" size="5" maxlength="5" value="{{2_dexterity}}" /></td></tr>
    <tr><td width="20%">$class2name kuzla:</td><td><input type="text" name="two_spells" size="5" maxlength="3" value="{{2_spells}}" /></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">$class3name Exp:</td><td><input type="text" name="three_exp" size="10" maxlength="8" value="{{3_exp}}" /></td></tr>
    <tr><td width="20%">$class3name HP:</td><td><input type="text" name="three_hp" size="5" maxlength="5" value="{{3_hp}}" /></td></tr>
    <tr><td width="20%">$class3name MP:</td><td><input type="text" name="three_mp" size="5" maxlength="5" value="{{3_mp}}" /></td></tr>
    <tr><td width="20%">$class3name TP:</td><td><input type="text" name="three_tp" size="5" maxlength="5" value="{{3_tp}}" /></td></tr>
    <tr><td width="20%">$class3name sila:</td><td><input type="text" name="three_strength" size="5" maxlength="5" value="{{3_strength}}" /></td></tr>
    <tr><td width="20%">$class3name presnost:</td><td><input type="text" name="three_dexterity" size="5" maxlength="5" value="{{3_dexterity}}" /></td></tr>
    <tr><td width="20%">$class3name kuzla:</td><td><input type="text" name="three_spells" size="5" maxlength="3" value="{{3_spells}}" /></td></tr>
    </table>
    <input type="submit" name="submit" value="Uloz" /> <input type="reset" name="reset" value="Reset" />
    </form>
    END;
        
        $page = parsetemplate($page, $row);
        admindisplay($page, "Editovat levely");
        
    }
    
    function users() {
        
        $query = doquery("SELECT id,username FROM {{table}} ORDER BY id", "users");
        $page = "<u>Upravit pouzívatela</u>
    Klikni na pozivatela ktoreho chces upravit.
    
    <table width=\"50%\">\n";
        $count = 1;
        while ($row = mysql_fetch_array($query)) {
            if ($count == 1) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=edituser:".$row["id"]."\">".$row["username"]."</a></td></tr>\n"; $count = 2; }
            else { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">".$row["id"]."</td><td style=\"background-color: #000000;\"><a href=\"admin.php?do=edituser:".$row["id"]."\">".$row["username"]."</a></td></tr>\n"; $count = 1; }
        }
        if (mysql_num_rows($query) == 0) { $page .= "<tr><td width=\"8%\" style=\"background-color: #000000;\">Neboli najdeny ziadny uzivatelia.</td></tr>\n"; }
        $page .= "</table>";
        admindisplay($page, "Upravit pouzívatela");
    
    }
    
    function edituser($id) {
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($email == "") { $errors++; $errorlist .= "Nezadali ste e-mail.
    "; }
            if ($verify == "") { $errors++; $errorlist .= "Nezadali ste starus overenia.
    "; }
            if ($charname == "") { $errors++; $errorlist .= "Nezadali ste meno postavy.
    "; }
            if ($authlevel == "") { $errors++; $errorlist .= "Nezadali ste GM level.
    "; }
            if ($latitude == "") { $errors++; $errorlist .= "Nezadali ste zemsku sirku.
    "; }
            if ($longitude == "") { $errors++; $errorlist .= "Nezadali ste zemsku dlzku.
    "; }
            if ($difficulty == "") { $errors++; $errorlist .= "Nezadali ste obtiaznost.
    "; }
            if ($charclass == "") { $errors++; $errorlist .= "Nezadali ste Class.
    "; }
            if ($currentaction == "") { $errors++; $errorlist .= "Nezadali ste momentalnu poziciu.
    "; }
            if ($currentfight == "") { $errors++; $errorlist .= "Nezadali ste ci je uzivatel v boji alebo nie.
    "; }
            
            if ($currentmonster == "") { $errors++; $errorlist .= "Nezadali ste s akym protivnikom uzivatel bojuje.
    "; }
            if ($currentmonsterhp == "") { $errors++; $errorlist .= "Nezadali ste protivnikove HP.
    "; }
            if ($currentmonstersleep == "") { $errors++; $errorlist .= "Nezdali ste protivnikov status(obraceny).
    "; }
            if ($currentmonsterimmune == "") { $errors++; $errorlist .= "Nezadali ste protivnikove Aury.
    "; }
            if ($currentuberdamage == "") { $errors++; $errorlist .= "Nezadali ste protivnikov DMG.
    "; }
            if ($currentuberdefense == "") { $errors++; $errorlist .= "Nezadali ste protivnikov Armor.
    "; }
            if ($currenthp == "") { $errors++; $errorlist .= "Nezadali ste protivnikove HP.
    "; }
            if ($currentmp == "") { $errors++; $errorlist .= "Nezadali ste protivnikove MP.
    "; }
            if ($currenttp == "") { $errors++; $errorlist .= "Nezadali ste protivnikove TP.
    "; }
            if ($maxhp == "") { $errors++; $errorlist .= "Nezadali ste uzivatelove HP.
    "; }
    
            if ($maxmp == "") { $errors++; $errorlist .= "Nezadali ste uzivatelove MP.
    "; }
            if ($maxtp == "") { $errors++; $errorlist .= "Nezadali ste uzivatelove TP.
    "; }
            if ($level == "") { $errors++; $errorlist .= "Nezadali ste uzivatelov level.
    "; }
            if ($gold == "") { $errors++; $errorlist .= "Nezadali ste pocet uzivatelovych zlatiek.
    "; }
            if ($experience == "") { $errors++; $errorlist .= "Nezadali ste uzivatelove Exp.
    "; }
            if ($goldbonus == "") { $errors++; $errorlist .= "Nezadali ste uzivatelov bonus vo vztahu k zlatu.
    "; }
            if ($expbonus == "") { $errors++; $errorlist .= "Nezadali ste uzivatelov bonus vo vztahu k Exp.
    "; }
            if ($strength == "") { $errors++; $errorlist .= "Nezadali ste uzivatelovu silu.
    "; }
            if ($dexterity == "") { $errors++; $errorlist .= "Nezadali ste uzivatelovu presnost.
    "; }
            if ($attackpower == "") { $errors++; $errorlist .= "Nezadali ste Utocnu silu.
    "; }
    
            if ($defensepower == "") { $errors++; $errorlist .= "Nezadali ste Obrannu silu.
    "; }
            if ($weaponid == "") { $errors++; $errorlist .= "Nezadali ste ID zbrane ktoru uzivatel nosi.
    "; }
            if ($armorid == "") { $errors++; $errorlist .= "Nezadali ste ID brnenia ktore uzivatel nosi.
    "; }
            if ($shieldid == "") { $errors++; $errorlist .= "Nezadali ste ID stitu ktory uzivatel nosi.
    "; }
            if ($slot1id == "") { $errors++; $errorlist .= "Nezadali ste ID prveho batohu ktory uzivatel nosi.
    "; }
            if ($slot2id == "") { $errors++; $errorlist .= "Nezadali ste ID druheho batohu ktory uzivatel nosi.
    "; }
            if ($slot3id == "") { $errors++; $errorlist .= "Nezadali ste ID tretieho batohu ktory uzivatel nosi.
    "; }
            if ($weaponname == "") { $errors++; $errorlist .= "Nezadali ste meno zbrane.
    "; }
            if ($armorname == "") { $errors++; $errorlist .= "Nezadali ste meno brnenia.
    "; }
            if ($shieldname == "") { $errors++; $errorlist .= "Nezadali ste meno stitu.
    "; }
    
            if ($slot1name == "") { $errors++; $errorlist .= "Nezadali ste meno prveho batohu.
    "; }
            if ($slot2name == "") { $errors++; $errorlist .= "Nezadali ste meno druheho batohu.
    "; }
            if ($slot3name == "") { $errors++; $errorlist .= "Nezadali ste meno tretieho batohu.
    "; }
            if ($dropcode == "") { $errors++; $errorlist .= "Nezadali ste Drop code.
    "; }
            if ($spells == "") { $errors++; $errorlist .= "Nezadali ste kuzla ktore uzivatel ovlada.
    "; }
            if ($towns == "") { $errors++; $errorlist .= "Nezadali ste mesta do ktorych uzivatel ma pristup.
    "; }
            
            if (!is_numeric($authlevel)) { $errors++; $errorlist .= "Nezadali ste GM level v spravnom formate.
    "; }
            if (!is_numeric($latitude)) { $errors++; $errorlist .= "Zemepisna sirka musi byt cislo.
    "; }
            if (!is_numeric($longitude)) { $errors++; $errorlist .= "Zemepisna dlzka musi byt cislo.
    "; }
            if (!is_numeric($difficulty)) { $errors++; $errorlist .= "Nezadali ste obtiaznost v spravnom formate.
    "; }
            if (!is_numeric($charclass)) { $errors++; $errorlist .= "Class nebol zadany v spravnom formate.
    "; }
            if (!is_numeric($currentfight)) { $errors++; $errorlist .= "To ci je uzivatel v boji alebo nie musi byt vyadrene cislom.
    "; }
            if (!is_numeric($currentmonster)) { $errors++; $errorlist .= "Meno protivnika musi byt vyadre jeho ID. cize cislom(napr.2).
    "; }
            if (!is_numeric($currentmonsterhp)) { $errors++; $errorlist .= "HP musi byt cislo.
    "; }
            if (!is_numeric($currentmonstersleep)) { $errors++; $errorlist .= "Status protivnika musi byt vyadreny cislom.
    "; }
            
            if (!is_numeric($currentmonsterimmune)) { $errors++; $errorlist .= "Protivnikove Aury musia byt vyadrene cislom.
    "; }
            if (!is_numeric($currentuberdamage)) { $errors++; $errorlist .= "DMG musi byt vyadreny cislom.
    "; }
            if (!is_numeric($currentuberdefense)) { $errors++; $errorlist .= "Armor musi byt cislo.
    "; }
            if (!is_numeric($currenthp)) { $errors++; $errorlist .= "HP musia byt cislo.
    "; }
            if (!is_numeric($currentmp)) { $errors++; $errorlist .= "MP musia byt cislo.
    "; }
            if (!is_numeric($currenttp)) { $errors++; $errorlist .= "TP musia byt cislo.
    "; }
            if (!is_numeric($maxhp)) { $errors++; $errorlist .= "HP musia byt cislo.
    "; }
            if (!is_numeric($maxmp)) { $errors++; $errorlist .= "MP musia byt cislo.
    "; }
            if (!is_numeric($maxtp)) { $errors++; $errorlist .= "TP musia byt cislo.
    "; }
            if (!is_numeric($level)) { $errors++; $errorlist .= "Level musi byt cislo.
    "; }
            
            if (!is_numeric($gold)) { $errors++; $errorlist .= "Pocet zlata musi byt vyadreny cislom.
    "; }
            if (!is_numeric($experience)) { $errors++; $errorlist .= "Exp musia byt cislo.
    "; }
            if (!is_numeric($goldbonus)) { $errors++; $errorlist .= "Bonusy musia byt cislo.
    "; }
            if (!is_numeric($expbonus)) { $errors++; $errorlist .= "Bonusy musia byt cislo.
    "; }
            if (!is_numeric($strength)) { $errors++; $errorlist .= "Sila musi byt cislo.
    "; }
            if (!is_numeric($dexterity)) { $errors++; $errorlist .= "Presnost musi byt cislo.
    "; }
            if (!is_numeric($attackpower)) { $errors++; $errorlist .= "Utocna sila musi byt cislo.
    "; }
            if (!is_numeric($defensepower)) { $errors++; $errorlist .= "Obranna sila musi byt cislo.
    "; }
            if (!is_numeric($weaponid)) { $errors++; $errorlist .= "ID musia byt cisla.
    "; }
            if (!is_numeric($armorid)) { $errors++; $errorlist .= "ID musia byt cisla.
    "; }
            
            if (!is_numeric($shieldid)) { $errors++; $errorlist .= "ID musia byt cisla.
    "; }
            if (!is_numeric($slot1id)) { $errors++; $errorlist .= "ID musia byt cisla.
    "; }
            if (!is_numeric($slot2id)) { $errors++; $errorlist .= "ID musia byt cisla.
    "; }
            if (!is_numeric($slot3id)) { $errors++; $errorlist .= "ID musia byt cisla.
    "; }
            if (!is_numeric($dropcode)) { $errors++; $errorlist .= "Drop Code musi byt cislo.
    "; }
            
            if ($errors == 0) { 
    $updatequery = <<<END
    UPDATE {{table}} SET
    email="$email", verify="$verify", charname="$charname", authlevel="$authlevel", latitude="$latitude",
    longitude="$longitude", difficulty="$difficulty", charclass="$charclass", currentaction="$currentaction", currentfight="$currentfight",
    currentmonster="$currentmonster", currentmonsterhp="$currentmonsterhp", currentmonstersleep="$currentmonstersleep", currentmonsterimmune="$currentmonsterimmune", currentuberdamage="$currentuberdamage",
    currentuberdefense="$currentuberdefense", currenthp="$currenthp", currentmp="$currentmp", currenttp="$currenttp", maxhp="$maxhp",
    maxmp="$maxmp", maxtp="$maxtp", level="$level", gold="$gold", experience="$experience",
    goldbonus="$goldbonus", expbonus="$expbonus", strength="$strength", dexterity="$dexterity", attackpower="$attackpower",
    defensepower="$defensepower", weaponid="$weaponid", armorid="$armorid", shieldid="$shieldid", slot1id="$slot1id",
    slot2id="$slot2id", slot3id="$slot3id", weaponname="$weaponname", armorname="$armorname", shieldname="$shieldname",
    slot1name="$slot1name", slot2name="$slot2name", slot3name="$slot3name", dropcode="$dropcode", spells="$spells",
    towns="$towns" WHERE id="$id" LIMIT 1
    END;
    			$query = doquery($updatequery, "users");
                admindisplay("User updated.","Upravit pouzívatela");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znovu.", "Upravit pouzívatela");
            }        
            
        }   
            
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "users");
        $row = mysql_fetch_array($query);
        global $controlrow;
        $diff1name = $controlrow["diff1name"];
        $diff2name = $controlrow["diff2name"];
        $diff3name = $controlrow["diff3name"];
        $class1name = $controlrow["class1name"];
        $class2name = $controlrow["class2name"];
        $class3name = $controlrow["class3name"];
    
    $page = <<<END
    <u>Upravit pouzívatela</u>
    
    
    <form action="admin.php?do=edituser:$id" method="post">
    <table width="90%">
    <tr><td width="20%">ID:</td><td>{{id}}</td></tr>
    <tr><td width="20%">Meno pouzivatela:</td><td>{{username}}</td></tr>
    <tr><td width="20%">Email:</td><td><input type="text" name="email" size="30" maxlength="100" value="{{email}}" /></td></tr>
    <tr><td width="20%">Overenie:</td><td><input type="text" name="verify" size="30" maxlength="8" value="{{verify}}" /></td></tr>
    <tr><td width="20%">Meno charakteru:</td><td><input type="text" name="charname" size="30" maxlength="30" value="{{charname}}" /></td></tr>
    <tr><td width="20%">Datum registracie:</td><td>{{regdate}}</td></tr>
    <tr><td width="20%">Naposledy online:</td><td>{{onlinetime}}</td></tr>
    <tr><td width="20%">GM Level:</td><td><select name="authlevel"><option value="0" {{auth0select}}>Uzivatel</option><option value="1" {{auth1select}}>Admin</option><option value="2" {{auth2select}}>Ban</option></select>
    <span class="small">Pri pouziti moznosti Ban uzivatel nebude mat pristum do hry.</span></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">Zemepisna sirka:</td><td><input type="text" name="latitude" size="5" maxlength="6" value="{{latitude}}" /></td></tr>
    <tr><td width="20%">Zemepisna dlzka:</td><td><input type="text" name="longitude" size="5" maxlength="6" value="{{longitude}}" /></td></tr>
    <tr><td width="20%">Obtiaznost:</td><td><select name="difficulty"><option value="1" {{diff1select}}>$diff1name</option><option value="2" {{diff2select}}>$diff2name</option><option value="3" {{diff3select}}>$diff3name</option></select></td></tr>
    <tr><td width="20%">Class:</td><td><select name="charclass"><option value="1" {{class1select}}>$class1name</option><option value="2" {{class2select}}>$class2name</option><option value="3" {{class3select}}>$class3name</option></select></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">Momentalny status:</td><td><input type="text" name="currentaction" size="30" maxlength="30" value="{{currentaction}}" /></td></tr>
    <tr><td width="20%">Boj:</td><td><input type="text" name="currentfight" size="5" maxlength="4" value="{{currentfight}}" /></td></tr>
    <tr><td width="20%">Protivnik:</td><td><input type="text" name="currentmonster" size="5" maxlength="6" value="{{currentmonster}}" /></td></tr>
    <tr><td width="20%">Protivnikove HP:</td><td><input type="text" name="currentmonsterhp" size="5" maxlength="6" value="{{currentmonsterhp}}" /></td></tr>
    <tr><td width="20%">Protivnikov status:</td><td><input type="text" name="currentmonsterimmune" size="5" maxlength="3" value="{{currentmonsterimmune}}" /></td></tr>
    <tr><td width="20%">Protivnikove Aury:</td><td><input type="text" name="currentmonstersleep" size="5" maxlength="3" value="{{currentmonstersleep}}" /></td></tr>
    <tr><td width="20%">Protivnikov DMG:</td><td><input type="text" name="currentuberdamage" size="5" maxlength="3" value="{{currentuberdamage}}" /></td></tr>
    <tr><td width="20%">Protivnikov armor:</td><td><input type="text" name="currentuberdefense" size="5" maxlength="3" value="{{currentuberdefense}}" /></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">HP:</td><td><input type="text" name="currenthp" size="5" maxlength="6" value="{{currenthp}}" /></td></tr>
    <tr><td width="20%">MP:</td><td><input type="text" name="currentmp" size="5" maxlength="6" value="{{currentmp}}" /></td></tr>
    <tr><td width="20%">TP:</td><td><input type="text" name="currenttp" size="5" maxlength="6" value="{{currenttp}}" /></td></tr>
    <tr><td width="20%">Max HP:</td><td><input type="text" name="maxhp" size="5" maxlength="6" value="{{maxhp}}" /></td></tr>
    <tr><td width="20%">Max MP:</td><td><input type="text" name="maxmp" size="5" maxlength="6" value="{{maxmp}}" /></td></tr>
    <tr><td width="20%">Max TP:</td><td><input type="text" name="maxtp" size="5" maxlength="6" value="{{maxtp}}" /></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">Level:</td><td><input type="text" name="level" size="5" maxlength="5" value="{{level}}" /></td></tr>
    <tr><td width="20%">Zlato:</td><td><input type="text" name="gold" size="10" maxlength="8" value="{{gold}}" /></td></tr>
    <tr><td width="20%">Exp:</td><td><input type="text" name="experience" size="10" maxlength="8" value="{{experience}}" /></td></tr>
    <tr><td width="20%">Bonus(zlato):</td><td><input type="text" name="goldbonus" size="5" maxlength="5" value="{{goldbonus}}" /></td></tr>
    <tr><td width="20%">Bonus(Exp):</td><td><input type="text" name="expbonus" size="5" maxlength="5" value="{{expbonus}}" /></td></tr>
    <tr><td width="20%">Sila:</td><td><input type="text" name="strength" size="5" maxlength="5" value="{{strength}}" /></td></tr>
    <tr><td width="20%">Presnost:</td><td><input type="text" name="dexterity" size="5" maxlength="5" value="{{dexterity}}" /></td></tr>
    <tr><td width="20%">Utocna sila:</td><td><input type="text" name="attackpower" size="5" maxlength="5" value="{{attackpower}}" /></td></tr>
    <tr><td width="20%">Obranna sila:</td><td><input type="text" name="defensepower" size="5" maxlength="5" value="{{defensepower}}" /></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">ID zbrane:</td><td><input type="text" name="weaponid" size="5" maxlength="5" value="{{weaponid}}" /></td></tr>
    <tr><td width="20%">ID brnenia:</td><td><input type="text" name="armorid" size="5" maxlength="5" value="{{armorid}}" /></td></tr>
    <tr><td width="20%">ID stitu:</td><td><input type="text" name="shieldid" size="5" maxlength="5" value="{{shieldid}}" /></td></tr>
    <tr><td width="20%">ID batohu 1:</td><td><input type="text" name="slot1id" size="5" maxlength="5" value="{{slot1id}}" /></td></tr>
    <tr><td width="20%">ID batohu 2:</td><td><input type="text" name="slot2id" size="5" maxlength="5" value="{{slot2id}}" /></td></tr>
    <tr><td width="20%">ID batohu 3:</td><td><input type="text" name="slot3id" size="5" maxlength="5" value="{{slot3id}}" /></td></tr>
    <tr><td width="20%">Meno zbrane:</td><td><input type="text" name="weaponname" size="30" maxlength="30" value="{{weaponname}}" /></td></tr>
    <tr><td width="20%">Meno brnenia:</td><td><input type="text" name="armorname" size="30" maxlength="30" value="{{armorname}}" /></td></tr>
    <tr><td width="20%">Meno stitu:</td><td><input type="text" name="shieldname" size="30" maxlength="30" value="{{shieldname}}" /></td></tr>
    <tr><td width="20%">Meno batohu 1:</td><td><input type="text" name="slot1name" size="30" maxlength="30" value="{{slot1name}}" /></td></tr>
    <tr><td width="20%">Meno batohu 2:</td><td><input type="text" name="slot2name" size="30" maxlength="30" value="{{slot2name}}" /></td></tr>
    <tr><td width="20%">Meno batohu 3:</td><td><input type="text" name="slot3name" size="30" maxlength="30" value="{{slot3name}}" /></td></tr>
    
    <tr><td colspan="2" style="background-color:#cccccc;"></td></tr>
    
    <tr><td width="20%">Drop Code:</td><td><input type="text" name="dropcode" size="5" maxlength="8" value="{{dropcode}}" /></td></tr>
    <tr><td width="20%">Kuzla:</td><td><input type="text" name="spells" size="50" maxlength="50" value="{{spells}}" />
    <span class="small">Sem sa ako v celom panely zapisuju ID kuziel ktore uzivatel uz ovlada.</span></td></tr>
    <tr><td width="20%">Mesta:</td><td><input type="text" name="towns" size="50" maxlength="50" value="{{towns}}" />
    <span class="small">Sem zadajte ID miest kde ma uzivatel pristup.</span></td></tr>
    
    </table>
    <input type="submit" name="submit" value="Uloz" /> <input type="reset" name="reset" value="Reset" />
    </form>
    END;
    
        if ($row["authlevel"] == 0) { $row["auth0select"] = "selected=\"selected\" "; } else { $row["auth0select"] = ""; }
        if ($row["authlevel"] == 1) { $row["auth1select"] = "selected=\"selected\" "; } else { $row["auth1select"] = ""; }
        if ($row["authlevel"] == 2) { $row["auth2select"] = "selected=\"selected\" "; } else { $row["auth2select"] = ""; }
        if ($row["charclass"] == 1) { $row["class1select"] = "selected=\"selected\" "; } else { $row["class1select"] = ""; }
        if ($row["charclass"] == 2) { $row["class2select"] = "selected=\"selected\" "; } else { $row["class2select"] = ""; }
        if ($row["charclass"] == 3) { $row["class3select"] = "selected=\"selected\" "; } else { $row["class3select"] = ""; }
        if ($row["difficulty"] == 1) { $row["diff1select"] = "selected=\"selected\" "; } else { $row["diff1select"] = ""; }
        if ($row["difficulty"] == 2) { $row["diff2select"] = "selected=\"selected\" "; } else { $row["diff2select"] = ""; }
        if ($row["difficulty"] == 3) { $row["diff3select"] = "selected=\"selected\" "; } else { $row["diff3select"] = ""; }
        
        $page = parsetemplate($page, $row);
        admindisplay($page, "Upravit pouzívatela");
        
    }
    
    function addnews() {
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            $errors = 0;
            $errorlist = "";
            if ($content == "") { $errors++; $errorlist .= "Nezadali ste obsah.
    "; }
            
            if ($errors == 0) { 
                $query = doquery("INSERT INTO {{table}} SET id='',postdate=NOW(),content='$content'", "news");
                admindisplay("Pridali ste novy oznam.","Pridat nové oznámenie");
            } else {
                admindisplay("Errors:
    <div style=\"color:red;\">$errorlist</div>
    Skuste znova.", "Pridat nové oznámenie");
            }        
            
        }   
            
    $page = <<<END
    <u>Pridat nové oznámenie</u>
    
    
    <form action="admin.php?do=news" method="post">
    Sem napíste obsah vaseho oznamu a potom stlacte Odoslat.
    
    <textarea name="content" rows="5" cols="50"></textarea>
    
    <input type="submit" name="submit" value="Odoslat" /> <input type="reset" name="reset" value="Reset" />
    </form>
    END;
        
        admindisplay($page, "Pridat nové oznámenie");
        
    }
        
    ?>
    connect.php

    Code:
    <?php 
    
    $dbsettings = Array(
            "server"        => "localhost",     
            "user"          => "root",              
            "pass"          => "heslo",            
            "name"          => "mmorpg",            
            "prefix"        => "dk",            
            "secretword"    => "dk");             
    
    ?>
    cookies.php

    Code:
    <?php 
    
    function checkcookies() {
    include('connect.php');
    $row = false;
    if (isset($_COOKIE["dkgame"])) {
    $theuser = explode(" ",$_COOKIE["dkgame"]);
    $query = doquery("SELECT * FROM {{table}} WHERE username='$theuser[1]'", "users");
    if (mysql_num_rows($query) != 1) { die("Nastal problem s cookies (Error 1). Vymazte svoje cookies a skuste znova."); }
    $row = mysql_fetch_array($query);
    if ($row["id"] != $theuser[0]) { die("Nastal problem s cookies (Error 2). Vymazte svoje cookies a skuste znova."); }
    if (md5($row["password"] . "--" . $dbsettings["secretword"]) !== $theuser[2]) { die("Nastal problem s cookies (Error 3). Vymazte svoje cookies a skuste znova."); }
    $newcookie = implode(" ",$theuser);
    if ($theuser[3] == 1) { $expiretime = time()+31536000; } else { $expiretime = 0; }
    setcookie ("dkgame", $newcookie, $expiretime, "/", "", 0);
    $onlinequery = doquery("UPDATE {{table}} SET onlinetime=NOW() WHERE id='$theuser[0]' LIMIT 1", "users");
    }
     return $row;
    }
    
    ?>
    explore.php

    Code:
    <?php 
    
    function move() {
        
        global $userrow, $controlrow;
        
        if ($userrow["currentaction"] == "Fighting") { header("Location: index.php?do=fight"); die(); }
        
        $latitude = $userrow["latitude"];
        $longitude = $userrow["longitude"];
        if (isset($_POST["north"])) { $latitude++; if ($latitude > $controlrow["gamesize"]) { $latitude = $controlrow["gamesize"]; } }
        if (isset($_POST["south"])) { $latitude--; if ($latitude < ($controlrow["gamesize"]*-1)) { $latitude = ($controlrow["gamesize"]*-1); } }
        if (isset($_POST["east"])) { $longitude++; if ($longitude > $controlrow["gamesize"]) { $longitude = $controlrow["gamesize"]; } }
        if (isset($_POST["west"])) { $longitude--; if ($longitude < ($controlrow["gamesize"]*-1)) { $longitude = ($controlrow["gamesize"]*-1); } }
        
        $townquery = doquery("SELECT id FROM {{table}} WHERE latitude='$latitude' AND longitude='$longitude' LIMIT 1", "towns");
        if (mysql_num_rows($townquery) > 0) {
            $townrow = mysql_fetch_array($townquery);
            include('mesta.php');
            travelto($townrow["id"], false);
            die();
        }
        
        $chancetofight = rand(1,5);
        if ($chancetofight == 1) { 
            $action = "currentaction='Fighting', currentfight='1',";
        } else {
            $action = "currentaction='Exploring',";
        }
    
        
        $updatequery = doquery("UPDATE {{table}} SET $action latitude='$latitude', longitude='$longitude', dropcode='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
        header("Location: index.php");
        
    }
    
    ?>
    fight.php

    Code:
    <?php 
    
    function fight() { 
        
        global $userrow, $controlrow;
        if ($userrow["currentaction"] != "Fighting") { display("Nesnaz sa podvadzat!", "Error"); }
        $pagearray = array();
        $playerisdead = 0;
        
        $pagearray["magiclist"] = "";
        $userspells = explode(",",$userrow["spells"]);
        $spellquery = doquery("SELECT id,name FROM {{table}}", "spells");
        while ($spellrow = mysql_fetch_array($spellquery)) {
            $spell = false;
            foreach ($userspells as $a => $b) {
                if ($b == $spellrow["id"]) { $spell = true; }
            }
            if ($spell == true) {
                $pagearray["magiclist"] .= "<option value=\"".$spellrow["id"]."\">".$spellrow["name"]."</option>\n";
            }
            unset($spell);
        }
        if ($pagearray["magiclist"] == "") { $pagearray["magiclist"] = "<option value=\"0\">Ziadne</option>\n"; }
        $magiclist = $pagearray["magiclist"];
        
        $chancetoswingfirst = 1;
    
        
        if ($userrow["currentfight"] == 1) {
            
            if ($userrow["latitude"] < 0) { $userrow["latitude"] *= -1; } 
            if ($userrow["longitude"] < 0) { $userrow["longitude"] *= -1; } 
            $maxlevel = floor(max($userrow["latitude"]+5, $userrow["longitude"]+5) / 5); 
            if ($maxlevel < 1) { $maxlevel = 1; }
            $minlevel = $maxlevel - 2;
            if ($minlevel < 1) { $minlevel = 1; }
            
            
            
            $monsterquery = doquery("SELECT * FROM {{table}} WHERE level>='$minlevel' AND level<='$maxlevel' ORDER BY RAND() LIMIT 1", "monsters");
            $monsterrow = mysql_fetch_array($monsterquery);
            $userrow["currentmonster"] = $monsterrow["id"];
            $userrow["currentmonsterhp"] = rand((($monsterrow["maxhp"]/5)*4),$monsterrow["maxhp"]);
            if ($userrow["difficulty"] == 2) { $userrow["currentmonsterhp"] = ceil($userrow["currentmonsterhp"] * $controlrow["diff2mod"]); }
            if ($userrow["difficulty"] == 3) { $userrow["currentmonsterhp"] = ceil($userrow["currentmonsterhp"] * $controlrow["diff3mod"]); }
            $userrow["currentmonstersleep"] = 0;
            $userrow["currentmonsterimmune"] = $monsterrow["immune"];
            
            $chancetoswingfirst = rand(1,10) + ceil(sqrt($userrow["dexterity"]));
            if ($chancetoswingfirst > (rand(1,7) + ceil(sqrt($monsterrow["maxdam"])))) { $chancetoswingfirst = 1; } else { $chancetoswingfirst = 0; }
            
            unset($monsterquery);
            unset($monsterrow);
            
        }
        
        
        $monsterquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["currentmonster"]."' LIMIT 1", "monsters");
        $monsterrow = mysql_fetch_array($monsterquery);
        $pagearray["monstername"] = $monsterrow["name"];
        
       
        if (isset($_POST["run"])) {
    
            $chancetorun = rand(4,10) + ceil(sqrt($userrow["dexterity"]));
            if ($chancetorun > (rand(1,5) + ceil(sqrt($monsterrow["maxdam"])))) { $chancetorun = 1; } else { $chancetorun = 0; }
            
            if ($chancetorun == 0) { 
                $pagearray["yourturn"] = "Pokusil si sa ujst ale tvoj protivnik ta zastavil!
    
    ";
                $pagearray["monsterhp"] = "Protivnikove HP: " . $userrow["currentmonsterhp"] . "
    
    ";
                $pagearray["monsterturn"] = "";
                if ($userrow["currentmonstersleep"] != 0) { 
                    $chancetowake = rand(1,15);
                    if ($chancetowake > $userrow["currentmonstersleep"]) {
                        $userrow["currentmonstersleep"] = 0;
                        $pagearray["monsterturn"] .= "Tvoj protivnik sa zobudil.
    ";
                    } else {
                        $pagearray["monsterturn"] .= "Tvoj protivnik stale spi.
    ";
                    }
                }
                if ($userrow["currentmonstersleep"] == 0) { 
                    $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"]));
                    if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); }
                    if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); }
                    $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4);
                    $tododge = rand(1,150);
                    if ($tododge <= sqrt($userrow["dexterity"])) {
                        $tohit = 0; $pagearray["monsterturn"] .= "Odrazil si protivnikov utok.
    ";
                        $persondamage = 0;
                    } else {
                        $persondamage = $tohit - $toblock;
                        if ($persondamage < 1) { $persondamage = 1; }
                        if ($userrow["currentuberdefense"] != 0) {
                            $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100));
                        }
                        if ($persondamage < 1) { $persondamage = 1; }
                    }
                    $pagearray["monsterturn"] .= "Protivnik ta zranil a pripravil o $persondamage HP.
    
    ";
                    $userrow["currenthp"] -= $persondamage;
                    if ($userrow["currenthp"] <= 0) {
                        $newgold = ceil($userrow["gold"]/2);
                        $newhp = ceil($userrow["maxhp"]/4);
                        $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='In Town',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                        $playerisdead = 1;
                    }
                }
            }
    
            $updatequery = doquery("UPDATE {{table}} SET currentaction='Exploring' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
            header("Location: index.php");
            die();
            
        
        } elseif (isset($_POST["fight"])) {
            
            
            $pagearray["yourturn"] = "";
            $tohit = ceil(rand($userrow["attackpower"]*.75,$userrow["attackpower"])/3);
            $toexcellent = rand(1,150);
            if ($toexcellent <= sqrt($userrow["strength"])) { $tohit *= 2; $pagearray["yourturn"] .= "Skvely zasah!
    "; }
            $toblock = ceil(rand($monsterrow["armor"]*.75,$monsterrow["armor"])/3);        
            $tododge = rand(1,200);
            if ($tododge <= sqrt($monsterrow["armor"])) { 
                $tohit = 0; $pagearray["yourturn"] .= "Tvoj protivnik odrazil utok.
    "; 
                $monsterdamage = 0;
            } else {
                $monsterdamage = $tohit - $toblock;
                if ($monsterdamage < 1) { $monsterdamage = 1; }
                if ($userrow["currentuberdamage"] != 0) {
                    $monsterdamage += ceil($monsterdamage * ($userrow["currentuberdamage"]/100));
                }
            }
            $pagearray["yourturn"] .= "Zranil si svojho protivnika a zobral si mu $monsterdamage HP.
    
    ";
            $userrow["currentmonsterhp"] -= $monsterdamage;
            $pagearray["monsterhp"] = "Monster's HP: " . $userrow["currentmonsterhp"] . "
    
    ";
            if ($userrow["currentmonsterhp"] <= 0) {
                $updatequery = doquery("UPDATE {{table}} SET currentmonsterhp='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                header("Location: index.php?do=victory");
                die();
            }
            
            
            $pagearray["monsterturn"] = "";
            if ($userrow["currentmonstersleep"] != 0) { 
                $chancetowake = rand(1,15);
                if ($chancetowake > $userrow["currentmonstersleep"]) {
                    $userrow["currentmonstersleep"] = 0;
                    $pagearray["monsterturn"] .= "Tvoj protivnik sa zobudil.
    ";
                    } else {
                    $pagearray["monsterturn"] .= "Tvoj protivnik stale spi.
    ";
                }
            }
            if ($userrow["currentmonstersleep"] == 0) { 
                $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"]));
                if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); }
                if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); }
                $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4);
                $tododge = rand(1,150);
                if ($tododge <= sqrt($userrow["dexterity"])) {
                    $tohit = 0; $pagearray["monsterturn"] .= "Odrazil si protivnikov utok.
    ";
                    $persondamage = 0;
                } else {
                    $persondamage = $tohit - $toblock;
                    if ($persondamage < 1) { $persondamage = 1; }
                    if ($userrow["currentuberdefense"] != 0) {
                        $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100));
                    }
                    if ($persondamage < 1) { $persondamage = 1; }
                }
                $pagearray["monsterturn"] .= "Tvoj protivnik ta zranil a pripravil o $persondamage HP.
    
    ";
                $userrow["currenthp"] -= $persondamage;
                if ($userrow["currenthp"] <= 0) {
                    $newgold = ceil($userrow["gold"]/2);
                    $newhp = ceil($userrow["maxhp"]/4);
                    $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='In Town',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                    $playerisdead = 1;
                }
            }
            
       
        } elseif (isset($_POST["spell"])) {
            
            
            $pickedspell = $_POST["userspell"];
            if ($pickedspell == 0) { display("Nevybral si si kuzlo ktore chces pouzit.<a href =\"index.php?do=fight\"> Vrat sa a skus znovu.</a>", "Error"); die(); }
            
            $newspellquery = doquery("SELECT * FROM {{table}} WHERE id='$pickedspell' LIMIT 1", "spells");
            $newspellrow = mysql_fetch_array($newspellquery);
            $spell = false;
            foreach($userspells as $a => $b) {
                if ($b == $pickedspell) { $spell = true; }
            }
            if ($spell != true) { display("Este neovladas toto kuzlo.<a href =\"index.php?do=fight\"> Vrat sa a skus znovu.</a>.", "Error"); die(); }
            if ($userrow["currentmp"] < $newspellrow["mp"]) { display("Nemas dost MP na toto kuzlo.<a href =\"index.php?do=fight\"> Vrat sa a skus znovu.</a>.", "Error"); die(); }
            
            if ($newspellrow["type"] == 1) { 
                $newhp = $userrow["currenthp"] + $newspellrow["attribute"];
                if ($userrow["maxhp"] < $newhp) { $newspellrow["attribute"] = $userrow["maxhp"] - $userrow["currenthp"]; $newhp = $userrow["currenthp"] + $newspellrow["attribute"]; }
                $userrow["currenthp"] = $newhp;
                $userrow["currentmp"] -= $newspellrow["mp"];
                $pagearray["yourturn"] = "Vycaroval si ".$newspellrow["name"].", a ziskal si ".$newspellrow["attribute"]." HP.
    
    ";
            } elseif ($newspellrow["type"] == 2) { 
                if ($userrow["currentmonsterimmune"] == 0) {
                    $monsterdamage = rand((($newspellrow["attribute"]/6)*5), $newspellrow["attribute"]);
                    $userrow["currentmonsterhp"] -= $monsterdamage;
                    $pagearray["yourturn"] = "Vycaroval si ".$newspellrow["name"]." a spravil si $monsterdamage DMG.
    
    ";
                } else {
                    $pagearray["yourturn"] = "Vycaroval si ".$newspellrow["name"]." , ale tvoj protivnik je voci tomuto druhu kuziel immuny.
    
    ";
                }
                $userrow["currentmp"] -= $newspellrow["mp"];
            } elseif ($newspellrow["type"] == 3) { 
                if ($userrow["currentmonsterimmune"] != 2) {
                    $userrow["currentmonstersleep"] = $newspellrow["attribute"];
                    $pagearray["yourturn"] = "Vycaroval si ".$newspellrow["name"].". Tvoj protivnik upadol do hlbokeho spanku.
    
    ";
                } else {
                    $pagearray["yourturn"] = "Vycaroval si ".$newspellrow["name"]." ,ale tvoj protivnik je voci tomuto druhu kuziel immuny.
    
    ";
                }
                $userrow["currentmp"] -= $newspellrow["mp"];
            } elseif ($newspellrow["type"] == 4) { 
                $userrow["currentuberdamage"] = $newspellrow["attribute"];
                $userrow["currentmp"] -= $newspellrow["mp"];
                $pagearray["yourturn"] = "Vycaroval si ".$newspellrow["name"].", a dostanes ".$newspellrow["attribute"]."% Utocnej sily do konca boja.
    
    ";
            } elseif ($newspellrow["type"] == 5) { 
                $userrow["currentuberdefense"] = $newspellrow["attribute"];
                $userrow["currentmp"] -= $newspellrow["mp"];
                $pagearray["yourturn"] = "Vycaroval si ".$newspellrow["name"].", a dostanes ".$newspellrow["attribute"]."% Obrannej sily do konca boja.
    
    ";            
            }
                
            $pagearray["monsterhp"] = "Protivnikove HP: " . $userrow["currentmonsterhp"] . "
    
    ";
            if ($userrow["currentmonsterhp"] <= 0) {
                $updatequery = doquery("UPDATE {{table}} SET currentmonsterhp='0',currenthp='".$userrow["currenthp"]."',currentmp='".$userrow["currentmp"]."' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                header("Location: index.php?do=victory");
                die();
            }
            
            
            $pagearray["monsterturn"] = "";
            if ($userrow["currentmonstersleep"] != 0) { 
                $chancetowake = rand(1,15);
                if ($chancetowake > $userrow["currentmonstersleep"]) {
                    $userrow["currentmonstersleep"] = 0;
                    $pagearray["monsterturn"] .= "Tvoj protivnik sa zobudil.
    ";
                    } else {
                    $pagearray["monsterturn"] .= "Tvoj protivnik stale spi.
    ";
                }
            }
            if ($userrow["currentmonstersleep"] == 0) { 
                $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"]));
                if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); }
                if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); }
                $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4);
                $tododge = rand(1,150);
                if ($tododge <= sqrt($userrow["dexterity"])) {
                    $tohit = 0; $pagearray["monsterturn"] .= "Odrazil si protivnikov utok.
    ";
                    $persondamage = 0;
                } else {
                    if ($tohit <= $toblock) { $tohit = $toblock + 1; }
                    $persondamage = $tohit - $toblock;
                    if ($userrow["currentuberdefense"] != 0) {
                        $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100));
                    }
                    if ($persondamage < 1) { $persondamage = 1; }
                }
                $pagearray["monsterturn"] .= "Protivnik ta zranil a pripravil o $persondamage HP.
    
    ";
                $userrow["currenthp"] -= $persondamage;
                if ($userrow["currenthp"] <= 0) {
                    $newgold = ceil($userrow["gold"]/2);
                    $newhp = ceil($userrow["maxhp"]/4);
                    $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='In Town',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                    $playerisdead = 1;
                }
            }
        
       
        } elseif ( $chancetoswingfirst == 0 ) {
            $pagearray["yourturn"] = "Tvoj protivnik necakal a napadol ta este predtym ako si sa pripravil!
    
    ";
            $pagearray["monsterhp"] = "Protivnikove HP: " . $userrow["currentmonsterhp"] . "
    
    ";
            $pagearray["monsterturn"] = "";
            if ($userrow["currentmonstersleep"] != 0) { 
                $chancetowake = rand(1,15);
                if ($chancetowake > $userrow["currentmonstersleep"]) {
                    $userrow["currentmonstersleep"] = 0;
                    $pagearray["monsterturn"] .= "Tvoj protivnik sa zobudil.
    ";
                    } else {
                    $pagearray["monsterturn"] .= "Tvoj protivnik stale spi.
    ";
                }
            }
            if ($userrow["currentmonstersleep"] == 0) { 
                $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"]));
                if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); }
                if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); }
                $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4);
                $tododge = rand(1,150);
                if ($tododge <= sqrt($userrow["dexterity"])) {
                    $tohit = 0; $pagearray["monsterturn"] .= "Odrazil si protivnikov utok.
    ";
                    $persondamage = 0;
                } else {
                    $persondamage = $tohit - $toblock;
                    if ($persondamage < 1) { $persondamage = 1; }
                    if ($userrow["currentuberdefense"] != 0) {
                        $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100));
                    }
                    if ($persondamage < 1) { $persondamage = 1; }
                }
                $pagearray["monsterturn"] .= "Protivnik ta zranil a pripravil o $persondamage HP.
    
    ";
                $userrow["currenthp"] -= $persondamage;
                if ($userrow["currenthp"] <= 0) {
                    $newgold = ceil($userrow["gold"]/2);
                    $newhp = ceil($userrow["maxhp"]/4);
                    $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='In Town',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                    $playerisdead = 1;
                }
            }
    
        } else {
            $pagearray["yourturn"] = "";
            $pagearray["monsterhp"] = "Protivnikove HP: " . $userrow["currentmonsterhp"] . "
    
    ";
            $pagearray["monsterturn"] = "";
        }
        
        $newmonster = $userrow["currentmonster"];
    
        $newmonsterhp = $userrow["currentmonsterhp"];
        $newmonstersleep = $userrow["currentmonstersleep"];
        $newmonsterimmune = $userrow["currentmonsterimmune"];
        $newuberdamage = $userrow["currentuberdamage"];
        $newuberdefense = $userrow["currentuberdefense"];
        $newfight = $userrow["currentfight"] + 1;
        $newhp = $userrow["currenthp"];
        $newmp = $userrow["currentmp"];    
        
    if ($playerisdead != 1) { 
    $pagearray["command"] = <<<END
    Co spravis?
    
    
    <form action="index.php?do=fight" method="post">
    <input type="submit" name="fight" value="Boj" />
    
    
    <select name="userspell"><option value="0">Vyber jedno</option>$magiclist</select> <input type="submit" name="spell" value="Kuzlo" />
    
    
    <input type="submit" name="run" value="Utek" />
    
    
    </form>
    END;
        $updatequery = doquery("UPDATE {{table}} SET currentaction='Fighting',currenthp='$newhp',currentmp='$newmp',currentfight='$newfight',currentmonster='$newmonster',currentmonsterhp='$newmonsterhp',currentmonstersleep='$newmonstersleep',currentmonsterimmune='$newmonsterimmune',currentuberdamage='$newuberdamage',currentuberdefense='$newuberdefense' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
    } else {
        $pagearray["command"] = "Zomrel si.
    
    Po urcitom case ta nasli lesne vily ktore ti vratily zivot. Ako protisluzbu chcely polovicu tvojho zlata, ktoru si im vdacne dal. Ked ze si bol este velmy slaby vily ta odprevadili k najblizsiemu mestu a vyliecili cast tvojich zraneni.
    
    Môzes teraz pokracovat vo svojej ceste hned potom ako si oddychnes v <a href=\"index.php\">meste</a>.";
    }
        
        
        $template = gettemplate("fight");
        $page = parsetemplate($template,$pagearray);
        
        display($page, "Boj");
        
    }
    
    function victory() {
        
        global $userrow, $controlrow;
        
        if ($userrow["currentmonsterhp"] != 0) { header("Location: index.php?do=fight"); die(); }
        if ($userrow["currentfight"] == 0) { header("Location: index.php"); die(); }
        
        $monsterquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["currentmonster"]."' LIMIT 1", "monsters");
        $monsterrow = mysql_fetch_array($monsterquery);
        
        $exp = rand((($monsterrow["maxexp"]/6)*5),$monsterrow["maxexp"]);
        if ($exp < 1) { $exp = 1; }
        if ($userrow["difficulty"] == 2) { $exp = ceil($exp * $controlrow["diff2mod"]); }
        if ($userrow["difficulty"] == 3) { $exp = ceil($exp * $controlrow["diff3mod"]); }
        if ($userrow["expbonus"] != 0) { $exp += ceil(($userrow["expbonus"]/100)*$exp); }
        $gold = rand((($monsterrow["maxgold"]/6)*5),$monsterrow["maxgold"]);
        if ($gold < 1) { $gold = 1; }
        if ($userrow["difficulty"] == 2) { $gold = ceil($gold * $controlrow["diff2mod"]); }
        if ($userrow["difficulty"] == 3) { $gold = ceil($gold * $controlrow["diff3mod"]); }
        if ($userrow["goldbonus"] != 0) { $gold += ceil(($userrow["goldbonus"]/100)*$exp); }
        if ($userrow["experience"] + $exp < 16777215) { $newexp = $userrow["experience"] + $exp; $warnexp = ""; } else { $newexp = $userrow["experience"]; $exp = 0; $warnexp = "Ziskal si maximum Exp pre tento level."; }
        if ($userrow["gold"] + $gold < 16777215) { $newgold = $userrow["gold"] + $gold; $warngold = ""; } else { $newgold = $userrow["gold"]; $gold = 0; $warngold = "Ziskal si maximum Exp pre tento level."; }
        
        $levelquery = doquery("SELECT * FROM {{table}} WHERE id='".($userrow["level"]+1)."' LIMIT 1", "levels");
        if (mysql_num_rows($levelquery) == 1) { $levelrow = mysql_fetch_array($levelquery); }
        
        if ($userrow["level"] < 100) {
            if ($newexp >= $levelrow[$userrow["charclass"]."_exp"]) {
                $newhp = $userrow["maxhp"] + $levelrow[$userrow["charclass"]."_hp"];
                $newmp = $userrow["maxmp"] + $levelrow[$userrow["charclass"]."_mp"];
                $newtp = $userrow["maxtp"] + $levelrow[$userrow["charclass"]."_tp"];
                $newstrength = $userrow["strength"] + $levelrow[$userrow["charclass"]."_strength"];
                $newdexterity = $userrow["dexterity"] + $levelrow[$userrow["charclass"]."_dexterity"];
                $newattack = $userrow["attackpower"] + $levelrow[$userrow["charclass"]."_strength"];
                $newdefense = $userrow["defensepower"] + $levelrow[$userrow["charclass"]."_dexterity"];
                $newlevel = $levelrow["id"];
                
                if ($levelrow[$userrow["charclass"]."_spells"] != 0) {
                    $userspells = $userrow["spells"] . ",".$levelrow[$userrow["charclass"]."_spells"];
                    $newspell = "spells='$userspells',";
                    $spelltext = "Naucil si sa nove kuzlo.
    ";
                } else { $spelltext = ""; $newspell=""; }
                
                $page = "Gratulujeme! Porazil si ".$monsterrow["name"].".
    Ziskal si $exp Exp. $warnexp 
    Taktiez si ziskal $gold zlata. $warngold 
    
    Ziskal si level!
    
    Ziskal si ".$levelrow[$userrow["charclass"]."_hp"]." HP.
    Ziskal si ".$levelrow[$userrow["charclass"]."_mp"]." MP.
    Ziskal si ".$levelrow[$userrow["charclass"]."_tp"]." TP.
    Ziskal si ".$levelrow[$userrow["charclass"]."_strength"]." sily.
    Ziskal si ".$levelrow[$userrow["charclass"]."_dexterity"]." presnosti.
    $spelltext
    Teraz mozes pokracovat v <a href=\"index.php\">cestovani</a>.";
                $title = "Najväcšia zbran bojovnika nieje jeho mec, ale um.";
                $dropcode = "";
            } else {
                $newhp = $userrow["maxhp"];
                $newmp = $userrow["maxmp"];
                $newtp = $userrow["maxtp"];
                $newstrength = $userrow["strength"];
                $newdexterity = $userrow["dexterity"];
                $newattack = $userrow["attackpower"];
                $newdefense = $userrow["defensepower"];
                $newlevel = $userrow["level"];
                $newspell = "";
                $page = "Gratulujeme! Porazil si ".$monsterrow["name"].".
    Ziskal si $exp Exp. $warnexp 
    Taktiez si ziskal $gold zlata. $warngold 
    
    ";
                
                if (rand(1,30) == 1) {
                    $dropquery = doquery("SELECT * FROM {{table}} WHERE mlevel <= '".$monsterrow["level"]."' ORDER BY RAND() LIMIT 1", "drops");
                    $droprow = mysql_fetch_array($dropquery);
                    $dropcode = "dropcode='".$droprow["id"]."',";
                    $page .= "Protivnik mal pri sebe artefakt. <a href=\"index.php?do=drop\">Zdvihnes ho?</a> alebo budes pokracovat v <a href=\"index.php\">cestovani</a>.";
                } else { 
                    $dropcode = "";
                    $page .= "Mozes pokracovat v <a href=\"index.php\">cestovani</a>.";
                }
    
                $title = "Vítazstvo!";
            }
        }
    
        $updatequery = doquery("UPDATE {{table}} SET currentaction='Exploring',level='$newlevel',maxhp='$newhp',maxmp='$newmp',maxtp='$newtp',strength='$newstrength',dexterity='$newdexterity',attackpower='$newattack',defensepower='$newdefense', $newspell currentfight='0',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentuberdamage='0',currentuberdefense='0',$dropcode experience='$newexp',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
        
    
        display($page, $title);
        
    }
    
    function drop() {
        
        global $userrow;
        
        if ($userrow["dropcode"] == 0) { header("Location: index.php"); die(); }
        
        $dropquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["dropcode"]."' LIMIT 1", "drops");
        $droprow = mysql_fetch_array($dropquery);
        
        if (isset($_POST["submit"])) {
            
            $slot = $_POST["slot"];
            
            if ($slot == 0) { display("Neoznacili ste batoh v inventary.","Error"); }
            
            if ($userrow["slot".$slot."id"] != 0) {
                
                $slotquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["slot".$slot."id"]."' LIMIT 1", "drops");
                $slotrow = mysql_fetch_array($slotquery);
                
                $old1 = explode(",",$slotrow["attribute1"]);
                if ($slotrow["attribute2"] != "X") { $old2 = explode(",",$slotrow["attribute2"]); } else { $old2 = array(0=>"maxhp",1=>0); }
                $new1 = explode(",",$droprow["attribute1"]);
                if ($droprow["attribute2"] != "X") { $new2 = explode(",",$droprow["attribute2"]); } else { $new2 = array(0=>"maxhp",1=>0); }
                
                $userrow[$old1[0]] -= $old1[1];
                $userrow[$old2[0]] -= $old2[1];
                if ($old1[0] == "strength") { $userrow["attackpower"] -= $old1[1]; }
                if ($old1[0] == "dexterity") { $userrow["defensepower"] -= $old1[1]; }
                if ($old2[0] == "strength") { $userrow["attackpower"] -= $old2[1]; }
                if ($old2[0] == "dexterity") { $userrow["defensepower"] -= $old2[1]; }
                
                $userrow[$new1[0]] += $new1[1];
                $userrow[$new2[0]] += $new2[1];
                if ($new1[0] == "strength") { $userrow["attackpower"] += $new1[1]; }
                if ($new1[0] == "dexterity") { $userrow["defensepower"] += $new1[1]; }
                if ($new2[0] == "strength") { $userrow["attackpower"] += $new2[1]; }
                if ($new2[0] == "dexterity") { $userrow["defensepower"] += $new2[1]; }
                
                if ($userrow["currenthp"] > $userrow["maxhp"]) { $userrow["currenthp"] = $userrow["maxhp"]; }
                if ($userrow["currentmp"] > $userrow["maxmp"]) { $userrow["currentmp"] = $userrow["maxmp"]; }
                if ($userrow["currenttp"] > $userrow["maxtp"]) { $userrow["currenttp"] = $userrow["maxtp"]; }
                
                $newname = addslashes($droprow["name"]);
                $query = doquery("UPDATE {{table}} SET slot".$_POST["slot"]."name='$newname',slot".$_POST["slot"]."id='".$droprow["id"]."',$old1[0]='".$userrow[$old1[0]]."',$old2[0]='".$userrow[$old2[0]]."',$new1[0]='".$userrow[$new1[0]]."',$new2[0]='".$userrow[$new2[0]]."',attackpower='".$userrow["attackpower"]."',defensepower='".$userrow["defensepower"]."',currenthp='".$userrow["currenthp"]."',currentmp='".$userrow["currentmp"]."',currenttp='".$userrow["currenttp"]."',dropcode='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                
            } else {
                
                $new1 = explode(",",$droprow["attribute1"]);
                if ($droprow["attribute2"] != "X") { $new2 = explode(",",$droprow["attribute2"]); } else { $new2 = array(0=>"maxhp",1=>0); }
                
                $userrow[$new1[0]] += $new1[1];
                $userrow[$new2[0]] += $new2[1];
                if ($new1[0] == "strength") { $userrow["attackpower"] += $new1[1]; }
                if ($new1[0] == "dexterity") { $userrow["defensepower"] += $new1[1]; }
                if ($new2[0] == "strength") { $userrow["attackpower"] += $new2[1]; }
                if ($new2[0] == "dexterity") { $userrow["defensepower"] += $new2[1]; }
                
                $newname = addslashes($droprow["name"]);
                $query = doquery("UPDATE {{table}} SET slot".$_POST["slot"]."name='$newname',slot".$_POST["slot"]."id='".$droprow["id"]."',$new1[0]='".$userrow[$new1[0]]."',$new2[0]='".$userrow[$new2[0]]."',attackpower='".$userrow["attackpower"]."',defensepower='".$userrow["defensepower"]."',dropcode='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
                
            }
            $page = "Nasadili ste si artefakt. MOzete pokracovat v <a href=\"index.php\">cestovani</a>.";
            display($page, "Item Drop");
            
        }
        
        $attributearray = array("maxhp"=>"Max HP",
                                "maxmp"=>"Max MP",
                                "maxtp"=>"Max TP",
                                "defensepower"=>"Obranna sila",
                                "attackpower"=>"Utocna sila",
                                "strength"=>"Sila",
                                "dexterity"=>"Presnost",
                                "expbonus"=>"Exp bonus",
                                "goldbonus"=>"Bonus zlata");
        
        $page = "Tvoj protivnik nosil nasledujuci artefakt: ".$droprow["name"]."
    
    ";
        $page .= "Artefakt ma nasledujuce atributy:
    ";
        
        $attribute1 = explode(",",$droprow["attribute1"]);
        $page .= $attributearray[$attribute1[0]];
        if ($attribute1[1] > 0) { $page .= " +" . $attribute1[1] . "
    "; } else { $page .= $attribute1[1] . "
    "; }
        
        if ($droprow["attribute2"] != "X") { 
            $attribute2 = explode(",",$droprow["attribute2"]);
            $page .= $attributearray[$attribute2[0]];
            if ($attribute2[1] > 0) { $page .= " +" . $attribute2[1] . "
    "; } else { $page .= $attribute2[1] . "
    "; }
        }
        
        $page .= "
    Vyberte batoh s inventara kde sa artefakt moze ulozit, ak je batoh plny stary artefakt sa automaticky vymaze.";
        $page .= "<form action=\"index.php?do=drop\" method=\"post\"><select name=\"slot\"><option value=\"0\">Vyber jeden</option><option value=\"1\">Batoh 1: ".$userrow["slot1name"]."</option><option value=\"2\">Batoh 2: ".$userrow["slot2name"]."</option><option value=\"3\">Batoh 3: ".$userrow["slot3name"]."</option></select> <input type=\"submit\" name=\"submit\" value=\"Uloz\" /></form>";
        $page .= "Avsak mozes necinne pokracovat v <a href=\"index.php\">cestovani</a> a nebrat artefakt.";
        
        display($page, "Nasiel si artefakt");
        
    }
        
    
    function dead() {
        
        $page = "Zomrel si.
    
    Po urcitom case ta nasli lesne vily ktore ti vratily zivot. Ako protisluzbu chcely polovicu tvojho zlata, ktoru si im vdacne dal. Ked ze si bol este velmy slaby vily ta odprevadili k najblizsiemu mestu a vyliecili cast tvojich zraneni.
    
    Môzes teraz pokracovat vo svojej ceste hned potom ako si oddychnes v <a href=\"index.php\">meste</a>.";
            
    }
    
    
    
    ?>
    forum.php

    Code:
    <?php 
    include('functions.php');
    include('cookies.php');
    $link = opendb();
    $userrow = checkcookies();
    if ($userrow == false) { display("Forum je len pre registrovaných uzívatelov.", "Forum"); die(); }
    $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
    $controlrow = mysql_fetch_array($controlquery);
    
    
    if ($controlrow["gameopen"] == 0) { display("Hra je uzamknuta s technickych alebo oraganizacnych pricin. Skuste neskôr.","Game Closed"); die(); }
    
    if ($controlrow["verifyemail"] == 1 && $userrow["verify"] != 1) { header("Location: users.php?do=verify"); die(); }
    
    if ($userrow["authlevel"] == 2) { die("Bol vam udeleny ban. Skuste neskôr."); }
    
    if (isset($_GET["do"])) {
    	$do = explode(":",$_GET["do"]);
    	
    	if ($do[0] == "thread") { showthread($do[1], $do[2]); }
    	elseif ($do[0] == "new") { newthread(); }
    	elseif ($do[0] == "reply") { reply(); }
    	elseif ($do[0] == "list") { donothing($do[1]); }
    	
    } else { donothing(0); }
    
    function donothing($start=0) {
    
        $query = doquery("SELECT * FROM {{table}} WHERE parent='0' ORDER BY newpostdate DESC LIMIT 20", "forum");
        $page = "<table width=\"100%\"><tr><td style=\"padding:1px; background-color:white;\"><table width=\"100%\" style=\"margins:0px;\" cellspacing=\"1\" cellpadding=\"3\"><tr><th colspan=\"3\" style=\"background-color:#000000;\"><center><a href=\"forum.php?do=new\">Novy prispevok</a></center></th></tr><tr><th width=\"50%\" style=\"background-color:#000000;\"> Prispevky</th><th width=\"10%\" style=\"background-color:#000000;\">Odpovede</th><th style=\"background-color:#000000;\">Posledny prispevok</th></tr>\n";
        $count = 1;
        if (mysql_num_rows($query) == 0) { 
            $page .= "<tr><td style=\"background-color:#000000;\" colspan=\"3\">Ziadne prispevky.</td></tr>\n";
        } else { 
            while ($row = mysql_fetch_array($query)) {
            	if ($count == 1) {
                	$page .= "<tr><td style=\"background-color:#000000;\"><a href=\"forum.php?do=thread:".$row["id"].":0\">".$row["title"]."</a></td><td style=\"background-color:#000000;\">".$row["replies"]."</td><td style=\"background-color:#000000;\">".$row["newpostdate"]."</td></tr>\n";
                	$count = 2;
                } else {
                    $page .= "<tr><td style=\"background-color:#000000;\"><a href=\"forum.php?do=thread:".$row["id"].":0\">".$row["title"]."</a></td><td style=\"background-color:#000000;\">".$row["replies"]."</td><td style=\"background-color:#000000;\">".$row["newpostdate"]."</td></tr>\n";
                    $count = 1;
                }
            }
        }
        $page .= "</table></td></tr></table>";
        
        display($page, "Forum");
        
    }
    
    function showthread($id, $start) {
    
        $query = doquery("SELECT * FROM {{table}} WHERE id='$id' OR parent='$id' ORDER BY id LIMIT $start,15", "forum");
        $query2 = doquery("SELECT title FROM {{table}} WHERE id='$id' LIMIT 1", "forum");
        $row2 = mysql_fetch_array($query2);
        $page = "<table width=\"100%\"><tr><td style=\"padding:1px; background-color:white;\"><table width=\"100%\" style=\"margins:0px;\" cellspacing=\"1\" cellpadding=\"3\"><tr><td colspan=\"2\" style=\"background-color:#000000;\"><a href=\"forum.php\">Forum</a> :: ".$row2["title"]."</td></tr>\n";
        $count = 1;
        while ($row = mysql_fetch_array($query)) {
            if ($count == 1) {
                $page .= "<tr><td width=\"25%\" style=\"background-color:#000000; vertical-align:top;\"><span class=\"small\">".$row["author"]."
    
    ".prettyforumdate($row["postdate"])."</td><td style=\"background-color:#000000; vertical-align:top;\">".nl2br($row["content"])."</td></tr>\n";
                $count = 2;
            } else {
                $page .= "<tr><td width=\"25%\" style=\"background-color:#000000; vertical-align:top;\"><span class=\"small\">".$row["author"]."
    
    ".prettyforumdate($row["postdate"])."</td><td style=\"background-color:#000000; vertical-align:top;\">".nl2br($row["content"])."</td></tr>\n";
                $count = 1;
            }
        }
        $page .= "</table></td></tr></table>
    ";
        $page .= "<table width=\"100%\"><tr><td>Pridat komentar:
    <form action=\"forum.php?do=reply\" method=\"post\"><input type=\"hidden\" name=\"parent\" value=\"$id\" /><input type=\"hidden\" name=\"title\" value=\"Re: ".$row2["title"]."\" /><textarea name=\"content\" rows=\"7\" cols=\"40\"></textarea>
    <input type=\"submit\" name=\"submit\" value=\"Odoslat\" /> <input type=\"reset\" name=\"reset\" value=\"Reset\" /></form></td></tr></table>";
        
        display($page, "Forum");
        
    }
    
    function reply() {
    
        global $userrow;
    	extract($_POST);
    	$query = doquery("INSERT INTO {{table}} SET id='',postdate=NOW(),newpostdate=NOW(),author='".$userrow["charname"]."',parent='$parent',replies='0',title='$title',content='$content'", "forum");
    	$query2 = doquery("UPDATE {{table}} SET newpostdate=NOW(),replies=replies+1 WHERE id='$parent' LIMIT 1", "forum");
    	header("Location: forum.php?do=thread:$parent:0");
    	die();
    	
    }
    
    function newthread() {
    
        global $userrow;
        
        if (isset($_POST["submit"])) {
            extract($_POST);
            $query = doquery("INSERT INTO {{table}} SET id='',postdate=NOW(),newpostdate=NOW(),author='".$userrow["charname"]."',parent='0',replies='0',title='$title',content='$content'", "forum");
            header("Location: forum.php");
            die();
        }
        
        $page = "<table width=\"100%\"><tr><td>Pridat novy prispevok:
    <br/ ><form action=\"forum.php?do=new\" method=\"post\">Nazov:
    <input type=\"text\" name=\"title\" size=\"50\" maxlength=\"50\" />
    
    Obsah:
    <textarea name=\"content\" rows=\"7\" cols=\"40\"></textarea>
    
    <input type=\"submit\" name=\"submit\" value=\"Odoslat\" /> <input type=\"reset\" name=\"reset\" value=\"Reset\" /></form></td></tr></table>";
        display($page, "Forum");
        
    }
    	
    ?>
    functions.php

    Code:
    <?php 
    
    $starttime = getmicrotime();
    $numqueries = 0;
    $version = "1";
    $build = "";
    
    
    if (get_magic_quotes_gpc()) {
    
       $_POST = array_map('stripslashes_deep', $_POST);
       $_GET = array_map('stripslashes_deep', $_GET);
       $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
    
    }
    $_POST = array_map('addslashes_deep', $_POST);
    $_POST = array_map('html_deep', $_POST);
    $_GET = array_map('addslashes_deep', $_GET);
    $_GET = array_map('html_deep', $_GET);
    $_COOKIE = array_map('addslashes_deep', $_COOKIE);
    $_COOKIE = array_map('html_deep', $_COOKIE);
    
    function stripslashes_deep($value) {
        
       $value = is_array($value) ?
                   array_map('stripslashes_deep', $value) :
                   stripslashes($value);
       return $value;
       
    }
    
    function addslashes_deep($value) {
        
       $value = is_array($value) ?
                   array_map('addslashes_deep', $value) :
                   addslashes($value);
       return $value;
       
    }
    
    function html_deep($value) {
        
       $value = is_array($value) ?
                   array_map('html_deep', $value) :
                   htmlspecialchars($value);
       return $value;
       
    }
    
    function opendb() { 
    
        include('connect.php');
        extract($dbsettings);
        $link = mysql_connect($server, $user, $pass) or die(mysql_error());
        mysql_select_db($name) or die(mysql_error());
        return $link;
    
    }
    
    function doquery($query, $table) { 
        
        include('connect.php');
        global $numqueries;
        $sqlquery = mysql_query(str_replace("{{table}}", $dbsettings["prefix"] . "_" . $table, $query)) or die(mysql_error());
        $numqueries++;
        return $sqlquery;
    
    }
    
    function gettemplate($templatename) { 
    
        $filename = "templates/" . $templatename . ".php";
        include("$filename");
        return $template;
        
    }
    
    function parsetemplate($template, $array) { 
        
        foreach($array as $a => $b) {
            $template = str_replace("{{{$a}}}", $b, $template);
        }
        return $template;
        
    }
    
    function getmicrotime() { 
    
        list($usec, $sec) = explode(" ",microtime()); 
        return ((float)$usec + (float)$sec); 
    
    }
    
    function prettydate($uglydate) { 
    
        return date("F j, Y", mktime(0,0,0,substr($uglydate, 5, 2),substr($uglydate, 8, 2),substr($uglydate, 0, 4)));
    
    }
    
    function prettyforumdate($uglydate) {
    
        return date("F j, Y", mktime(0,0,0,substr($uglydate, 5, 2),substr($uglydate, 8, 2),substr($uglydate, 0, 4)));
    
    }
    
    function is_email($email) { 
    
        return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
    
    }
    
    function makesafe($d) {
        
        $d = str_replace("\t","",$d);
        $d = str_replace("<","&#60;",$d);
        $d = str_replace(">","&#62;",$d);
        $d = str_replace("\n","",$d);
        $d = str_replace("|","??",$d);
        $d = str_replace("  "," ",$d);
        return $d;
        
    }
    
    function admindisplay($content, $title) { 
        
        global $numqueries, $userrow, $controlrow, $starttime, $version, $build;
        if (!isset($controlrow)) {
            $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
            $controlrow = mysql_fetch_array($controlquery);
        }
        
        $template = gettemplate("admin");
        
        
        $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
        . "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"
        . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
    
        $finalarray = array(
            "title"=>$title,
            "content"=>$content,
            "totaltime"=>round(getmicrotime() - $starttime, 4),
            "numqueries"=>$numqueries,
            "version"=>$version,
            "build"=>$build);
        $page = parsetemplate($template, $finalarray);
        $page = $xml . $page;
    
        if ($controlrow["compression"] == 1) { ob_start("ob_gzhandler"); }
        echo $page;
        die();
        
    }
    
    function display($content, $title, $topnav=true, $leftnav=true, $rightnav=true, $badstart=false) { 
        
        global $numqueries, $userrow, $controlrow, $version, $build;
        if (!isset($controlrow)) {
            $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
            $controlrow = mysql_fetch_array($controlquery);
        }
        if ($badstart == false) { global $starttime; } else { $starttime = $badstart; }
        
        // Make page tags for XHTML validation.
        $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
        . "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"
        . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
    
        $template = gettemplate("primary");
        
        if ($rightnav == true) { $rightnav = gettemplate("rightnav"); } else { $rightnav = ""; }
        if ($leftnav == true) { $leftnav = gettemplate("leftnav"); } else { $leftnav = ""; }
        if ($topnav == true) {
            $topnav = "<a href=\"login.php?do=logout\"><img src=\"images/button_logout.gif\" alt=\"Log Out\" title=\"Log Out\" border=\"0\" /></a> <a href=\"help.php\"><img src=\"images/button_help.gif\" alt=\"Help\" title=\"Help\" border=\"0\" /></a>";
        } else {
            $topnav = "<a href=\"login.php?do=login\"><img src=\"images/button_login.gif\" alt=\"Log In\" title=\"Log In\" border=\"0\" /></a> <a href=\"users.php?do=register\"><img src=\"images/button_register.gif\" alt=\"Register\" title=\"Register\" border=\"0\" /></a> <a href=\"help.php\"><img src=\"images/button_help.gif\" alt=\"Help\" title=\"Help\" border=\"0\" /></a>";
        }
        
        if (isset($userrow)) {
            
            
            $userquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["id"]."' LIMIT 1", "users");
            unset($userrow);
            $userrow = mysql_fetch_array($userquery);
            
            
            if ($userrow["currentaction"] == "In Town") {
                $townquery = doquery("SELECT * FROM {{table}} WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns");
                $townrow = mysql_fetch_array($townquery);
                $userrow["currenttown"] = "Vitajte v ".$townrow["name"].".
    
    ";
            } else {
                $userrow["currenttown"] = "";
            }
            
            if ($controlrow["forumtype"] == 0) { $userrow["forumslink"] = ""; }
            elseif ($controlrow["forumtype"] == 1) { $userrow["forumslink"] = "<a href=\"forum.php\">Forum</a>
    "; }
            elseif ($controlrow["forumtype"] == 2) { $userrow["forumslink"] = "<a href=\"".$controlrow["forumaddress"]."\">Forum</a>
    "; }
            
            
            if ($userrow["latitude"] < 0) { $userrow["latitude"] = $userrow["latitude"] * -1 . "S"; } else { $userrow["latitude"] .= "N"; }
            if ($userrow["longitude"] < 0) { $userrow["longitude"] = $userrow["longitude"] * -1 . "W"; } else { $userrow["longitude"] .= "E"; }
            $userrow["experience"] = number_format($userrow["experience"]);
            $userrow["gold"] = number_format($userrow["gold"]);
            if ($userrow["authlevel"] == 1) { $userrow["adminlink"] = "<a href=\"admin.php\">Admin</a>
    "; } else { $userrow["adminlink"] = ""; }
            
            
            $stathp = ceil($userrow["currenthp"] / $userrow["maxhp"] * 100);
            if ($userrow["maxmp"] != 0) { $statmp = ceil($userrow["currentmp"] / $userrow["maxmp"] * 100); } else { $statmp = 0; }
            $stattp = ceil($userrow["currenttp"] / $userrow["maxtp"] * 100);
            $stattable = "<table width=\"100\"><tr><td width=\"33%\">\n";
            $stattable .= "<table cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"padding:0px; width:15px; height:100px; border:solid 1px black; vertical-align:bottom;\">\n";
            if ($stathp >= 66) { $stattable .= "<div style=\"padding:0px; height:".$stathp."px; border-top:solid 1px black; background-image:url(images/bars_green.gif);\"><img src=\"images/bars_green.gif\" alt=\"\" /></div>"; }
            if ($stathp < 66 && $stathp >= 33) { $stattable .= "<div style=\"padding:0px; height:".$stathp."px; border-top:solid 1px black; background-image:url(images/bars_yellow.gif);\"><img src=\"images/bars_yellow.gif\" alt=\"\" /></div>"; }
            if ($stathp < 33) { $stattable .= "<div style=\"padding:0px; height:".$stathp."px; border-top:solid 1px black; background-image:url(images/bars_red.gif);\"><img src=\"images/bars_red.gif\" alt=\"\" /></div>"; }
            $stattable .= "</td></tr></table></td><td width=\"33%\">\n";
            $stattable .= "<table cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"padding:0px; width:15px; height:100px; border:solid 1px black; vertical-align:bottom;\">\n";
            if ($statmp >= 66) { $stattable .= "<div style=\"padding:0px; height:".$statmp."px; border-top:solid 1px black; background-image:url(images/bars_green.gif);\"><img src=\"images/bars_green.gif\" alt=\"\" /></div>"; }
            if ($statmp < 66 && $statmp >= 33) { $stattable .= "<div style=\"padding:0px; height:".$statmp."px; border-top:solid 1px black; background-image:url(images/bars_yellow.gif);\"><img src=\"images/bars_yellow.gif\" alt=\"\" /></div>"; }
            if ($statmp < 33) { $stattable .= "<div style=\"padding:0px; height:".$statmp."px; border-top:solid 1px black; background-image:url(images/bars_red.gif);\"><img src=\"images/bars_red.gif\" alt=\"\" /></div>"; }
            $stattable .= "</td></tr></table></td><td width=\"33%\">\n";
            $stattable .= "<table cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"padding:0px; width:15px; height:100px; border:solid 1px black; vertical-align:bottom;\">\n";
            if ($stattp >= 66) { $stattable .= "<div style=\"padding:0px; height:".$stattp."px; border-top:solid 1px black; background-image:url(images/bars_green.gif);\"><img src=\"images/bars_green.gif\" alt=\"\" /></div>"; }
            if ($stattp < 66 && $stattp >= 33) { $stattable .= "<div style=\"padding:0px; height:".$stattp."px; border-top:solid 1px black; background-image:url(images/bars_yellow.gif);\"><img src=\"images/bars_yellow.gif\" alt=\"\" /></div>"; }
            if ($stattp < 33) { $stattable .= "<div style=\"padding:0px; height:".$stattp."px; border-top:solid 1px black; background-image:url(images/bars_red.gif);\"><img src=\"images/bars_red.gif\" alt=\"\" /></div>"; }
            $stattable .= "</td></tr></table></td>\n";
            $stattable .= "</tr><tr><td>HP</td><td>MP</td><td>TP</td></tr></table>\n";
            $userrow["statbars"] = $stattable;
            
            
            if ($userrow["currenthp"] <= ($userrow["maxhp"]/5)) { $userrow["currenthp"] = "<blink><span class=\"highlight\">*".$userrow["currenthp"]."*</span></blink>"; }
            if ($userrow["currentmp"] <= ($userrow["maxmp"]/5)) { $userrow["currentmp"] = "<blink><span class=\"highlight\">*".$userrow["currentmp"]."*</span></blink>"; }
    
            $spellquery = doquery("SELECT id,name,type FROM {{table}}","spells");
            $userspells = explode(",",$userrow["spells"]);
            $userrow["magiclist"] = "";
            while ($spellrow = mysql_fetch_array($spellquery)) {
                $spell = false;
                foreach($userspells as $a => $b) {
                    if ($b == $spellrow["id"] && $spellrow["type"] == 1) { $spell = true; }
                }
                if ($spell == true) {
                    $userrow["magiclist"] .= "<a href=\"index.php?do=spell:".$spellrow["id"]."\">".$spellrow["name"]."</a>
    ";
                }
            }
            if ($userrow["magiclist"] == "") { $userrow["magiclist"] = "None"; }
            
            
            $townslist = explode(",",$userrow["towns"]);
            $townquery2 = doquery("SELECT * FROM {{table}} ORDER BY id", "towns");
            $userrow["townslist"] = "";
            while ($townrow2 = mysql_fetch_array($townquery2)) {
                $town = false;
                foreach($townslist as $a => $b) {
                    if ($b == $townrow2["id"]) { $town = true; }
                }
                if ($town == true) { 
                    $userrow["townslist"] .= "<a href=\"index.php?do=gotown:".$townrow2["id"]."\">".$townrow2["name"]."</a>
    \n"; 
                }
            }
            
        } else {
            $userrow = array();
        }
    
        $finalarray = array(
            "dkgamename"=>$controlrow["gamename"],
            "title"=>$title,
            "content"=>$content,
            "rightnav"=>parsetemplate($rightnav,$userrow),
            "leftnav"=>parsetemplate($leftnav,$userrow),
            "topnav"=>$topnav,
            "totaltime"=>round(getmicrotime() - $starttime, 4),
            "numqueries"=>$numqueries,
            "version"=>$version,
            "build"=>$build);
        $page = parsetemplate($template, $finalarray);
        $page = $xml . $page;
        
        if ($controlrow["compression"] == 1) { ob_start("ob_gzhandler"); }
        echo $page;
        die();
        
    }
    
    ?>
    heal.php

    Code:
    <?php 
    
    function healspells($id) {
        
        global $userrow;
        
        $userspells = explode(",",$userrow["spells"]);
        $spellquery = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "spells");
        $spellrow = mysql_fetch_array($spellquery);
        
        // All the various ways to error out.
        $spell = false;
        foreach ($userspells as $a => $b) {
            if ($b == $id) { $spell = true; }
        }
        if ($spell != true) { display("Este neovladas toto kuzlo. Vrat sa spet.", "Error"); die(); }
        if ($spellrow["type"] != 1) { display("Toto nieje kuzlo ktore ta vylieci. Vrat sa spet a zvol spravne kuzlo", "Error"); die(); }
        if ($userrow["currentmp"] < $spellrow["mp"]) { display("Nemas dost MP na toto kuzlo. Vrat sa spet.", "Error"); die(); }
        if ($userrow["currentaction"] == "Fighting") { display("Nemozes pouzit liecenie pocas boja s ponuky Rychlych kuziel. Prosim vrat sa a pouzi kuzlo s ponuky ktora sa ti zobrazi v <a href =\"index.php?do=fight\">boji<a/>.", "Error"); die(); }
        if ($userrow["currenthp"] == $userrow["maxhp"]) { display("Hodnota tvojich HP je na maxime.", "Error"); die(); }
        
        $newhp = $userrow["currenthp"] + $spellrow["attribute"];
        if ($userrow["maxhp"] < $newhp) { $spellrow["attribute"] = $userrow["maxhp"] - $userrow["currenthp"]; $newhp = $userrow["currenthp"] + $spellrow["attribute"]; }
        $newmp = $userrow["currentmp"] - $spellrow["mp"];
        
        $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp', currentmp='$newmp' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
        
        display("Vycaroval si ".$spellrow["name"].", a ziskal si ".$spellrow["attribute"]." HP. Teraz mozes pokracovat v <a href=\"index.php\">Cestovani</a>.", "Liecenie");
        die();
        
    }
    
    ?>
    index.php

    Code:
    <?php 
    
    include('functions.php');
    include('cookies.php');
    $link = opendb();
    $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
    $controlrow = mysql_fetch_array($controlquery);
    
    $userrow = checkcookies();
    if ($userrow == false) { 
        if (isset($_GET["do"])) {
            if ($_GET["do"] == "verify") { header("Location: users.php?do=verify"); die(); }
        }
        header("Location: login.php?do=login"); die(); 
    }
    
    if ($controlrow["gameopen"] == 0) { display("Hra momentalne nieje pristupna, skuste neskôr.","Hra je uzavreta"); die(); }
    
    if ($controlrow["verifyemail"] == 1 && $userrow["verify"] != 1) { header("Location: users.php?do=verify"); die(); }
    
    if ($userrow["authlevel"] == 2) { die("Mas ban, skus neskôr."); }
    
    if (isset($_GET["do"])) {
        $do = explode(":",$_GET["do"]);
        
        
        if ($do[0] == "inn") { include('mesta.php'); inn(); }
        elseif ($do[0] == "buy") { include('mesta.php'); buy(); }
        elseif ($do[0] == "buy2") { include('mesta.php'); buy2($do[1]); }
        elseif ($do[0] == "buy3") { include('mesta.php'); buy3($do[1]); }
        elseif ($do[0] == "sell") { include('mesta.php'); sell(); }
        elseif ($do[0] == "maps") { include('mesta.php'); maps(); }
        elseif ($do[0] == "maps2") { include('mesta.php'); maps2($do[1]); }
        elseif ($do[0] == "maps3") { include('mesta.php'); maps3($do[1]); }
        elseif ($do[0] == "gotown") { include('mesta.php'); travelto($do[1]); }
        
        
        elseif ($do[0] == "move") { include('explore.php'); move(); }
        
        
        elseif ($do[0] == "fight") { include('fight.php'); fight(); }
        elseif ($do[0] == "victory") { include('fight.php'); victory(); }
        elseif ($do[0] == "drop") { include('fight.php'); drop(); }
        elseif ($do[0] == "dead") { include('fight.php'); dead(); }
        
        
        elseif ($do[0] == "verify") { header("Location: users.php?do=verify"); die(); }
        elseif ($do[0] == "spell") { include('heal.php'); healspells($do[1]); }
        elseif ($do[0] == "showchar") { showchar(); }
        elseif ($do[0] == "onlinechar") { onlinechar($do[1]); }
        elseif ($do[0] == "showmap") { showmap(); }
        elseif ($do[0] == "babblebox") { babblebox(); }
        elseif ($do[0] == "ninja") { ninja(); }
        
    } else { donothing(); }
    
    function donothing() {
        
        global $userrow;
    
        if ($userrow["currentaction"] == "In Town") {
            $page = dotown();
            $title = "Mesto";
        } elseif ($userrow["currentaction"] == "Exploring") {
            $page = doexplore();
            $title = "Cestovanie";
        } elseif ($userrow["currentaction"] == "Fighting")  {
            $page = dofight();
            $title = "Boj";
        }
        
        display($page, $title);
        
    }
    
    function dotown() { 
        
        global $userrow, $controlrow, $numqueries;
        
        $townquery = doquery("SELECT * FROM {{table}} WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns");
        if (mysql_num_rows($townquery) == 0) { display("Nastali neocakavane problemy. Skuste nskôr.","Error"); }
        $townrow = mysql_fetch_array($townquery);
        
        
        if ($controlrow["shownews"] == 1) { 
            $newsquery = doquery("SELECT * FROM {{table}} ORDER BY id DESC LIMIT 1", "news");
            $newsrow = mysql_fetch_array($newsquery);
            $townrow["news"] = "<table width=\"95%\"><tr><td class=\"title\">Oznamy</td></tr><tr><td>\n";
            $townrow["news"] .= "<span class=\"light\">[".prettydate($newsrow["postdate"])."]</span>
    ".nl2br($newsrow["content"]);
            $townrow["news"] .= "</td></tr></table>\n";
        } else { $townrow["news"] = ""; }
        
        
        if ($controlrow["showonline"] == 1) {
            $onlinequery = doquery("SELECT * FROM {{table}} WHERE UNIX_TIMESTAMP(onlinetime) >= '".(time()-600)."' ORDER BY charname", "users");
            $townrow["whosonline"] = "<table width=\"95%\"><tr><td class=\"title\">Kdo je online</td></tr><tr><td>\n";
            $townrow["whosonline"] .= "Su tu " . mysql_num_rows($onlinequery) . " uzivatelia online alebo v priebehu poslednych 10 minutach:";
            while ($onlinerow = mysql_fetch_array($onlinequery)) { $townrow["whosonline"] .= "<a href=\"index.php?do=onlinechar:".$onlinerow["id"]."\">".$onlinerow["charname"]."</a>" . ", "; }
            $townrow["whosonline"] = rtrim($townrow["whosonline"], ", ");
            $townrow["whosonline"] .= "</td></tr></table>\n";
        } else { $townrow["whosonline"] = ""; }
        
        if ($controlrow["showbabble"] == 1) {
            $townrow["babblebox"] = "<table width=\"95%\"><tr><td class=\"title\">Krcma</td></tr><tr><td>\n";
            $townrow["babblebox"] .= "<iframe src=\"index.php?do=babblebox\" name=\"sbox\" width=\"100%\" height=\"250\" frameborder=\"0\" id=\"bbox\">Vas internetovy prehliadac nepodporuje inframovu technologiu! Prosim stiahnite si novsiu verziu pre zobrazenie diskusie.</iframe>";
            $townrow["babblebox"] .= "</td></tr></table>\n";
        } else { $townrow["babblebox"] = ""; }
        
        $page = gettemplate("towns");
        $page = parsetemplate($page, $townrow);
        
        return $page;
        
    }
    
    function doexplore() { 
        
     
        
    $page = <<<END
    <table width="100%">
    <tr><td class="title">[img]images/title_exploring.gif[/img]</td></tr>
    <tr><td>
    Cestujes pokojnou krajnou. Nic sa na vôkol nedeje. V pokoji môzes pokracovat vo svojej ceste.
    </td></tr>
    </table>
    END;
    
        return $page;
            
    }
    
    function dofight() { 
        
        header("Location: index.php?do=fight");
        
    }
    
    function showchar() {
        
        global $userrow, $controlrow;
        
        
        $userrow["experience"] = number_format($userrow["experience"]);
        $userrow["gold"] = number_format($userrow["gold"]);
        if ($userrow["expbonus"] > 0) { 
            $userrow["plusexp"] = "<span class=\"light\">(+".$userrow["expbonus"]."%)</span>"; 
        } elseif ($userrow["expbonus"] < 0) {
            $userrow["plusexp"] = "<span class=\"light\">(".$userrow["expbonus"]."%)</span>";
        } else { $userrow["plusexp"] = ""; }
        if ($userrow["goldbonus"] > 0) { 
            $userrow["plusgold"] = "<span class=\"light\">(+".$userrow["goldbonus"]."%)</span>"; 
        } elseif ($userrow["goldbonus"] < 0) { 
            $userrow["plusgold"] = "<span class=\"light\">(".$userrow["goldbonus"]."%)</span>";
        } else { $userrow["plusgold"] = ""; }
        
        $levelquery = doquery("SELECT ". $userrow["charclass"]."_exp FROM {{table}} WHERE id='".($userrow["level"]+1)."' LIMIT 1", "levels");
        $levelrow = mysql_fetch_array($levelquery);
        if ($userrow["level"] < 99) { $userrow["nextlevel"] = number_format($levelrow[$userrow["charclass"]."_exp"]); } else { $userrow["nextlevel"] = "<span class=\"light\">None</span>"; }
    
        if ($userrow["charclass"] == 1) { $userrow["charclass"] = $controlrow["class1name"]; }
        elseif ($userrow["charclass"] == 2) { $userrow["charclass"] = $controlrow["class2name"]; }
        elseif ($userrow["charclass"] == 3) { $userrow["charclass"] = $controlrow["class3name"]; }
        
        if ($userrow["difficulty"] == 1) { $userrow["difficulty"] = $controlrow["diff1name"]; }
        elseif ($userrow["difficulty"] == 2) { $userrow["difficulty"] = $controlrow["diff2name"]; }
        elseif ($userrow["difficulty"] == 3) { $userrow["difficulty"] = $controlrow["diff3name"]; }
        
        $spellquery = doquery("SELECT id,name FROM {{table}}","spells");
        $userspells = explode(",",$userrow["spells"]);
        $userrow["magiclist"] = "";
        while ($spellrow = mysql_fetch_array($spellquery)) {
            $spell = false;
            foreach($userspells as $a => $b) {
                if ($b == $spellrow["id"]) { $spell = true; }
            }
            if ($spell == true) {
                $userrow["magiclist"] .= $spellrow["name"]."
    ";
            }
        }
        if ($userrow["magiclist"] == "") { $userrow["magiclist"] = "None"; }
        
        
        $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
        . "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"
        . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
        
        $charsheet = gettemplate("showchar");
        $page = $xml . gettemplate("minimal");
        $array = array("content"=>parsetemplate($charsheet, $userrow), "title"=>"Status");
        echo parsetemplate($page, $array);
        die();
        
    }
    
    function onlinechar($id) {
        
        global $controlrow;
        $userquery = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "users");
        if (mysql_num_rows($userquery) == 1) { $userrow = mysql_fetch_array($userquery); } else { display("Neexistujuci uzivatel.", "Error"); }
        
        
        $userrow["experience"] = number_format($userrow["experience"]);
        $userrow["gold"] = number_format($userrow["gold"]);
        if ($userrow["expbonus"] > 0) { 
            $userrow["plusexp"] = "<span class=\"light\">(+".$userrow["expbonus"]."%)</span>"; 
        } elseif ($userrow["expbonus"] < 0) {
            $userrow["plusexp"] = "<span class=\"light\">(".$userrow["expbonus"]."%)</span>";
        } else { $userrow["plusexp"] = ""; }
        if ($userrow["goldbonus"] > 0) { 
            $userrow["plusgold"] = "<span class=\"light\">(+".$userrow["goldbonus"]."%)</span>"; 
        } elseif ($userrow["goldbonus"] < 0) { 
            $userrow["plusgold"] = "<span class=\"light\">(".$userrow["goldbonus"]."%)</span>";
        } else { $userrow["plusgold"] = ""; }
        
        $levelquery = doquery("SELECT ". $userrow["charclass"]."_exp FROM {{table}} WHERE id='".($userrow["level"]+1)."' LIMIT 1", "levels");
        $levelrow = mysql_fetch_array($levelquery);
        $userrow["nextlevel"] = number_format($levelrow[$userrow["charclass"]."_exp"]);
    
        if ($userrow["charclass"] == 1) { $userrow["charclass"] = $controlrow["class1name"]; }
        elseif ($userrow["charclass"] == 2) { $userrow["charclass"] = $controlrow["class2name"]; }
        elseif ($userrow["charclass"] == 3) { $userrow["charclass"] = $controlrow["class3name"]; }
        
        if ($userrow["difficulty"] == 1) { $userrow["difficulty"] = $controlrow["diff1name"]; }
        elseif ($userrow["difficulty"] == 2) { $userrow["difficulty"] = $controlrow["diff2name"]; }
        elseif ($userrow["difficulty"] == 3) { $userrow["difficulty"] = $controlrow["diff3name"]; }
        
        $charsheet = gettemplate("onlinechar");
        $page = parsetemplate($charsheet, $userrow);
        display($page, "Status");
        
    }
    
    function showmap() {
        
        global $userrow; 
        
        
        $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
        . "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"
        . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
        
        $page = $xml . gettemplate("minimal");
        $array = array("content"=>"<center><img src=\"images/map.gif\" alt=\"Map\" /></center>", "title"=>"Mapa");
        echo parsetemplate($page, $array);
        die();
        
    }
    
    function babblebox() {
        
        global $userrow;
        
        if (isset($_POST["babble"])) {
            $safecontent = makesafe($_POST["babble"]);
            if ($safecontent == "" || $safecontent == " ") { 
            } else { $insert = doquery("INSERT INTO {{table}} SET id='',posttime=NOW(),author='".$userrow["charname"]."',babble='$safecontent'", "babble"); }
            header("Location: index.php?do=babblebox");
            die();
        }
        
        $babblebox = array("content"=>"");
        $bg = 1;
        $babblequery = doquery("SELECT * FROM {{table}} ORDER BY id DESC LIMIT 20", "babble");
        while ($babblerow = mysql_fetch_array($babblequery)) {
            if ($bg == 1) { $new = "<div style=\"width:98%; background-color:#eeeeee;\">[".$babblerow["author"]."] ".$babblerow["babble"]."</div>\n"; $bg = 2; }
            else { $new = "<div style=\"width:98%; background-color:#ffffff;\">[".$babblerow["author"]."] ".stripslashes($babblerow["babble"])."</div>\n"; $bg = 1; } 
            $babblebox["content"] = $new . $babblebox["content"];
        }
        $babblebox["content"] .= "<center><form action=\"index.php?do=babblebox\" method=\"post\"><input type=\"text\" name=\"babble\" size=\"15\" maxlength=\"120\" />
    <input type=\"submit\" name=\"submit\" value=\"Pridat\" /> <input type=\"reset\" name=\"reset\" value=\"Vycistit\" /></form></center>";
        
        
        $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
        . "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"
        . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
        $page = $xml . gettemplate("babblebox");
        echo parsetemplate($page, $babblebox);
        die();
    
    }
    
    
    
    ?>
    login.php

    Code:
    <?php 
    
    include('functions.php');
    if (isset($_GET["do"])) {
        if ($_GET["do"] == "login") { login(); }
        elseif ($_GET["do"] == "logout") { logout(); }
    }
    
    function login() {
        
        include('connect.php');
        $link = opendb();
        
        if (isset($_POST["submit"])) {
            
            $query = doquery("SELECT * FROM {{table}} WHERE username='".$_POST["username"]."' AND password='".md5($_POST["password"])."' LIMIT 1", "users");
            if (mysql_num_rows($query) != 1) { die("Nespravne zadane meno alebo heslo. Skuste znova."); }
            $row = mysql_fetch_array($query);
            if (isset($_POST["rememberme"])) { $expiretime = time()+31536000; $rememberme = 1; } else { $expiretime = 0; $rememberme = 0; }
            $cookie = $row["id"] . " " . $row["username"] . " " . md5($row["password"] . "--" . $dbsettings["secretword"]) . " " . $rememberme;
            setcookie("dkgame", $cookie, $expiretime, "/", "", 0);
            header("Location: index.php");
            die();
            
        }
        
        $page = gettemplate("login");
        $title = "Log In";
        display($page, $title, false, false, false, false);
        
    }
        
    
    function logout() {
        
        setcookie("dkgame", "", time()-100000, "/", "", 0);
        header("Location: login.php?do=login");
        die();
        
    }
    
    ?>
    mesta.php

    Code:
    <?php 
    
    function inn() { 
        
        global $userrow, $numqueries;
    
        $townquery = doquery("SELECT name,innprice FROM {{table}} WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns");
        if (mysql_num_rows($townquery) != 1) { display("Pokus o cheatovanie.
    
    Opakovany pokus sa tresta zabanovanim.", "Error"); }
        $townrow = mysql_fetch_array($townquery);
        
        if ($userrow["gold"] < $townrow["innprice"]) { display("Nemas dost zlata na to aby si tu dnes mohol prespat.
    
    najdi si nieco ine v <a href=\"index.php\">meste</a>.", "Krcma"); die(); }
        
        if (isset($_POST["submit"])) {
            
            $newgold = $userrow["gold"] - $townrow["innprice"];
            $query = doquery("UPDATE {{table}} SET gold='$newgold',currenthp='".$userrow["maxhp"]."',currentmp='".$userrow["maxmp"]."',currenttp='".$userrow["maxtp"]."' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
            $title = "Krcma";
            $page = "Zobudil si sa do krasneho rana plny energie.
    
    Mozes sa vratit do <a href=\"index.php\">mesta</a>, alebo sa vydat na dalsiu cestu.";
            
        } elseif (isset($_POST["cancel"])) {
            
            header("Location: index.php"); die();
             
        } else {
            
            $title = "Krcma";
            $page = "Spanok v nasom pohostinstve vas zregeneruje tak ze ako nic na svete. Rucime vam ze vase HP,MP a TP budu rano na maxime.
    
    \n";
            $page .= "Jedna noc v tu stoji " . $townrow["innprice"] . " zlata. Môze byt?
    
    \n";
            $page .= "<form action=\"index.php?do=inn\" method=\"post\">\n";
            $page .= "<input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" />\n";
            $page .= "</form>\n";
            
        }
        
        display($page, $title);
        
    }
    
    function buy() { 
        
        global $userrow, $numqueries;
        
        $townquery = doquery("SELECT name,itemslist FROM {{table}} WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns");
        if (mysql_num_rows($townquery) != 1) { display("Pokus o cheatovanie.
    
    Opakovany pokus sa tresta zabanovanim.", "Error"); }
        $townrow = mysql_fetch_array($townquery);
        
        $itemslist = explode(",",$townrow["itemslist"]);
        $querystring = "";
        foreach($itemslist as $a=>$b) {
            $querystring .= "id='$b' OR ";
        }
        $querystring = rtrim($querystring, " OR ");
        
        $itemsquery = doquery("SELECT * FROM {{table}} WHERE $querystring ORDER BY id", "items");
        $page = "Nase zbrane vam zvysia Utocnu silu, stity a brnenia zase Obrannu silu.
    
    Vyberte si vystroj podla vasho vkusu.
    
    Ponukame tento sortiment:
    
    \n";
        $page .= "<table width=\"80%\">\n";
        while ($itemsrow = mysql_fetch_array($itemsquery)) {
            if ($itemsrow["type"] == 1) { $attrib = "Utocna sila:"; } else  { $attrib = "Obranna sila:"; }
            $page .= "<tr><td width=\"4%\">";
            if ($itemsrow["type"] == 1) { $page .= "<img src=\"images/icon_weapon.gif\" alt=\"zbran\" /></td>"; }
            if ($itemsrow["type"] == 2) { $page .= "<img src=\"images/icon_armor.gif\" alt=\"brnenie\" /></td>"; }
            if ($itemsrow["type"] == 3) { $page .= "<img src=\"images/icon_shield.gif\" alt=\"stit\" /></td>"; }
            if ($userrow["weaponid"] == $itemsrow["id"] || $userrow["armorid"] == $itemsrow["id"] || $userrow["shieldid"] == $itemsrow["id"]) {
                $page .= "<td width=\"32%\"><span class=\"light\">".$itemsrow["name"]."</span></td><td width=\"32%\"><span class=\"light\">$attrib ".$itemsrow["attribute"]."</span></td><td width=\"32%\"><span class=\"light\">Predane</span></td></tr>\n";
            } else {
                if ($itemsrow["special"] != "X") { $specialdot = "<span class=\"highlight\">&#42;</span>"; } else { $specialdot = ""; }
                $page .= "<td width=\"32%\"><a href=\"index.php?do=buy2:".$itemsrow["id"]."\">".$itemsrow["name"]."</a>$specialdot</td><td width=\"32%\">$attrib ".$itemsrow["attribute"]."</td><td width=\"32%\">Cena: ".$itemsrow["buycost"]." gold</td></tr>\n";
            }
        }
        $page .= "</table>
    \n";
        $page .= "Ak ste si to rozmysleli tak sa samozrejme môzete vratit do <a href=\"index.php\">mesta</a>. Do skoreho vydenia\n";
        $title = "Zbrojnica";
        
        display($page, $title);
        
    }
    
    function buy2($id) {
        
        global $userrow, $numqueries;
        
        $townquery = doquery("SELECT name,itemslist FROM {{table}} WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns");
        if (mysql_num_rows($townquery) != 1) { display("Pokus o cheatovanie.
    
    Opakovany pokus sa tresta zabanovanim.", "Error"); }
        $townrow = mysql_fetch_array($townquery);
        $townitems = explode(",",$townrow["itemslist"]);
        if (! in_array($id, $townitems)) { display("Pokus o cheatovanie.
    
    Opakovany pokus sa tresta zabanovanim.", "Error"); }
        
        $itemsquery = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "items");
        $itemsrow = mysql_fetch_array($itemsquery);
        
        if ($userrow["gold"] < $itemsrow["buycost"]) { display("Nemas dost zlata na nakup tejto vyzbroje.
    
    Mozes sa vratit do  <a href=\"index.php\">mesta</a> alebo si vybrat daco lacnejsie s nasej <a href=\"index.php?do=buy\">ponuky</a>.", "Zbrojnica"); die(); }
        
        if ($itemsrow["type"] == 1) {
            if ($userrow["weaponid"] != 0) { 
                $itemsquery2 = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["weaponid"]."' LIMIT 1", "items");
                $itemsrow2 = mysql_fetch_array($itemsquery2);
                $page = "Ak si chces kupit ".$itemsrow["name"].", tvoj ".$itemsrow2["name"]." ti bude na nic, kupim ho za ".ceil($itemsrow2["buycost"]/2)." zlata. Moze byt?
    
    <form action=\"index.php?do=buy3:$id\" method=\"post\"><input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" /></form>";
            } else {
                $page = "Chces si kupit ".$itemsrow["name"]."?
    
    <form action=\"index.php?do=buy3:$id\" method=\"post\"><input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" /></form>";
            }
        } elseif ($itemsrow["type"] == 2) {
            if ($userrow["armorid"] != 0) { 
                $itemsquery2 = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["armorid"]."' LIMIT 1", "items");
                $itemsrow2 = mysql_fetch_array($itemsquery2);
                $page = "Ak si chces kupit ".$itemsrow["name"].", tvoj ".$itemsrow2["name"]." ti bude na nic, kupim ho za ".ceil($itemsrow2["buycost"]/2)." zlata. Moze byt?
    
    <form action=\"index.php?do=buy3:$id\" method=\"post\"><input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" /></form>";
            } else {
                $page = "Chces si kupit ".$itemsrow["name"]."?
    
    <form action=\"index.php?do=buy3:$id\" method=\"post\"><input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" /></form>";
            }
        } elseif ($itemsrow["type"] == 3) {
            if ($userrow["shieldid"] != 0) { 
                $itemsquery2 = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["shieldid"]."' LIMIT 1", "items");
                $itemsrow2 = mysql_fetch_array($itemsquery2);
                $page = "Ak si chces kupit ".$itemsrow["name"].", tvoj ".$itemsrow2["name"]." ti bude na nic, kupim ho za ".ceil($itemsrow2["buycost"]/2)." zlata. Moze byt?
    
    <form action=\"index.php?do=buy3:$id\" method=\"post\"><input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" /></form>";
            } else {
                $page = "Chces si kupit ".$itemsrow["name"]."?
    
    <form action=\"index.php?do=buy3:$id\" method=\"post\"><input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" /></form>";
            }
        }
        
        $title = "Zbrojnica";
        display($page, $title);
       
    }
    
    function buy3($id) { 
        
        if (isset($_POST["cancel"])) { header("Location: index.php"); die(); }
        
        global $userrow;
        
        $townquery = doquery("SELECT name,itemslist FROM {{table}} WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns");
        if (mysql_num_rows($townquery) != 1) { display("Pokus o cheatovanie.
    
    Opakovany pokus sa tresta zabanovanim.", "Error"); }
        $townrow = mysql_fetch_array($townquery);
        $townitems = explode(",",$townrow["itemslist"]);
        if (! in_array($id, $townitems)) { display("Pokus o cheatovanie.
    
    Opakovany pokus sa tresta zabanovanim.", "Error"); }
        
        $itemsquery = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "items");
        $itemsrow = mysql_fetch_array($itemsquery);
        
        if ($userrow["gold"] < $itemsrow["buycost"]) { display("Nemas dost zlata na nakup tejto vyzbroje.
    
    Vrat sa do <a href=\"index.php\">mesta</a>alebo si vyber nieco lacnejsie s nasej <a href=\"index.php?do=buy\">ponuky</a>.", "Zbrojnica"); die(); }
        
        if ($itemsrow["type"] == 1) { 
        	
        	
            if ($userrow["weaponid"] != 0) { 
                $itemsquery2 = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["weaponid"]."' LIMIT 1", "items");
                $itemsrow2 = mysql_fetch_array($itemsquery2);
            } else {
                $itemsrow2 = array("attribute"=>0,"buycost"=>0,"special"=>"X");
            }
            
            
            $specialchange1 = "";
            $specialchange2 = "";
            if ($itemsrow["special"] != "X") {
                $special = explode(",",$itemsrow["special"]);
                $tochange = $special[0];
                $userrow[$tochange] = $userrow[$tochange] + $special[1];
                $specialchange1 = "$tochange='".$userrow[$tochange]."',";
                if ($tochange == "strength") { $userrow["attackpower"] += $special[1]; }
                if ($tochange == "dexterity") { $userrow["defensepower"] += $special[1]; }
            }
            if ($itemsrow2["special"] != "X") {
                $special2 = explode(",",$itemsrow2["special"]);
                $tochange2 = $special2[0];
                $userrow[$tochange2] = $userrow[$tochange2] - $special2[1];
                $specialchange2 = "$tochange2='".$userrow[$tochange2]."',";
                if ($tochange2 == "strength") { $userrow["attackpower"] -= $special2[1]; }
                if ($tochange2 == "dexterity") { $userrow["defensepower"] -= $special2[1]; }
            }
            
            
            $newgold = $userrow["gold"] + ceil($itemsrow2["buycost"]/2) - $itemsrow["buycost"];
            $newattack = $userrow["attackpower"] + $itemsrow["attribute"] - $itemsrow2["attribute"];
            $newid = $itemsrow["id"];
            $newname = $itemsrow["name"];
            $userid = $userrow["id"];
            if ($userrow["currenthp"] > $userrow["maxhp"]) { $newhp = $userrow["maxhp"]; } else { $newhp = $userrow["currenthp"]; }
            if ($userrow["currentmp"] > $userrow["maxmp"]) { $newmp = $userrow["maxmp"]; } else { $newmp = $userrow["currentmp"]; }
            if ($userrow["currenttp"] > $userrow["maxtp"]) { $newtp = $userrow["maxtp"]; } else { $newtp = $userrow["currenttp"]; }
            
            // Final update.
            $updatequery = doquery("UPDATE {{table}} SET $specialchange1 $specialchange2 gold='$newgold', attackpower='$newattack', weaponid='$newid', weaponname='$newname', currenthp='$newhp', currentmp='$newmp', currenttp='$newtp' WHERE id='$userid' LIMIT 1", "users");
            
        } elseif ($itemsrow["type"] == 2) { 
    
        	
            if ($userrow["armorid"] != 0) { 
                $itemsquery2 = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["armorid"]."' LIMIT 1", "items");
                $itemsrow2 = mysql_fetch_array($itemsquery2);
            } else {
                $itemsrow2 = array("attribute"=>0,"buycost"=>0,"special"=>"X");
            }
            
            
            $specialchange1 = "";
            $specialchange2 = "";
            if ($itemsrow["special"] != "X") {
                $special = explode(",",$itemsrow["special"]);
                $tochange = $special[0];
                $userrow[$tochange] = $userrow[$tochange] + $special[1];
                $specialchange1 = "$tochange='".$userrow[$tochange]."',";
                if ($tochange == "strength") { $userrow["attackpower"] += $special[1]; }
                if ($tochange == "dexterity") { $userrow["defensepower"] += $special[1]; }
            }
            if ($itemsrow2["special"] != "X") {
                $special2 = explode(",",$itemsrow2["special"]);
                $tochange2 = $special2[0];
                $userrow[$tochange2] = $userrow[$tochange2] - $special2[1];
                $specialchange2 = "$tochange2='".$userrow[$tochange2]."',";
                if ($tochange2 == "strength") { $userrow["attackpower"] -= $special2[1]; }
                if ($tochange2 == "dexterity") { $userrow["defensepower"] -= $special2[1]; }
            }
            
            
            $newgold = $userrow["gold"] + ceil($itemsrow2["buycost"]/2) - $itemsrow["buycost"];
            $newdefense = $userrow["defensepower"] + $itemsrow["attribute"] - $itemsrow2["attribute"];
            $newid = $itemsrow["id"];
            $newname = $itemsrow["name"];
            $userid = $userrow["id"];
            if ($userrow["currenthp"] > $userrow["maxhp"]) { $newhp = $userrow["maxhp"]; } else { $newhp = $userrow["currenthp"]; }
            if ($userrow["currentmp"] > $userrow["maxmp"]) { $newmp = $userrow["maxmp"]; } else { $newmp = $userrow["currentmp"]; }
            if ($userrow["currenttp"] > $userrow["maxtp"]) { $newtp = $userrow["maxtp"]; } else { $newtp = $userrow["currenttp"]; }
            
            
            $updatequery = doquery("UPDATE {{table}} SET $specialchange1 $specialchange2 gold='$newgold', defensepower='$newdefense', armorid='$newid', armorname='$newname', currenthp='$newhp', currentmp='$newmp', currenttp='$newtp' WHERE id='$userid' LIMIT 1", "users");
    
        } elseif ($itemsrow["type"] == 3) { 
    
        	
            if ($userrow["shieldid"] != 0) { 
                $itemsquery2 = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["shieldid"]."' LIMIT 1", "items");
                $itemsrow2 = mysql_fetch_array($itemsquery2);
            } else {
                $itemsrow2 = array("attribute"=>0,"buycost"=>0,"special"=>"X");
            }
            
            
            $specialchange1 = "";
            $specialchange2 = "";
            if ($itemsrow["special"] != "X") {
                $special = explode(",",$itemsrow["special"]);
                $tochange = $special[0];
                $userrow[$tochange] = $userrow[$tochange] + $special[1];
                $specialchange1 = "$tochange='".$userrow[$tochange]."',";
                if ($tochange == "strength") { $userrow["attackpower"] += $special[1]; }
                if ($tochange == "dexterity") { $userrow["defensepower"] += $special[1]; }
            }
            if ($itemsrow2["special"] != "X") {
                $special2 = explode(",",$itemsrow2["special"]);
                $tochange2 = $special2[0];
                $userrow[$tochange2] = $userrow[$tochange2] - $special2[1];
                $specialchange2 = "$tochange2='".$userrow[$tochange2]."',";
                if ($tochange2 == "strength") { $userrow["attackpower"] -= $special2[1]; }
                if ($tochange2 == "dexterity") { $userrow["defensepower"] -= $special2[1]; }
            }
            
            
            $newgold = $userrow["gold"] + ceil($itemsrow2["buycost"]/2) - $itemsrow["buycost"];
            $newdefense = $userrow["defensepower"] + $itemsrow["attribute"] - $itemsrow2["attribute"];
            $newid = $itemsrow["id"];
            $newname = $itemsrow["name"];
            $userid = $userrow["id"];
            if ($userrow["currenthp"] > $userrow["maxhp"]) { $newhp = $userrow["maxhp"]; } else { $newhp = $userrow["currenthp"]; }
            if ($userrow["currentmp"] > $userrow["maxmp"]) { $newmp = $userrow["maxmp"]; } else { $newmp = $userrow["currentmp"]; }
            if ($userrow["currenttp"] > $userrow["maxtp"]) { $newtp = $userrow["maxtp"]; } else { $newtp = $userrow["currenttp"]; }
            
            
            $updatequery = doquery("UPDATE {{table}} SET $specialchange1 $specialchange2 gold='$newgold', defensepower='$newdefense', shieldid='$newid', shieldname='$newname', currenthp='$newhp', currentmp='$newmp', currenttp='$newtp' WHERE id='$userid' LIMIT 1", "users");        
        
        }
        
        display("Dakujeme za nakup v nasej zbrojnici.
    
    Teraz sa mozete vratit spet do <a href=\"index.php\">mesta</a>, alebo si mozete este nieco vybrat s nasej <a href=\"index.php?do=buy\">ponuky</a>.", "Zbrojnica");
    
    }
    
    function maps() { 
        
        global $userrow, $numqueries;
        
        $mappedtowns = explode(",",$userrow["towns"]);
        
        $page = "Ak si kupite mapu cesty do urciteho mesta, tak sa vam mesto automaticky spristupni a cesta tam vas nebude stat ziadne TP.
    
    \n";
        $page .= "Vyberte si mapu ktoru chcete.
    
    \n";
        $page .= "<table width=\"90%\">\n";
        
        $townquery = doquery("SELECT * FROM {{table}} ORDER BY id", "towns");
        while ($townrow = mysql_fetch_array($townquery)) {
            
            if ($townrow["latitude"] >= 0) { $latitude = $townrow["latitude"] . "S,"; } else { $latitude = ($townrow["latitude"]*-1) . "J,"; }
            if ($townrow["longitude"] >= 0) { $longitude = $townrow["longitude"] . "V"; } else { $longitude = ($townrow["longitude"]*-1) . "Z"; }
            
            $mapped = false;
            foreach($mappedtowns as $a => $b) {
                if ($b == $townrow["id"]) { $mapped = true; }
            }
            if ($mapped == false) {
                $page .= "<tr><td width=\"25%\"><a href=\"index.php?do=maps2:".$townrow["id"]."\">".$townrow["name"]."</a></td><td width=\"25%\">Cena: ".$townrow["mapprice"]." zlata</td><td width=\"50%\" colspan=\"2\">Kupte si mapu na odhalenie cesty do mesta.</td></tr>\n";
            } else {
                $page .= "<tr><td width=\"25%\"><span class=\"light\">".$townrow["name"]."</span></td><td width=\"25%\"><span class=\"light\">Uz zmapovane.</span></td><td width=\"35%\"><span class=\"light\">Lokacia: $latitude $longitude</span></td><td width=\"15%\"><span class=\"light\">TP: ".$townrow["travelpoints"]."</span></td></tr>\n";
            }
            
        }
        
        $page .= "</table>
    \n";
        $page .= "Ak ste si to s kupou mapy rozmysleli tak sa mozete vratit spet do <a href=\"index.php\">mesta</a>.\n";
        
        display($page, "U kartografa");
        
    }
    
    function maps2($id) { 
        
        global $userrow, $numqueries;
        
        $townquery = doquery("SELECT name,mapprice FROM {{table}} WHERE id='$id' LIMIT 1", "towns");
        $townrow = mysql_fetch_array($townquery);
        
        if ($userrow["gold"] < $townrow["mapprice"]) { display("Nemas dost zlata na nakup tejto mapy.
    
    Mozes sa vrati do <a href=\"index.php\">mesta</a> alebo si vybrat nieco lacnejsie s nasej <a href=\"index.php?do=maps\">ponuky</a>.", "U kartografa"); die(); }
        
        $page = "Chces si kupit mapu do ".$townrow["name"].". Môze byt?
    
    <form action=\"index.php?do=maps3:$id\" method=\"post\"><input type=\"submit\" name=\"submit\" value=\"Ano\" /> <input type=\"submit\" name=\"cancel\" value=\"Nie\" /></form>";
        
        display($page, "U kartografa");
        
    }
    
    function maps3($id) { 
        
        if (isset($_POST["cancel"])) { header("Location: index.php"); die(); }
        
        global $userrow, $numqueries;
        
        $townquery = doquery("SELECT name,mapprice FROM {{table}} WHERE id='$id' LIMIT 1", "towns");
        $townrow = mysql_fetch_array($townquery);
        
        if ($userrow["gold"] < $townrow["mapprice"]) { display("Nemas dost zlata na nakup tejto mapy.
    
    Mozes sa vrati do <a href=\"index.php\">mesta</a> alebo si vybrat nieco lacnejsie s nasej <a href=\"index.php?do=maps\">ponuky</a>.", "U kartografa"); die(); }
        
        $mappedtowns = $userrow["towns"].",$id";
        $newgold = $userrow["gold"] - $townrow["mapprice"];
        
        $updatequery = doquery("UPDATE {{table}} SET towns='$mappedtowns',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
        
        display("Dakujem za nakup.
    
    Mozes sa vrati do <a href=\"index.php\">mesta</a> alebo ak ta este nieco zaujalo, vybrat si daco s mojej <a href=\"index.php?do=maps\">ponuky</a>.", "U kartografa");
        
    }
    
    function travelto($id, $usepoints=true) { 
        
        global $userrow, $numqueries;
        
        if ($userrow["currentaction"] == "Fighting") { header("Location: index.php?do=fight"); die(); }
        
        $townquery = doquery("SELECT name,travelpoints,latitude,longitude FROM {{table}} WHERE id='$id' LIMIT 1", "towns");
        $townrow = mysql_fetch_array($townquery);
        
        if ($usepoints==true) { 
            if ($userrow["currenttp"] < $townrow["travelpoints"]) { 
                display("Nemas dost TP na to aby si sa dostal do danej destinacie. Oddychni si a skus to znovu.", "Cestovanie"); die(); 
            }
            $mapped = explode(",",$userrow["towns"]);
            if (!in_array($id, $mapped)) { display("Pokus o cheatovanie.
    
    Opakovany pokus sa tresta zabanovanim.", "Error"); }
        }
        
        if (($userrow["latitude"] == $townrow["latitude"]) && ($userrow["longitude"] == $townrow["longitude"])) { display("Vysiel si s mesta no potom si si uvedomil ze je hlupost cestovat do mesta kde uz si.<a href=\"index.php\">Klikni sem</a> aby si sa vratil na namestie.", "Cestovanie"); die(); }
        
        if ($usepoints == true) { $newtp = $userrow["currenttp"] - $townrow["travelpoints"]; } else { $newtp = $userrow["currenttp"]; }
        
        $newlat = $townrow["latitude"];
        $newlon = $townrow["longitude"];
        $newid = $userrow["id"];
        
        
        $mapped = explode(",",$userrow["towns"]);
        $town = false;
        foreach($mapped as $a => $b) {
            if ($b == $id) { $town = true; }
        }
        $mapped = implode(",",$mapped);
        if ($town == false) { 
            $mapped .= ",$id";
            $mapped = "towns='".$mapped."',";
        } else { 
            $mapped = "towns='".$mapped."',";
        }
        
        $updatequery = doquery("UPDATE {{table}} SET currentaction='In Town',$mapped currenttp='$newtp',latitude='$newlat',longitude='$newlon' WHERE id='$newid' LIMIT 1", "users");
        
        $page = "Stojis pred branamy mesta ".$townrow["name"].". Teraz mozes <a href=\"index.php\">vstupit</a> do mesta.";
        display($page, "Cestovanie");
        
    }
        
    
    ?>
    users.php

    Code:
    <?php 
    
    include('functions.php');
    $link = opendb();
    
    if (isset($_GET["do"])) {
        
        $do = $_GET["do"];
        if ($do == "register") { register(); }
        elseif ($do == "verify") { verify(); }
        elseif ($do == "lostpassword") { lostpassword(); }
        elseif ($do == "changepassword") { changepassword(); }
        
    }
    
    function register() { 
        
        $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
        $controlrow = mysql_fetch_array($controlquery);
        
        if (isset($_POST["submit"])) {
            
            extract($_POST);
            
            $errors = 0; $errorlist = "";
            
            
            if ($username == "") { $errors++; $errorlist .= "Nezadali ste uzivatelske meno.
    "; }
            if (preg_match("/[^A-z0-9_\-]/", $username)==1) { $errors++; $errorlist .= "Uzivatelske meno musi pozostavat s cisle a pismen.
    "; } 
            $usernamequery = doquery("SELECT username FROM {{table}} WHERE username='$username' LIMIT 1","users");
            if (mysql_num_rows($usernamequery) > 0) { $errors++; $errorlist .= "Uzivatelske meno je uz pouzivane.
    "; }
            
            
            if ($charname == "") { $errors++; $errorlist .= "Nezadali ste meno vasej charakterovej postavy.
    "; }
            if (preg_match("/[^A-z0-9_\-]/", $charname)==1) { $errors++; $errorlist .= "Meno charakterovej postavy musi pozostavat s cisel a pismen.
    "; } 
            $characternamequery = doquery("SELECT charname FROM {{table}} WHERE charname='$charname' LIMIT 1","users");
            if (mysql_num_rows($characternamequery) > 0) { $errors++; $errorlist .= "Meno postavy je uz pouzivane.
    "; }
        
            
            if ($email1 == "" || $email2 == "") { $errors++; $errorlist .= "Nezadali ste email.
    "; }
            if ($email1 != $email2) { $errors++; $errorlist .= "Emaily sa nezhoduju.
    "; }
            if (! is_email($email1)) { $errors++; $errorlist .= "Format emailovej adresy nieje spravny.
    "; }
            $emailquery = doquery("SELECT email FROM {{table}} WHERE email='$email1' LIMIT 1","users");
            if (mysql_num_rows($emailquery) > 0) { $errors++; $errorlist .= "Zadany email je uz pouzivany inym uzivatelom.
    "; }
            
            
            if (trim($password1) == "") { $errors++; $errorlist .= "Nezadali ste heslo.
    "; }
            if (preg_match("/[^A-z0-9_\-]/", $password1)==1) { $errors++; $errorlist .= "Heslo musi pozostavat s cisel alebo pismen.
    "; } 
            if ($password1 != $password2) { $errors++; $errorlist .= "Hesla sa nezhoduju.
    "; }
            $password = md5($password1);
            
            if ($errors == 0) {
                
                if ($controlrow["verifyemail"] == 1) {
                    $verifycode = "";
                    for ($i=0; $i<8; $i++) {
                        $verifycode .= chr(rand(65,90));
                    }
                } else {
                    $verifycode='1';
                }
                
                $query = doquery("INSERT INTO {{table}} SET id='',regdate=NOW(),verify='$verifycode',username='$username',password='$password',email='$email1',charname='$charname',charclass='$charclass',racetype='$racetype',difficulty='$difficulty'", "users") or die(mysql_error());
                
                if ($controlrow["verifyemail"] == 1) {
                    if (sendregmail($email1, $verifycode) == true) {
                        $page = "Boli ste uspesne zaregistrovany.
    
    Na zadanu emailovu adredu bol zasalny email s overovacim kodom. Po obdrzani emailu navstivte <a href=\"users.php?do=verify\">Overovaci panel</a> kde zadate patricne udaje a po potvrdeni mozete hrat.";
                    } else {
                        $page = "Boli ste uspesne zaregistrovany.
    
    Avsak, nastaly urcite technicke problemy so zasielanim emailu s overovacim kodom. Prosim kontaktujte administratora .";
                    }
                } else {
                    $page = "Boli ste uspesne zaregistrovany.
    
    Mozete pokracovat <a href=\"login.php?do=login\">Loginom</a> do hry a zacat hrat".$controlrow["gamename"]."!";
                }
                
            } else {
                
                $page = "Nastaly tieto chyby:
    <span style=\"color:red;\">$errorlist</span>
    <a href=\"users.php?do=register\">Skuste znova.</a>";
                
            }
            
        } else {
            
            $page = gettemplate("register");
            if ($controlrow["verifyemail"] == 1) { 
                $controlrow["verifytext"] = "
    <span class=\"small\">Na danu emailovu adresu bude zaslany overovaci kod. Po jeho obdrzani postupujte podla pokynov. Upozornenie! Bez kodu ktory vam bude zaslany nemozete hrat, uistite sa ze ste zadali spravny email.</span>";
            } else {
                $controlrow["verifytext"] = "";
            }
            $page = parsetemplate($page, $controlrow);
            
        }
        
        $topnav = "<a href=\"login.php?do=login\"><img src=\"images/button_login.gif\" alt=\"Log In\" border=\"0\" /></a><a href=\"users.php?do=register\"><img src=\"images/button_register.gif\" alt=\"Registracia\" border=\"0\" /></a><a href=\"help.php\"><img src=\"images/button_help.gif\" alt=\"Pomoc\" border=\"0\" /></a>";
        display($page, "Register", false, false, false);
        
    }
    
    function verify() {
        
        if (isset($_POST["submit"])) {
            extract($_POST);
            $userquery = doquery("SELECT username,email,verify FROM {{table}} WHERE username='$username' LIMIT 1","users");
            if (mysql_num_rows($userquery) != 1) { die("Zadali ste zle uzivatelske meno."); }
            $userrow = mysql_fetch_array($userquery);
            if ($userrow["verify"] == 1) { die("Tento ucet uz raz bol overovany."); }
            if ($userrow["email"] != $email) { die("Zly email."); }
            if ($userrow["verify"] != $verify) { die("Zly overovaci kod."); }
            
            $updatequery = doquery("UPDATE {{table}} SET verify='1' WHERE username='$username' LIMIT 1","users");
            display("Vas ucet bol overeny a je plne aktivny.
    
    Teraz sa mozete <a href=\"login.php?do=login\">prihlasit</a>a zacat hrat.
    
    Dakujeme ze ste si nas vybrali!","Verify Email",false,false,false);
        }
        $page = gettemplate("verify");
        $topnav = "<a href=\"login.php?do=login\"><img src=\"images/button_login.gif\" alt=\"Log In\" border=\"0\" /></a><a href=\"users.php?do=register\"><img src=\"images/button_register.gif\" alt=\"Registracia\" border=\"0\" /></a><a href=\"help.php\"><img src=\"images/button_help.gif\" alt=\"Pomoc\" border=\"0\" /></a>";
        display($page, "Verify Email", false, false, false);
        
    }
    
    function lostpassword() {
        
        if (isset($_POST["submit"])) {
            extract($_POST);
            $userquery = doquery("SELECT email FROM {{table}} WHERE email='$email' LIMIT 1","users");
            if (mysql_num_rows($userquery) != 1) { die("K zadanemu emailu sa neviaze ziadne uzivatelske meno v databaze."); }
            $newpass = "";
            for ($i=0; $i<8; $i++) {
                $newpass .= chr(rand(65,90));
            }
            $md5newpass = md5($newpass);
            $updatequery = doquery("UPDATE {{table}} SET password='$md5newpass' WHERE email='$email' LIMIT 1","users");
            if (sendpassemail($email,$newpass) == true) {
                display("Vase nove heslo vam bolo zaslane na zadanu emailovu adresu.
    
    Po obdrzani, sa mozete <a href=\"login.php?do=login\">prihlasit</a> a dalej pokracovat v hre.
    
    Dakujeme.","Strata hesla",false,false,false);
            } else {
                display("Vyskytli sa chyby.
    
    Kontaktujte administratora.
    
    Za neprijemnosti vzniknute tymto vypadkom sa ospravedlnujeme.","Strata hesla",false,false,false);
            }
            die();
        }
        $page = gettemplate("lostpassword");
        $topnav = "<a href=\"login.php?do=login\"><img src=\"images/button_login.gif\" alt=\"Log In\" border=\"0\" /></a><a href=\"users.php?do=register\"><img src=\"images/button_register.gif\" alt=\"Registracia\" border=\"0\" /></a><a href=\"help.php\"><img src=\"images/button_help.gif\" alt=\"Pomoc\" border=\"0\" /></a>";
        display($page, "Strata hesla", false, false, false);
        
    }
    
    function changepassword() {
        
        if (isset($_POST["submit"])) {
            extract($_POST);
            $userquery = doquery("SELECT * FROM {{table}} WHERE username='$username' LIMIT 1","users");
            if (mysql_num_rows($userquery) != 1) { die("Zadali ste zle uzivatelske meno."); }
            $userrow = mysql_fetch_array($userquery);
            if ($userrow["password"] != md5($oldpass)) { die("Zadali ste zle stare heslo."); }
            if (preg_match("/[^A-z0-9_\-]/", $newpass1)==1) { die("Nove heslo musi pozostavat s pismen a cislic."); } 
            if ($newpass1 != $newpass2) { die("Nove hesla sa nezhoduju."); }
            $realnewpass = md5($newpass1);
            $updatequery = doquery("UPDATE {{table}} SET password='$realnewpass' WHERE username='$username' LIMIT 1","users");
            if (isset($_COOKIE["dkgame"])) { setcookie("dkgame", "", time()-100000, "/", "", 0); }
            display("Vase heslo bolo uspesne zmenene.
    
    ","Zmena hesla",false,false,false);
            die();
        }
        $page = gettemplate("changepassword");
        $topnav = "<a href=\"login.php?do=login\"><img src=\"images/button_login.gif\" alt=\"Log In\" border=\"0\" /></a><a href=\"users.php?do=register\"><img src=\"images/button_register.gif\" alt=\"Registracia\" border=\"0\" /></a><a href=\"help.php\"><img src=\"images/button_help.gif\" alt=\"Pomoc\" border=\"0\" /></a>";
        display($page, "Zmena hesla", false, false, false); 
        
    }
    
    function sendpassemail($emailaddress, $password) {
        
        $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
        $controlrow = mysql_fetch_array($controlquery);
        extract($controlrow);
        
    $email = <<<END
    Poziadali ste o pridelenie noveho hesla na ucet umiestneny na mmorpg $gameurl. 
    
    
    Vase nove heslo je: $password
    
    DAkujeme za prejavenu dôveru.
    END;
    
        $status = mymail($emailaddress, "$gamename Strata hesla", $email);
        return $status;
        
    }
    
    function sendregmail($emailaddress, $vercode) {
        
        $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
        $controlrow = mysql_fetch_array($controlquery);
        extract($controlrow);
        $verurl = $gameurl . "?do=verify";
        
    $email = <<<END
    Zaregistrovali ste sa do nasej hry menom $gamename, umiestnenej na url: $gameurl.
    
    Tento email Vam bol zaslany s dôvodu zamedzenia spamovania nasho servera. Vdaka tomuto emailu sa mozete prvotne prihlasit do nasej hry a tym padom overit vas ucet. Prosim navstivte stranku kde Vam bude uvereny ucet: www.domena.sk/mmorpg/users.php?do=verify
    
    Overovaci kod: $vercode
    
    Ak ste sa nezaregistrovali na hore spominanom servery, ignorujte tuto spravu. Zelame pekny den.
    END;
    
        $status = mymail($emailaddress, "$gamename Overenie uctu", $email);
        return $status;
        
    }
    
    function mymail($to, $title, $body, $from = '') { 
    
        $controlquery = doquery("SELECT * FROM {{table}} WHERE id='1' LIMIT 1", "control");
        $controlrow = mysql_fetch_array($controlquery);
        extract($controlrow);
        
    
      $from = trim($from);
    
      if (!$from) {
       $from = '<'.$controlrow["adminemail"].'>';
      }
    
      $rp    = $controlrow["adminemail"];
      $org    = '$gameurl';
      $mailer = 'PHP';
    
      $head  = '';
      $head  .= "Content-Type: text/plain \r\n";
      $head  .= "Date: ". date('r'). " \r\n";
      $head  .= "Return-Path: $rp \r\n";
      $head  .= "From: $from \r\n";
      $head  .= "Sender: $from \r\n";
      $head  .= "Reply-To: $from \r\n";
      $head  .= "Organization: $org \r\n";
      $head  .= "X-Sender: $from \r\n";
      $head  .= "X-Priority: 3 \r\n";
      $head  .= "X-Mailer: $mailer \r\n";
    
      $body  = str_replace("\r\n", "\n", $body);
      $body  = str_replace("\n", "\r\n", $body);
    
      return mail($to, $title, $body, $head);
      
    }
    
    
    ?>
    Tak to by sme mali operačné jadro našej mmorpg. Teraz ideme na PHP templaty. Prejdite do zložky templates a tam vytvorte nasledovné scripty.

    admin.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <head>
    <title>{{title}}</title>
    <style type="text/css">
    body {
      background-color: #000000;
      color: white;
      font: 11px verdana;
    }
    table {
      border-color: white;
      padding: 0px;
      font: 11px verdana;
    }
    td {
      border-style: none;
      padding: 3px;
      vertical-align: top;
    }
    a {
        color: #FFFFFF;
        text-decoration: none;
        font-weight: bold;
    }
    a:hover {
        color: #FF0000;
    }
    .small {
      font: 10px verdana;
    }
    .highlight {
      color: red;
    }
    .light {
      color: #999999;
    }
    .title {
      border: solid 1px black;
      background-color: #eeeeee;
      font-weight: bold;
      padding: 5px;
      margin: 3px;
    }
    .copyright {
      border: solid 1px black;
      background-color: #eeeeee;
      font: 10px verdana;
      color: black;
    }
    </style>
    </head>
    <body><center>
    <table width="90%"><tr>
    <td width="150" style="border-right: solid 1px black;">
    <u>Administrácia</u>
    
    
    Moznosti:
    
    Admin Home
    
    Game Home
    
    
    Hlavný panel:
    
    Základné nastavenia
    
    Pridat nové oznámenie
    
    Upravit pouzívatela
    
    
    Herné nastavenia:
    
    Editovat artefakty
    
    Editovat obsah protivnikov
    
    Editovat mesta
    
    Editovat prisery
    
    Editovat levely
    
    Editovat kuzla
    
    </td><td>
    {{content}}
    </td></tr></table>
    
    
    <table class="copyright" width="90%"><tr>
    <td width="25%" align="center">Powered by The Guild team</td><td width="25%" align="center">&copy; 2009 by Werewolf</td><td width="25%" align="center">{{totaltime}} Seconds, {{numqueries}} Queries</td><td width="25%" align="center">Version {{version}} {{build}}</td>
    </center></body>
    </html>
    THEVERYENDOFYOU;
    ?>
    babblebox.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <head>
    <title>shoutbox</title>
    <style type="text/css">
    body {
      color: black;
      font: 11px verdana;
      margins: 0px;
      padding: 0px;
    }
    div {
        padding: 2px;
        border: solid 1px black;
        margin: 2px;
        text-align: left;
    }
    a {
        color: #FFFFFF;
        text-decoration: none;
        font-weight: bold;
    }
    a:hover {
        color: #CCCCCC;
    }
    </style>
    </head>
    <body onload="window.scrollTo(0,99999)">
    {{content}}
    </body>
    </html>
    THEVERYENDOFYOU;
    ?>
    fight.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <table width="100%">
    <tr><td class="title">[img]images/title_fighting.gif[/img]</td></tr>
    <tr><td>
    Bojujes proti {{monstername}}
    
    
    {{monsterhp}}
    {{yourturn}}
    {{monsterturn}}
    {{command}}
    </td></tr>
    </table>
    THEVERYENDOFYOU;
    ?>
    changepassword.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <form action="users.php?do=changepassword" method="post">
    <table width="100%">
    <tr><td colspan="2">Pouzite nasledujuci formular na zmenu hesla. Musite vyplnit vsetky polia. Nove heslo musi obsahovat cisla alebo pismena v maximalnom rozhrani 10.</td></tr>
    <tr><td width="20%">Uzivatelske meno:</td><td><input type="text" name="username" size="30" maxlength="30" /></td></tr>
    <tr><td>Stare heslo:</td><td><input type="password" name="oldpass" size="20" /></td></tr>
    <tr><td>Nove heslo:</td><td><input type="password" name="newpass1" size="20" maxlength="10" /></td></tr>
    <tr><td>Nove heslo znovu:</td><td><input type="password" name="newpass2" size="20" maxlength="10" />
    
    
    </td></tr>
    <tr><td colspan="2"><input type="submit" name="submit" value="Odoslat" /> <input type="reset" name="reset" value="Reset" /></td></tr>
    </table>
    </form>
    THEVERYENDOFYOU;
    ?>
    leftnav.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <table width="100%">
    <tr><td class="title">[img]images/button_location.gif[/img]</td></tr>
    <tr><td>
    Momentalne: {{currentaction}}
    
    Zemepisna sirka: {{latitude}}
    
    Zemepisna dlzka: {{longitude}}
    
    Mapa
    
    
    <form action="index.php?do=move" method="post">
    <center>
    <input name="north" type="submit" value="Sever" />
    
    <input name="west" type="submit" value="Zapad" /><input name="east" type="submit" value="Vychod" />
    
    <input name="south" type="submit" value="Juh" />
    </center>
    </form>
    </td></tr>
    </table>
    
    
    <table width="100%">
    <tr><td class="title">[img]images/button_towns.gif[/img]</td></tr>
    <tr><td>
    {{currenttown}}
    Cestovat do:
    
    {{townslist}}
    </td></tr>
    </table>
    
    
    <table width="100%">
    <tr><td class="title">[img]images/button_functions.gif[/img]</td></tr>
    <tr><td>
    {{forumslink}}
    {{adminlink}}
    Zmena hesla
    
    Log Out
    
    Pomoc
    </td></tr>
    </table>
    
    THEVERYENDOFYOU;
    ?>
    login.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <form action="login.php?do=login" method="post">
    <table width="75%">
    <tr><td width="30%">Uzivatelske meno:</td><td><input type="text" size="30" name="username" /></td></tr>
    <tr><td>Heslo:</td><td><input type="password" size="30" name="password" /></td></tr>
    <tr><td>Zapametat si ma?</td><td><input type="checkbox" name="rememberme" value="Ano" /> Ano</td></tr>
    <tr><td colspan="2"><input type="submit" name="submit" value="Log In" /></td></tr>
    <tr><td colspan="2">Zaskrtnite pole "Zapametat si ma" a pri nasledujucom prihlaseni nebudete musiet dane informacie znovu zadavat ale priamo vas prihlasi do hry.
    
    Nieste este zaregistrovany a chcete hrat?Zaregistrujte sa teraz.
    
    Taktiez si po registracii môzete zmenit heslo, alebo poziadat o druhe ak ste s nejakych pricin heslo zabudli.</td></tr>
    </table>
    </form>
    THEVERYENDOFYOU;
    ?>
    lostpassword.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <form action="users.php?do=lostpassword" method="post">
    <table width="80%">
    <tr><td colspan="2">V pripade ze ste stratili heslo tak zadajte svoj e-mail a my vam zasleme nove.</td></tr>
    <tr><td width="20%">Email:</td><td><input type="text" name="email" size="30" maxlength="100" /></td></tr>
    <tr><td colspan="2"><input type="submit" name="submit" value="Odoslat" /> <input type="reset" name="reset" value="Reset" /></td></tr>
    </table>
    </form>
    THEVERYENDOFYOU;
    ?>
    minimal.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <head>
    <title>{{title}}</title>
    <style type="text/css">
    body {
      background-image: url(images/background.jpg);
      color: black;
      font: 11px verdana;
    }
    table {
      border-style: none;
      padding: 0px;
      font: 11px verdana;
    }
    td {
      border-style: none;
      padding: 3px;
      vertical-align: top;
    }
    td.top {
      border-bottom: solid 2px black;
    }
    td.left {
      width: 150px;
      border-right: solid 2px black;
    }
    td.right {
      width: 150px;
      border-left: solid 2px black;
    }
    a {
        color: #FFFFFF;
        text-decoration: none;
        font-weight: bold;
    }
    a:hover {
        color: #FFFFFF;
    }
    .small {
      font: 10px verdana;
    }
    .highlight {
      color: red;
    }
    .light {
      color: #FFFFFF;
    }
    .title {
      border: solid 1px black;
      background-color: #000000;
      font-weight: bold;
      padding: 5px;
      margin: 3px;
    }
    .copyright {
      border: solid 1px black;
      background-color: #000000;
      font: 10px verdana;
    }
    </style>
    </head>
    <body><center>
    {{content}}
    </center></body>
    </html>
    THEVERYENDOFYOU;
    ?>
    onlinechar.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    Tu je profil uzivatela {{charname}}.
    
    
    Po prehliadnuti profilu sa mozete vratit naspet do mesta.
    
    
    <center>
    <table width="200">
    <tr><td class="title">[img]images/button_character.gif[/img]</td></tr>
    <tr><td>
    {{charname}}
    
    
    
    Obtiaznost: {{difficulty}}
    
    Class: {{charclass}}
    
    
    
    Level: {{level}}
    
    Exp: {{experience}}
    
    Zlato: {{gold}}
    
    HP: {{currenthp}} / {{maxhp}}
    
    MP: {{currentmp}} / {{maxmp}}
    
    TP: {{currenttp}} / {{maxtp}}
    
    
    
    Sila: {{strength}}
    
    Presnost: {{dexterity}}
    
    Utocna sila: {{attackpower}}
    
    Obranna sila: {{defensepower}}
    
    </td></tr>
    </table>
    
    
    <table width="200">
    <tr><td class="title">[img]images/button_inventory.gif[/img]</td></tr>
    <tr><td>
    <table width="100%">
    <tr><td>[img]images/icon_weapon.gif[/img]</td><td width="100%">Zbran: {{weaponname}}</td></tr>
    <tr><td>[img]images/icon_armor.gif[/img]</td><td width="100%">Brnenie: {{armorname}}</td></tr>
    <tr><td>[img]images/icon_shield.gif[/img]</td><td width="100%">Stit: {{shieldname}}</td></tr>
    </table>
    Batoh 1: {{slot1name}}
    
    Batoh 2: {{slot2name}}
    
    Batoh 3: {{slot3name}}
    </td></tr>
    </table>
    </center>
    
    
    THEVERYENDOFYOU;
    ?>
    primary.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <head>
    <title>{{title}}</title>
    <style type="text/css">
    body {
      background-image: url(images/background.jpg);
      color: white;
      font: 11px verdana;
    }
    table {
      border-style: none;
      padding: 0px;
      font: 11px verdana;
    }
    td {
      border-style: none;
      padding: 3px;
      vertical-align: top;
    }
    td.top {
      border-bottom: solid 2px black;
    }
    td.left {
      width: 180px;
      border-right: solid 2px black;
    }
    td.right {
      width: 180px;
      border-left: solid 2px black;
    }
    a {
        color: #FFFFFF;
        text-decoration: none;
        font-weight: bold;
    }
    a:hover {
        color: #CCCCCC;
    }
    .small {
      font: 10px verdana;
    }
    .highlight {
      color: red;
    }
    .light {
      color: #FFFFFF;
    }
    .title {
      border: solid 1px black;
      background-color: #eeeeee;
      font-weight: bold;
      padding: 5px;
      margin: 3px;
    }
    .copyright {
      border: solid 1px black;
      background-color: #000000;
      font: 10px verdana;
    }
    </style>
    <script>
    function opencharpopup(){
    var popurl="index.php?do=showchar"
    winpops=window.open(popurl,"","width=210,height=500,scrollbars")
    }
    function openmappopup(){
    var popurl="index.php?do=showmap"
    winpops=window.open(popurl,"","width=520,height=520,scrollbars")
    }
    </script>
    </head>
    <body><center>
    <table cellspacing="0" width="90%"><tr>
    <td class="top" colspan="3">
      <table width="100%"><tr><td>[img]images/logo.gif[/img]</td><td style="text-align:right; vertical-align:middle;">{{topnav}}</td></tr></table>
    </td>
    </tr><tr>
    <td class="left">{{leftnav}}</td>
    <td class="middle">{{content}}</td>
    <td class="right">{{rightnav}}</td>
    </tr>
    </table>
    
    <table class="copyright" width="90%"><tr>
    <td width="25%" align="center">Powered by The Guild team</td><td width="25%" align="center">Werewolf 2009</td><td width="25%" align="center">{{totaltime}} sekund, {{numqueries}} Queries</td><td width="25%" align="center">Verzia {{version}} {{build}}</td>
    </tr></table>
    </center></body>
    </html>
    THEVERYENDOFYOU;
    ?>
    register.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <form action="users.php?do=register" method="post">
    <table width="80%">
    <tr><td width="20%">Uzivatelske meno:</td><td><input type="text" name="username" size="30" maxlength="30" />
    Uzivatelske meno musi obsahovat kombinaciu maximalne 30 cisel alebo pismen.
    
    
    </td></tr>
    <tr><td>Heslo:</td><td><input type="password" name="password1" size="30" maxlength="10" /></td></tr>
    <tr><td>Heslo znovu:</td><td><input type="password" name="password2" size="30" maxlength="10" />
    Heslo môze obsahovat maximalne 10 cislic alebo pismen.
    
    
    </td></tr>
    <tr><td>Email:</td><td><input type="text" name="email1" size="30" maxlength="100" /></td></tr>
    <tr><td>Email znovu:</td><td><input type="text" name="email2" size="30" maxlength="100" />{{verifytext}}
    
    
    </td></tr>
    <tr><td>Meno charakteru:</td><td><input type="text" name="charname" size="30" maxlength="30" /></td></tr>
    <tr><td>Class:</td><td><select name="charclass"><option value="1">{{class1name}}</option><option value="2">{{class2name}}</option><option value="3">{{class3name}}</option></select></td></tr>
    <tr><td>Rasa:</td><td><select name="racetype"><option value="1">{{racetype}}</option></select></td></tr>
    <tr><td>Obtiaznost:</td><td><select name="difficulty"><option value="1">{{diff1name}}</option><option value="2">{{diff2name}}</option><option value="3">{{diff3name}}</option></select></td></tr>
    <tr><td colspan="2">Tukni na Pomoc ak chces vediet viac.
    
    </td></tr>
    <tr><td colspan="2"><input type="submit" name="submit" value="Odosli" /> <input type="reset" name="reset" value="Reset" /></td></tr>
    </table>
    </form>
    THEVERYENDOFYOU;
    ?>
    rightnav.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <table width="100%">
    <tr><td class="title">[img]images/button_character.gif[/img]</td></tr>
    <tr><td>
    {{charname}}
    
    Level: {{level}}
    
    Exp: {{experience}}
    
    Zlato: {{gold}}
    
    HP: {{currenthp}}
    
    MP: {{currentmp}}
    
    TP: {{currenttp}}
    
    {{statbars}}
    
    Kompletny status
    </td></tr>
    </table>
    
    
    <table width="100%">
    <tr><td class="title">[img]images/button_inventory.gif[/img]</td></tr>
    <tr><td>
    <table width="100%">
    <tr><td>[img]images/icon_weapon.gif[/img]</td><td width="100%">Zbran: {{weaponname}}</td></tr>
    <tr><td>[img]images/icon_armor.gif[/img]</td><td width="100%">Brnenie: {{armorname}}</td></tr>
    <tr><td>[img]images/icon_shield.gif[/img]</td><td width="100%">Stit: {{shieldname}}</td></tr>
    </table>
    Batoch 1: {{slot1name}}
    
    Batoch 2: {{slot2name}}
    
    Batoch 3: {{slot3name}}
    </td></tr>
    </table>
    
    
    <table width="100%">
    <tr><td class="title">[img]images/button_fastspells.gif[/img]</td></tr>
    <tr><td>
    {{magiclist}}
    </td></tr>
    </table>
    
    THEVERYENDOFYOU;
    ?>
    showchar.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <style type="text/css">
    body {
      background-image: url(images/background.jpg);
      color: white;
      font: 11px verdana;
    }
    .title {
      border: solid 1px black;
      background-color: #eeeeee;
      font-weight: bold;
      padding: 5px;
      margin: 3px;
    }
    </style>
    <table width="100%">
    <tr><td class="title">[img]images/button_character.gif[/img]</td></tr>
    <tr><td>
    {{charname}}
    
    
    
    Obtiaznost: {{difficulty}}
    
    Class: {{charclass}}
    
    
    
    Level: {{level}}
    
    Exp: {{experience}} {{plusexp}}
    
    Dalsi level: {{nextlevel}}
    
    Zlato: {{gold}} {{plusgold}}
    
    HP: {{currenthp}} / {{maxhp}}
    
    MP: {{currentmp}} / {{maxmp}}
    
    TP: {{currenttp}} / {{maxtp}}
    
    
    
    Sila: {{strength}}
    
    Presnost: {{dexterity}}
    
    Utocna sila: {{attackpower}}
    
    Obranna sila: {{defensepower}}
    
    </td></tr>
    </table>
    
    
    <table width="100%">
    <tr><td class="title">[img]images/button_inventory.gif[/img]</td></tr>
    <tr><td>
    <table width="100%">
    <tr><td>[img]images/icon_weapon.gif[/img]</td><td width="100%">Zbran: {{weaponname}}</td></tr>
    <tr><td>[img]images/icon_armor.gif[/img]</td><td width="100%">Brnenie: {{armorname}}</td></tr>
    <tr><td>[img]images/icon_shield.gif[/img]</td><td width="100%">Stit: {{shieldname}}</td></tr>
    </table>
    Batoh 1: {{slot1name}}
    
    Batoh 2: {{slot2name}}
    
    Batoh 3: {{slot3name}}
    </td></tr>
    </table>
    
    
    <table width="100%">
    <tr><td class="title">[img]images/button_spells.gif[/img]</td></tr>
    <tr><td>
    {{magiclist}}
    </td></tr>
    </table>
    
    THEVERYENDOFYOU;
    ?>
    towns.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <table width="100%">
    <tr><td class="title">[img]images/town_{{id}}.gif[/img]</td></tr>
    <tr><td>
    Moznosti:
    
    <ul>
    <li />Spat v krcme
    <li />Kupit si vystroj
    <li />Kupit si mapu[/list]</td></tr>
    <tr><td><center>
    {{news}}
    
    
    <table width="95%">
    <tr><td width="50%">
    {{whosonline}}
    </td><td>
    {{babblebox}}
    </td></tr>
    </table>
    </td></tr>
    </table>
    THEVERYENDOFYOU;
    ?>
    verify.php

    Code:
    <?php
    $template = <<<THEVERYENDOFYOU
    <form action="users.php?do=verify" method="post">
    <table width="80%">
    <tr><td colspan="2">Dakujeme vam za zaregistrovanie sa do nasej hry. Prosim zadajte uzivatelske meno, email a overovaci kod ktory vam bol zaslany v maile. Po zadani tychto udajov sa vam vas ucet odomkne.</td></tr>
    <tr><td width="20%">Uzivatelske meno:</td><td><input type="text" name="username" size="30" maxlength="30" /></td></tr>
    <tr><td>Email:</td><td><input type="text" name="email" size="30" maxlength="100" /></td></tr>
    <tr><td>Overovaci kod:</td><td><input type="text" name="verify" size="10" maxlength="8" />
    
    
    </td></tr>
    <tr><td colspan="2"><input type="submit" name="submit" value="Odoslat" /> <input type="reset" name="reset" value="Reset" /></td></tr>
    </table>
    </form>
    THEVERYENDOFYOU;
    ?>
    No a to by sme mali ku kodu asi tak všetko. UPOZORNUJEM že táto mmorpg je dosť zložito robená a neodporúčam to meniť ľudom ktorý si niesú na 100% istý čo robia. Ok prikladám aj sadu obrázkov ktorú rozbalte do priečinku images.
    Všetko o hrách a novinkách s herného sveta nájdete na http://the-guild.cz/.

  3. #3

    Re: MMORPG s použitím jazyka PHP a SQL

    Tu sú tie obrázky:
    Code:
    http://rapidshare.com/files/264802706/images.rar.html
    Všetko o hrách a novinkách s herného sveta nájdete na http://the-guild.cz/.

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts