Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Дополнения (GMShop, Buffer, GK)/[manual]По Созданию И Редактированию Любых Гмшопов
Search

[manual]По Созданию И Редактированию Любых Гмшопов

1 replies9,740 viewsCurrently viewing: 1
pchayka
pchayka

User

Ветеран

Posts: 1304

На форуме с: 02/01/2008

Репутация: +1313

Рейтинг: 0

· 05/03/2008, 09:19 PM

ГМшоп и все о них

Выложу сюда и сами ГМшопы и мануал по созданию и программы для создания.

Итак, ГМшопы бывают 2-х типов: на мультиселах и на байлистах. (еще можно сделать на квестах, но это тупо и геморно)

>>>>>>>>>ГМшопы на мультиселах - это ГМшопы, основанные на файлах xml в папке multisell, в котором хранятся данные о товарах и ценах.
>>>>>>>>>ГМшопы на байлистах - это ГМшопы, основанные на БД, в частности таблицах *buylist.


Преимущества и недостатки обоих типов:
+ ГМшопы на мультиселах хороши тем, что в них можно производить обмен любых товаров на любые товары. Т.е. вы сможете например продавать оружие за
заточки, письма, ресурсы и т.д. Так же можно совмещать такие ресурсы, т.е. брать несколько предметов у игрока и выдавать взамен нечто. Плюс ко всему игрок может выбрать сколько предметов ему надо.

- В них нельзя продавать заточенные предметы.
В общем виде ГМшоп на мультиселах выглядит так:


---------------------------------------------------

+ ГМшопы на байлистах хороши тем, что позволяют игроку основательно закупиться и годятся для продажи мелких дешевых ресурсов
- Плохи они тем, что взять за товар можно только адену.
В общем виде ГМшоп на байлистах выглядит так:


---------------------------------------------------

Мультиселы

Наиболее удобным и простым в работе является ГМшоп на мультиселах. Его основной компонент - файл ***.xml с общей структурой:

Код
<?xml version='1.0' encoding='utf-8'?>
<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.

Вот пример мультисела, написанного именно так, тут продаются заточки:

Код
<?xml version='1.0' encoding='utf-8'?>

<!-- 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-Server    = localhost - хост БД
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

Код
INSERT INTO `merchant_buylists` (`item_id`,`price`,`shop_id`,`order`,`count`,`currentCount`, time, savetimer) VALUES
(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. Там и увидим в окне, которое откроется, ИД нашего будущего НПЦ.

Теперь нам нужно превратить его в НПЦ для торговли. Для этого пользуемся простым шаблоном:

Код
INSERT INTO `npc` (`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`) 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

В итоге наш запрос принимает такой вид:

Код
INSERT INTO `npc` (`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`) 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.
Внутри этого файла может быть что угодно, приведу пример:

Код
<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 будет выглядеть так:



Вот теперь важный момент, обратите внимание на эту строку:
Код
<button value="Эпик Бижутерия" action="bypass -h npc_%objectId%_multisell 697" width="100" height="14" back="sek.cbui94" fore="sek.cbui92">

Это кнопка, на которой написано значение переменной value, которая пересодит нас к мультиселу 697
Код
bypass -h npc_%objectId%_multisell 697

вот именно так надо оформить ссылку и сервер откроет нам файл xml из папки multisell с названием 697.


Такой html файл может иметь любую сложность, содержать ссылки, которые приведут нас в другой html файл, синтаксис таков:
Код
<a action="bypass -h npc_%objectId%_Chat 3">Текст ссылки</a>

приведет нас к html вида NPC_ID-CHAT.html, т.е. в этом слаче это будет ИД-3.html.

ВАЖНО html нашего ГМШОПА нужно положить в папку
Код
data\html\merchant\

в другой папке наш ГМшоп не распознается. ЭТА ПАПКА ТОЛЬКО ДЛЯ HTML ФАЙЛОВ!

3 ЧАСТЬ. АНАЛОГИЧНЫЕ ДЕЙСТВИЯ ДЛЯ БАЙЛИСТОВ

Все то ;е самое, только ссылка немного другая, а именно
Код
<a action="bypass -h npc_%objectId%_Buy 14">Текст ссылки</a>

14 - это номер магазина, который мы прописали в БД (см. выше)

Это вот и все насчет байлистов.

ПРИМЕЧАНИЕ Любому НПЦ можно добавить пункт "Продать", чтобы он покупал вещи у игроков, для этого в html надо вставить такой код
Код
<a action="bypass -h npc_%objectId%_Sell">Продать</a>


4 ЧАСТЬ И ПОСЛЕДНЯЯ.

Теперь нам наш ГМшоп надо ведь поставить в игре. Для этого мы становимся ГМом там, где должен быть ваш ГМшоп, и прописываем
Код
//spawn id_npc

где 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&#39;re an amateur

0
Topic is closed for replies