Сейчас 30.11.2024, 13:49



  • Страница 1 из 1
  • 1
Адаптируем SQL файл для своей сборки
attackДата: Суббота, 23.04.2011, 19:17 | Сообщение # 1
Сержант
Группа: Администраторы
Сообщений: 28
Награды: 0
Репутация: 1
Статус: Offline

Для вас несекрет - что залог удачного дополнения - ето правильность добавления в Базу данных, а именно SQL запрос (файл .sql). Приступим грызть гранит науки.
Первый пример будет о адаптации гм шопов и разных нпс под ваши сборки.
Часть I.
Итак, для етого нам понадобится :
1. Ваш вносимый .sql файл
2. Файл npc.sql из сборки сервера.
Начнем, я сюда приведу пример моей таблицы npc.sql :
Code
INSERT INTO `npc` VALUES  
  (12077, 12077, "Wolf", 0, "", 0, "Monster.pet_wolf", 13, 11.5, 15, "male", "L2Pet", 40, 195, 164, 3.95,  
  1.21, 40, 43, 30, 21, 20, 25, 0, 0, 9, 19, 3, 17, 282, 0, 333, 0, 0, 0, 26, 137, "NULL", 0, 0, 0,  
  "LAST_HIT", 0, 0, 0, "fighter")

ето я вытащил из моей npc.sql находяшейся в сервере в moi_server/sql/
теперь я вам поясню его :
Code
INSERT INTO 'npc' VALUES  
  (`id`, `idTemplate`, `name`, `serverSideName`, `title`, `serverSideTitle`, `class`,  
  `collision_radius`, `collision_height`, `level`, `sex`, `type`, `attackrange`, `hp`, `mp`, `hpreg`,  
  `mpreg`, `str`, `con`, `dex`, `int`, `wit`, `men`, `exp`, 'sp', `patk`, `pdef`, `matk`, `mdef`,  
  `atkspd`, `aggro`, `matkspd`, `rhand`, `lhand`, `armor`, `walkspd`, `runspd`, `faction_id`,  
  `faction_range`, `isUndead`, `absorb_level`, `absorb_type`, `ss`, `bss`, `ss_rate`, `AI`)

INSERT INTO 'npc' - означает, что при выполнении запроса - будет добавлено в таблицу 'npc' данные значаея(VALUES), которые описаны в скобках.
Итак, чучуть мы уже разобрались, теперь начнем осваивать как же адаптировать.
К примеру, я открываю мой .sql файл(который хочу добавить) и начинаю сверять с моей структурой, которую я описал выше. К примеру, у меня такой запрос :
Code
INSERT INTO `npc` VALUES  
  (998899, "magaz", 0, "", 0, "gm-shop", 13, 11.5, 15, "male", "L2Npc", 40, 195, 164, 3.95, 1.21, 40, 43,  
  30, 21, 20, 25, 0, 0, 9, 19, 3, 17, 282, 0, 333, 0, 0, 0, 26, 137, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0,  
  "fighter")

Начинаю сравнивать его с моей SQL таблицой - и выясняю, что оказывается тут пропушен 1 столбец, а именно : 12077 - `idTemplate`. Увидев ето, я понимаю - что такой запрос в мою .sql не пройдет, и нужно добавть в запрос то, что в нем пропушено. idTemplate - ето как будет отображатся ваш NPC(скин грубо говоря). Поетому, по аналогии я беру его из любого моего сушествуюшего НПС ( к примеру беру с запроса выше - 12077 ) и вставляю его. Вот что получаю :
Code
INSERT INTO `npc` VALUES  
  (998899, 12077, "magaz", 0, "", 0, "gm-shop", 13, 11.5, 15, "male", "L2Npc", 40,  
  195, 164, 3.95, 1.21, 40, 43, 30, 21, 20, 25, 0, 0, 9, 19, 3, 17, 282, 0, 333, 0, 0, 0, 26, 137, "NULL", 0,  
  0, 0, "LAST_HIT", 0, 0, 0, "fighter")

И заношу с чистой совестью свой Гм шопчиг в базу даных. ID моего шопа, соответсвенно запроса : 998899.
Часть II.
1. INSERT INTO `имя_таблицы` VALUES ('столбец1', 'столбец2', ...., 'столбец_n');
Ето запрос в БД, при помоши которого мы вставляем в таблицу определеные VALUES(значения, а именно столбцы етой таблицы). На моём примере ето наглядно показано.
2. DROP TABLE IF EXISTS `имя_таблицы`;
Етот запрос удалит таблицу, если она используется.
3. CREATE TABLE `имя_таблицы` ('имя_столбца1', 'имя_столбца2', ...., 'имя_столбца_n');
Етот запрос создаст таблицу, с определеным именем, и присвоит имена столбцов, как у меня на примере.
4. ENGINE=InnoDB;
Ето вы можете тоже увидеть в ваших sql запросах - оно означает, что тип таблицы будет INNODB ( есть еше MyISAM) - для ла2 используются INNODB, и их вы конфигурируете в вашем MySQL(my.ini)
5. Еше, частенько после запроса, к примеру CRATE TABLE вписывают IF NOT EXISTS - ето обозначает, что таблица будет создана, если она НЕ используется(аналогично на другие запросы).
Прикрепления: 8019145.jpg (16.9 Kb)
 
  • Страница 1 из 1
  • 1
Поиск:

Unread posts Есть новые сообщения    No unread posts Нету новых сообщений    No unread posts [ Locked ] Закрытый форум