Drop of char_templates, class_list and lvlupgain SQL tables.
This commit is contained in:
parent
05283c9afa
commit
5429f7195d
@ -1,138 +0,0 @@
|
|||||||
--
|
|
||||||
-- Table structure for table `char_templates`
|
|
||||||
--
|
|
||||||
DROP TABLE IF EXISTS `char_templates`;
|
|
||||||
CREATE TABLE `char_templates` (
|
|
||||||
`ClassId` int(11) NOT NULL default '0',
|
|
||||||
`ClassName` varchar(20) NOT NULL default '',
|
|
||||||
`RaceId` int(1) NOT NULL default '0',
|
|
||||||
`STR` int(2) NOT NULL default '0',
|
|
||||||
`CON` int(2) NOT NULL default '0',
|
|
||||||
`DEX` int(2) NOT NULL default '0',
|
|
||||||
`_INT` int(2) NOT NULL default '0',
|
|
||||||
`WIT` int(2) NOT NULL default '0',
|
|
||||||
`MEN` int(2) NOT NULL default '0',
|
|
||||||
`P_ATK` int(3) NOT NULL default '0',
|
|
||||||
`P_DEF` int(3) NOT NULL default '0',
|
|
||||||
`M_ATK` int(3) NOT NULL default '0',
|
|
||||||
`M_DEF` int(2) NOT NULL default '0',
|
|
||||||
`P_SPD` int(3) NOT NULL default '0',
|
|
||||||
`M_SPD` int(3) NOT NULL default '0',
|
|
||||||
`ACC` int(3) NOT NULL default '0',
|
|
||||||
`CRITICAL` int(3) NOT NULL default '0',
|
|
||||||
`EVASION` int(3) NOT NULL default '0',
|
|
||||||
`MOVE_SPD` int(3) NOT NULL default '0',
|
|
||||||
`_LOAD` int(11) NOT NULL default '0',
|
|
||||||
`x` int(9) NOT NULL default '0',
|
|
||||||
`y` int(9) NOT NULL default '0',
|
|
||||||
`z` int(9) NOT NULL default '0',
|
|
||||||
`canCraft` int(1) NOT NULL default '0',
|
|
||||||
`M_UNK1` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`M_UNK2` decimal(8,6) NOT NULL default '0.000000',
|
|
||||||
`M_COL_R` decimal(3,1) NOT NULL default '0.0',
|
|
||||||
`M_COL_H` decimal(4,1) NOT NULL default '0.0',
|
|
||||||
`F_UNK1` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`F_UNK2` decimal(8,6) NOT NULL default '0.000000',
|
|
||||||
`F_COL_R` decimal(3,1) NOT NULL default '0.0',
|
|
||||||
`F_COL_H` decimal(4,1) NOT NULL default '0.0',
|
|
||||||
`items1` int(4) NOT NULL default '0',
|
|
||||||
`items2` int(4) NOT NULL default '0',
|
|
||||||
`items3` int(4) NOT NULL default '0',
|
|
||||||
`items4` int(4) NOT NULL default '0',
|
|
||||||
`items5` int(10) NOT NULL default '0',
|
|
||||||
PRIMARY KEY (`ClassId`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `char_templates`
|
|
||||||
--
|
|
||||||
|
|
||||||
INSERT INTO `char_templates` VALUES (0, 'Human Fighter', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (1, 'Warrior', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (2, 'Gladiator', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (3, 'Warlord', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (4, 'Human Knight', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (5, 'Paladin', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (6, 'Dark Avenger', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (7, 'Rogue', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (8, 'Treasure Hunter', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (9, 'Hawkeye', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (10, 'Human Mage', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (11, 'Human Wizard', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (12, 'Sorcerer', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (13, 'Necromancer', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (14, 'Warlock', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (15, 'Cleric', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (16, 'Bishop', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (17, 'Human Prophet', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (18, 'Elf Fighter', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (19, 'Elf Knight', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (20, 'Temple Knight', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (21, 'Swordsinger', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (22, 'Scout', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (23, 'Plains Walker', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (24, 'Silver Ranger', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (25, 'Elf Mage', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (26, 'Elf Wizard', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (27, 'Spellsinger', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (28, 'Elemental Summoner', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (29, 'Oracle', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (30, 'Elder', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (31, 'DE Fighter', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (32, 'Palus Knight', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (33, 'Shillien Knight', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (34, 'Bladedancer', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (35, 'Assassin', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (36, 'Abyss Walker', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (37, 'Phantom Ranger', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (38, 'DE Mage', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (39, 'DE Wizard', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (40, 'Spell Howler', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (41, 'Phantom Summoner', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (42, 'Shillien Oracle', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (43, 'Shillien Elder', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (44, 'Orc Fighter', 3, 40, 47, 26, 18, 12, 27, 4, 80, 6, 41, 300, 333, 31, 42, 31, 117, 87000, -56693, -113610, -690, 0, 1.06, 1.144800, 11.0, 28.0, 1.06, 1.144800, 7.0, 27.0, 1147, 1146, 2368, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (45, 'Raider', 3, 40, 47, 26, 18, 12, 27, 4, 80, 6, 41, 300, 333, 31, 42, 31, 117, 87000, -56693, -113610, -690, 0, 1.06, 1.144800, 11.0, 28.0, 1.06, 1.144800, 7.0, 27.0, 1147, 1146, 2368, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (46, 'Destroyer', 3, 40, 47, 26, 18, 12, 27, 4, 80, 6, 41, 300, 333, 31, 42, 31, 117, 87000, -56693, -113610, -690, 0, 1.06, 1.144800, 11.0, 28.0, 1.06, 1.144800, 7.0, 27.0, 1147, 1146, 2368, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (47, 'Monk', 3, 40, 47, 26, 18, 12, 27, 4, 80, 6, 41, 300, 333, 31, 42, 31, 117, 87000, -56682, -113610, -690, 0, 1.06, 1.144800, 11.0, 28.0, 1.06, 1.144800, 7.0, 27.0, 1147, 1146, 2368, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (48, 'Tyrant', 3, 40, 47, 26, 18, 12, 27, 4, 80, 6, 41, 300, 333, 31, 42, 31, 117, 87000, -56693, -113610, -690, 0, 1.06, 1.144800, 11.0, 28.0, 1.06, 1.144800, 7.0, 27.0, 1147, 1146, 2368, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (49, 'Orc Mage', 3, 27, 31, 24, 31, 15, 42, 3, 54, 6, 41, 300, 333, 30, 41, 30, 121, 68000, -56682, -113730, -690, 0, 1.04, 0.898560, 7.0, 27.5, 1.04, 0.898560, 8.0, 25.5, 425, 461, 2368, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (50, 'Shaman', 3, 27, 31, 24, 31, 15, 42, 3, 54, 6, 41, 300, 333, 30, 41, 30, 121, 68000, -56682, -113730, -690, 0, 1.04, 0.898560, 7.0, 27.5, 1.04, 0.898560, 8.0, 25.5, 425, 461, 2368, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (51, 'Overlord', 3, 27, 31, 24, 31, 15, 42, 3, 54, 6, 41, 300, 333, 30, 41, 30, 121, 68000, -56682, -113730, -690, 0, 1.04, 0.898560, 7.0, 27.5, 1.04, 0.898560, 8.0, 25.5, 425, 461, 2368, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (52, 'Warcryer', 3, 27, 31, 24, 31, 15, 42, 3, 54, 6, 41, 300, 333, 30, 41, 30, 121, 68000, -56682, -113730, -690, 0, 1.04, 0.898560, 7.0, 27.5, 1.04, 0.898560, 8.0, 25.5, 425, 461, 2368, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (53, 'Dwarf Fighter', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0, 1147, 1146, 10, 2370, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (54, 'Scavenger', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0, 1147, 1146, 10, 2370, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (55, 'Bounty Hunter', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0, 1147, 1146, 10, 2370, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (56, 'Artisan', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0, 1147, 1146, 10, 2370, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (57, 'Warsmith', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0, 1147, 1146, 10, 2370, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (88, 'Duelist', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (89, 'DreadNought', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (90, 'Phoenix Knight', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (91, 'Hell Knight', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (92, 'Sagittarius', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (93, 'Adventurer', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (94, 'Archmage', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (95, 'Soultaker', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (96, 'Arcana Lord', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (97, 'Cardinal', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (98, 'Hierophant', 0, 22, 27, 21, 41, 20, 39, 3, 54, 6, 41, 300, 333, 28, 40, 28, 120, 62500, -90890, 248027, -3570, 0, 1.01, 0.872640, 7.5, 22.8, 1.01, 0.872640, 6.5, 22.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (99, 'Eva Templar', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (100, 'Sword Muse', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (101, 'Wind Rider', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (102, 'Moonlight Sentinel', 1, 36, 36, 35, 23, 14, 26, 4, 80, 6, 41, 300, 333, 36, 46, 36, 125, 73000, 45978, 41196, -3440, 0, 1.15, 1.242000, 7.5, 24.0, 1.15, 1.242000, 7.5, 23.0, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (103, 'Mystic Muse', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (104, 'Elemental Master', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (105, 'Eva Saint', 1, 21, 25, 24, 37, 23, 40, 3, 54, 6, 41, 300, 333, 30, 41, 30, 122, 62400, 46182, 41198, -3440, 0, 1.04, 0.898560, 7.5, 24.0, 1.04, 0.898560, 7.5, 23.0, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (106, 'Shillien Templar', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (107, 'Spectral Dancer', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (108, 'Ghost Hunter', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (109, 'Ghost Sentinel', 2, 41, 32, 34, 25, 12, 26, 4, 80, 6, 41, 300, 333, 35, 45, 35, 122, 69000, 28377, 10916, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.14, 1.231200, 7.0, 23.5, 1147, 1146, 10, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (110, 'Storm Screamer', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (111, 'Spectral Master', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (112, 'Shillen Saint', 2, 23, 24, 23, 44, 19, 37, 3, 54, 6, 41, 300, 333, 29, 41, 29, 122, 61000, 28295, 11063, -4224, 0, 1.14, 1.231200, 7.5, 24.0, 1.03, 0.889920, 7.0, 23.5, 425, 461, 6, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (113, 'Titan', 3, 40, 47, 26, 18, 12, 27, 4, 80, 6, 41, 300, 333, 31, 42, 31, 117, 87000, -56693, -113610, -690, 0, 1.06, 1.144800, 11.0, 28.0, 1.06, 1.144800, 7.0, 27.0, 1147, 1146, 2368, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (114, 'Grand Khauatari', 3, 40, 47, 26, 18, 12, 27, 4, 80, 6, 41, 300, 333, 31, 42, 31, 117, 87000, -56693, -113610, -690, 0, 1.06, 1.144800, 11.0, 28.0, 1.06, 1.144800, 7.0, 27.0, 1147, 1146, 2368, 2369, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (115, 'Dominator', 3, 27, 31, 24, 31, 15, 42, 3, 54, 6, 41, 300, 333, 30, 41, 30, 121, 68000, -56682, -113730, -690, 0, 1.04, 0.898560, 7.0, 27.5, 1.04, 0.898560, 8.0, 25.5, 425, 461, 2368, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (116, 'Doomcryer', 3, 27, 31, 24, 31, 15, 42, 3, 54, 6, 41, 300, 333, 30, 41, 30, 121, 68000, -56682, -113730, -690, 0, 1.04, 0.898560, 7.0, 27.5, 1.04, 0.898560, 8.0, 25.5, 425, 461, 2368, 5588, 0);
|
|
||||||
INSERT INTO `char_templates` VALUES (117, 'Fortune Seeker', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0, 1147, 1146, 10, 2370, 5588);
|
|
||||||
INSERT INTO `char_templates` VALUES (118, 'Maestro', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0, 1147, 1146, 10, 2370, 5588);
|
|
@ -1,105 +0,0 @@
|
|||||||
#----------------------------
|
|
||||||
# Table structure for class_list
|
|
||||||
#----------------------------
|
|
||||||
DROP TABLE IF EXISTS class_list;
|
|
||||||
CREATE TABLE `class_list` (
|
|
||||||
`class_name` varchar(19) NOT NULL default '',
|
|
||||||
`id` int(10) unsigned NOT NULL default '0',
|
|
||||||
`parent_id` int(11) NOT NULL default '0',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
||||||
|
|
||||||
#----------------------------
|
|
||||||
# Records for table class_list
|
|
||||||
#----------------------------
|
|
||||||
|
|
||||||
INSERT INTO `class_list` VALUES
|
|
||||||
('H_Fighter', 0, -1),
|
|
||||||
('H_Warrior', 1, 0),
|
|
||||||
('H_Gladiator', 2, 1),
|
|
||||||
('H_Duelist', 88, 2),
|
|
||||||
('H_Warlord', 3, 1),
|
|
||||||
('H_Dreadnought', 89, 3),
|
|
||||||
('H_Knight', 4, 0),
|
|
||||||
('H_Paladin', 5, 4),
|
|
||||||
('H_PhoenixKnight', 90, 5),
|
|
||||||
('H_DarkAvenger', 6, 4),
|
|
||||||
('H_HellKnight', 91, 6),
|
|
||||||
('H_Rogue', 7, 0),
|
|
||||||
('H_TreasureHunter', 8, 7),
|
|
||||||
('H_Adventurer', 93, 8),
|
|
||||||
('H_Hawkeye', 9, 7),
|
|
||||||
('H_Sagittarius', 92, 9),
|
|
||||||
('H_Mage', 10, -1),
|
|
||||||
('H_Wizard', 11, 10),
|
|
||||||
('H_Sorceror', 12, 11),
|
|
||||||
('H_Archmage', 94, 12),
|
|
||||||
('H_Necromancer', 13, 11),
|
|
||||||
('H_Soultaker', 95, 13),
|
|
||||||
('H_Warlock', 14, 11),
|
|
||||||
('H_ArcanaLord', 96, 14),
|
|
||||||
('H_Cleric', 15, 10),
|
|
||||||
('H_Bishop', 16, 15),
|
|
||||||
('H_Cardinal', 97, 16),
|
|
||||||
('H_Prophet', 17, 15),
|
|
||||||
('H_Hierophant', 98, 17),
|
|
||||||
('E_Fighter', 18, -1),
|
|
||||||
('E_Knight', 19, 18),
|
|
||||||
('E_TempleKnight', 20, 19),
|
|
||||||
('E_EvaTemplar', 99, 20),
|
|
||||||
('E_SwordSinger', 21, 19),
|
|
||||||
('E_SwordMuse', 100, 21),
|
|
||||||
('E_Scout', 22, 18),
|
|
||||||
('E_PlainsWalker', 23, 22),
|
|
||||||
('E_WindRider', 101, 23),
|
|
||||||
('E_SilverRanger', 24, 22),
|
|
||||||
('E_MoonlightSentinel', 102, 24),
|
|
||||||
('E_Mage', 25, -1),
|
|
||||||
('E_Wizard', 26, 25),
|
|
||||||
('E_SpellSinger', 27, 26),
|
|
||||||
('E_MysticMuse', 103, 27),
|
|
||||||
('E_ElementalSummoner', 28, 26),
|
|
||||||
('E_ElementalMaster', 104, 28),
|
|
||||||
('E_Oracle', 29, 25),
|
|
||||||
('E_Elder', 30, 29),
|
|
||||||
('E_EvaSaint', 105, 30),
|
|
||||||
('DE_Fighter', 31, -1),
|
|
||||||
('DE_PaulusKnight', 32, 31),
|
|
||||||
('DE_ShillienKnight', 33, 32),
|
|
||||||
('DE_ShillienTemplar', 106, 33),
|
|
||||||
('DE_BladeDancer', 34, 32),
|
|
||||||
('DE_SpectralDancer', 107, 34),
|
|
||||||
('DE_Assassin', 35, 31),
|
|
||||||
('DE_AbyssWalker', 36, 35),
|
|
||||||
('DE_GhostHunter', 108, 36),
|
|
||||||
('DE_PhantomRanger', 37, 35),
|
|
||||||
('DE_GhostSentinel', 109, 37),
|
|
||||||
('DE_Mage', 38, -1),
|
|
||||||
('DE_DarkWizard', 39, 38),
|
|
||||||
('DE_Spellhowler', 40, 39),
|
|
||||||
('DE_StormScreamer', 110, 40),
|
|
||||||
('DE_PhantomSummoner', 41, 39),
|
|
||||||
('DE_SpectralMaster', 111, 41),
|
|
||||||
('DE_ShillienOracle', 42, 38),
|
|
||||||
('DE_ShillienElder', 43, 42),
|
|
||||||
('DE_ShillienSaint', 112, 43),
|
|
||||||
('O_Fighter', 44, -1),
|
|
||||||
('O_Raider', 45, 44),
|
|
||||||
('O_Destroyer', 46, 45),
|
|
||||||
('O_Titan', 113, 46),
|
|
||||||
('O_Monk', 47, 44),
|
|
||||||
('O_Tyrant', 48, 47),
|
|
||||||
('O_GrandKhauatari', 114, 48),
|
|
||||||
('O_Mage', 49, -1),
|
|
||||||
('O_Shaman', 50, 49),
|
|
||||||
('O_Overlord', 51, 50),
|
|
||||||
('O_Dominator', 115, 51),
|
|
||||||
('O_Warcryer', 52, 50),
|
|
||||||
('O_Doomcryer', 116, 52),
|
|
||||||
('D_Fighter', 53, -1),
|
|
||||||
('D_Scavenger', 54, 53),
|
|
||||||
('D_BountyHunter', 55, 54),
|
|
||||||
('D_FortuneSeeker', 117, 55),
|
|
||||||
('D_Artisan', 56, 53),
|
|
||||||
('D_Warsmith', 57, 56),
|
|
||||||
('D_Maestro', 118, 57);
|
|
@ -1,113 +0,0 @@
|
|||||||
--
|
|
||||||
-- Table structure for table `lvlupgain`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `lvlupgain`;
|
|
||||||
CREATE TABLE `lvlupgain` (
|
|
||||||
`classid` int(3) NOT NULL default '0',
|
|
||||||
`defaulthpbase` decimal(5,1) NOT NULL default '0.0',
|
|
||||||
`defaulthpadd` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`defaulthpmod` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`defaultcpbase` decimal(5,1) NOT NULL default '0.0',
|
|
||||||
`defaultcpadd` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`defaultcpmod` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`defaultmpbase` decimal(5,1) NOT NULL default '0.0',
|
|
||||||
`defaultmpadd` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`defaultmpmod` decimal(4,2) NOT NULL default '0.00',
|
|
||||||
`class_lvl` int(3) NOT NULL default '0',
|
|
||||||
PRIMARY KEY (`classid`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `lvlupgain`
|
|
||||||
--
|
|
||||||
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('0', '80.0', '11.83', '0.37', '32.0', '4.73', '0.22', '30.0', '5.46', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('1', '327.0', '33.00', '0.37', '261.6', '26.40', '0.22', '144.0', '9.90', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('2', '1044.0', '49.40', '0.37', '939.6', '44.46', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('3', '1044.0', '54.60', '0.37', '835.2', '43.68', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('4', '327.0', '29.70', '0.37', '196.2', '17.82', '0.22', '144.0', '9.90', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('5', '972.3', '46.80', '0.37', '583.3', '28.08', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('6', '972.3', '46.80', '0.37', '583.3', '28.08', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('7', '327.0', '27.50', '0.37', '130.8', '11.00', '0.22', '144.0', '9.90', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('8', '924.5', '41.60', '0.37', '369.8', '16.64', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('9', '924.5', '44.20', '0.37', '647.1', '30.94', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('10', '101.0', '15.57', '0.37', '50.5', '7.84', '0.22', '40.0', '7.38', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('11', '424.0', '27.60', '0.37', '212.0', '13.85', '0.22', '192.0', '13.30', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('12', '1021.5', '45.60', '0.37', '510.7', '22.85', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('13', '1021.5', '45.60', '0.37', '510.7', '22.85', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('14', '1021.5', '49.50', '0.37', '612.9', '29.74', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('15', '424.0', '34.20', '0.37', '212.0', '17.15', '0.22', '192.0', '13.30', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('16', '1164.9', '49.50', '0.37', '815.4', '34.68', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('17', '1164.9', '53.40', '0.37', '582.4', '26.75', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('18', '89.0', '12.74', '0.37', '35.6', '5.00', '0.22', '30.0', '5.46', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('19', '355.0', '33.00', '0.37', '177.5', '16.50', '0.22', '144.0', '9.90', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('20', '1072.0', '52.00', '0.37', '643.2', '31.20', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('21', '1072.0', '54.60', '0.37', '536.0', '27.30', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('22', '355.0', '30.80', '0.37', '142.0', '12.32', '0.22', '144.0', '9.90', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('23', '1024.2', '46.80', '0.37', '409.6', '18.72', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('24', '1024.2', '49.40', '0.37', '512.1', '24.70', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('25', '104.0', '15.57', '0.37', '52.0', '7.84', '0.22', '40.0', '7.38', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('26', '427.0', '28.70', '0.37', '213.5', '14.40', '0.22', '192.0', '13.30', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('27', '1048.4', '48.20', '0.37', '524.2', '24.15', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('28', '1048.4', '50.80', '0.37', '629.0', '30.52', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('29', '427.0', '35.30', '0.37', '213.5', '17.70', '0.22', '192.0', '13.30', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('30', '1191.8', '54.70', '0.37', '595.9', '27.40', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('31', '94.0', '13.65', '0.37', '37.6', '5.46', '0.22', '30.0', '5.46', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('32', '379.0', '35.20', '0.37', '189.5', '17.60', '0.22', '144.0', '9.90', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('33', '1143.8', '54.60', '0.37', '686.2', '32.76', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('34', '1143.8', '58.50', '0.37', '571.9', '29.25', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('35', '379.0', '33.00', '0.37', '151.6', '13.20', '0.22', '144.0', '9.90', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('36', '1096.0', '49.40', '0.37', '438.4', '19.76', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('37', '1096.0', '52.00', '0.37', '548.0', '26.00', '0.22', '359.1', '19.50', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('38', '106.0', '15.57', '0.37', '53.0', '7.84', '0.22', '40.0', '7.38', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('39', '429.0', '29.80', '0.37', '214.5', '14.95', '0.22', '192.0', '13.30', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('40', '1074.3', '48.20', '0.37', '537.1', '24.15', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('41', '1074.3', '52.10', '0.37', '644.5', '31.30', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('42', '429.0', '36.40', '0.37', '214.5', '18.25', '0.22', '192.0', '13.30', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('43', '1217.7', '54.70', '0.37', '608.8', '27.40', '0.22', '478.8', '26.10', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('44', '80.0', '12.64', '0.37', '40.0', '6.27', '0.22', '30.0', '5.36', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('45', '346.0', '35.10', '0.37', '242.2', '24.54', '0.22', '144.0', '9.80', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('46', '1110.8', '57.10', '0.37', '777.5', '39.94', '0.22', '359.1', '19.40', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('47', '346.0', '32.90', '0.37', '173.0', '16.40', '0.22', '144.0', '9.80', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('48', '1063.0', '54.50', '0.37', '531.5', '27.20', '0.22', '359.1', '19.40', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('49', '95.0', '15.47', '0.37', '47.5', '7.74', '0.22', '40.0', '7.28', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('50', '418.0', '35.20', '0.37', '209.0', '17.60', '0.22', '192.0', '13.20', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('51', '1182.8', '53.30', '0.37', '946.2', '42.64', '0.22', '478.8', '26.00', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('52', '1182.8', '53.30', '0.37', '591.4', '26.65', '0.22', '478.8', '26.00', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('53', '80.0', '12.64', '0.37', '56.0', '8.82', '0.22', '30.0', '5.36', '0.14', '1');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('54', '346.0', '35.10', '0.37', '242.2', '24.54', '0.22', '144.0', '9.80', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('55', '1110.8', '57.10', '0.37', '777.5', '39.94', '0.22', '359.1', '19.40', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('56', '346.0', '32.90', '0.37', '276.8', '26.30', '0.22', '144.0', '9.80', '0.14', '20');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('57', '1063.0', '54.50', '0.37', '850.4', '43.58', '0.22', '359.1', '19.40', '0.14', '40');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('88', '3061.8', '63.08', '0.37', '2755.6', '56.77', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('89', '3274.2', '69.72', '0.37', '2619.3', '55.78', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('90', '2883.9', '59.76', '0.37', '1730.3', '35.86', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('91', '2883.9', '59.76', '0.37', '1730.3', '35.86', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('92', '2729.9', '56.44', '0.37', '1910.9', '39.51', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('93', '2623.7', '53.12', '0.37', '1049.4', '21.25', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('94', '2880.0', '58.10', '0.37', '1440.0', '29.05', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('95', '2880.0', '58.10', '0.37', '1440.0', '29.05', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('96', '3039.3', '63.08', '0.37', '1823.5', '37.85', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('97', '3182.7', '63.08', '0.37', '2227.8', '44.16', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('98', '3342.0', '68.06', '0.37', '1671.0', '34.03', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('99', '3196.0', '66.40', '0.37', '1917.6', '39.84', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('100', '3302.2', '69.72', '0.37', '1651.1', '34.86', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('101', '2935.8', '59.76', '0.37', '1174.3', '23.90', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('102', '3042.0', '63.08', '0.37', '1521.0', '31.54', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('103', '3013.1', '61.42', '0.37', '1506.5', '30.71', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('104', '3119.3', '64.74', '0.37', '1871.5', '38.84', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('105', '3422.0', '69.72', '0.37', '1711.0', '34.86', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('106', '3374.0', '69.72', '0.37', '2024.4', '41.83', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('107', '3533.3', '74.70', '0.37', '1766.6', '37.35', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('108', '3113.8', '63.08', '0.37', '1245.5', '25.23', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('109', '3220.0', '66.40', '0.37', '1610.0', '33.20', '0.22', '1155.6', '24.90', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('110', '3039.0', '61.42', '0.37', '1519.5', '30.71', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('111', '3198.3', '66.40', '0.37', '1918.9', '39.84', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('112', '3447.9', '69.72', '0.37', '1723.9', '34.86', '0.22', '1540.8', '33.20', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('113', '3447.2', '72.94', '0.37', '2413.0', '51.03', '0.22', '1155.6', '24.80', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('114', '3293.2', '69.62', '0.37', '1646.6', '34.76', '0.22', '1155.6', '24.80', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('115', '3359.9', '67.96', '0.37', '2687.9', '54.35', '0.22', '1540.8', '33.10', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('116', '3359.9', '67.96', '0.37', '1679.9', '33.93', '0.22', '1540.8', '33.10', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('117', '3447.2', '72.94', '0.37', '2413.0', '51.03', '0.22', '1155.6', '24.80', '0.14', '76');
|
|
||||||
INSERT INTO `lvlupgain` VALUES ('118', '3293.2', '69.62', '0.37', '2634.5', '55.68', '0.22', '1155.6', '24.80', '0.14', '76');
|
|
92
L2J_Mobius_C6_Interlude/dist/game/data/stats/playerTemplates.xml
vendored
Normal file
92
L2J_Mobius_C6_Interlude/dist/game/data/stats/playerTemplates.xml
vendored
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/playerTemplates.xsd">
|
||||||
|
<class id="0" name="Human Fighter" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="80.0" levelHpAdd="11.83" levelHpMod="0.37" baseCpMax="32.0" levelCpAdd="4.73" levelCpMod="0.22" baseMpMax="30.0" levelMpAdd="5.46" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="1" name="Warrior" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="327.0" levelHpAdd="33.00" levelHpMod="0.37" baseCpMax="261.6" levelCpAdd="26.40" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.90" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="2" name="Gladiator" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1044.0" levelHpAdd="49.40" levelHpMod="0.37" baseCpMax="939.6" levelCpAdd="44.46" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="3" name="Warlord" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1044.0" levelHpAdd="54.60" levelHpMod="0.37" baseCpMax="835.2" levelCpAdd="43.68" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="4" name="Human Knight" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="327.0" levelHpAdd="29.70" levelHpMod="0.37" baseCpMax="196.2" levelCpAdd="17.82" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.90" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="5" name="Paladin" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="972.3" levelHpAdd="46.80" levelHpMod="0.37" baseCpMax="583.3" levelCpAdd="28.08" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="6" name="Dark Avenger" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="972.3" levelHpAdd="46.80" levelHpMod="0.37" baseCpMax="583.3" levelCpAdd="28.08" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="7" name="Rogue" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="327.0" levelHpAdd="27.50" levelHpMod="0.37" baseCpMax="130.8" levelCpAdd="11.00" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.90" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="8" name="Treasure Hunter" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="924.5" levelHpAdd="41.60" levelHpMod="0.37" baseCpMax="369.8" levelCpAdd="16.64" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="9" name="Hawkeye" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="924.5" levelHpAdd="44.20" levelHpMod="0.37" baseCpMax="647.1" levelCpAdd="30.94" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="10" name="Human Mage" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="101.0" levelHpAdd="15.57" levelHpMod="0.37" baseCpMax="50.5" levelCpAdd="7.84" levelCpMod="0.22" baseMpMax="40.0" levelMpAdd="7.38" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="11" name="Human Wizard" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="424.0" levelHpAdd="27.60" levelHpMod="0.37" baseCpMax="212.0" levelCpAdd="13.85" levelCpMod="0.22" baseMpMax="192.0" levelMpAdd="13.30" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="12" name="Sorcerer" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="1021.5" levelHpAdd="45.60" levelHpMod="0.37" baseCpMax="510.7" levelCpAdd="22.85" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="13" name="Necromancer" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="1021.5" levelHpAdd="45.60" levelHpMod="0.37" baseCpMax="510.7" levelCpAdd="22.85" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="14" name="Warlock" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="1021.5" levelHpAdd="49.50" levelHpMod="0.37" baseCpMax="612.9" levelCpAdd="29.74" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="15" name="Cleric" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="424.0" levelHpAdd="34.20" levelHpMod="0.37" baseCpMax="212.0" levelCpAdd="17.15" levelCpMod="0.22" baseMpMax="192.0" levelMpAdd="13.30" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="16" name="Bishop" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="1164.9" levelHpAdd="49.50" levelHpMod="0.37" baseCpMax="815.4" levelCpAdd="34.68" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="17" name="Human Prophet" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="1164.9" levelHpAdd="53.40" levelHpMod="0.37" baseCpMax="582.4" levelCpAdd="26.75" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="18" name="Elf Fighter" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="89.0" levelHpAdd="12.74" levelHpMod="0.37" baseCpMax="35.6" levelCpAdd="5.00" levelCpMod="0.22" baseMpMax="30.0" levelMpAdd="5.46" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="19" name="Elf Knight" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="355.0" levelHpAdd="33.00" levelHpMod="0.37" baseCpMax="177.5" levelCpAdd="16.50" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.90" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="20" name="Temple Knight" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1072.0" levelHpAdd="52.00" levelHpMod="0.37" baseCpMax="643.2" levelCpAdd="31.20" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="21" name="Swordsinger" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1072.0" levelHpAdd="54.60" levelHpMod="0.37" baseCpMax="536.0" levelCpAdd="27.30" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="22" name="Scout" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="355.0" levelHpAdd="30.80" levelHpMod="0.37" baseCpMax="142.0" levelCpAdd="12.32" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.90" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="23" name="Plains Walker" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1024.2" levelHpAdd="46.80" levelHpMod="0.37" baseCpMax="409.6" levelCpAdd="18.72" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="24" name="Silver Ranger" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1024.2" levelHpAdd="49.40" levelHpMod="0.37" baseCpMax="512.1" levelCpAdd="24.70" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="25" name="Elf Mage" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="104.0" levelHpAdd="15.57" levelHpMod="0.37" baseCpMax="52.0" levelCpAdd="7.84" levelCpMod="0.22" baseMpMax="40.0" levelMpAdd="7.38" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="26" name="Elf Wizard" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="427.0" levelHpAdd="28.70" levelHpMod="0.37" baseCpMax="213.5" levelCpAdd="14.40" levelCpMod="0.22" baseMpMax="192.0" levelMpAdd="13.30" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="27" name="Spellsinger" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="1048.4" levelHpAdd="48.20" levelHpMod="0.37" baseCpMax="524.2" levelCpAdd="24.15" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="28" name="Elemental Summoner" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="1048.4" levelHpAdd="50.80" levelHpMod="0.37" baseCpMax="629.0" levelCpAdd="30.52" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="29" name="Oracle" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="427.0" levelHpAdd="35.30" levelHpMod="0.37" baseCpMax="213.5" levelCpAdd="17.70" levelCpMod="0.22" baseMpMax="192.0" levelMpAdd="13.30" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="30" name="Elder" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="1191.8" levelHpAdd="54.70" levelHpMod="0.37" baseCpMax="595.9" levelCpAdd="27.40" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="31" name="DE Fighter" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="94.0" levelHpAdd="13.65" levelHpMod="0.37" baseCpMax="37.6" levelCpAdd="5.46" levelCpMod="0.22" baseMpMax="30.0" levelMpAdd="5.46" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="32" name="Palus Knight" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="379.0" levelHpAdd="35.20" levelHpMod="0.37" baseCpMax="189.5" levelCpAdd="17.60" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.90" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="33" name="Shillien Knight" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1143.8" levelHpAdd="54.60" levelHpMod="0.37" baseCpMax="686.2" levelCpAdd="32.76" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="34" name="Bladedancer" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1143.8" levelHpAdd="58.50" levelHpMod="0.37" baseCpMax="571.9" levelCpAdd="29.25" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="35" name="Assassin" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="379.0" levelHpAdd="33.00" levelHpMod="0.37" baseCpMax="151.6" levelCpAdd="13.20" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.90" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="36" name="Abyss Walker" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1096.0" levelHpAdd="49.40" levelHpMod="0.37" baseCpMax="438.4" levelCpAdd="19.76" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="37" name="Phantom Ranger" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="1096.0" levelHpAdd="52.00" levelHpMod="0.37" baseCpMax="548.0" levelCpAdd="26.00" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.50" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="38" name="DE Mage" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="106.0" levelHpAdd="15.57" levelHpMod="0.37" baseCpMax="53.0" levelCpAdd="7.84" levelCpMod="0.22" baseMpMax="40.0" levelMpAdd="7.38" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="39" name="DE Wizard" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="429.0" levelHpAdd="29.80" levelHpMod="0.37" baseCpMax="214.5" levelCpAdd="14.95" levelCpMod="0.22" baseMpMax="192.0" levelMpAdd="13.30" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="40" name="Spell Howler" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="1074.3" levelHpAdd="48.20" levelHpMod="0.37" baseCpMax="537.1" levelCpAdd="24.15" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="41" name="Phantom Summoner" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="1074.3" levelHpAdd="52.10" levelHpMod="0.37" baseCpMax="644.5" levelCpAdd="31.30" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="42" name="Shillien Oracle" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="429.0" levelHpAdd="36.40" levelHpMod="0.37" baseCpMax="214.5" levelCpAdd="18.25" levelCpMod="0.22" baseMpMax="192.0" levelMpAdd="13.30" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="43" name="Shillien Elder" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="1217.7" levelHpAdd="54.70" levelHpMod="0.37" baseCpMax="608.8" levelCpAdd="27.40" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.10" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="44" name="Orc Fighter" race="ORC" baseSTR="40" baseCON="47" baseDEX="26" baseINT="18" baseWIT="12" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="42" baseRunSpd="117" spawnX="-56693" spawnY="-113610" spawnZ="-690" collision_radius="11.0" collision_height="28.0" items="1147,1;1146,1;2368,1;2369,1;5588,1" baseHpMax="80.0" levelHpAdd="12.64" levelHpMod="0.37" baseCpMax="40.0" levelCpAdd="6.27" levelCpMod="0.22" baseMpMax="30.0" levelMpAdd="5.36" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="45" name="Raider" race="ORC" baseSTR="40" baseCON="47" baseDEX="26" baseINT="18" baseWIT="12" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="42" baseRunSpd="117" spawnX="-56693" spawnY="-113610" spawnZ="-690" collision_radius="11.0" collision_height="28.0" items="1147,1;1146,1;2368,1;2369,1;5588,1" baseHpMax="346.0" levelHpAdd="35.10" levelHpMod="0.37" baseCpMax="242.2" levelCpAdd="24.54" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.80" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="46" name="Destroyer" race="ORC" baseSTR="40" baseCON="47" baseDEX="26" baseINT="18" baseWIT="12" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="42" baseRunSpd="117" spawnX="-56693" spawnY="-113610" spawnZ="-690" collision_radius="11.0" collision_height="28.0" items="1147,1;1146,1;2368,1;2369,1;5588,1" baseHpMax="1110.8" levelHpAdd="57.10" levelHpMod="0.37" baseCpMax="777.5" levelCpAdd="39.94" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.40" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="47" name="Monk" race="ORC" baseSTR="40" baseCON="47" baseDEX="26" baseINT="18" baseWIT="12" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="42" baseRunSpd="117" spawnX="-56682" spawnY="-113610" spawnZ="-690" collision_radius="11.0" collision_height="28.0" items="1147,1;1146,1;2368,1;2369,1;5588,1" baseHpMax="346.0" levelHpAdd="32.90" levelHpMod="0.37" baseCpMax="173.0" levelCpAdd="16.40" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.80" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="48" name="Tyrant" race="ORC" baseSTR="40" baseCON="47" baseDEX="26" baseINT="18" baseWIT="12" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="42" baseRunSpd="117" spawnX="-56693" spawnY="-113610" spawnZ="-690" collision_radius="11.0" collision_height="28.0" items="1147,1;1146,1;2368,1;2369,1;5588,1" baseHpMax="1063.0" levelHpAdd="54.50" levelHpMod="0.37" baseCpMax="531.5" levelCpAdd="27.20" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.40" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="49" name="Orc Mage" race="ORC" baseSTR="27" baseCON="31" baseDEX="24" baseINT="31" baseWIT="15" baseMEN="42" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="121" spawnX="-56682" spawnY="-113730" spawnZ="-690" collision_radius="7.0" collision_height="27.5" items="425,1;461,1;2368,1;5588,1" baseHpMax="95.0" levelHpAdd="15.47" levelHpMod="0.37" baseCpMax="47.5" levelCpAdd="7.74" levelCpMod="0.22" baseMpMax="40.0" levelMpAdd="7.28" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="50" name="Shaman" race="ORC" baseSTR="27" baseCON="31" baseDEX="24" baseINT="31" baseWIT="15" baseMEN="42" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="121" spawnX="-56682" spawnY="-113730" spawnZ="-690" collision_radius="7.0" collision_height="27.5" items="425,1;461,1;2368,1;5588,1" baseHpMax="418.0" levelHpAdd="35.20" levelHpMod="0.37" baseCpMax="209.0" levelCpAdd="17.60" levelCpMod="0.22" baseMpMax="192.0" levelMpAdd="13.20" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="51" name="Overlord" race="ORC" baseSTR="27" baseCON="31" baseDEX="24" baseINT="31" baseWIT="15" baseMEN="42" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="121" spawnX="-56682" spawnY="-113730" spawnZ="-690" collision_radius="7.0" collision_height="27.5" items="425,1;461,1;2368,1;5588,1" baseHpMax="1182.8" levelHpAdd="53.30" levelHpMod="0.37" baseCpMax="946.2" levelCpAdd="42.64" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.00" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="52" name="Warcryer" race="ORC" baseSTR="27" baseCON="31" baseDEX="24" baseINT="31" baseWIT="15" baseMEN="42" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="121" spawnX="-56682" spawnY="-113730" spawnZ="-690" collision_radius="7.0" collision_height="27.5" items="425,1;461,1;2368,1;5588,1" baseHpMax="1182.8" levelHpAdd="53.30" levelHpMod="0.37" baseCpMax="591.4" levelCpAdd="26.65" levelCpMod="0.22" baseMpMax="478.8" levelMpAdd="26.00" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="53" name="Dwarf Fighter" race="DWARF" baseSTR="39" baseCON="45" baseDEX="29" baseINT="20" baseWIT="10" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="43" baseRunSpd="115" spawnX="108512" spawnY="-174026" spawnZ="-400" collision_radius="9.0" collision_height="18.0" items="1147,1;1146,1;10,1;2370,1;5588,1" baseHpMax="80.0" levelHpAdd="12.64" levelHpMod="0.37" baseCpMax="56.0" levelCpAdd="8.82" levelCpMod="0.22" baseMpMax="30.0" levelMpAdd="5.36" levelMpMod="0.14" baseLevel="1" />
|
||||||
|
<class id="54" name="Scavenger" race="DWARF" baseSTR="39" baseCON="45" baseDEX="29" baseINT="20" baseWIT="10" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="43" baseRunSpd="115" spawnX="108512" spawnY="-174026" spawnZ="-400" collision_radius="9.0" collision_height="18.0" items="1147,1;1146,1;10,1;2370,1;5588,1" baseHpMax="346.0" levelHpAdd="35.10" levelHpMod="0.37" baseCpMax="242.2" levelCpAdd="24.54" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.80" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="55" name="Bounty Hunter" race="DWARF" baseSTR="39" baseCON="45" baseDEX="29" baseINT="20" baseWIT="10" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="43" baseRunSpd="115" spawnX="108512" spawnY="-174026" spawnZ="-400" collision_radius="9.0" collision_height="18.0" items="1147,1;1146,1;10,1;2370,1;5588,1" baseHpMax="1110.8" levelHpAdd="57.10" levelHpMod="0.37" baseCpMax="777.5" levelCpAdd="39.94" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.40" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="56" name="Artisan" race="DWARF" baseSTR="39" baseCON="45" baseDEX="29" baseINT="20" baseWIT="10" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="43" baseRunSpd="115" spawnX="108512" spawnY="-174026" spawnZ="-400" collision_radius="9.0" collision_height="18.0" items="1147,1;1146,1;10,1;2370,1;5588,1" baseHpMax="346.0" levelHpAdd="32.90" levelHpMod="0.37" baseCpMax="276.8" levelCpAdd="26.30" levelCpMod="0.22" baseMpMax="144.0" levelMpAdd="9.80" levelMpMod="0.14" baseLevel="20" />
|
||||||
|
<class id="57" name="Warsmith" race="DWARF" baseSTR="39" baseCON="45" baseDEX="29" baseINT="20" baseWIT="10" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="43" baseRunSpd="115" spawnX="108512" spawnY="-174026" spawnZ="-400" collision_radius="9.0" collision_height="18.0" items="1147,1;1146,1;10,1;2370,1;5588,1" baseHpMax="1063.0" levelHpAdd="54.50" levelHpMod="0.37" baseCpMax="850.4" levelCpAdd="43.58" levelCpMod="0.22" baseMpMax="359.1" levelMpAdd="19.40" levelMpMod="0.14" baseLevel="40" />
|
||||||
|
<class id="88" name="Duelist" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3061.8" levelHpAdd="63.08" levelHpMod="0.37" baseCpMax="2755.6" levelCpAdd="56.77" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="89" name="DreadNought" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3274.2" levelHpAdd="69.72" levelHpMod="0.37" baseCpMax="2619.3" levelCpAdd="55.78" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="90" name="Phoenix Knight" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="2883.9" levelHpAdd="59.76" levelHpMod="0.37" baseCpMax="1730.3" levelCpAdd="35.86" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="91" name="Hell Knight" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="2883.9" levelHpAdd="59.76" levelHpMod="0.37" baseCpMax="1730.3" levelCpAdd="35.86" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="92" name="Sagittarius" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="2729.9" levelHpAdd="56.44" levelHpMod="0.37" baseCpMax="1910.9" levelCpAdd="39.51" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="93" name="Adventurer" race="HUMAN" baseSTR="40" baseCON="43" baseDEX="30" baseINT="21" baseWIT="11" baseMEN="25" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="44" baseRunSpd="115" spawnX="-71338" spawnY="258271" spawnZ="-3104" collision_radius="9.0" collision_height="23.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="2623.7" levelHpAdd="53.12" levelHpMod="0.37" baseCpMax="1049.4" levelCpAdd="21.25" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="94" name="Archmage" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="2880.0" levelHpAdd="58.10" levelHpMod="0.37" baseCpMax="1440.0" levelCpAdd="29.05" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="95" name="Soultaker" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="2880.0" levelHpAdd="58.10" levelHpMod="0.37" baseCpMax="1440.0" levelCpAdd="29.05" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="96" name="Arcana Lord" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="3039.3" levelHpAdd="63.08" levelHpMod="0.37" baseCpMax="1823.5" levelCpAdd="37.85" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="97" name="Cardinal" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="3182.7" levelHpAdd="63.08" levelHpMod="0.37" baseCpMax="2227.8" levelCpAdd="44.16" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="98" name="Hierophant" race="HUMAN" baseSTR="22" baseCON="27" baseDEX="21" baseINT="41" baseWIT="20" baseMEN="39" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="40" baseRunSpd="120" spawnX="-90890" spawnY="248027" spawnZ="-3570" collision_radius="7.5" collision_height="22.8" items="425,1;461,1;6,1;5588,1" baseHpMax="3342.0" levelHpAdd="68.06" levelHpMod="0.37" baseCpMax="1671.0" levelCpAdd="34.03" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="99" name="Eva Templar" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3196.0" levelHpAdd="66.40" levelHpMod="0.37" baseCpMax="1917.6" levelCpAdd="39.84" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="100" name="Sword Muse" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3302.2" levelHpAdd="69.72" levelHpMod="0.37" baseCpMax="1651.1" levelCpAdd="34.86" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="101" name="Wind Rider" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="2935.8" levelHpAdd="59.76" levelHpMod="0.37" baseCpMax="1174.3" levelCpAdd="23.90" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="102" name="Moonlight Sentinel" race="ELF" baseSTR="36" baseCON="36" baseDEX="35" baseINT="23" baseWIT="14" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="46" baseRunSpd="125" spawnX="45978" spawnY="41196" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3042.0" levelHpAdd="63.08" levelHpMod="0.37" baseCpMax="1521.0" levelCpAdd="31.54" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="103" name="Mystic Muse" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="3013.1" levelHpAdd="61.42" levelHpMod="0.37" baseCpMax="1506.5" levelCpAdd="30.71" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="104" name="Elemental Master" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="3119.3" levelHpAdd="64.74" levelHpMod="0.37" baseCpMax="1871.5" levelCpAdd="38.84" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="105" name="Eva's Saint" race="ELF" baseSTR="21" baseCON="25" baseDEX="24" baseINT="37" baseWIT="23" baseMEN="40" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="46182" spawnY="41198" spawnZ="-3440" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="3422.0" levelHpAdd="69.72" levelHpMod="0.37" baseCpMax="1711.0" levelCpAdd="34.86" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="106" name="Shillien Templar" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3374.0" levelHpAdd="69.72" levelHpMod="0.37" baseCpMax="2024.4" levelCpAdd="41.83" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="107" name="Spectral Dancer" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3533.3" levelHpAdd="74.70" levelHpMod="0.37" baseCpMax="1766.6" levelCpAdd="37.35" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="108" name="Ghost Hunter" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3113.8" levelHpAdd="63.08" levelHpMod="0.37" baseCpMax="1245.5" levelCpAdd="25.23" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="109" name="Ghost Sentinel" race="DARK_ELF" baseSTR="41" baseCON="32" baseDEX="34" baseINT="25" baseWIT="12" baseMEN="26" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="45" baseRunSpd="122" spawnX="28377" spawnY="10916" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="1147,1;1146,1;10,1;2369,1;5588,1" baseHpMax="3220.0" levelHpAdd="66.40" levelHpMod="0.37" baseCpMax="1610.0" levelCpAdd="33.20" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.90" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="110" name="Storm Screamer" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="3039.0" levelHpAdd="61.42" levelHpMod="0.37" baseCpMax="1519.5" levelCpAdd="30.71" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="111" name="Spectral Master" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="3198.3" levelHpAdd="66.40" levelHpMod="0.37" baseCpMax="1918.9" levelCpAdd="39.84" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="112" name="Shillen Saint" race="DARK_ELF" baseSTR="23" baseCON="24" baseDEX="23" baseINT="44" baseWIT="19" baseMEN="37" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="122" spawnX="28295" spawnY="11063" spawnZ="-4224" collision_radius="7.5" collision_height="24.0" items="425,1;461,1;6,1;5588,1" baseHpMax="3447.9" levelHpAdd="69.72" levelHpMod="0.37" baseCpMax="1723.9" levelCpAdd="34.86" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.20" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="113" name="Titan" race="ORC" baseSTR="40" baseCON="47" baseDEX="26" baseINT="18" baseWIT="12" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="42" baseRunSpd="117" spawnX="-56693" spawnY="-113610" spawnZ="-690" collision_radius="11.0" collision_height="28.0" items="1147,1;1146,1;2368,1;2369,1;5588,1" baseHpMax="3447.2" levelHpAdd="72.94" levelHpMod="0.37" baseCpMax="2413.0" levelCpAdd="51.03" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.80" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="114" name="Grand Khauatari" race="ORC" baseSTR="40" baseCON="47" baseDEX="26" baseINT="18" baseWIT="12" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="42" baseRunSpd="117" spawnX="-56693" spawnY="-113610" spawnZ="-690" collision_radius="11.0" collision_height="28.0" items="1147,1;1146,1;2368,1;2369,1;5588,1" baseHpMax="3293.2" levelHpAdd="69.62" levelHpMod="0.37" baseCpMax="1646.6" levelCpAdd="34.76" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.80" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="115" name="Dominator" race="ORC" baseSTR="27" baseCON="31" baseDEX="24" baseINT="31" baseWIT="15" baseMEN="42" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="121" spawnX="-56682" spawnY="-113730" spawnZ="-690" collision_radius="7.0" collision_height="27.5" items="425,1;461,1;2368,1;5588,1" baseHpMax="3359.9" levelHpAdd="67.96" levelHpMod="0.37" baseCpMax="2687.9" levelCpAdd="54.35" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.10" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="116" name="Doomcryer" race="ORC" baseSTR="27" baseCON="31" baseDEX="24" baseINT="31" baseWIT="15" baseMEN="42" basePAtk="3" basePDef="54" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="41" baseRunSpd="121" spawnX="-56682" spawnY="-113730" spawnZ="-690" collision_radius="7.0" collision_height="27.5" items="425,1;461,1;2368,1;5588,1" baseHpMax="3359.9" levelHpAdd="67.96" levelHpMod="0.37" baseCpMax="1679.9" levelCpAdd="33.93" levelCpMod="0.22" baseMpMax="1540.8" levelMpAdd="33.10" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="117" name="Fortune Seeker" race="DWARF" baseSTR="39" baseCON="45" baseDEX="29" baseINT="20" baseWIT="10" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="43" baseRunSpd="115" spawnX="108512" spawnY="-174026" spawnZ="-400" collision_radius="9.0" collision_height="18.0" items="1147,1;1146,1;10,1;2370,1;5588,1" baseHpMax="3447.2" levelHpAdd="72.94" levelHpMod="0.37" baseCpMax="2413.0" levelCpAdd="51.03" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.80" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
<class id="118" name="Maestro" race="DWARF" baseSTR="39" baseCON="45" baseDEX="29" baseINT="20" baseWIT="10" baseMEN="27" basePAtk="4" basePDef="80" baseMAtk="6" baseMDef="41" basePAtkSpd="300" baseMAtkSpd="333" baseCritRate="43" baseRunSpd="115" spawnX="108512" spawnY="-174026" spawnZ="-400" collision_radius="9.0" collision_height="18.0" items="1147,1;1146,1;10,1;2370,1;5588,1" baseHpMax="3293.2" levelHpAdd="69.62" levelHpMod="0.37" baseCpMax="2634.5" levelCpAdd="55.68" levelCpMod="0.22" baseMpMax="1155.6" levelMpAdd="24.80" levelMpMod="0.14" baseLevel="76" />
|
||||||
|
</list>
|
49
L2J_Mobius_C6_Interlude/dist/game/data/xsd/playerTemplates.xsd
vendored
Normal file
49
L2J_Mobius_C6_Interlude/dist/game/data/xsd/playerTemplates.xsd
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<xs:element name="list">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="class" maxOccurs="unbounded" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:string">
|
||||||
|
<xs:attribute type="xs:int" name="id" use="required"/>
|
||||||
|
<xs:attribute type="xs:string" name="name" use="required"/>
|
||||||
|
<xs:attribute type="xs:string" name="race" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseSTR" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseCON" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseDEX" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseINT" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseWIT" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseMEN" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="basePAtk" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="basePDef" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseMAtk" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseMDef" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="basePAtkSpd" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseMAtkSpd" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseCritRate" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseRunSpd" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="spawnX" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="spawnY" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="spawnZ" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="collision_radius" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="collision_height" use="required"/>
|
||||||
|
<xs:attribute type="xs:string" name="items" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="baseHpMax" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="levelHpAdd" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="levelHpMod" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="baseCpMax" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="levelCpAdd" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="levelCpMod" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="baseMpMax" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="levelMpAdd" use="required"/>
|
||||||
|
<xs:attribute type="xs:float" name="levelMpMod" use="required"/>
|
||||||
|
<xs:attribute type="xs:int" name="baseLevel" use="required"/>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
@ -48,10 +48,8 @@ import org.l2jmobius.gameserver.datatables.OfflineTradeTable;
|
|||||||
import org.l2jmobius.gameserver.datatables.SchemeBufferTable;
|
import org.l2jmobius.gameserver.datatables.SchemeBufferTable;
|
||||||
import org.l2jmobius.gameserver.datatables.SkillTable;
|
import org.l2jmobius.gameserver.datatables.SkillTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharNameTable;
|
import org.l2jmobius.gameserver.datatables.sql.CharNameTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
|
||||||
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.HelperBuffTable;
|
import org.l2jmobius.gameserver.datatables.sql.HelperBuffTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.LevelUpData;
|
|
||||||
import org.l2jmobius.gameserver.datatables.sql.NpcTable;
|
import org.l2jmobius.gameserver.datatables.sql.NpcTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.PetDataTable;
|
import org.l2jmobius.gameserver.datatables.sql.PetDataTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.SkillSpellbookTable;
|
import org.l2jmobius.gameserver.datatables.sql.SkillSpellbookTable;
|
||||||
@ -70,6 +68,7 @@ import org.l2jmobius.gameserver.datatables.xml.FishData;
|
|||||||
import org.l2jmobius.gameserver.datatables.xml.HennaData;
|
import org.l2jmobius.gameserver.datatables.xml.HennaData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.ManorSeedData;
|
import org.l2jmobius.gameserver.datatables.xml.ManorSeedData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
|
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
|
||||||
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.RecipeData;
|
import org.l2jmobius.gameserver.datatables.xml.RecipeData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.StaticObjectData;
|
import org.l2jmobius.gameserver.datatables.xml.StaticObjectData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.SummonItemData;
|
import org.l2jmobius.gameserver.datatables.xml.SummonItemData;
|
||||||
@ -216,10 +215,17 @@ public class GameServer
|
|||||||
ExperienceData.getInstance();
|
ExperienceData.getInstance();
|
||||||
DuelManager.getInstance();
|
DuelManager.getInstance();
|
||||||
|
|
||||||
|
Util.printSection("Players");
|
||||||
|
PlayerTemplateData.getInstance();
|
||||||
if (Config.ENABLE_CLASS_DAMAGES)
|
if (Config.ENABLE_CLASS_DAMAGES)
|
||||||
{
|
{
|
||||||
ClassDamageManager.loadConfig();
|
ClassDamageManager.loadConfig();
|
||||||
}
|
}
|
||||||
|
ClanTable.getInstance();
|
||||||
|
if (Config.ENABLE_COMMUNITY_BOARD)
|
||||||
|
{
|
||||||
|
ForumsBBSManager.getInstance().initRoot();
|
||||||
|
}
|
||||||
|
|
||||||
Util.printSection("Skills");
|
Util.printSection("Skills");
|
||||||
if (!SkillTable.getInstance().isInitialized())
|
if (!SkillTable.getInstance().isInitialized())
|
||||||
@ -231,6 +237,10 @@ public class GameServer
|
|||||||
SkillSpellbookTable.getInstance();
|
SkillSpellbookTable.getInstance();
|
||||||
NobleSkillTable.getInstance();
|
NobleSkillTable.getInstance();
|
||||||
HeroSkillTable.getInstance();
|
HeroSkillTable.getInstance();
|
||||||
|
if (!HelperBuffTable.getInstance().isInitialized())
|
||||||
|
{
|
||||||
|
throw new Exception("Could not initialize the Helper Buff Table.");
|
||||||
|
}
|
||||||
LOGGER.info("Skills: All skills loaded.");
|
LOGGER.info("Skills: All skills loaded.");
|
||||||
|
|
||||||
Util.printSection("Items");
|
Util.printSection("Items");
|
||||||
@ -238,6 +248,7 @@ public class GameServer
|
|||||||
ArmorSetData.getInstance();
|
ArmorSetData.getInstance();
|
||||||
ExtractableItemData.getInstance();
|
ExtractableItemData.getInstance();
|
||||||
SummonItemData.getInstance();
|
SummonItemData.getInstance();
|
||||||
|
HennaData.getInstance();
|
||||||
if (Config.ALLOWFISHING)
|
if (Config.ALLOWFISHING)
|
||||||
{
|
{
|
||||||
FishData.getInstance();
|
FishData.getInstance();
|
||||||
@ -252,22 +263,6 @@ public class GameServer
|
|||||||
throw new Exception("Could not initialize the npc table");
|
throw new Exception("Could not initialize the npc table");
|
||||||
}
|
}
|
||||||
|
|
||||||
Util.printSection("Characters");
|
|
||||||
if (Config.ENABLE_COMMUNITY_BOARD)
|
|
||||||
{
|
|
||||||
ForumsBBSManager.getInstance().initRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
ClanTable.getInstance();
|
|
||||||
CharTemplateTable.getInstance();
|
|
||||||
LevelUpData.getInstance();
|
|
||||||
HennaData.getInstance();
|
|
||||||
|
|
||||||
if (!HelperBuffTable.getInstance().isInitialized())
|
|
||||||
{
|
|
||||||
throw new Exception("Could not initialize the Helper Buff Table");
|
|
||||||
}
|
|
||||||
|
|
||||||
Util.printSection("Geodata");
|
Util.printSection("Geodata");
|
||||||
GeoEngine.getInstance();
|
GeoEngine.getInstance();
|
||||||
|
|
||||||
|
@ -1,279 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the L2J Mobius project.
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package org.l2jmobius.gameserver.datatables.sql;
|
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @version $Revision: 1.6.2.1.2.10 $ $Date: 2005/03/29 14:00:54 $
|
|
||||||
*/
|
|
||||||
public class CharTemplateTable
|
|
||||||
{
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(CharTemplateTable.class.getName());
|
|
||||||
|
|
||||||
private static final String[] CHAR_CLASSES =
|
|
||||||
{
|
|
||||||
"Human Fighter",
|
|
||||||
"Warrior",
|
|
||||||
"Gladiator",
|
|
||||||
"Warlord",
|
|
||||||
"Human Knight",
|
|
||||||
"Paladin",
|
|
||||||
"Dark Avenger",
|
|
||||||
"Rogue",
|
|
||||||
"Treasure Hunter",
|
|
||||||
"Hawkeye",
|
|
||||||
"Human Mystic",
|
|
||||||
"Human Wizard",
|
|
||||||
"Sorceror",
|
|
||||||
"Necromancer",
|
|
||||||
"Warlock",
|
|
||||||
"Cleric",
|
|
||||||
"Bishop",
|
|
||||||
"Prophet",
|
|
||||||
"Elven Fighter",
|
|
||||||
"Elven Knight",
|
|
||||||
"Temple Knight",
|
|
||||||
"Swordsinger",
|
|
||||||
"Elven Scout",
|
|
||||||
"Plainswalker",
|
|
||||||
"Silver Ranger",
|
|
||||||
"Elven Mystic",
|
|
||||||
"Elven Wizard",
|
|
||||||
"Spellsinger",
|
|
||||||
"Elemental Summoner",
|
|
||||||
"Elven Oracle",
|
|
||||||
"Elven Elder",
|
|
||||||
"Dark Fighter",
|
|
||||||
"Palus Knight",
|
|
||||||
"Shillien Knight",
|
|
||||||
"Bladedancer",
|
|
||||||
"Assassin",
|
|
||||||
"Abyss Walker",
|
|
||||||
"Phantom Ranger",
|
|
||||||
"Dark Elven Mystic",
|
|
||||||
"Dark Elven Wizard",
|
|
||||||
"Spellhowler",
|
|
||||||
"Phantom Summoner",
|
|
||||||
"Shillien Oracle",
|
|
||||||
"Shillien Elder",
|
|
||||||
"Orc Fighter",
|
|
||||||
"Orc Raider",
|
|
||||||
"Destroyer",
|
|
||||||
"Orc Monk",
|
|
||||||
"Tyrant",
|
|
||||||
"Orc Mystic",
|
|
||||||
"Orc Shaman",
|
|
||||||
"Overlord",
|
|
||||||
"Warcryer",
|
|
||||||
"Dwarven Fighter",
|
|
||||||
"Dwarven Scavenger",
|
|
||||||
"Bounty Hunter",
|
|
||||||
"Dwarven Artisan",
|
|
||||||
"Warsmith",
|
|
||||||
"dummyEntry1",
|
|
||||||
"dummyEntry2",
|
|
||||||
"dummyEntry3",
|
|
||||||
"dummyEntry4",
|
|
||||||
"dummyEntry5",
|
|
||||||
"dummyEntry6",
|
|
||||||
"dummyEntry7",
|
|
||||||
"dummyEntry8",
|
|
||||||
"dummyEntry9",
|
|
||||||
"dummyEntry10",
|
|
||||||
"dummyEntry11",
|
|
||||||
"dummyEntry12",
|
|
||||||
"dummyEntry13",
|
|
||||||
"dummyEntry14",
|
|
||||||
"dummyEntry15",
|
|
||||||
"dummyEntry16",
|
|
||||||
"dummyEntry17",
|
|
||||||
"dummyEntry18",
|
|
||||||
"dummyEntry19",
|
|
||||||
"dummyEntry20",
|
|
||||||
"dummyEntry21",
|
|
||||||
"dummyEntry22",
|
|
||||||
"dummyEntry23",
|
|
||||||
"dummyEntry24",
|
|
||||||
"dummyEntry25",
|
|
||||||
"dummyEntry26",
|
|
||||||
"dummyEntry27",
|
|
||||||
"dummyEntry28",
|
|
||||||
"dummyEntry29",
|
|
||||||
"dummyEntry30",
|
|
||||||
"Duelist",
|
|
||||||
"DreadNought",
|
|
||||||
"Phoenix Knight",
|
|
||||||
"Hell Knight",
|
|
||||||
"Sagittarius",
|
|
||||||
"Adventurer",
|
|
||||||
"Archmage",
|
|
||||||
"Soultaker",
|
|
||||||
"Arcana Lord",
|
|
||||||
"Cardinal",
|
|
||||||
"Hierophant",
|
|
||||||
"Eva Templar",
|
|
||||||
"Sword Muse",
|
|
||||||
"Wind Rider",
|
|
||||||
"Moonlight Sentinel",
|
|
||||||
"Mystic Muse",
|
|
||||||
"Elemental Master",
|
|
||||||
"Eva's Saint",
|
|
||||||
"Shillien Templar",
|
|
||||||
"Spectral Dancer",
|
|
||||||
"Ghost Hunter",
|
|
||||||
"Ghost Sentinel",
|
|
||||||
"Storm Screamer",
|
|
||||||
"Spectral Master",
|
|
||||||
"Shillien Saint",
|
|
||||||
"Titan",
|
|
||||||
"Grand Khauatari",
|
|
||||||
"Dominator",
|
|
||||||
"Doomcryer",
|
|
||||||
"Fortune Seeker",
|
|
||||||
"Maestro"
|
|
||||||
};
|
|
||||||
|
|
||||||
private final Map<Integer, PlayerTemplate> _templates;
|
|
||||||
|
|
||||||
private CharTemplateTable()
|
|
||||||
{
|
|
||||||
_templates = new HashMap<>();
|
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
|
||||||
{
|
|
||||||
final PreparedStatement statement = con.prepareStatement("SELECT * FROM class_list, char_templates, lvlupgain WHERE class_list.id = char_templates.classId AND class_list.id = lvlupgain.classId ORDER BY class_list.id");
|
|
||||||
final ResultSet rset = statement.executeQuery();
|
|
||||||
|
|
||||||
while (rset.next())
|
|
||||||
{
|
|
||||||
final StatSet set = new StatSet();
|
|
||||||
set.set("classId", rset.getInt("id"));
|
|
||||||
set.set("className", rset.getString("className"));
|
|
||||||
set.set("raceId", rset.getInt("raceId"));
|
|
||||||
set.set("baseSTR", rset.getInt("STR"));
|
|
||||||
set.set("baseCON", rset.getInt("CON"));
|
|
||||||
set.set("baseDEX", rset.getInt("DEX"));
|
|
||||||
set.set("baseINT", rset.getInt("_INT"));
|
|
||||||
set.set("baseWIT", rset.getInt("WIT"));
|
|
||||||
set.set("baseMEN", rset.getInt("MEN"));
|
|
||||||
set.set("baseHpMax", rset.getFloat("defaultHpBase"));
|
|
||||||
set.set("lvlHpAdd", rset.getFloat("defaultHpAdd"));
|
|
||||||
set.set("lvlHpMod", rset.getFloat("defaultHpMod"));
|
|
||||||
set.set("baseMpMax", rset.getFloat("defaultMpBase"));
|
|
||||||
set.set("baseCpMax", rset.getFloat("defaultCpBase"));
|
|
||||||
set.set("lvlCpAdd", rset.getFloat("defaultCpAdd"));
|
|
||||||
set.set("lvlCpMod", rset.getFloat("defaultCpMod"));
|
|
||||||
set.set("lvlMpAdd", rset.getFloat("defaultMpAdd"));
|
|
||||||
set.set("lvlMpMod", rset.getFloat("defaultMpMod"));
|
|
||||||
set.set("baseHpReg", 1.5);
|
|
||||||
set.set("baseMpReg", 0.9);
|
|
||||||
set.set("basePAtk", rset.getInt("p_atk"));
|
|
||||||
set.set("basePDef", /* classId.isMage()? 77 : 129 */rset.getInt("p_def"));
|
|
||||||
set.set("baseMAtk", rset.getInt("m_atk"));
|
|
||||||
set.set("baseMDef", rset.getInt("char_templates.m_def"));
|
|
||||||
set.set("classBaseLevel", rset.getInt("class_lvl"));
|
|
||||||
set.set("basePAtkSpd", rset.getInt("p_spd"));
|
|
||||||
set.set("baseMAtkSpd", /* classId.isMage()? 166 : 333 */rset.getInt("char_templates.m_spd"));
|
|
||||||
set.set("baseCritRate", rset.getInt("char_templates.critical") / 10);
|
|
||||||
set.set("baseRunSpd", rset.getInt("move_spd"));
|
|
||||||
set.set("baseWalkSpd", 0);
|
|
||||||
set.set("baseShldDef", 0);
|
|
||||||
set.set("baseShldRate", 0);
|
|
||||||
set.set("baseAtkRange", 40);
|
|
||||||
|
|
||||||
set.set("spawnX", rset.getInt("x"));
|
|
||||||
set.set("spawnY", rset.getInt("y"));
|
|
||||||
set.set("spawnZ", rset.getInt("z"));
|
|
||||||
|
|
||||||
PlayerTemplate ct;
|
|
||||||
|
|
||||||
set.set("collision_radius", rset.getDouble("m_col_r"));
|
|
||||||
set.set("collision_height", rset.getDouble("m_col_h"));
|
|
||||||
ct = new PlayerTemplate(set);
|
|
||||||
// 5 items must go here
|
|
||||||
for (int x = 1; x < 6; x++)
|
|
||||||
{
|
|
||||||
if (rset.getInt("items" + x) != 0)
|
|
||||||
{
|
|
||||||
ct.addItem(rset.getInt("items" + x));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_templates.put(ct.getClassId().getId(), ct);
|
|
||||||
}
|
|
||||||
|
|
||||||
statement.close();
|
|
||||||
rset.close();
|
|
||||||
}
|
|
||||||
catch (SQLException e)
|
|
||||||
{
|
|
||||||
LOGGER.warning("error while loading char templates " + e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGGER.info("CharTemplateTable: Loaded " + _templates.size() + " Character Templates.");
|
|
||||||
}
|
|
||||||
|
|
||||||
public PlayerTemplate getTemplate(ClassId classId)
|
|
||||||
{
|
|
||||||
return getTemplate(classId.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
public PlayerTemplate getTemplate(int classId)
|
|
||||||
{
|
|
||||||
return _templates.get(classId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final String getClassNameById(int classId)
|
|
||||||
{
|
|
||||||
return CHAR_CLASSES[classId];
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final int getClassIdByName(String className)
|
|
||||||
{
|
|
||||||
int currId = 1;
|
|
||||||
for (String name : CHAR_CLASSES)
|
|
||||||
{
|
|
||||||
if (name.equalsIgnoreCase(className))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
currId++;
|
|
||||||
}
|
|
||||||
return currId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static CharTemplateTable getInstance()
|
|
||||||
{
|
|
||||||
return SingletonHolder.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class SingletonHolder
|
|
||||||
{
|
|
||||||
protected static final CharTemplateTable INSTANCE = new CharTemplateTable();
|
|
||||||
}
|
|
||||||
}
|
|
@ -125,7 +125,7 @@ public class HelperBuffTable
|
|||||||
helperBuff.add(template);
|
helperBuff.add(template);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOGGER.info("Helper Buff Table: Loaded " + helperBuff.size() + " templates");
|
LOGGER.info("HelperBuffTable: Loaded " + helperBuff.size() + " templates.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInitialized()
|
public boolean isInitialized()
|
||||||
|
@ -1,114 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the L2J Mobius project.
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package org.l2jmobius.gameserver.datatables.sql;
|
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
|
||||||
import org.l2jmobius.gameserver.model.LvlupData;
|
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author NightMarez
|
|
||||||
* @version $Revision: 1.3.2.4.2.3 $ $Date: 2005/03/27 15:29:18 $
|
|
||||||
*/
|
|
||||||
public class LevelUpData
|
|
||||||
{
|
|
||||||
private static final String SELECT_ALL = "SELECT classid, defaulthpbase, defaulthpadd, defaulthpmod, defaultcpbase, defaultcpadd, defaultcpmod, defaultmpbase, defaultmpadd, defaultmpmod, class_lvl FROM lvlupgain";
|
|
||||||
private static final String CLASS_LVL = "class_lvl";
|
|
||||||
private static final String MP_MOD = "defaultmpmod";
|
|
||||||
private static final String MP_ADD = "defaultmpadd";
|
|
||||||
private static final String MP_BASE = "defaultmpbase";
|
|
||||||
private static final String HP_MOD = "defaulthpmod";
|
|
||||||
private static final String HP_ADD = "defaulthpadd";
|
|
||||||
private static final String HP_BASE = "defaulthpbase";
|
|
||||||
private static final String CP_MOD = "defaultcpmod";
|
|
||||||
private static final String CP_ADD = "defaultcpadd";
|
|
||||||
private static final String CP_BASE = "defaultcpbase";
|
|
||||||
private static final String CLASS_ID = "classid";
|
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(LevelUpData.class.getName());
|
|
||||||
|
|
||||||
private final Map<Integer, LvlupData> _lvlTable;
|
|
||||||
|
|
||||||
private LevelUpData()
|
|
||||||
{
|
|
||||||
_lvlTable = new HashMap<>();
|
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
|
||||||
{
|
|
||||||
final PreparedStatement statement = con.prepareStatement(SELECT_ALL);
|
|
||||||
final ResultSet rset = statement.executeQuery();
|
|
||||||
LvlupData lvlDat;
|
|
||||||
|
|
||||||
while (rset.next())
|
|
||||||
{
|
|
||||||
lvlDat = new LvlupData();
|
|
||||||
lvlDat.setClassid(rset.getInt(CLASS_ID));
|
|
||||||
lvlDat.setClassLvl(rset.getInt(CLASS_LVL));
|
|
||||||
lvlDat.setClassHpBase(rset.getFloat(HP_BASE));
|
|
||||||
lvlDat.setClassHpAdd(rset.getFloat(HP_ADD));
|
|
||||||
lvlDat.setClassHpModifier(rset.getFloat(HP_MOD));
|
|
||||||
lvlDat.setClassCpBase(rset.getFloat(CP_BASE));
|
|
||||||
lvlDat.setClassCpAdd(rset.getFloat(CP_ADD));
|
|
||||||
lvlDat.setClassCpModifier(rset.getFloat(CP_MOD));
|
|
||||||
lvlDat.setClassMpBase(rset.getFloat(MP_BASE));
|
|
||||||
lvlDat.setClassMpAdd(rset.getFloat(MP_ADD));
|
|
||||||
lvlDat.setClassMpModifier(rset.getFloat(MP_MOD));
|
|
||||||
|
|
||||||
_lvlTable.put(lvlDat.getClassid(), lvlDat);
|
|
||||||
}
|
|
||||||
|
|
||||||
statement.close();
|
|
||||||
rset.close();
|
|
||||||
|
|
||||||
LOGGER.info("LevelUpData: Loaded " + _lvlTable.size() + " Character Level Up Templates.");
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.warning("Error while creating Lvl up data table " + e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param classId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public LvlupData getTemplate(int classId)
|
|
||||||
{
|
|
||||||
return _lvlTable.get(classId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public LvlupData getTemplate(ClassId classId)
|
|
||||||
{
|
|
||||||
return _lvlTable.get(classId.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static LevelUpData getInstance()
|
|
||||||
{
|
|
||||||
return SingletonHolder.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class SingletonHolder
|
|
||||||
{
|
|
||||||
protected static final LevelUpData INSTANCE = new LevelUpData();
|
|
||||||
}
|
|
||||||
}
|
|
@ -30,11 +30,13 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.datatables.SkillTable;
|
import org.l2jmobius.gameserver.datatables.SkillTable;
|
||||||
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.model.EnchantSkillLearn;
|
import org.l2jmobius.gameserver.model.EnchantSkillLearn;
|
||||||
import org.l2jmobius.gameserver.model.PledgeSkillLearn;
|
import org.l2jmobius.gameserver.model.PledgeSkillLearn;
|
||||||
import org.l2jmobius.gameserver.model.Skill;
|
import org.l2jmobius.gameserver.model.Skill;
|
||||||
import org.l2jmobius.gameserver.model.SkillLearn;
|
import org.l2jmobius.gameserver.model.SkillLearn;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
import org.l2jmobius.gameserver.model.skills.holders.ISkillsHolder;
|
import org.l2jmobius.gameserver.model.skills.holders.ISkillsHolder;
|
||||||
import org.l2jmobius.gameserver.model.skills.holders.PlayerSkillHolder;
|
import org.l2jmobius.gameserver.model.skills.holders.PlayerSkillHolder;
|
||||||
@ -47,42 +49,36 @@ public class SkillTreeTable
|
|||||||
private static final Logger LOGGER = Logger.getLogger(SkillTreeTable.class.getName());
|
private static final Logger LOGGER = Logger.getLogger(SkillTreeTable.class.getName());
|
||||||
|
|
||||||
private Map<ClassId, Map<Integer, SkillLearn>> _skillTrees;
|
private Map<ClassId, Map<Integer, SkillLearn>> _skillTrees;
|
||||||
private List<SkillLearn> _fishingSkillTrees; // all common skills (teached by Fisherman)
|
private List<SkillLearn> _fishingSkillTrees;
|
||||||
private List<SkillLearn> _expandDwarfCraftSkillTrees; // list of special skill for dwarf (expand dwarf craft) learned by class teacher
|
private List<SkillLearn> _expandDwarfCraftSkillTrees;
|
||||||
private List<PledgeSkillLearn> _pledgeSkillTrees; // pledge skill list
|
private List<PledgeSkillLearn> _pledgeSkillTrees;
|
||||||
private List<EnchantSkillLearn> _enchantSkillTrees; // enchant skill list
|
private List<EnchantSkillLearn> _enchantSkillTrees;
|
||||||
|
|
||||||
private SkillTreeTable()
|
private SkillTreeTable()
|
||||||
{
|
{
|
||||||
int classId = 0;
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
ClassId classId = null;
|
||||||
|
ClassId parentClassId;
|
||||||
|
Map<Integer, SkillLearn> map;
|
||||||
|
|
||||||
try (Connection con = DatabaseFactory.getConnection())
|
for (PlayerTemplate playerTemplate : PlayerTemplateData.getInstance().getAllTemplates())
|
||||||
{
|
{
|
||||||
final PreparedStatement statement = con.prepareStatement("SELECT * FROM class_list ORDER BY id");
|
try (Connection con = DatabaseFactory.getConnection())
|
||||||
final ResultSet classlist = statement.executeQuery();
|
|
||||||
|
|
||||||
Map<Integer, SkillLearn> map;
|
|
||||||
int parentClassId;
|
|
||||||
SkillLearn skillLearn;
|
|
||||||
|
|
||||||
while (classlist.next())
|
|
||||||
{
|
{
|
||||||
map = new HashMap<>();
|
map = new HashMap<>();
|
||||||
parentClassId = classlist.getInt("parent_id");
|
classId = playerTemplate.getClassId();
|
||||||
classId = classlist.getInt("id");
|
parentClassId = classId.getParent();
|
||||||
final PreparedStatement statement2 = con.prepareStatement("SELECT class_id, skill_id, level, name, sp, min_level FROM skill_trees where class_id=? ORDER BY skill_id, level");
|
|
||||||
statement2.setInt(1, classId);
|
|
||||||
final ResultSet skilltree = statement2.executeQuery();
|
|
||||||
|
|
||||||
if (parentClassId != -1)
|
final PreparedStatement statement = con.prepareStatement("SELECT class_id, skill_id, level, name, sp, min_level FROM skill_trees where class_id=? ORDER BY skill_id, level");
|
||||||
|
statement.setInt(1, classId.getId());
|
||||||
|
final ResultSet skilltree = statement.executeQuery();
|
||||||
|
|
||||||
|
if (parentClassId != null)
|
||||||
{
|
{
|
||||||
final Map<Integer, SkillLearn> parentMap = getSkillTrees().get(ClassId.getClassId(parentClassId));
|
map.putAll(getSkillTrees().get(parentClassId));
|
||||||
map.putAll(parentMap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int prevSkillId = -1;
|
int prevSkillId = -1;
|
||||||
|
|
||||||
while (skilltree.next())
|
while (skilltree.next())
|
||||||
{
|
{
|
||||||
final int id = skilltree.getInt("skill_id");
|
final int id = skilltree.getInt("skill_id");
|
||||||
@ -96,24 +92,22 @@ public class SkillTreeTable
|
|||||||
prevSkillId = id;
|
prevSkillId = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
skillLearn = new SkillLearn(id, lvl, minLvl, name, cost, 0, 0);
|
map.put(SkillTable.getSkillHashCode(id, lvl), new SkillLearn(id, lvl, minLvl, name, cost, 0, 0));
|
||||||
map.put(SkillTable.getSkillHashCode(id, lvl), skillLearn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getSkillTrees().put(ClassId.getClassId(classId), map);
|
getSkillTrees().put(classId, map);
|
||||||
skilltree.close();
|
|
||||||
statement2.close();
|
|
||||||
|
|
||||||
count += map.size();
|
count += map.size();
|
||||||
// LOGGER.info("SkillTreeTable: skill tree for class " + classId + " has " + map.size() + " skills.");
|
|
||||||
|
skilltree.close();
|
||||||
|
statement.close();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
if (classId != null)
|
||||||
|
{
|
||||||
|
LOGGER.warning("Error while creating skill tree (Class ID " + classId.getId() + "): " + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
classlist.close();
|
|
||||||
statement.close();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.warning("Error while creating skill tree (Class ID " + classId + "): " + e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LOGGER.info("SkillTreeTable: Loaded " + count + " skills.");
|
LOGGER.info("SkillTreeTable: Loaded " + count + " skills.");
|
||||||
|
@ -0,0 +1,131 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.l2jmobius.gameserver.datatables.xml;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.NamedNodeMap;
|
||||||
|
import org.w3c.dom.Node;
|
||||||
|
|
||||||
|
import org.l2jmobius.commons.util.IXmlReader;
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
||||||
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PlayerTemplateData implements IXmlReader
|
||||||
|
{
|
||||||
|
private final Map<Integer, PlayerTemplate> _templates = new HashMap<>();
|
||||||
|
|
||||||
|
protected PlayerTemplateData()
|
||||||
|
{
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void load()
|
||||||
|
{
|
||||||
|
_templates.clear();
|
||||||
|
parseDatapackFile("data/stats/playerTemplates.xml");
|
||||||
|
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _templates.size() + " player templates.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parseDocument(Document doc, File f)
|
||||||
|
{
|
||||||
|
// StatsSet used to feed informations. Cleaned on every entry.
|
||||||
|
final StatSet set = new StatSet();
|
||||||
|
|
||||||
|
// First element is never read.
|
||||||
|
final Node n = doc.getFirstChild();
|
||||||
|
|
||||||
|
for (Node node = n.getFirstChild(); node != null; node = node.getNextSibling())
|
||||||
|
{
|
||||||
|
if (!"class".equalsIgnoreCase(node.getNodeName()))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse and feed content.
|
||||||
|
final NamedNodeMap attrs = node.getAttributes();
|
||||||
|
for (int i = 0; i < attrs.getLength(); i++)
|
||||||
|
{
|
||||||
|
final Node attr = attrs.item(i);
|
||||||
|
set.set(attr.getNodeName(), attr.getNodeValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
set.set("baseHpReg", 1.5);
|
||||||
|
set.set("baseMpReg", 0.9);
|
||||||
|
set.set("baseWalkSpd", 0);
|
||||||
|
set.set("baseShldDef", 0);
|
||||||
|
set.set("baseShldRate", 0);
|
||||||
|
set.set("baseAtkRange", 40);
|
||||||
|
set.set("baseCritRate", set.getInt("baseCritRate") / 10);
|
||||||
|
|
||||||
|
final PlayerTemplate template = new PlayerTemplate(set);
|
||||||
|
_templates.put(template.getClassId().getId(), template);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<PlayerTemplate> getAllTemplates()
|
||||||
|
{
|
||||||
|
return _templates.values();
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerTemplate getTemplate(int classId)
|
||||||
|
{
|
||||||
|
return _templates.get(classId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerTemplate getTemplate(ClassId classId)
|
||||||
|
{
|
||||||
|
return _templates.get(classId.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClassNameById(int classId)
|
||||||
|
{
|
||||||
|
return _templates.get(classId).getClassName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getClassIdByName(String className)
|
||||||
|
{
|
||||||
|
for (PlayerTemplate template : _templates.values())
|
||||||
|
{
|
||||||
|
if (template.getClassName().equalsIgnoreCase(className))
|
||||||
|
{
|
||||||
|
return template.getClassId().getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PlayerTemplateData getInstance()
|
||||||
|
{
|
||||||
|
return SingletonHolder.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class SingletonHolder
|
||||||
|
{
|
||||||
|
protected static final PlayerTemplateData INSTANCE = new PlayerTemplateData();
|
||||||
|
}
|
||||||
|
}
|
@ -99,7 +99,7 @@ public class DocumentEngine
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LOGGER.info("SkillsEngine: Loaded " + count + " Skill templates from XML files.");
|
LOGGER.info("SkillsEngine: Loaded " + count + " skill templates.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -26,7 +26,7 @@ import java.util.Properties;
|
|||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,13 +46,12 @@ public class ClassDamageManager
|
|||||||
|
|
||||||
public static void loadConfig()
|
public static void loadConfig()
|
||||||
{
|
{
|
||||||
final String SCRIPT = Config.CLASS_DAMAGE_CONFIG_FILE;
|
|
||||||
InputStream is = null;
|
InputStream is = null;
|
||||||
File file = null;
|
File file = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final Properties scriptSetting = new Properties();
|
final Properties scriptSetting = new Properties();
|
||||||
file = new File(SCRIPT);
|
file = new File(Config.CLASS_DAMAGE_CONFIG_FILE);
|
||||||
is = new FileInputStream(file);
|
is = new FileInputStream(file);
|
||||||
scriptSetting.load(is);
|
scriptSetting.load(is);
|
||||||
|
|
||||||
@ -69,8 +68,7 @@ public class ClassDamageManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String type = classAndType[1];
|
final String type = classAndType[1];
|
||||||
|
final Integer classId = PlayerTemplateData.getInstance().getClassIdByName(className) - 1;
|
||||||
final Integer classId = CharTemplateTable.getClassIdByName(className) - 1;
|
|
||||||
|
|
||||||
ID_TO_NAME.put(classId, className);
|
ID_TO_NAME.put(classId, className);
|
||||||
NAME_TO_ID.put(className, classId);
|
NAME_TO_ID.put(className, classId);
|
||||||
@ -93,7 +91,7 @@ public class ClassDamageManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LOGGER.info("Loaded " + ID_TO_NAME.size() + " classes Damages configurations");
|
LOGGER.info("Loaded " + ID_TO_NAME.size() + " class damage configurations.");
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.model.actor.instance;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
@ -130,7 +130,7 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
{
|
{
|
||||||
if (child.childOf(classId) && (child.level() == jobLevel))
|
if (child.childOf(classId) && (child.level() == jobLevel))
|
||||||
{
|
{
|
||||||
sb.append("<br><a action=\"bypass -h npc_" + getObjectId() + "_change_class " + child.getId() + "\"> " + CharTemplateTable.getClassNameById(child.getId()) + "</a>");
|
sb.append("<br><a action=\"bypass -h npc_" + getObjectId() + "_change_class " + child.getId() + "\"> " + PlayerTemplateData.getInstance().getClassNameById(child.getId()) + "</a>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
|
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
|
||||||
sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getClassId().getId()) + "</font>.");
|
sb.append("You have now become a <font color=\"LEVEL\">" + PlayerTemplateData.getInstance().getClassNameById(player.getClassId().getId()) + "</font>.");
|
||||||
sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
||||||
|
|
||||||
html.setHtml(sb.toString());
|
html.setHtml(sb.toString());
|
||||||
@ -400,7 +400,7 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
|
sb.append("<html><title>Class Manager</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
|
||||||
sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getClassId().getId()) + "</font>.");
|
sb.append("You have now become a <font color=\"LEVEL\">" + PlayerTemplateData.getInstance().getClassNameById(player.getClassId().getId()) + "</font>.");
|
||||||
sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32></center></body></html>");
|
||||||
|
|
||||||
html.setHtml(sb.toString());
|
html.setHtml(sb.toString());
|
||||||
@ -509,24 +509,24 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
sb.append("<table width=200>");
|
sb.append("<table width=200>");
|
||||||
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
||||||
sb.append("<tr><td><br></td></tr>");
|
sb.append("<tr><td><br></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 1\">Advance to " + CharTemplateTable.getClassNameById(1) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 1\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(1) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 4\">Advance to " + CharTemplateTable.getClassNameById(4) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 4\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(4) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 7\">Advance to " + CharTemplateTable.getClassNameById(7) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 7\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(7) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 11\">Advance to " + CharTemplateTable.getClassNameById(11) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 11\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(11) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 15\">Advance to " + CharTemplateTable.getClassNameById(15) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 15\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(15) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 19\">Advance to " + CharTemplateTable.getClassNameById(19) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 19\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(19) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 22\">Advance to " + CharTemplateTable.getClassNameById(22) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 22\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(22) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 26\">Advance to " + CharTemplateTable.getClassNameById(26) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 26\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(26) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 29\">Advance to " + CharTemplateTable.getClassNameById(29) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 29\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(29) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 32\">Advance to " + CharTemplateTable.getClassNameById(32) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 32\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(32) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 35\">Advance to " + CharTemplateTable.getClassNameById(35) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 35\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(35) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 39\">Advance to " + CharTemplateTable.getClassNameById(39) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 39\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(39) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 42\">Advance to " + CharTemplateTable.getClassNameById(42) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 42\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(42) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 45\">Advance to " + CharTemplateTable.getClassNameById(45) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 45\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(45) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 47\">Advance to " + CharTemplateTable.getClassNameById(47) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 47\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(47) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 50\">Advance to " + CharTemplateTable.getClassNameById(50) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 50\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(50) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 54\">Advance to " + CharTemplateTable.getClassNameById(54) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 54\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(54) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 56\">Advance to " + CharTemplateTable.getClassNameById(56) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 56\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(56) + "</a></td></tr>");
|
||||||
sb.append("</table>");
|
sb.append("</table>");
|
||||||
sb.append("</body>");
|
sb.append("</body>");
|
||||||
sb.append("</html>");
|
sb.append("</html>");
|
||||||
@ -547,37 +547,37 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
sb.append("<table width=200>");
|
sb.append("<table width=200>");
|
||||||
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
||||||
sb.append("<tr><td><br></td></tr>");
|
sb.append("<tr><td><br></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 2\">Advance to " + CharTemplateTable.getClassNameById(2) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 2\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(2) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 3\">Advance to " + CharTemplateTable.getClassNameById(3) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 3\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(3) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 5\">Advance to " + CharTemplateTable.getClassNameById(5) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 5\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(5) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 6\">Advance to " + CharTemplateTable.getClassNameById(6) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 6\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(6) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 8\">Advance to " + CharTemplateTable.getClassNameById(8) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 8\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(8) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 9\">Advance to " + CharTemplateTable.getClassNameById(9) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 9\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(9) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 12\">Advance to " + CharTemplateTable.getClassNameById(12) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 12\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(12) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 13\">Advance to " + CharTemplateTable.getClassNameById(13) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 13\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(13) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 14\">Advance to " + CharTemplateTable.getClassNameById(14) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 14\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(14) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 16\">Advance to " + CharTemplateTable.getClassNameById(16) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 16\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(16) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 17\">Advance to " + CharTemplateTable.getClassNameById(17) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 17\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(17) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 20\">Advance to " + CharTemplateTable.getClassNameById(20) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 20\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(20) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 21\">Advance to " + CharTemplateTable.getClassNameById(21) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 21\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(21) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 23\">Advance to " + CharTemplateTable.getClassNameById(23) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 23\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(23) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 24\">Advance to " + CharTemplateTable.getClassNameById(24) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 24\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(24) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 27\">Advance to " + CharTemplateTable.getClassNameById(27) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 27\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(27) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 28\">Advance to " + CharTemplateTable.getClassNameById(28) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 28\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(28) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 30\">Advance to " + CharTemplateTable.getClassNameById(30) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 30\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(30) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 33\">Advance to " + CharTemplateTable.getClassNameById(33) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 33\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(33) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 34\">Advance to " + CharTemplateTable.getClassNameById(34) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 34\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(34) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 36\">Advance to " + CharTemplateTable.getClassNameById(36) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 36\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(36) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 37\">Advance to " + CharTemplateTable.getClassNameById(37) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 37\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(37) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 40\">Advance to " + CharTemplateTable.getClassNameById(40) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 40\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(40) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 41\">Advance to " + CharTemplateTable.getClassNameById(41) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 41\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(41) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 43\">Advance to " + CharTemplateTable.getClassNameById(43) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 43\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(43) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 46\">Advance to " + CharTemplateTable.getClassNameById(46) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 46\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(46) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 48\">Advance to " + CharTemplateTable.getClassNameById(48) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 48\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(48) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 51\">Advance to " + CharTemplateTable.getClassNameById(51) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 51\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(51) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 52\">Advance to " + CharTemplateTable.getClassNameById(52) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 52\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(52) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 55\">Advance to " + CharTemplateTable.getClassNameById(55) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 55\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(55) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 57\">Advance to " + CharTemplateTable.getClassNameById(57) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 57\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(57) + "</a></td></tr>");
|
||||||
sb.append("</table>");
|
sb.append("</table>");
|
||||||
sb.append("</body>");
|
sb.append("</body>");
|
||||||
sb.append("</html>");
|
sb.append("</html>");
|
||||||
@ -598,37 +598,37 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
sb.append("<table width=200>");
|
sb.append("<table width=200>");
|
||||||
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
||||||
sb.append("<tr><td><br></td></tr>");
|
sb.append("<tr><td><br></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 88\">Advance to " + CharTemplateTable.getClassNameById(88) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 88\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(88) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 89\">Advance to " + CharTemplateTable.getClassNameById(89) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 89\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(89) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 90\">Advance to " + CharTemplateTable.getClassNameById(90) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 90\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(90) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 91\">Advance to " + CharTemplateTable.getClassNameById(91) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 91\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(91) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 92\">Advance to " + CharTemplateTable.getClassNameById(92) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 92\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(92) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 93\">Advance to " + CharTemplateTable.getClassNameById(93) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 93\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(93) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 94\">Advance to " + CharTemplateTable.getClassNameById(94) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 94\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(94) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 95\">Advance to " + CharTemplateTable.getClassNameById(95) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 95\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(95) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 96\">Advance to " + CharTemplateTable.getClassNameById(96) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 96\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(96) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 97\">Advance to " + CharTemplateTable.getClassNameById(97) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 97\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(97) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 98\">Advance to " + CharTemplateTable.getClassNameById(98) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 98\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(98) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 99\">Advance to " + CharTemplateTable.getClassNameById(99) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 99\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(99) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 100\">Advance to " + CharTemplateTable.getClassNameById(100) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 100\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(100) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 101\">Advance to " + CharTemplateTable.getClassNameById(101) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 101\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(101) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 102\">Advance to " + CharTemplateTable.getClassNameById(102) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 102\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(102) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 103\">Advance to " + CharTemplateTable.getClassNameById(103) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 103\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(103) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 104\">Advance to " + CharTemplateTable.getClassNameById(104) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 104\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(104) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 105\">Advance to " + CharTemplateTable.getClassNameById(105) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 105\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(105) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 106\">Advance to " + CharTemplateTable.getClassNameById(106) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 106\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(106) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 107\">Advance to " + CharTemplateTable.getClassNameById(107) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 107\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(107) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 108\">Advance to " + CharTemplateTable.getClassNameById(108) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 108\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(108) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 109\">Advance to " + CharTemplateTable.getClassNameById(109) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 109\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(109) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 110\">Advance to " + CharTemplateTable.getClassNameById(110) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 110\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(110) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 111\">Advance to " + CharTemplateTable.getClassNameById(111) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 111\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(111) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 112\">Advance to " + CharTemplateTable.getClassNameById(112) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 112\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(112) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 113\">Advance to " + CharTemplateTable.getClassNameById(113) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 113\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(113) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 114\">Advance to " + CharTemplateTable.getClassNameById(114) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 114\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(114) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 115\">Advance to " + CharTemplateTable.getClassNameById(115) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 115\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(115) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 116\">Advance to " + CharTemplateTable.getClassNameById(116) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 116\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(116) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 117\">Advance to " + CharTemplateTable.getClassNameById(117) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 117\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(117) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 118\">Advance to " + CharTemplateTable.getClassNameById(118) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 118\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(118) + "</a></td></tr>");
|
||||||
sb.append("</table>");
|
sb.append("</table>");
|
||||||
sb.append("</body>");
|
sb.append("</body>");
|
||||||
sb.append("</html>");
|
sb.append("</html>");
|
||||||
@ -649,15 +649,15 @@ public class ClassMasterInstance extends FolkInstance
|
|||||||
sb.append("<table width=200>");
|
sb.append("<table width=200>");
|
||||||
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
sb.append("<tr><td><center>GM Class Master:</center></td></tr>");
|
||||||
sb.append("<tr><td><br></td></tr>");
|
sb.append("<tr><td><br></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 0\">Advance to " + CharTemplateTable.getClassNameById(0) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 0\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(0) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 10\">Advance to " + CharTemplateTable.getClassNameById(10) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 10\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(10) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 18\">Advance to " + CharTemplateTable.getClassNameById(18) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 18\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(18) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 25\">Advance to " + CharTemplateTable.getClassNameById(25) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 25\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(25) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 31\">Advance to " + CharTemplateTable.getClassNameById(31) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 31\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(31) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 38\">Advance to " + CharTemplateTable.getClassNameById(38) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 38\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(38) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 44\">Advance to " + CharTemplateTable.getClassNameById(44) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 44\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(44) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 49\">Advance to " + CharTemplateTable.getClassNameById(49) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 49\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(49) + "</a></td></tr>");
|
||||||
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 53\">Advance to " + CharTemplateTable.getClassNameById(53) + "</a></td></tr>");
|
sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class 53\">Advance to " + PlayerTemplateData.getInstance().getClassNameById(53) + "</a></td></tr>");
|
||||||
sb.append("</table>");
|
sb.append("</table>");
|
||||||
sb.append("</body>");
|
sb.append("</body>");
|
||||||
sb.append("</html>");
|
sb.append("</html>");
|
||||||
|
@ -56,7 +56,6 @@ import org.l2jmobius.gameserver.datatables.HeroSkillTable;
|
|||||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||||
import org.l2jmobius.gameserver.datatables.NobleSkillTable;
|
import org.l2jmobius.gameserver.datatables.NobleSkillTable;
|
||||||
import org.l2jmobius.gameserver.datatables.SkillTable;
|
import org.l2jmobius.gameserver.datatables.SkillTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
|
||||||
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.NpcTable;
|
import org.l2jmobius.gameserver.datatables.sql.NpcTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
|
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
|
||||||
@ -65,6 +64,7 @@ import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
|
|||||||
import org.l2jmobius.gameserver.datatables.xml.FishData;
|
import org.l2jmobius.gameserver.datatables.xml.FishData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.HennaData;
|
import org.l2jmobius.gameserver.datatables.xml.HennaData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
|
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
|
||||||
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.RecipeData;
|
import org.l2jmobius.gameserver.datatables.xml.RecipeData;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
|
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
|
||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
@ -1016,7 +1016,7 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a PlayerInstance from the characters table of the database and add it in _allObjects of the L2world (call restore method).<BR>
|
* Retrieve a PlayerInstance from the characters table of the database and add it in _allObjects of the World (call restore method).<BR>
|
||||||
* <BR>
|
* <BR>
|
||||||
* <B><U> Actions</U> :</B><BR>
|
* <B><U> Actions</U> :</B><BR>
|
||||||
* <BR>
|
* <BR>
|
||||||
@ -1067,7 +1067,7 @@ public class PlayerInstance extends Playable
|
|||||||
getKnownList(); // init knownlist
|
getKnownList(); // init knownlist
|
||||||
getStat(); // init stats
|
getStat(); // init stats
|
||||||
getStatus(); // init status
|
getStatus(); // init status
|
||||||
super.initCharStatusUpdateValues();
|
initCharStatusUpdateValues();
|
||||||
initPcStatusUpdateValues();
|
initPcStatusUpdateValues();
|
||||||
|
|
||||||
_accountName = accountName;
|
_accountName = accountName;
|
||||||
@ -1153,7 +1153,7 @@ public class PlayerInstance extends Playable
|
|||||||
*/
|
*/
|
||||||
public PlayerTemplate getBaseTemplate()
|
public PlayerTemplate getBaseTemplate()
|
||||||
{
|
{
|
||||||
return CharTemplateTable.getInstance().getTemplate(_baseClass);
|
return PlayerTemplateData.getInstance().getTemplate(_baseClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1172,7 +1172,7 @@ public class PlayerInstance extends Playable
|
|||||||
*/
|
*/
|
||||||
public void setTemplate(ClassId newclass)
|
public void setTemplate(ClassId newclass)
|
||||||
{
|
{
|
||||||
super.setTemplate(CharTemplateTable.getInstance().getTemplate(newclass));
|
super.setTemplate(PlayerTemplateData.getInstance().getTemplate(newclass));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTimerToAttack(long time)
|
public void setTimerToAttack(long time)
|
||||||
@ -3116,7 +3116,7 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
return getTemplate().getRace();
|
return getTemplate().getRace();
|
||||||
}
|
}
|
||||||
return CharTemplateTable.getInstance().getTemplate(_baseClass).getRace();
|
return PlayerTemplateData.getInstance().getTemplate(_baseClass).getRace();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -8505,7 +8505,7 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a PlayerInstance from the characters table of the database and add it in _allObjects of the L2world.<BR>
|
* Retrieve a PlayerInstance from the characters table of the database and add it in _allObjects of the World.<BR>
|
||||||
* <BR>
|
* <BR>
|
||||||
* <B><U> Actions</U> :</B><BR>
|
* <B><U> Actions</U> :</B><BR>
|
||||||
* <BR>
|
* <BR>
|
||||||
@ -8534,7 +8534,7 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
final int activeClassId = rset.getInt("classid");
|
final int activeClassId = rset.getInt("classid");
|
||||||
final boolean female = rset.getInt("sex") != 0;
|
final boolean female = rset.getInt("sex") != 0;
|
||||||
final PlayerTemplate template = CharTemplateTable.getInstance().getTemplate(activeClassId);
|
final PlayerTemplate template = PlayerTemplateData.getInstance().getTemplate(activeClassId);
|
||||||
final PlayerAppearance app = new PlayerAppearance(rset.getByte("face"), rset.getByte("hairColor"), rset.getByte("hairStyle"), female);
|
final PlayerAppearance app = new PlayerAppearance(rset.getByte("face"), rset.getByte("hairColor"), rset.getByte("hairStyle"), female);
|
||||||
|
|
||||||
player = new PlayerInstance(objectId, template, rset.getString("account_name"), app);
|
player = new PlayerInstance(objectId, template, rset.getString("account_name"), app);
|
||||||
@ -12784,8 +12784,7 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
_activeClass = classId;
|
_activeClass = classId;
|
||||||
|
|
||||||
final PlayerTemplate t = CharTemplateTable.getInstance().getTemplate(classId);
|
final PlayerTemplate t = PlayerTemplateData.getInstance().getTemplate(classId);
|
||||||
|
|
||||||
if (t == null)
|
if (t == null)
|
||||||
{
|
{
|
||||||
LOGGER.warning("Missing template for classId: " + classId);
|
LOGGER.warning("Missing template for classId: " + classId);
|
||||||
|
@ -20,9 +20,9 @@ import java.util.Iterator;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
|
||||||
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
|
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
|
||||||
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
import org.l2jmobius.gameserver.instancemanager.CastleManager;
|
||||||
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
import org.l2jmobius.gameserver.instancemanager.FortManager;
|
||||||
@ -287,11 +287,11 @@ public class VillageMasterInstance extends FolkInstance
|
|||||||
content.append("Which class would you like to switch to?<br>");
|
content.append("Which class would you like to switch to?<br>");
|
||||||
if (baseClassId == player.getActiveClass())
|
if (baseClassId == player.getActiveClass())
|
||||||
{
|
{
|
||||||
content.append(CharTemplateTable.getClassNameById(baseClassId) + " <font color=\"LEVEL\">(Base Class)</font><br><br>");
|
content.append(PlayerTemplateData.getInstance().getClassNameById(baseClassId) + " <font color=\"LEVEL\">(Base Class)</font><br><br>");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 5 0\">" + CharTemplateTable.getClassNameById(baseClassId) + "</a> <font color=\"LEVEL\">(Base Class)</font><br><br>");
|
content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 5 0\">" + PlayerTemplateData.getInstance().getClassNameById(baseClassId) + "</a> <font color=\"LEVEL\">(Base Class)</font><br><br>");
|
||||||
}
|
}
|
||||||
for (Iterator<SubClass> subList = iterSubClasses(player); subList.hasNext();)
|
for (Iterator<SubClass> subList = iterSubClasses(player); subList.hasNext();)
|
||||||
{
|
{
|
||||||
@ -299,11 +299,11 @@ public class VillageMasterInstance extends FolkInstance
|
|||||||
final int subClassId = subClass.getClassId();
|
final int subClassId = subClass.getClassId();
|
||||||
if (subClassId == player.getActiveClass())
|
if (subClassId == player.getActiveClass())
|
||||||
{
|
{
|
||||||
content.append(CharTemplateTable.getClassNameById(subClassId) + "<br>");
|
content.append(PlayerTemplateData.getInstance().getClassNameById(subClassId) + "<br>");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 5 " + subClass.getClassIndex() + "\">" + CharTemplateTable.getClassNameById(subClassId) + "</a><br>");
|
content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 5 " + subClass.getClassIndex() + "\">" + PlayerTemplateData.getInstance().getClassNameById(subClassId) + "</a><br>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -317,7 +317,7 @@ public class VillageMasterInstance extends FolkInstance
|
|||||||
{
|
{
|
||||||
final SubClass subClass = subList.next();
|
final SubClass subClass = subList.next();
|
||||||
content.append("Sub-class " + classIndex + "<br1>");
|
content.append("Sub-class " + classIndex + "<br1>");
|
||||||
content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 6 " + subClass.getClassIndex() + "\">" + CharTemplateTable.getClassNameById(subClass.getClassId()) + "</a><br>");
|
content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 6 " + subClass.getClassIndex() + "\">" + PlayerTemplateData.getInstance().getClassNameById(subClass.getClassId()) + "</a><br>");
|
||||||
classIndex++;
|
classIndex++;
|
||||||
}
|
}
|
||||||
content.append("<br>If you change a sub class, you'll start at level 40 after the 2nd class transfer.");
|
content.append("<br>If you change a sub class, you'll start at level 40 after the 2nd class transfer.");
|
||||||
@ -394,7 +394,7 @@ public class VillageMasterInstance extends FolkInstance
|
|||||||
}
|
}
|
||||||
if (allowAddition)
|
if (allowAddition)
|
||||||
{
|
{
|
||||||
final String className = CharTemplateTable.getClassNameById(paramOne);
|
final String className = PlayerTemplateData.getInstance().getClassNameById(paramOne);
|
||||||
if (!player.addSubClass(paramOne, player.getTotalSubClasses() + 1))
|
if (!player.addSubClass(paramOne, player.getTotalSubClasses() + 1))
|
||||||
{
|
{
|
||||||
player.sendMessage("The sub class could not be added.");
|
player.sendMessage("The sub class could not be added.");
|
||||||
@ -448,7 +448,7 @@ public class VillageMasterInstance extends FolkInstance
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.setActiveClass(paramOne);
|
player.setActiveClass(paramOne);
|
||||||
content.append("Change Subclass:<br>Your active sub class is now a <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(player.getActiveClass()) + "</font>.");
|
content.append("Change Subclass:<br>Your active sub class is now a <font color=\"LEVEL\">" + PlayerTemplateData.getInstance().getClassNameById(player.getActiveClass()) + "</font>.");
|
||||||
player.sendPacket(SystemMessageId.SUBCLASS_TRANSFER_COMPLETED); // Transfer completed.
|
player.sendPacket(SystemMessageId.SUBCLASS_TRANSFER_COMPLETED); // Transfer completed.
|
||||||
// check player skills
|
// check player skills
|
||||||
// Player skills are already checked during setActiveClass
|
// Player skills are already checked during setActiveClass
|
||||||
@ -506,7 +506,7 @@ public class VillageMasterInstance extends FolkInstance
|
|||||||
if (player.modifySubClass(paramOne, paramTwo))
|
if (player.modifySubClass(paramOne, paramTwo))
|
||||||
{
|
{
|
||||||
player.setActiveClass(paramOne);
|
player.setActiveClass(paramOne);
|
||||||
content.append("Change Subclass:<br>Your sub class has been changed to <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(paramTwo) + "</font>.");
|
content.append("Change Subclass:<br>Your sub class has been changed to <font color=\"LEVEL\">" + PlayerTemplateData.getInstance().getClassNameById(paramTwo) + "</font>.");
|
||||||
player.sendPacket(SystemMessageId.ADD_NEW_SUBCLASS); // Subclass added.
|
player.sendPacket(SystemMessageId.ADD_NEW_SUBCLASS); // Subclass added.
|
||||||
// check player skills
|
// check player skills
|
||||||
// Player skills are already checked during setActiveClass
|
// Player skills are already checked during setActiveClass
|
||||||
|
@ -161,8 +161,8 @@ public class CreatureTemplate
|
|||||||
_baseHpConsumeRate = set.getInt("baseHpConsumeRate", 0);
|
_baseHpConsumeRate = set.getInt("baseHpConsumeRate", 0);
|
||||||
|
|
||||||
// Geometry
|
// Geometry
|
||||||
_collisionRadius = set.getInt("collision_radius");
|
_collisionRadius = (int) set.getFloat("collision_radius"); // TODO: Support float.
|
||||||
_collisionHeight = set.getInt("collision_height");
|
_collisionHeight = (int) set.getFloat("collision_height"); // TODO: Support float.
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getBaseSTR()
|
public int getBaseSTR()
|
||||||
|
@ -19,80 +19,58 @@ package org.l2jmobius.gameserver.model.actor.templates;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
|
||||||
import org.l2jmobius.gameserver.enums.Race;
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author mkizub
|
* @author mkizub
|
||||||
*/
|
*/
|
||||||
public class PlayerTemplate extends CreatureTemplate
|
public class PlayerTemplate extends CreatureTemplate
|
||||||
{
|
{
|
||||||
/** The Class object of the PlayerInstance */
|
|
||||||
private final Race _race;
|
private final Race _race;
|
||||||
private final ClassId _classId;
|
private final ClassId _classId;
|
||||||
|
|
||||||
private final int _currentCollisionRadius;
|
|
||||||
private final int _currentCollisionHeight;
|
|
||||||
private final String _className;
|
private final String _className;
|
||||||
|
private final int _classBaseLevel;
|
||||||
|
private final float _levelHpAdd;
|
||||||
|
private final float _levelHpMod;
|
||||||
|
private final float _levelCpAdd;
|
||||||
|
private final float _levelCpMod;
|
||||||
|
private final float _levelMpAdd;
|
||||||
|
private final float _levelMpMod;
|
||||||
private final int _spawnX;
|
private final int _spawnX;
|
||||||
private final int _spawnY;
|
private final int _spawnY;
|
||||||
private final int _spawnZ;
|
private final int _spawnZ;
|
||||||
|
private final List<ItemHolder> _items = new ArrayList<>();
|
||||||
private final int _classBaseLevel;
|
|
||||||
private final float _lvlHpAdd;
|
|
||||||
private final float _lvlHpMod;
|
|
||||||
private final float _lvlCpAdd;
|
|
||||||
private final float _lvlCpMod;
|
|
||||||
private final float _lvlMpAdd;
|
|
||||||
private final float _lvlMpMod;
|
|
||||||
|
|
||||||
private final List<Item> _items = new ArrayList<>();
|
|
||||||
|
|
||||||
public PlayerTemplate(StatSet set)
|
public PlayerTemplate(StatSet set)
|
||||||
{
|
{
|
||||||
super(set);
|
super(set);
|
||||||
_classId = ClassId.getClassId(set.getInt("classId"));
|
_classId = ClassId.getClassId(set.getInt("id"));
|
||||||
_race = Race.values()[set.getInt("raceId")];
|
_race = Enum.valueOf(Race.class, set.getString("race"));
|
||||||
_className = set.getString("className");
|
_className = set.getString("name");
|
||||||
_currentCollisionRadius = set.getInt("collision_radius");
|
|
||||||
_currentCollisionHeight = set.getInt("collision_height");
|
|
||||||
|
|
||||||
_spawnX = set.getInt("spawnX");
|
_spawnX = set.getInt("spawnX");
|
||||||
_spawnY = set.getInt("spawnY");
|
_spawnY = set.getInt("spawnY");
|
||||||
_spawnZ = set.getInt("spawnZ");
|
_spawnZ = set.getInt("spawnZ");
|
||||||
|
_classBaseLevel = set.getInt("baseLevel");
|
||||||
_classBaseLevel = set.getInt("classBaseLevel");
|
_levelHpAdd = set.getFloat("levelHpAdd");
|
||||||
_lvlHpAdd = set.getFloat("lvlHpAdd");
|
_levelHpMod = set.getFloat("levelHpMod");
|
||||||
_lvlHpMod = set.getFloat("lvlHpMod");
|
_levelCpAdd = set.getFloat("levelCpAdd");
|
||||||
_lvlCpAdd = set.getFloat("lvlCpAdd");
|
_levelCpMod = set.getFloat("levelCpMod");
|
||||||
_lvlCpMod = set.getFloat("lvlCpMod");
|
_levelMpAdd = set.getFloat("levelMpAdd");
|
||||||
_lvlMpAdd = set.getFloat("lvlMpAdd");
|
_levelMpMod = set.getFloat("levelMpMod");
|
||||||
_lvlMpMod = set.getFloat("lvlMpMod");
|
String[] item;
|
||||||
}
|
for (String split : set.getString("items").split(";"))
|
||||||
|
|
||||||
/**
|
|
||||||
* add starter equipment
|
|
||||||
* @param itemId
|
|
||||||
*/
|
|
||||||
public void addItem(int itemId)
|
|
||||||
{
|
|
||||||
final Item item = ItemTable.getInstance().getTemplate(itemId);
|
|
||||||
if (item != null)
|
|
||||||
{
|
{
|
||||||
_items.add(item);
|
item = split.split(",");
|
||||||
|
_items.add(new ItemHolder(Integer.parseInt(item[0]), Integer.parseInt(item[1])));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public List<ItemHolder> getItems()
|
||||||
* @return itemIds of all the starter equipment
|
|
||||||
*/
|
|
||||||
public Item[] getItems()
|
|
||||||
{
|
{
|
||||||
return _items.toArray(new Item[_items.size()]);
|
return _items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Race getRace()
|
public Race getRace()
|
||||||
@ -105,18 +83,6 @@ public class PlayerTemplate extends CreatureTemplate
|
|||||||
return _classId;
|
return _classId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCollisionRadius()
|
|
||||||
{
|
|
||||||
return _currentCollisionRadius;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCollisionHeight()
|
|
||||||
{
|
|
||||||
return _currentCollisionHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getClassName()
|
public String getClassName()
|
||||||
{
|
{
|
||||||
return _className;
|
return _className;
|
||||||
@ -142,34 +108,34 @@ public class PlayerTemplate extends CreatureTemplate
|
|||||||
return _classBaseLevel;
|
return _classBaseLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getLvlHpAdd()
|
public float getLevelHpAdd()
|
||||||
{
|
{
|
||||||
return _lvlHpAdd;
|
return _levelHpAdd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getLvlHpMod()
|
public float getLevelHpMod()
|
||||||
{
|
{
|
||||||
return _lvlHpMod;
|
return _levelHpMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getLvlCpAdd()
|
public float getLevelCpAdd()
|
||||||
{
|
{
|
||||||
return _lvlCpAdd;
|
return _levelCpAdd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getLvlCpMod()
|
public float getLevelCpMod()
|
||||||
{
|
{
|
||||||
return _lvlCpMod;
|
return _levelCpMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getLvlMpAdd()
|
public float getLevelMpAdd()
|
||||||
{
|
{
|
||||||
return _lvlMpAdd;
|
return _levelMpAdd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getLvlMpMod()
|
public float getLevelMpMod()
|
||||||
{
|
{
|
||||||
return _lvlMpMod;
|
return _levelMpMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getBaseFallSafeHeight(boolean female)
|
public int getBaseFallSafeHeight(boolean female)
|
||||||
|
@ -714,9 +714,9 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final PlayerTemplate t = (PlayerTemplate) env.player.getTemplate();
|
final PlayerTemplate t = (PlayerTemplate) env.player.getTemplate();
|
||||||
final int lvl = env.player.getLevel() - t.getClassBaseLevel();
|
final int lvl = env.player.getLevel() - t.getClassBaseLevel();
|
||||||
final double hpmod = t.getLvlHpMod() * lvl;
|
final double hpmod = t.getLevelHpMod() * lvl;
|
||||||
final double hpmax = (t.getLvlHpAdd() + hpmod) * lvl;
|
final double hpmax = (t.getLevelHpAdd() + hpmod) * lvl;
|
||||||
final double hpmin = (t.getLvlHpAdd() * lvl) + hpmod;
|
final double hpmin = (t.getLevelHpAdd() * lvl) + hpmod;
|
||||||
env.value += (hpmax + hpmin) / 2;
|
env.value += (hpmax + hpmin) / 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -761,9 +761,9 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final PlayerTemplate t = (PlayerTemplate) env.player.getTemplate();
|
final PlayerTemplate t = (PlayerTemplate) env.player.getTemplate();
|
||||||
final int lvl = env.player.getLevel() - t.getClassBaseLevel();
|
final int lvl = env.player.getLevel() - t.getClassBaseLevel();
|
||||||
final double cpmod = t.getLvlCpMod() * lvl;
|
final double cpmod = t.getLevelCpMod() * lvl;
|
||||||
final double cpmax = (t.getLvlCpAdd() + cpmod) * lvl;
|
final double cpmax = (t.getLevelCpAdd() + cpmod) * lvl;
|
||||||
final double cpmin = (t.getLvlCpAdd() * lvl) + cpmod;
|
final double cpmin = (t.getLevelCpAdd() * lvl) + cpmod;
|
||||||
env.value += (cpmax + cpmin) / 2;
|
env.value += (cpmax + cpmin) / 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -808,9 +808,9 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final PlayerTemplate t = (PlayerTemplate) env.player.getTemplate();
|
final PlayerTemplate t = (PlayerTemplate) env.player.getTemplate();
|
||||||
final int lvl = env.player.getLevel() - t.getClassBaseLevel();
|
final int lvl = env.player.getLevel() - t.getClassBaseLevel();
|
||||||
final double mpmod = t.getLvlMpMod() * lvl;
|
final double mpmod = t.getLevelMpMod() * lvl;
|
||||||
final double mpmax = (t.getLvlMpAdd() + mpmod) * lvl;
|
final double mpmax = (t.getLevelMpAdd() + mpmod) * lvl;
|
||||||
final double mpmin = (t.getLvlMpAdd() * lvl) + mpmod;
|
final double mpmin = (t.getLevelMpAdd() * lvl) + mpmod;
|
||||||
env.value += (mpmax + mpmin) / 2;
|
env.value += (mpmax + mpmin) / 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,9 +26,9 @@ import org.l2jmobius.gameserver.GameServer;
|
|||||||
import org.l2jmobius.gameserver.datatables.ItemTable;
|
import org.l2jmobius.gameserver.datatables.ItemTable;
|
||||||
import org.l2jmobius.gameserver.datatables.SkillTable;
|
import org.l2jmobius.gameserver.datatables.SkillTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharNameTable;
|
import org.l2jmobius.gameserver.datatables.sql.CharNameTable;
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
|
||||||
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
|
import org.l2jmobius.gameserver.datatables.sql.SkillTreeTable;
|
||||||
import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
|
import org.l2jmobius.gameserver.datatables.xml.ExperienceData;
|
||||||
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.idfactory.IdFactory;
|
import org.l2jmobius.gameserver.idfactory.IdFactory;
|
||||||
import org.l2jmobius.gameserver.instancemanager.QuestManager;
|
import org.l2jmobius.gameserver.instancemanager.QuestManager;
|
||||||
import org.l2jmobius.gameserver.model.ShortCut;
|
import org.l2jmobius.gameserver.model.ShortCut;
|
||||||
@ -36,6 +36,7 @@ import org.l2jmobius.gameserver.model.SkillLearn;
|
|||||||
import org.l2jmobius.gameserver.model.World;
|
import org.l2jmobius.gameserver.model.World;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||||
import org.l2jmobius.gameserver.model.items.Item;
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||||
@ -115,7 +116,7 @@ public class CharacterCreate extends GameClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(_classId);
|
template = PlayerTemplateData.getInstance().getTemplate(_classId);
|
||||||
if ((template == null) || (template.getClassBaseLevel() > 1))
|
if ((template == null) || (template.getClassBaseLevel() > 1))
|
||||||
{
|
{
|
||||||
sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));
|
sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));
|
||||||
@ -249,9 +250,9 @@ public class CharacterCreate extends GameClientPacket
|
|||||||
newChar.registerShortCut(new ShortCut(3, 0, 3, 5, -1)); // Take
|
newChar.registerShortCut(new ShortCut(3, 0, 3, 5, -1)); // Take
|
||||||
newChar.registerShortCut(new ShortCut(10, 0, 3, 0, -1)); // Sit
|
newChar.registerShortCut(new ShortCut(10, 0, 3, 0, -1)); // Sit
|
||||||
|
|
||||||
for (Item item : template.getItems())
|
for (ItemHolder item : template.getItems())
|
||||||
{
|
{
|
||||||
final ItemInstance itemInstance = newChar.getInventory().addItem("Init", item.getItemId(), 1, newChar, null);
|
final ItemInstance itemInstance = newChar.getInventory().addItem("Init", item.getId(), (int) item.getCount(), newChar, null);
|
||||||
if (itemInstance.getItemId() == 5588)
|
if (itemInstance.getItemId() == 5588)
|
||||||
{
|
{
|
||||||
newChar.registerShortCut(new ShortCut(11, 0, 1, itemInstance.getObjectId(), -1)); // Tutorial Book shortcut
|
newChar.registerShortCut(new ShortCut(11, 0, 1, itemInstance.getObjectId(), -1)); // Tutorial Book shortcut
|
||||||
|
@ -68,7 +68,6 @@ public class CharacterSelected extends GameClientPacket
|
|||||||
{
|
{
|
||||||
// Load up character from disk
|
// Load up character from disk
|
||||||
final PlayerInstance cha = getClient().loadCharFromDisk(_charSlot);
|
final PlayerInstance cha = getClient().loadCharFromDisk(_charSlot);
|
||||||
|
|
||||||
if (cha == null)
|
if (cha == null)
|
||||||
{
|
{
|
||||||
LOGGER.warning(getType() + ": Character could not be loaded (slot:" + _charSlot + ")");
|
LOGGER.warning(getType() + ": Character could not be loaded (slot:" + _charSlot + ")");
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.l2jmobius.gameserver.network.clientpackets;
|
package org.l2jmobius.gameserver.network.clientpackets;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
import org.l2jmobius.gameserver.model.actor.templates.PlayerTemplate;
|
||||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.CharTemplates;
|
import org.l2jmobius.gameserver.network.serverpackets.CharTemplates;
|
||||||
@ -33,34 +33,34 @@ public class NewCharacter extends GameClientPacket
|
|||||||
{
|
{
|
||||||
final CharTemplates ct = new CharTemplates();
|
final CharTemplates ct = new CharTemplates();
|
||||||
|
|
||||||
PlayerTemplate template = CharTemplateTable.getInstance().getTemplate(0);
|
PlayerTemplate template = PlayerTemplateData.getInstance().getTemplate(0);
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.FIGHTER); // Human Fighter
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.FIGHTER); // Human Fighter
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.MAGE); // Human Mage
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.MAGE); // Human Mage
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.ELVEN_FIGHTER); // Elf Fighter
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.ELVEN_FIGHTER); // Elf Fighter
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.ELVEN_MAGE); // Elf Mage
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.ELVEN_MAGE); // Elf Mage
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.DARK_FIGHTER); // DE Fighter
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.DARK_FIGHTER); // DE Fighter
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.DARK_MAGE); // DE Mage
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.DARK_MAGE); // DE Mage
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.ORC_FIGHTER); // Orc Fighter
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.ORC_FIGHTER); // Orc Fighter
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.ORC_MAGE); // Orc Mage
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.ORC_MAGE); // Orc Mage
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
template = CharTemplateTable.getInstance().getTemplate(ClassId.DWARVEN_FIGHTER); // Dwarf Fighter
|
template = PlayerTemplateData.getInstance().getTemplate(ClassId.DWARVEN_FIGHTER); // Dwarf Fighter
|
||||||
ct.addChar(template);
|
ct.addChar(template);
|
||||||
|
|
||||||
// Finally
|
// Finally
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.l2jmobius.gameserver.network.serverpackets;
|
package org.l2jmobius.gameserver.network.serverpackets;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.datatables.sql.CharTemplateTable;
|
import org.l2jmobius.gameserver.datatables.xml.PlayerTemplateData;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
|
||||||
|
|
||||||
public class CustomNpcInfo extends GameServerPacket
|
public class CustomNpcInfo extends GameServerPacket
|
||||||
@ -76,8 +76,8 @@ public class CustomNpcInfo extends GameServerPacket
|
|||||||
writeD(_activeChar.getRunSpeed());
|
writeD(_activeChar.getRunSpeed());
|
||||||
writeF(_activeChar.getStat().getMovementSpeedMultiplier());
|
writeF(_activeChar.getStat().getMovementSpeedMultiplier());
|
||||||
writeF(_activeChar.getStat().getAttackSpeedMultiplier());
|
writeF(_activeChar.getStat().getAttackSpeedMultiplier());
|
||||||
writeF(CharTemplateTable.getInstance().getTemplate(_activeChar.getCustomNpcInstance().getClassId()).getCollisionRadius());
|
writeF(PlayerTemplateData.getInstance().getTemplate(_activeChar.getCustomNpcInstance().getClassId()).getCollisionRadius());
|
||||||
writeF(CharTemplateTable.getInstance().getTemplate(_activeChar.getCustomNpcInstance().getClassId()).getCollisionHeight());
|
writeF(PlayerTemplateData.getInstance().getTemplate(_activeChar.getCustomNpcInstance().getClassId()).getCollisionHeight());
|
||||||
writeD(_activeChar.getCustomNpcInstance().getHairStyle());
|
writeD(_activeChar.getCustomNpcInstance().getHairStyle());
|
||||||
writeD(_activeChar.getCustomNpcInstance().getHairColor());
|
writeD(_activeChar.getCustomNpcInstance().getHairColor());
|
||||||
writeD(_activeChar.getCustomNpcInstance().getFace());
|
writeD(_activeChar.getCustomNpcInstance().getFace());
|
||||||
|
Loading…
Reference in New Issue
Block a user