Среда, 16.07.2025, 02:46
Приветствую Вас, Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создание "базы данных"
GRELIKTIKONДата: Пятница, 16.12.2011, 07:35 | Сообщение # 1
Подполковник
Группа: Администраторы
Сообщений: 114
Репутация: 2
Статус: Offline
"База данных" или сокращённо "БД".

БД - это мозг игры, в котором храняться данные, о характеристиках персонажа и NPC,
о том, какие объекты присутствуют в игре, какие и сколько находяться в инвентаре,
о сообщениях в привате и чате и т.д.

Для создания БД мы будем использовать MySQL.

БД хранит в себе таблицы, в каждой таблице находяться столбцы,
например таблица «users» имеет 3 столбца: “login”, “pass”, “email”.

Создаём таблицы :

users – хранит все характеристики игрока
avatar – хранит вид персонажа

Clothes ( одежда )
Overall ( комбинезон )
Helmet ( шлем )
Suit ( костюм )
Cloak ( плащ )

Glove ( перчатка )
Shield ( щит )

inventar – отображает какие вещи в инвентаре
quest – хранит данные о квесте
battle – хранит данные о боях
enemy – хранит данные о врагах
chat – хранит принятые и отправленные сообщения из диалогового окна
 
GRELIKTIKONДата: Пятница, 16.12.2011, 09:19 | Сообщение # 2
Подполковник
Группа: Администраторы
Сообщений: 114
Репутация: 2
Статус: Offline
В дальнейшем БД будем дополнять.

Теперь рассмотрим каждую таблицу отдельно.

В таблице users будем хранить такие данные:

id_user – уникальный номер персонажа
email — email игрока, по нему будет осуществляться вход в игру
pass - пароль
name — имя игрока, будет отображаться в самой игре и в чате
life – жизни персонажа
atk — значение атаки
def - значение защиты
lov – значение ловкости
lvl – уровень игрока
exp – опыт игрока

В таблице avatar такие данные:

id_ava – уникальный номер аватарки
gander – какого пола персонаж
vid – какой вид у персонажа
path – путь к папке с картинками персонажа

В таблице chat такие данные:

id_msg – уникальный номер сообщения
msg – сообщение
time_msg – время когда было написано сообщение
wrt_user – кто написал
who – кому написали

В таблице inventar такие данные:

id_inv – уникальный номер вещи
name_object – название вещи
atk_up – сколько добавляет к атаке
def_up - сколько добавляет к защите
lov_up - сколько добавляет к ловкости
life_up - сколько добавляет к жизням

В таблице quest такие данные:

id_quest – уникальный номер квеста
cont_quest – завершен квест или нет?
kill_quest – сколько убито противников

В таблице battle такие данные:

id_btl – уникальный номер битвы
end_btl – исход битвы ( выиграли вы или проиграли )

В таблице enemy такие данные:

id_enm – уникальный номер врага
name_enm – имя врага
life_enm – жизни врага
atk_enm - атака
def_enm - защита
lov_enm - ловкость
exp_enm – сколько опыта даст если победить его
path_enm – путь к картинкам врага
 
GRELIKTIKONДата: Пятница, 16.12.2011, 09:41 | Сообщение # 3
Подполковник
Группа: Администраторы
Сообщений: 114
Репутация: 2
Статус: Offline
Code


DROP DATABASE testgame; /* Если данная БД уже создана, то удаляем ее */       
  CREATE DATABASE testgame DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; /* Создаем БД со стандартной кодировкой  utf-8(для того что б поддерживался русский язык)*/       
  USE testgame; /* используем данную БД */       

  /* таблица персонажа */       
  CREATE TABLE `users` (       
                id_user    bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */       
                email    CHAR(64), /* текстовый тип (64 символа) */       
                pass  CHAR(32), /* текстовый тип (32 символа) */       
                name  CHAR(32), /* текстовый тип (32 символа) */       
                life  INT DEFAULT 50, /* числовой тип, по умолчанию равен 50 */       
                atk  INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */       
                def  INT DEFAULT 5, /* числовой тип, по умолчанию равен 5 */       
                lov  INT DEFAULT 7, /* числовой тип, по умолчанию равен 7 */       
                lvl  INT DEFAULT 1, /* числовой тип, по умолчанию равен 1 */       
                exp  INT DEFAULT 0, /* числовой тип, по умолчанию равен 0 */       
                ip CHAR(15), /* текстовый тип (15 символов) */  
               PRIMARY KEY  (`id_user`)  /* Показываем что уникальным номером у нас являеться id_user */       
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /* Обозначаем тип таблицы MyISAM. Таблицы типа MyISAM показывают хорошие результаты при выборках SELECT. Для более подробного изучения читайте Самоучитель по MySQL 5 */       

  /* таблица аватара */       
  CREATE TABLE `avatar` (       
  id_ava  bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */       
  gander  INT(2), /* Пол игрока, цыфровой тип(2 цыфра) */       
  vid  CHAR(32), /* Вид игрока,  цыфровой тип(2 цыфры)*/       
  path  CHAR(32), /* Путь к папке с рисунками персонажа, текстовый тип(32 символа) */       
  PRIMARY KEY (`id_ava`) /* Показываем что уникальным номером у нас являеться id_ava */       
  ) TYPE=MyISAM;              

  /* таблица чата */       
  CREATE TABLE `chat` (       
  id_msg  bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */       
  msg  CHAR(255), /* текстовый тип(255 символов) */       
  time_msg    CHAR(5), /* текстовый тип(5 символов) */       
  wrt_user    CHAR(32), /* текстовый тип(32 символов) */       
  who  CHAR(32), /* текстовый тип(32 символов) */       
  PRIMARY KEY (`id_msg`) /* Показываем что уникальным номером у нас являеться id_msg */       
  ) TYPE=MyISAM;              

  /* таблица инвентаря */       
  CREATE TABLE `inventar` (       
  id_inv  bigint(20) unsigned NOT NULL auto_increment, /* уникальный номер, который не повторяеться и с каждым новым пользователем увеличиваеться на 1 */       
  name_object    CHAR(64),       
  atk_up  INT(2),       
  def_up  INT(2),       
  lov_up  INT(2),       
  life_up  INT(4),       
  PRIMARY KEY (`id_inv`) /* Показываем что уникальным номером у нас являеться id_msg */       
  ) TYPE=MyISAM;              

  /* таблица квеста */       
  CREATE TABLE `quest` (       
  id_quest    bigint(20) unsigned NOT NULL auto_increment,       
  cont_quest  CHAR(32),       
  kill_quest  INT DEFAULT 0,       
  PRIMARY KEY (`id_quest`)       
  ) TYPE=MyISAM;              

  /* таблица боя */       
  CREATE TABLE `battle` (       
  id_btl  bigint(20) unsigned NOT NULL auto_increment,       
  end_btl    CHAR(32),       
  PRIMARY KEY (`id_btl`)       
  ) TYPE=MyISAM;              

  /* Таблица врагов */       
  CREATE TABLE `enemy` (       
  id_enm    bigint(20) unsigned NOT NULL auto_increment,       
  name_enm    CHAR(32),       
  atk_enm    INT,       
  life_enm    INT,       
  def_enm    INT,       
  lov_enm    INT,       
  e xp_enm     IN T,       
  path_enm    CHAR(32),       
  PRIMARY KEY (`id_enm`)       
  ) TYPE=MyISAM;              

  /* Добавляем в таблицу данные о враге */       
  INSERT INTO enemy (name_enm,       
  atk_enm,life_enm,def_enm,lov_enm,exp_enm,path_enm)       
  VALUES('Призраки','7','40','6','4','10','path/enemy/');

 
GRELIKTIKONДата: Суббота, 17.12.2011, 00:54 | Сообщение # 4
Подполковник
Группа: Администраторы
Сообщений: 114
Репутация: 2
Статус: Offline
Code


DROP DATABASE testgame;      
  CREATE DATABASE testgame DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;      
  USE testgame;      
       
  CREATE TABLE `users` (       
                `id_user`    bigint(20) unsigned NOT NULL auto_increment,     
                `email`    CHAR(64),     
                `pass`  CHAR(32),      
                `name`  CHAR(32),       
                `life`  INT DEFAULT 50,      
                `atk`  INT DEFAULT 7,     
                `def`  INT DEFAULT 5,      
                `lov`  INT DEFAULT 7,       
                `lvl`  INT DEFAULT 1,       
                `exp`  INT DEFAULT 0,       
                `ip` CHAR(15),
               PRIMARY KEY  (`id_user`)      
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;       
      
  CREATE TABLE `avatar` (       
  `id_ava`  bigint(20) unsigned NOT NULL auto_increment,       
  `gander`  INT(2),       
  `vid`  CHAR(32),      
  `path`  CHAR(32),     
  PRIMARY KEY (`id_ava`)      
  ) TYPE=MyISAM;              
      
  CREATE TABLE `chat` (       
  `id_msg`  bigint(20) unsigned NOT NULL auto_increment,      
  `msg`  CHAR(255),       
  `time_msg`    CHAR(5),       
  `wrt_user`    CHAR(32),     
  `who`  CHAR(32),      
  PRIMARY KEY (`id_msg`)       
  ) TYPE=MyISAM;              
       
  CREATE TABLE `inventar` (       
  `id_inv`  bigint(20) unsigned NOT NULL auto_increment,       
  `name_object`    CHAR(64),       
  `atk_up`  INT(2),       
  `def_up`  INT(2),       
  `lov_up`  INT(2),       
  `life_up`  INT(4),       
  PRIMARY KEY (`id_inv`)     
  ) TYPE=MyISAM;              

        
  CREATE TABLE `quest` (       
  `id_quest`    bigint(20) unsigned NOT NULL auto_increment,       
  `cont_quest`  CHAR(32),       
  `kill_quest`  INT DEFAULT 0,       
  PRIMARY KEY (`id_quest`)       
  ) TYPE=MyISAM;              
        
  CREATE TABLE `battle` (       
  `id_btl`  bigint(20) unsigned NOT NULL auto_increment,       
  `end_btl`    CHAR(32),       
  PRIMARY KEY (`id_btl`)       
  ) TYPE=MyISAM;              

        
  CREATE TABLE `enemy` (       
  `id_enm`    bigint(20) unsigned NOT NULL auto_increment,       
  `name_enm`    CHAR(32),       
  `atk_enm`    INT,       
  `life_enm`    INT,       
  `def_enm`    INT,       
  `lov_enm`    INT,       
  `exp_enm`     IN T,       
  `path_enm `   CHAR(32),       
  PRIMARY KEY (`id_enm`)       
  ) TYPE=MyISAM;              
       
  INSERT INTO enemy (name_enm,       
  atk_enm,life_enm,def_enm,lov_enm,exp_enm,path_enm)       
  VALUES('Призраки','7','40','6','4','10','path/enemy/');

 
GRELIKTIKONДата: Суббота, 17.12.2011, 01:13 | Сообщение # 5
Подполковник
Группа: Администраторы
Сообщений: 114
Репутация: 2
Статус: Offline
Code
DROP DATABASE testgame;       
  CREATE DATABASE testgame DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  USE testgame;     

        
  CREATE TABLE `users` (        
                 id_user    bigint(20) unsigned NOT NULL auto_increment,       
                 email    CHAR(64),        
                 pass  CHAR(32),       
                 name  CHAR(32),       
                 life  INT DEFAULT 50,        
                 atk  INT DEFAULT 7,        
                 def  INT DEFAULT 5,       
                 lov  INT DEFAULT 7,        
                 lvl  INT DEFAULT 1,       
                 exp  INT DEFAULT 0,       
                 ip CHAR(15),
                PRIMARY KEY  (`id_user`)       
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;       

         
  CREATE TABLE `avatar` (        
  id_ava  bigint(20) unsigned NOT NULL auto_increment,       
  gander  INT(2),       
  vid  CHAR(32),       
  path  CHAR(32),        
  PRIMARY KEY (`id_ava`)        
  ) TYPE=MyISAM DEFAULT CHARSET=utf8;              

         
  CREATE TABLE `chat` (        
  id_msg  bigint(20) unsigned NOT NULL auto_increment,     
  msg  CHAR(255),       
  time_msg    CHAR(5),       
  wrt_user    CHAR(32),      
  who  CHAR(32),       
  PRIMARY KEY (`id_msg`)       
  ) TYPE=MyISAM DEFAULT CHARSET=utf8;               

        
  CREATE TABLE `inventar` (        
  id_inv  bigint(20) unsigned NOT NULL auto_increment,      
  name_object    CHAR(64),        
  atk_up  INT(2),        
  def_up  INT(2),        
  lov_up  INT(2),        
  life_up  INT(4),        
  PRIMARY  KEY (`id_inv`)       
  ) TYPE=MyISAM DEFAULT CHARSET=utf8;               
        
  CREATE TABLE `quest` (        
  id_quest    bigint(20) unsigned NOT NULL auto_increment,        
  cont_quest  CHAR(32),        
  kill_quest  INT DEFAULT 0,        
  PRIMARY KEY (`id_quest`)        
  ) TYPE=MyISAM DEFAULT CHARSET=utf8;               
        
  CREATE TABLE `battle` (        
  id_btl  bigint(20) unsigned NOT NULL auto_increment,        
  end_btl    CHAR(32),        
  PRIMARY KEY (`id_btl`)        
  ) TYPE=MyISAM DEFAULT CHARSET=utf8;               
        
  CREATE TABLE `enemy` (        
  id_enm    bigint(20) unsigned NOT NULL auto_increment,        
  name_enm    CHAR(32),        
  atk_enm    INT,        
  life_enm    INT,        
  def_enm    INT,        
  lov_enm    INT,        
  e xp_enm     INT,        
  path_enm    CHAR(32),        
  PRIMARY KEY (`id_enm`)        
  ) TYPE=MyISAM DEFAULT CHARSET=utf8;               
        
  INSERT INTO enemy (name_enm,        
  atk_enm,life_enm,def_enm,lov_enm,exp_enm,path_enm)        
  VALUES('Призраки','7','40','6','4','10','path/enemy/');
 
  • Страница 1 из 1
  • 1
Поиск: