peonso

TFS 0.2.14 mysql_schema

Sep 21st, 2014
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 12.08 KB | None | 0 0
  1. DROP TRIGGER IF EXISTS `oncreate_players`;
  2. DROP TRIGGER IF EXISTS `oncreate_guilds`;
  3. DROP TRIGGER IF EXISTS `ondelete_players`;
  4. DROP TRIGGER IF EXISTS `ondelete_guilds`;
  5. DROP TRIGGER IF EXISTS `ondelete_accounts`;
  6.  
  7. DROP TABLE IF EXISTS `player_depotitems`;
  8. DROP TABLE IF EXISTS `tile_items`;
  9. DROP TABLE IF EXISTS `tile_store`;
  10. DROP TABLE IF EXISTS `tiles`;
  11. DROP TABLE IF EXISTS `map_store`;
  12. DROP TABLE IF EXISTS `bans`;
  13. DROP TABLE IF EXISTS `house_lists`;
  14. DROP TABLE IF EXISTS `houses`;
  15. DROP TABLE IF EXISTS `player_items`;
  16. DROP TABLE IF EXISTS `player_skills`;
  17. DROP TABLE IF EXISTS `player_storage`;
  18. DROP TABLE IF EXISTS `player_viplist`;
  19. DROP TABLE IF EXISTS `player_spells`;
  20. DROP TABLE IF EXISTS `player_deaths`;
  21. DROP TABLE IF EXISTS `guildwar_kills`;
  22. DROP TABLE IF EXISTS `guild_wars`;
  23. DROP TABLE IF EXISTS `guild_ranks`;
  24. DROP TABLE IF EXISTS `guilds`;
  25. DROP TABLE IF EXISTS `guild_invites`;
  26. DROP TABLE IF EXISTS `global_storage`;
  27. DROP TABLE IF EXISTS `players`;
  28. DROP TABLE IF EXISTS `accounts`;
  29. DROP TABLE IF EXISTS `groups`;
  30. DROP TABLE IF EXISTS `server_config`;
  31.  
  32. CREATE TABLE `groups`
  33. (
  34.     `id` INT NOT NULL AUTO_INCREMENT,
  35.     `name` VARCHAR(255) NOT NULL COMMENT 'group name',
  36.     `flags` BIGINT UNSIGNED NOT NULL DEFAULT 0,
  37.     `access` INT NOT NULL,
  38.     `maxdepotitems` INT NOT NULL,
  39.     `maxviplist` INT NOT NULL,
  40.     PRIMARY KEY (`id`)
  41. ) ENGINE = InnoDB;
  42.  
  43. INSERT INTO `groups` VALUES (3, 'a god', 134788128760, 1, 0, 0);
  44. INSERT INTO `groups` VALUES (2, 'a gamemaster', 137438953471, 1, 0, 0);
  45. INSERT INTO `groups` VALUES (1, 'player', 0, 0, 0, 0);
  46.  
  47. CREATE TABLE `accounts`
  48. (
  49.     `id` INT NOT NULL AUTO_INCREMENT,
  50.     `name` varchar(32) NOT NULL,
  51.     `password` VARCHAR(255) NOT NULL DEFAULT '',
  52.     `type` INT NOT NULL DEFAULT 1,
  53.     `premdays` INT NOT NULL DEFAULT 0,
  54.     `lastday` INT UNSIGNED NOT NULL DEFAULT 0,
  55.     `key` VARCHAR(20) NOT NULL DEFAULT '0',
  56.     `email` VARCHAR(255) NOT NULL DEFAULT '',
  57.     `blocked` TINYINT(1) NOT NULL DEFAULT FALSE,
  58.     `warnings` INT NOT NULL DEFAULT 0,
  59.     `group_id` INT NOT NULL DEFAULT 1,
  60.     PRIMARY KEY (`id`),
  61.     UNIQUE KEY `name` (`name`),
  62.     FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`)
  63. ) ENGINE = InnoDB;
  64.  
  65. INSERT INTO `accounts` VALUES (1, '1', '1', 1, 65535, 0, '0', '', 0, 0, 1);
  66.  
  67. CREATE TABLE `players`
  68. (
  69.     `id` int(11) NOT NULL AUTO_INCREMENT,
  70.     `name` varchar(255) NOT NULL,
  71.     `group_id` int(11) NOT NULL DEFAULT '1',
  72.     `account_id` int(11) NOT NULL DEFAULT '0',
  73.     `level` int(11) NOT NULL DEFAULT '1',
  74.     `vocation` int(11) NOT NULL DEFAULT '0',
  75.     `health` int(11) NOT NULL DEFAULT '150',
  76.     `healthmax` int(11) NOT NULL DEFAULT '150',
  77.     `experience` bigint(20) NOT NULL DEFAULT '0',
  78.     `lookbody` int(11) NOT NULL DEFAULT '0',
  79.     `lookfeet` int(11) NOT NULL DEFAULT '0',
  80.     `lookhead` int(11) NOT NULL DEFAULT '0',
  81.     `looklegs` int(11) NOT NULL DEFAULT '0',
  82.     `looktype` int(11) NOT NULL DEFAULT '136',
  83.     `lookaddons` int(11) NOT NULL DEFAULT '0',
  84.     `maglevel` int(11) NOT NULL DEFAULT '0',
  85.     `mana` int(11) NOT NULL DEFAULT '0',
  86.     `manamax` int(11) NOT NULL DEFAULT '0',
  87.     `manaspent` int(11) NOT NULL DEFAULT '0',
  88.     `soul` int(10) unsigned NOT NULL DEFAULT '0',
  89.     `town_id` int(11) NOT NULL DEFAULT '0',
  90.     `posx` int(11) NOT NULL DEFAULT '0',
  91.     `posy` int(11) NOT NULL DEFAULT '0',
  92.     `posz` int(11) NOT NULL DEFAULT '0',
  93.     `conditions` blob NOT NULL,
  94.     `cap` int(11) NOT NULL DEFAULT '0',
  95.     `sex` int(11) NOT NULL DEFAULT '0',
  96.     `lastlogin` bigint(20) unsigned NOT NULL DEFAULT '0',
  97.     `lastip` int(10) unsigned NOT NULL DEFAULT '0',
  98.     `save` tinyint(1) NOT NULL DEFAULT '1',
  99.     `skull` tinyint(1) NOT NULL DEFAULT '0',
  100.     `skulltime` int(11) NOT NULL DEFAULT '0',
  101.     `rank_id` int(11) NOT NULL DEFAULT '0',
  102.     `guildnick` varchar(255) NOT NULL DEFAULT '',
  103.     `lastlogout` bigint(20) unsigned NOT NULL DEFAULT '0',
  104.     `blessings` tinyint(2) NOT NULL DEFAULT '0',
  105.     `direction` int(11) NOT NULL DEFAULT '0' COMMENT 'NOT IN USE BY THE SERVER',
  106.     `loss_experience` int(11) NOT NULL DEFAULT '10' COMMENT 'NOT IN USE BY THE SERVER',
  107.     `loss_mana` int(11) NOT NULL DEFAULT '10' COMMENT 'NOT IN USE BY THE SERVER',
  108.     `loss_skills` int(11) NOT NULL DEFAULT '10' COMMENT 'NOT IN USE BY THE SERVER',
  109.     `premend` int(11) NOT NULL DEFAULT '0' COMMENT 'NOT IN USE BY THE SERVER',
  110.     `online` tinyint(4) NOT NULL DEFAULT '0',
  111.     `balance` bigint(20) unsigned NOT NULL DEFAULT '0',
  112.     PRIMARY KEY (`id`),
  113.     KEY `name` (`name`),
  114.     FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE,
  115.     FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`)
  116. ) ENGINE=InnoDB;
  117.  
  118. INSERT INTO `players` VALUES (1,'Account Manager',1,1,1,0,150,150,0,0,0,0,0,110,0,0,0,0,0,0,0,50,50,7,'',400,0,0,0,0,0,0,0,'',0,0,0,10,10,10,0,0,0);
  119.  
  120. CREATE TABLE `bans`
  121. (
  122.     `type` INT NOT NULL COMMENT 'this field defines if its ip, accountban or namelock',
  123.     `ip` INT UNSIGNED NOT NULL DEFAULT 0,
  124.     `mask` INT UNSIGNED NOT NULL DEFAULT 4294967295,
  125.     `player` INT UNSIGNED NOT NULL DEFAULT 0,
  126.     `account` INT UNSIGNED NOT NULL DEFAULT 0,
  127.     `time` INT UNSIGNED NOT NULL DEFAULT 0,
  128.     `reason_id` INT NOT NULL DEFAULT 0,
  129.     `action_id` INT NOT NULL DEFAULT 0,
  130.     `comment` VARCHAR(60) NOT NULL DEFAULT '',
  131.     `banned_by` INT UNSIGNED NOT NULL DEFAULT 0
  132. ) ENGINE = InnoDB;
  133.  
  134. CREATE TABLE `global_storage`
  135. (
  136.     `key` INT UNSIGNED NOT NULL,
  137.     `value` INT NOT NULL,
  138.     PRIMARY KEY  (`key`)
  139. ) ENGINE = InnoDB;
  140.  
  141. CREATE TABLE `guilds`
  142. (
  143.     `id` INT NOT NULL AUTO_INCREMENT,
  144.     `name` VARCHAR(255) NOT NULL COMMENT 'guild name - nothing else needed here',
  145.     `ownerid` INT NOT NULL,
  146.     `creationdata` INT NOT NULL,
  147.     `motd` VARCHAR(255) NOT NULL,
  148.     PRIMARY KEY (`id`)
  149. ) ENGINE = InnoDB;
  150.  
  151. CREATE TABLE `guild_invites`
  152. (
  153.     `player_id` INT UNSIGNED NOT NULL DEFAULT 0,
  154.     `guild_id` INT UNSIGNED NOT NULL DEFAULT 0
  155. ) ENGINE = InnoDB;
  156.  
  157. CREATE TABLE `guild_ranks`
  158. (
  159.     `id` INT NOT NULL AUTO_INCREMENT,
  160.     `guild_id` INT NOT NULL COMMENT 'guild',
  161.     `name` VARCHAR(255) NOT NULL COMMENT 'rank name',
  162.     `level` INT NOT NULL COMMENT 'rank level - leader, vice, member, maybe something else',
  163.     PRIMARY KEY (`id`),
  164.     FOREIGN KEY (`guild_id`) REFERENCES `guilds`(`id`) ON DELETE CASCADE
  165. ) ENGINE = InnoDB;
  166.  
  167. CREATE TABLE `house_lists`
  168. (
  169.     `house_id` INT NOT NULL,
  170.     `listid` INT NOT NULL,
  171.     `list` TEXT NOT NULL
  172. ) ENGINE = InnoDB;
  173.  
  174. CREATE TABLE `houses`
  175. (
  176.     `id` INT NOT NULL AUTO_INCREMENT,
  177.     `owner` INT NOT NULL,
  178.     `paid` INT UNSIGNED NOT NULL DEFAULT 0,
  179.     `warnings` TEXT NOT NULL,
  180.     PRIMARY KEY (`id`)
  181. ) ENGINE = InnoDB;
  182.  
  183. CREATE TABLE `player_deaths`
  184. (
  185.     `player_id` INT NOT NULL,
  186.     `time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
  187.     `level` INT NOT NULL DEFAULT 1,
  188.     `killed_by` VARCHAR(255) NOT NULL,
  189.     `is_player` TINYINT(1) NOT NULL DEFAULT 1,
  190.     FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE
  191. ) ENGINE = InnoDB;
  192.  
  193. CREATE TABLE `player_depotitems`
  194. (
  195.     `player_id` INT NOT NULL,
  196.     `depot_id` INT NOT NULL DEFAULT 0,
  197.     `sid` INT NOT NULL COMMENT 'any given range eg 0-100 will be reserved for depot lockers and all > 100 will be then normal items inside depots',
  198.     `pid` INT NOT NULL DEFAULT 0,
  199.     `itemtype` INT NOT NULL,
  200.     `count` INT NOT NULL DEFAULT 0,
  201.     `attributes` BLOB NOT NULL,
  202.     FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE,
  203.     KEY (`player_id`, `depot_id`),
  204.     UNIQUE KEY (`player_id`, `sid`)
  205. ) ENGINE = InnoDB;
  206.  
  207. CREATE TABLE `player_items`
  208. (
  209.     `player_id` INT NOT NULL DEFAULT 0,
  210.     `pid` INT NOT NULL DEFAULT 0,
  211.     `sid` INT NOT NULL DEFAULT 0,
  212.     `itemtype` INT NOT NULL DEFAULT 0,
  213.     `count` INT NOT NULL DEFAULT 0,
  214.     `attributes` BLOB NOT NULL,
  215.     FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE
  216. ) ENGINE = InnoDB;
  217.  
  218. CREATE TABLE `player_skills`
  219. (
  220.     `player_id` INT NOT NULL DEFAULT 0,
  221.     `skillid` tinyint(4) NOT NULL DEFAULT 0,
  222.     `value` INT UNSIGNED NOT NULL DEFAULT 0,
  223.     `count` INT UNSIGNED NOT NULL DEFAULT 0,
  224.     FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE
  225. ) ENGINE = InnoDB;
  226.  
  227. CREATE TABLE `player_spells`
  228. (
  229.     `player_id` INT NOT NULL,
  230.     `name` VARCHAR(255) NOT NULL,
  231.      FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE
  232. ) ENGINE = InnoDB;
  233.  
  234. CREATE TABLE `player_storage`
  235. (
  236.     `player_id` INT NOT NULL DEFAULT 0,
  237.     `key` INT UNSIGNED NOT NULL DEFAULT 0,
  238.     `value` INT NOT NULL DEFAULT 0,
  239.     FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE
  240. ) ENGINE = InnoDB;
  241.  
  242. CREATE TABLE `player_viplist`
  243. (
  244.     `player_id` INT NOT NULL COMMENT 'id of player whose viplist entry it is',
  245.     `vip_id` INT NOT NULL COMMENT 'id of target player of viplist entry',
  246.     FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE,
  247.     FOREIGN KEY (`vip_id`) REFERENCES `players`(`id`) ON DELETE CASCADE
  248. ) ENGINE = InnoDB;
  249.  
  250. CREATE TABLE `map_store`
  251. (
  252.     `house_id` int(10) unsigned NOT NULL,
  253.     `data` LONGBLOB NOT NULL,
  254.     KEY `house_id` (`house_id`)
  255. ) ENGINE = InnoDB;
  256.  
  257. CREATE TABLE `tiles`
  258. (
  259.     `id` INT NOT NULL AUTO_INCREMENT,
  260.     `x` INT NOT NULL,
  261.     `y` INT NOT NULL,
  262.     `z` INT NOT NULL,
  263.     PRIMARY KEY(`id`)
  264. ) ENGINE = InnoDB;
  265.  
  266. CREATE TABLE `tile_items`
  267. (
  268.     `tile_id` INT NOT NULL,
  269.     `sid` INT NOT NULL,
  270.     `pid` INT NOT NULL DEFAULT 0,
  271.     `itemtype` INT NOT NULL,
  272.     `count` INT NOT NULL DEFAULT 0,
  273.     `attributes` BLOB NOT NULL,
  274.     FOREIGN KEY (`tile_id`) REFERENCES `tiles` (`id`) ON DELETE CASCADE,
  275.     INDEX (`sid`)
  276. ) ENGINE = InnoDB;
  277.  
  278. CREATE TABLE `tile_store`
  279. (
  280.     `house_id` INT(11) NOT NULL,
  281.     `data` LONGBLOB NOT NULL,
  282.     FOREIGN KEY (`house_id`) REFERENCES `houses` (`id`) ON DELETE CASCADE
  283. ) ENGINE = InnoDB;
  284.  
  285. CREATE TABLE `guild_wars`
  286. (
  287.     `id` int(11) NOT NULL AUTO_INCREMENT,
  288.     `guild1` int(11) NOT NULL DEFAULT '0',
  289.     `guild2` int(11) NOT NULL DEFAULT '0',
  290.     `name1` varchar(255) NOT NULL,
  291.     `name2` varchar(255) NOT NULL,
  292.     `status` tinyint(2) NOT NULL DEFAULT '0',
  293.     `started` bigint(15) NOT NULL DEFAULT '0',
  294.     `ended` bigint(15) NOT NULL DEFAULT '0',
  295.     PRIMARY KEY (`id`),
  296.     KEY `guild1` (`guild1`),
  297.     KEY `guild2` (`guild2`)
  298. ) ENGINE=InnoDB;
  299.  
  300. CREATE TABLE `guildwar_kills`
  301. (
  302.     `id` int(11) NOT NULL AUTO_INCREMENT,
  303.     `killer` varchar(50) NOT NULL,
  304.     `target` varchar(50) NOT NULL,
  305.     `killerguild` int(11) NOT NULL DEFAULT '0',
  306.     `targetguild` int(11) NOT NULL DEFAULT '0',
  307.     `warid` int(11) NOT NULL DEFAULT '0',
  308.     `time` bigint(15) NOT NULL,
  309.     PRIMARY KEY (`id`),
  310.     FOREIGN KEY (`warid`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE
  311. ) ENGINE=InnoDB;
  312.  
  313. CREATE TABLE `server_config`
  314. (
  315.     `config` varchar(50) NOT NULL,
  316.     `value` varchar(256) NOT NULL DEFAULT '',
  317.     UNIQUE KEY `config` (`config`)
  318. ) ENGINE=InnoDB;
  319.  
  320. INSERT INTO `server_config` VALUES ('db_version','2'),('encryption','0');
  321.  
  322. DELIMITER |
  323.  
  324. CREATE TRIGGER `ondelete_accounts`
  325. BEFORE DELETE
  326. ON `accounts`
  327. FOR EACH ROW
  328. BEGIN
  329.     DELETE FROM `bans` WHERE `account` = OLD.`id`;
  330. END|
  331.  
  332. CREATE TRIGGER `ondelete_guilds`
  333. BEFORE DELETE
  334. ON `guilds`
  335. FOR EACH ROW
  336. BEGIN
  337.     UPDATE `players` SET `guildnick` = '', `rank_id` = 0 WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = OLD.`id`);
  338. END|
  339.  
  340. CREATE TRIGGER `ondelete_players`
  341. BEFORE DELETE
  342. ON `players`
  343. FOR EACH ROW
  344. BEGIN
  345.     DELETE FROM `bans` WHERE `type` = 2 AND `player` = OLD.`id`;
  346.     UPDATE `houses` SET `owner` = 0 WHERE `owner` = OLD.`id`;
  347. END|
  348.  
  349. CREATE TRIGGER `oncreate_guilds`
  350. AFTER INSERT
  351. ON `guilds`
  352. FOR EACH ROW
  353. BEGIN
  354.     INSERT INTO `guild_ranks` (`name`, `level`, `guild_id`) VALUES ('the Leader', 3, NEW.`id`);
  355.     INSERT INTO `guild_ranks` (`name`, `level`, `guild_id`) VALUES ('a Vice-Leader', 2, NEW.`id`);
  356.     INSERT INTO `guild_ranks` (`name`, `level`, `guild_id`) VALUES ('a Member', 1, NEW.`id`);
  357. END|
  358.  
  359. CREATE TRIGGER `oncreate_players`
  360. AFTER INSERT
  361. ON `players`
  362. FOR EACH ROW
  363. BEGIN
  364.     INSERT INTO `player_skills` (`player_id`, `skillid`, `value`) VALUES (NEW.`id`, 0, 10);
  365.     INSERT INTO `player_skills` (`player_id`, `skillid`, `value`) VALUES (NEW.`id`, 1, 10);
  366.     INSERT INTO `player_skills` (`player_id`, `skillid`, `value`) VALUES (NEW.`id`, 2, 10);
  367.     INSERT INTO `player_skills` (`player_id`, `skillid`, `value`) VALUES (NEW.`id`, 3, 10);
  368.     INSERT INTO `player_skills` (`player_id`, `skillid`, `value`) VALUES (NEW.`id`, 4, 10);
  369.     INSERT INTO `player_skills` (`player_id`, `skillid`, `value`) VALUES (NEW.`id`, 5, 10);
  370.     INSERT INTO `player_skills` (`player_id`, `skillid`, `value`) VALUES (NEW.`id`, 6, 10);
  371. END|
  372.  
  373. DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment