[manual]По Созданию И Редактированию Любых Гмшопов
ГМшоп и все о них
Выложу сюда и сами ГМшопы и мануал по созданию и программы для создания.
Итак, ГМшопы бывают 2-х типов: на мультиселах и на байлистах. (еще можно сделать на квестах, но это тупо и геморно)
>>>>>>>>>ГМшопы на мультиселах - это ГМшопы, основанные на файлах xml в папке multisell, в котором хранятся данные о товарах и ценах.
>>>>>>>>>ГМшопы на байлистах - это ГМшопы, основанные на БД, в частности таблицах *buylist.
Преимущества и недостатки обоих типов:
+ ГМшопы на мультиселах хороши тем, что в них можно производить обмен любых товаров на любые товары. Т.е. вы сможете например продавать оружие за
заточки, письма, ресурсы и т.д. Так же можно совмещать такие ресурсы, т.е. брать несколько предметов у игрока и выдавать взамен нечто. Плюс ко всему игрок может выбрать сколько предметов ему надо.
- В них нельзя продавать заточенные предметы.
В общем виде ГМшоп на мультиселах выглядит так:
---------------------------------------------------
+ ГМшопы на байлистах хороши тем, что позволяют игроку основательно закупиться и годятся для продажи мелких дешевых ресурсов
- Плохи они тем, что взять за товар можно только адену.
В общем виде ГМшоп на байлистах выглядит так:
---------------------------------------------------
Мультиселы
Наиболее удобным и простым в работе является ГМшоп на мультиселах. Его основной компонент - файл ***.xml с общей структурой:
<list>
<item id="1"> <---- где 1 это номер в списке Shop'a
<ingredient id="57" count="1000"/> <---- 57 - id адены, сюда можно вписать любой ингридиент, который вам нужен
<ingredient id="хх" count="хх"/> <---- можно добавить несколько ингридиентов
<ingredient id="хх" count="хх"/> <---- можно добавить несколько ингридиентов
<production id="5575" count="1"/> <---- а это то, что игрок получит взамен, 5575 - ИД древней адены, 1 - количество
</item>
</list>
Все, что заключено в тэги <list></list> - это сам ГМшоп, Все, что заключено в тэги <item></item> - это описание конкретного продукта на продажу.
Примечание. <item id="1"> - эти ИД надо расставлять по порядку. Можно начинать с любого, пропускать, но у вас должно быть допустим так: 25, 40, 66. А не 55, 45, 101.
Вот пример мультисела, написанного именно так, тут продаются заточки:
<!-- Glit Medal Event-->
<list>
<!-- Blessed Scroll: Enchant Weapon (Grade D) -->
<item id="5">
<ingredient id="6393" count="1" enchant="0"/>
<production id="6575" count="1" enchant="0"/>
</item>
<!-- Blessed Scroll: Enchant Weapon (Grade C) -->
<item id="6">
<ingredient id="6393" count="3" enchant="0"/>
<production id="6573" count="1" enchant="0"/>
</item>
<!-- Blessed Scroll: Enchant Weapon (Grade B) -->
<item id="7">
<ingredient id="6393" count="5" enchant="0"/>
<production id="6571" count="1" enchant="0"/>
</item>
<!-- Blessed Scroll: Enchant Weapon (Grade A) -->
<item id="8">
<ingredient id="6393" count="10" enchant="0"/>
<production id="6569" count="1" enchant="0"/>
</item>
</list>
Но это можно не писать руками. Есть несколько программ, которые позволяют быстро и удобно создавать мультиселы и редактировать их
Вот например самая удобная из известных мне программ Lineage II - Multisell Manager. Ее вид:

ССЫЛКИ НА ПРОГРАММУ:
http://ifolder.ru/6409189
http://depositfiles.com/files/5125894
Установка и запуск программы:
1. Распаковываем архив в любое удобное место.
2. Вносим из файла item_icon.sql данные в вашу БД (Execute Batch File).
3. Правим файл options.ini
MySQL-User = root - юзер БД
MySQL-Password = vasja_pupkin - пароль
MySQL-Database = l2jrt - имя базы
4. Запускаем программу.
В ней есть с основных секции: слева Список ИД из вашей базы, можно искать как по названию, так и по ИД, по цетру как будет выглядеть ваш мультиселл, справа - установление цены на товар. Все операции совершаются перетаскиваем.
----------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------
Байлисты
----------------------------------------------------------------------------------------------------------------------------------
Теперь о байлистах. Программы для их редактирования есть только для ПТС, а значит нужно составлять вручную SQL запросы.
Они основаны на данных БД, в частности на 2 таблицах merchant_buylists, merchant_shopids.
Общий вид этих таблиц:

ГДЕ:
item_id - ИД предмета
price - цена
shop_id - ИД магазина (из merchant_shopids)
order - порядок в байлисте
--------следующие 4 пунтка могут и не быть в БД
count - количество предмета в магазине (-1 для неограниченного)
current_count - настроящее кол-во в магазине, сейчас (-1 для неограниченного)
time - время продажи (сколько времени тогровать предметом) - обычно 0
save_timer - сколько осталось торговать - обычно 0.
Пример SQL запроса на вставку в байлист 3 итемов Harvester
(5125,575,335103,1,-1,-1,0,0),
(5125,575,335145,1,-1,-1,0,0),
(5125,575,335187,1,-1,-1,0,0),
Аналогично составляются запросы и для остальных предметов.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Таблица merchant_shopids состоит всего из 2-х колонок:

