attack | Дата: Суббота, 23.04.2011, 19:17 | Сообщение # 1 |
Сержант
Группа: Администраторы
Сообщений: 28
Статус: 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 - ето обозначает, что таблица будет создана, если она НЕ используется(аналогично на другие запросы).
|
|
| |