Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 01.05.2009, 00:21   #1
Заблокирован
 Пехотинец
Аватар для Микки
 
Микки скоро будет известенМикки скоро будет известенМикки скоро будет известенМикки скоро будет известен
Регистрация: 26.04.2009
Сообщений: 74
Популярность: 397
Сказал(а) спасибо: 220
Поблагодарили 168 раз(а) в 83 сообщениях
Отправить сообщение для Микки с помощью ICQ
 
По умолчанию Делаем ГМ-шопы

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

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

Итак, ГМшопы бывают 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.[B]


ССЫЛКИ НА ПРОГРАММУ:

[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]


Установка и запуск программы:

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.

Прошу тему закрепить
(c)la2base

Последний раз редактировалось Razzor; 01.05.2009 в 12:49.
  Ответить с цитированием
Пользователь сказал cпасибо:
Razzor (01.05.2009)
Ответ

Метки
гм-шопы, делаем


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делаем трансформ FFForever Lineage 2 0 17.03.2009 20:08
[Руководство] Делаем пета FFForever Lineage 2 0 17.03.2009 18:12
[Подсказка] Делаем 2-3-4 Гвг в день! Hummel Rising Force Online 0 14.03.2009 12:09

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 20:35.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net