Здесь происходит привязка магазина (shop_id) к конкретному НПЦ (npcId). Но об этом ниже.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Теперь о привязке ГМшопа к конкретному НПЦ для каждого из видов ГМшопа
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
ГМшоп должен быть у НПЦ. Здесь каждый волен выбирать ЛЮБОГО НПЦ, который ему понравится: НПЦ обычный, МОБ, ГВАРД, РЕЙДБОСС - кто угодно может быть вашим ГМшопом
1 ЧАСТЬ. СОЗДАНИЕ СВОЕГО УНИКАЛЬНОГО НПЦ
Для этого нам потребуется выбрать, какого НПЦ мы хотим. Мы можем найти его в таблице npc по имени, либо же подойти в нему в игре и нажать на него мышкой, предварительно зажав Shift. Там и увидим в окне, которое откроется, ИД нашего будущего НПЦ.
Теперь нам нужно превратить его в НПЦ для торговли. Для этого пользуемся простым шаблоном:
`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`) VALUES
(12077,12077,'Wolf',0,'',0,'Monster.pet_wolf',13.00,11.50,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');
Тут нам нужно указать несколько важных вещей:
ИД НПЦ основы, т.е. как будет выглядеть наш НПЦ, его имя и титул.
Изменять будем значения
idTemplate - номер того НПЦ, которого мы выбрали как ГМшоп
name - имя НОВОГО нпц
title - титул НОВОГО НПЦ
class - класс нового НПЦ (копируем этот класс из строки БД, откуда взяли старого НПЦ)
Примечание Чтобы имя и титул брались сервером из базы, а не из клиента, нужно поставить значения "1" для полей serverSideName и serverSideTitle
В итоге наш запрос принимает такой вид:
`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`) VALUES
('',29022,'GMSHOP',1,'THE BEST',1,'Monster.zaken',13.00,11.50,15,'male','L2Merchant',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');
ВАЖНО! Для любого торговца в поле type нужно указать L2Merchant, иначе работать НЕ БУДЕТ!!
ВАЖНО! Чтобы ваш НПЦ не был наполовину под землей тщательно скопируйте данные полей collision_radius, collision_height от старого НПЦ
2 ЧАСТЬ. ПРВЯЗКА HTML К НПЦ
Теперь нам нужно, чтобы НПЦ показывал при его активации определенное окно, где будет наш ГМшоп.
Делается это так: нужно создать файл html с названием ИД ВАШЕГО НОВОГО НПЦ, т.е. если ваш новый НПЦ имеет в базе ИД 25897, то файл должен быть 25897.html.
Внутри этого файла может быть что угодно, приведу пример:
<head>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32><br>
<img src="L2UI.SquareBlank" width=260 height=2><br1>
<font color="LEVEL">Уникальные вещи</font><BR>
<font color="37ADFF">Инструкции в резделе Донат на сайте</font>
<br>
<button value="Эпик Бижутерия" action="bypass -h npc_%objectId%_multisell 697" width="100" height="14" back="sek.cbui94" fore="sek.cbui92">
</center>
</body>
</html>
Вот этот html будет выглядеть так:

Вот теперь важный момент, обратите внимание на эту строку:
Это кнопка, на которой написано значение переменной value, которая пересодит нас к мультиселу 697
вот именно так надо оформить ссылку и сервер откроет нам файл xml из папки multisell с названием 697.
Такой html файл может иметь любую сложность, содержать ссылки, которые приведут нас в другой html файл, синтаксис таков:
приведет нас к html вида NPC_ID-CHAT.html, т.е. в этом слаче это будет ИД-3.html.
ВАЖНО html нашего ГМШОПА нужно положить в папку
в другой папке наш ГМшоп не распознается. ЭТА ПАПКА ТОЛЬКО ДЛЯ HTML ФАЙЛОВ!
3 ЧАСТЬ. АНАЛОГИЧНЫЕ ДЕЙСТВИЯ ДЛЯ БАЙЛИСТОВ
Все то ;е самое, только ссылка немного другая, а именно
14 - это номер магазина, который мы прописали в БД (см. выше)
Это вот и все насчет байлистов.
ПРИМЕЧАНИЕ Любому НПЦ можно добавить пункт "Продать", чтобы он покупал вещи у игроков, для этого в html надо вставить такой код
4 ЧАСТЬ И ПОСЛЕДНЯЯ.
Теперь нам наш ГМшоп надо ведь поставить в игре. Для этого мы становимся ГМом там, где должен быть ваш ГМшоп, и прописываем
где npc_id - номер нашего новго НПЦ. И все - теперь наш НПЦ стоит где нужно.
ПРИМЕЧАНИЕ
Не всегда НПЦ будет оставаться после рестарта. Для того, чтоб оставался нужно прописать его в таблицу spawnlist.
ВСЕ =)
А теперь пару ГМшопов на закуску:
Сжатый ГМшоп
http://ifolder.ru/6411014
Расширенный ГМшоп
http://ifolder.ru/6411027
Камаэль
http://ifolder.ru/6411031
Марки проф
http://ifolder.ru/6411037
Свитки энчанта
http://ifolder.ru/6411044
Тату
http://ifolder.ru/6411050
Рецепты А и S
http://ifolder.ru/6411060
Еще тату
http://ifolder.ru/6411067
Соски/стрелы
http://ifolder.ru/6411078
и ВСЕ ЭТО ВМЕСТЕ
http://ifolder.ru/6411089
======================================================
======================================================
Made by -=PcHaYkA=- ©
======================================================
======================================================
— You're an amateur

