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

Ответ
 
Опции темы
Старый 20.01.2011, 03:35   #1
 Разведчик
Аватар для pwnz0r
 
pwnz0r никому не известный тип
Регистрация: 30.06.2009
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Создание своего, уникального ГМ Шопа.

Всем привет.
Вот что-то не спится и решил написать мануальчик по созданию своего ГМ Шопа. В данном мануале я подробно расписал по строчкам как и что делать, так что после него вопросов не должно оставаться даже у дерева.


1) Первым делом нам необходимо придумать id нашего будушего ГМ шопа. Но тут надо быть внимательным т.к. в таблице NPC (которая
находится в папке с SQL файлами такого id ещё быть не должно), тоесть мы придумываем нового НПЦ.
Для открытия SQL таблиц я использую Navicat.
Заходим в Навикат, открываем базу данных нашего сервера, ишим таблицу с названием NPC и открываем её. Тыкаем на Last Page,
далее прокручиваем в самый низ и смотрим какой id у самого последнего НПЦ.

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

Я взял id 90000.

2) Теперь нам необходимо придумать как он будет выглядеть и, непосредственно, прописать его в базе данных, для этого заходим в игру,
зажимаем shift и тыкаем на любого НПЦ который нам понравился и смотрим его id.

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

После того, как мы выбрали скин магазина, заходим в Навикат, открываем таблицу с НПЦ и добовляем наш будуший ГМ шоп.
Надеюсь что добовлять все умеют, но на всякий случай напишу как проавильно прописать главные параметры (ведь мануал для деревьев ...)
Первая колонка это id (у меня 90000 - поэтому туда я пишу 90000)
Вторая колонка это id того НПЦ, какой вид он обретёт, в моём случае - это 32478
В колонке Class можно не смотреть что слишком замудренно у других НПЦ и написать просто L2Npc
А вот в колонке Type необходимо прописать именно L2Merchant (Merchant - означает что информацию наш шоп будет черпать из
\gameserver\data\html\merchant (и это важно).
После того, как мы прописали, перезапускаем сервер, заходим в игру и пишим //spawn 90000
как мы видим на скрине:

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

Наш ГМ шоп малёха врос в землю ... для того чтобы его поднять, мы в таблице с нашим мобом меняем параметр Сollsion_height на 23,5.
Далее, как мы видим на скрине, при нажатии на наш ГМ шоп, выскакивает следушее: My text is missing: data/html/merchant/90000.htm
и это хорошо, это означает что до данного момента вы всё сделали правильно.

3) Строим начальную страницу нашего магазина:
Создаём файл 90000.htm этот файл должен находится в data/html/merchant/
У меня он выглядит так:

Код:
<html><title>Gm Shop : </title>
<body>
<center>
<img src="L2UI_CH3.onscrmsg_pattern01_1" width=300 height=32 align=left>
<table width=230>
<tr>
<td align=center><img src="icon.etc_socks_i00" width=32 height=32></td>
<td align=center><img src="icon.etc_mandolin_i00" width=32 height=32></td>
<td align=center><img src="icon.etc_seal_of_knight_i00" width=32 height=32></td>
</tr>
<tr><td></td></tr>
<tr>
<td align=center><button value="Armors" action="bypass -h npc_%objectId%_Chat 1" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="Weapons" action="bypass -h npc_%objectId%_Chat 3" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="Jewerls" action="bypass -h npc_%objectId%_Chat 2" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr><td></td></tr>
<tr>
<td align=center><img src="icon.etc_spell_shot_gold_i01" width=32 height=32></td>
<td align=center><img src="icon.etc_roll_of_paper_red_i00" width=32 height=32></td>
<td align=center><img src="icon.etc_dash_potion_i00" width=32 height=32></td>
</tr>
<tr><td></td></tr>
<tr>
<td align=center><button value="Soulshots" action="bypass -h npc_%objectId%_multisell 90018" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="Enchants" action="bypass -h npc_%objectId%_multisell 90019" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="81 and 83" action="bypass -h npc_%objectId%_multisell 90020" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
</tr>
<tr><td></td></tr>
<tr>
<td align=center><img src="icon.etc_ancient_crown_i02" width=32 height=32></td></tr>
<td align=center><img src="icon.etc_dragons_blood_i00" width=32 height=32></td>
<td align=center><img src="icon.etc_Symbol_of_dawn_i00" width=32 height=32></td>
</tr>
<tr><td></td></tr>
<tr>
<td align=center><button value="Stones" action="bypass -h npc_%objectId%_multisell 90021" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="Dyes" action="bypass -h npc_%objectId%_multisell 90022" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="Misc" action="bypass -h npc_%objectId%_multisell 90023" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr><td></td></tr>
<tr>
<td align=center><img src="icon.etc_inf_ore_high_i00" width=32 height=32></td></tr>
<td align=center><img src="icon.etc_inf_ore_high_i00" width=32 height=32></td></tr>
<td align=center><img src="icon.etc_inf_ore_high_i00" width=32 height=32></td></tr>
</tr>
<tr><td></td></tr>
<tr>
<td align=center><button value="Crystal/Gem" action="bypass -h npc_%objectId%_multisell 90024" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="S materials" action="bypass -h npc_%objectId%_multisell 90026" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="A materials" action="bypass -h npc_%objectId%_multisell 90025" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr><td></td></tr>
</table>
<br>
<button value="Sell" action="bypass -h npc_%objectId%_Sell" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
</center>
</body>
</html>
Теперь обьясню что за что отвечает:

<html><title>Gm Shop : </title> <! --- тут вместо GM Shop можно написать название своего сервера ----- (это на скрине № 3 появится вместо слова Chat)>

__________________________________________________ __________________________________________________ __________________________________________________ _

<center> <! ----- выравнивание по центру ----->
<img src="L2UI_CH3.onscrmsg_pattern01_1" width=300 height=32 align=left> <! ----- маленький логотипчик (для украшения и не более того) ----->

__________________________________________________ __________________________________________________ __________________________________________________

Код:
<table width=230> <! -------- ширина окна ---------->
<tr>
<td align=center><img src="icon.etc_socks_i00" width=32 height=32></td> <! ------- логотип для того, что мы будем покупать (отоброжается над бронёй -------->
<td align=center><img src="icon.etc_mandolin_i00" width=32 height=32></td>  <! ------- логотип для того, что мы будем покупать (отоброжается над оружием -------->
<td align=center><img src="icon.etc_seal_of_knight_i00" width=32 height=32></td> <! ------- логотип для того, что мы будем покупать (отоброжается над бижей -------->
</tr>
<tr><td></td></tr>
<tr>
<td align=center><button value="Armors" action="bypass -h npc_%objectId%_Chat 1" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td> <! ------- это мы будем разбирать по частям -------->
<td align=center><button value="Weapons" action="bypass -h npc_%objectId%_Chat 3" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><button value="Jewerls" action="bypass -h npc_%objectId%_Chat 2" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr><td></td></tr>
Разбираем по частям:
<td align=center><button value="Armors" это означает что надпись Armors будет выравниваться по центру нашей кнопки.
action="bypass -h npc_%objectId%_Chat 1" это означает что будем делать ещё один htm файл где будем выбирать грейд армора и будет он называться
90000-1.htm (об этом свидетельствует npc_%objectId%_Chat 1 --- где 1 где цифра 1, должна совподать с последней цифрой нашего нового htm файла.
К примеру: если бы было следушее: npc_%objectId%_Chat 1000 - то наш новый htm файл должен был бы быть назван 90000-1000.htm)
width=85 height=26 ширина и высота кнопки.
back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df как выглядит сама кнопка.


После того как скопи пастили или же решились сделать свою главную страницку в ГМ шопе, мы заходим в игру и пишим //reload htm перезапускать сервер не
обязательно. У меня вышло следушее:

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

4) делаем Chat 1 под названием 90000-1.htm
у меня он будет выглядеть так:

Код:
<html><title>Gm-Shop</title>
<body>
<center>
<img src="L2UI_CH3.onscrmsg_pattern01_1" width=300 height=32 align=left>
</center>
<center>
<table width=230>
<tr><td><br></td></tr>
<tr>
<td align=center><img src="icon.armor_t93_ue_i00" width=32 height=32></td>
<td align=center><button value="S-80" action="bypass -h npc_%objectId%_multisell 90029" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><img src="icon.armor_t91_uf_i00" width=32 height=32></td>
</tr>
<tr><td><br></td></tr>
<tr>
<td align=center><img src="icon.armor_t90_u_i00" width=32 height=32></td>
<td align=center><button value="S Grade" action="bypass -h npc_%objectId%_multisell 90000" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><img src="icon.armor_t88_u_i00" width=32 height=32></td>
</tr>
<tr><td><br></td></tr>
<tr>
<td align=center><img src="icon.armor_t79_u_i00" width=32 height=32></td>
<td align=center><button value="A Grade" action="bypass -h npc_%objectId%_multisell 90001" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><img src="icon.armor_t84_u_i00" width=32 height=32></td>
</tr>
<tr><td><br></td></tr>
<tr>
<td align=center><img src="icon.armor_t70_u_i00" width=32 height=32></td>
<td align=center><button value="B Grade" action="bypass -h npc_%objectId%_multisell 90002" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><img src="icon.armor_t68_u_i00" width=32 height=32></td>
</tr>
<tr><td><br></td></tr>
<tr>
<td align=center><img src="icon.armor_t57_u_i00" width=32 height=32></td>
<td align=center><button value="C Grade" action="bypass -h npc_%objectId%_multisell 90003" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><img src="icon.armor_t63_u_i00" width=32 height=32></td>
</tr>
<tr><td><br></td></tr>
<tr>
<td align=center><img src="icon.armor_cotton_robe_i00" width=32 height=32></td>
<td align=center><button value="D Grade" action="bypass -h npc_%objectId%_multisell 90004" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><img src="icon.armor_manticor_skin_shirt_i00" width=32 height=32></td>
</tr>
<tr><td><br></td></tr>
<tr>
<td align=center><img src="icon.armor_feriotic_tunic_i00" width=32 height=32></td>
<td align=center><button value="No Grade" action="bypass -h npc_%objectId%_multisell 90005" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td align=center><img src="icon.armor_leather_shirt_i00" width=32 height=32></td>
</tr>
<tr><td><br></td></tr>
</table>
</center>
<tr>
<center>
<td align=center><button value="Sell" action="bypass -h npc_%objectId%_Sell" width=85 height=26 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</center>
</tr>
<img src="L2UI_CH3.onscrmsg_pattern01_2" width=300 height=32 align=left></center>
</body>
</html>
Как мы видим, у нас вместо Chat 1 и т.д. появилось значение bypass -h npc_%objectId%_multisell 90001 --- это означает, что всю инфу о том,
за сколько продовать и что будет получать игрок, находиться в \data\multisell

При создании файла 90000-1.htm и копи пасте кода, который приведён выше, у вас должно получиться это:

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

с оружием, бижей и всего что вы хотите распихать по грейдам нужно создавать новые htm файлы и называть их так, как написанно в чате (см. пункт № 3)

5) Переходим не посредственно к созданию того, что можно купить в Вашем магазине:
По скольку мы уже начали разбирать пример с армором, то начнёс верху, а именно с Ы80. Мы видим по строчке <td align=center><button value="S-80" action="bypass -h npc_%objectId%_multisell 90029"
что за это отвечает файлик который находится в /data/ multisell и название у него 90029.xml --- создаём его.

Копи пастим в начало скрипта это:

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

<!-- Created with Lineage II - Multisell Manager -->
<!-- © 2007 by tReXpert -->

<list maintainEnchantment="true">
Несколько нажатий на Enter и начинаем добовлять шмотку, я делаю так:

Код:
<item id="1">  <! ---- должно быть уникальным именно в этом файле, тоесть не должно повторяться ------>
    <ingredient id="6393" count="50"/>  <! ----- за что купить, в моём случае ето Event Gritering medals (count = 50 ---за сколько медалей (50) ----->
    <production id="9416" count="1"/>   <! ----- id веши которую он получит, получит он одну штуку (этой веши) ----->
    <production id="9421" count="1"/>   <! ----- id веши которую он получит, получит он одну штуку (этой веши) ----->
    <production id="9422" count="1"/>   <! ----- id веши которую он получит, получит он одну штуку (этой веши) ----->
    <production id="9423" count="1"/>   <! ----- id веши которую он получит, получит он одну штуку (этой веши) ----->
    <production id="9424" count="1"/>   <! ----- id веши которую он получит, получит он одну штуку (этой веши) ----->
    <production id="9441" count="1"/>   <! ----- id веши которую он получит, получит он одну штуку (этой веши) ----->
  </item>                               <!------ необходимо закрыть, чтобы небыло эррора ------->
Из этого кода, можно понять, что человек за 50 медалей может купить Династи Хеви сет.

Также, вы можете разбить сет по отдельным вешам и сделать цену из адены + ещё всякая хрень, выглядеть это будет так:

Код:
<item id="1">
    <ingredient id="57" count="15000000"/>   <! ----- 57 id веши за что он будет покупать, 15000000 колличество ----->
    <ingredient id="хххх" count="уууууу"/>   <! ----- хххх id веши за что он будет покупать, ууууу колличество ----->
    <ingredient id="ххххх" count="уууууу"/>  <! ----- хххх id веши за что он будет покупать, ууууу колличество ----->
    <production id="9416" count="1"/>
</item>
после того как вы сделали полностью 90029.xml его необходимо закрыть с помошью команды </list>

В моём случае это выглядит так:

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

<!-- Created with Lineage II - Multisell Manager -->
<!-- © 2007 by tReXpert -->

<list maintainEnchantment="true">

  <!-- Dynasty Breast Plate -->
  <item id="1">
    <ingredient id="6393" count="50"/>
    <production id="9416" count="1"/>
    <production id="9421" count="1"/>
    <production id="9422" count="1"/>
    <production id="9423" count="1"/>
    <production id="9424" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Breast Plate - Bard -->
  <item id="2">
    <ingredient id="6393" count="50"/>
    <production id="9420" count="1"/>
    <production id="9421" count="1"/>
    <production id="9422" count="1"/>
    <production id="9423" count="1"/>
    <production id="9424" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Breast Plate - Force Master -->
  <item id="3">
    <ingredient id="6393" count="50"/>
    <production id="9419" count="1"/>
    <production id="9421" count="1"/>
    <production id="9422" count="1"/>
    <production id="9423" count="1"/>
    <production id="9424" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Breast Plate - Shield Master -->
  <item id="4">
    <ingredient id="6393" count="50"/>
    <production id="9417" count="1"/>
    <production id="9421" count="1"/>
    <production id="9422" count="1"/>
    <production id="9423" count="1"/>
    <production id="9424" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Breast Plate - Weapon Master -->
  <item id="5">
    <ingredient id="6393" count="50"/>
    <production id="9418" count="1"/>
    <production id="9421" count="1"/>
    <production id="9422" count="1"/>
    <production id="9423" count="1"/>
    <production id="9424" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Leather Armor - Bow Master -->
  <item id="6">
    <ingredient id="6393" count="50"/>
    <production id="9427" count="1"/>
    <production id="9428" count="1"/>
    <production id="9429" count="1"/>
    <production id="9430" count="1"/>
    <production id="9431" count="1"/>
  </item>

  <!-- Dynasty Leather Armor - Dagger Master -->
  <item id="7">
    <ingredient id="6393" count="50"/>
    <production id="9426" count="1"/>
    <production id="9428" count="1"/>
    <production id="9429" count="1"/>
    <production id="9430" count="1"/>
    <production id="9431" count="1"/>
  </item>

  <!-- Dynasty Leather Armor - Enchanter -->
  <item id="8">
    <ingredient id="6393" count="50"/>
    <production id="10168" count="1"/>
    <production id="9428" count="1"/>
    <production id="9429" count="1"/>
    <production id="9430" count="1"/>
    <production id="9431" count="1"/>
  </item>

  <!-- Dynasty Leather Armor - Weapon Master -->
  <item id="9">
    <ingredient id="6393" count="50"/>
    <production id="10127" count="1"/>
    <production id="9428" count="1"/>
    <production id="9429" count="1"/>
    <production id="9430" count="1"/>
    <production id="9431" count="1"/>
  </item>

  <!-- Dynasty Leather Armor - Summoner -->
  <item id="10">
    <ingredient id="6393" count="50"/>
    <production id="10214" count="1"/>
    <production id="9428" count="1"/>
    <production id="9429" count="1"/>
    <production id="9430" count="1"/>
    <production id="9431" count="1"/>
  </item>

  <!-- Dynasty Tunic -->
  <item id="11">
    <ingredient id="6393" count="50"/>
    <production id="9432" count="1"/>
    <production id="9437" count="1"/>
    <production id="9438" count="1"/>
    <production id="9439" count="1"/>
    <production id="9440" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Tunic - Enchanter -->
  <item id="12">
    <ingredient id="6393" count="50"/>
    <production id="9434" count="1"/>
    <production id="9437" count="1"/>
    <production id="9438" count="1"/>
    <production id="9439" count="1"/>
    <production id="9440" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Tunic - Healer -->
  <item id="13">
    <ingredient id="6393" count="50"/>
    <production id="9433" count="1"/>
    <production id="9437" count="1"/>
    <production id="9438" count="1"/>
    <production id="9439" count="1"/>
    <production id="9440" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Tunic - Human Wizard -->
  <item id="14">
    <ingredient id="6393" count="50"/>
    <production id="9436" count="1"/>
    <production id="9437" count="1"/>
    <production id="9438" count="1"/>
    <production id="9439" count="1"/>
    <production id="9440" count="1"/>
    <production id="9441" count="1"/>
  </item>

  <!-- Dynasty Tunic - Summoner -->
  <item id="15">
    <ingredient id="6393" count="50"/>
    <production id="9435" count="1"/>
    <production id="9437" count="1"/>
    <production id="9438" count="1"/>
    <production id="9439" count="1"/>
    <production id="9440" count="1"/>
    <production id="9441" count="1"/>
  </item>


</list>
Вот то, что у нас получилось в самом ГМ Шопе:
[Ссылки могут видеть только зарегистрированные пользователи. ]


И вот так добовляется всё полностью что вы хотите видить на вашем сервере в ГМ Шопе.
Надеюсь что мой мануал окозался самым простым в понимании.

Приимушества созданново вами ГМ Шопа:
У вас всегда есть готовый ГМ Шоп, в котором уже всё добавленно (что вам нужно) и вам не нужно сидеть и гемороиться, после того как вы скачали
новый ГМ Шоп с интернета чтобы сделать его такой как у вас был.

При ковырянии новой сборки, вам необходимо прописать всего лиш одну строчку в таблице с НПЦ и скопи пастить уже готовые файлы.
________________
Let them hate us so long as they fear us....
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание своего нпс Пыщь Perfect World 16 28.11.2011 19:06
[Статья] Создание своего Логотипа, от А до Я. (CS 1.6/ Source) IIIypuk Статьи и описания по Counter-Strike 2 20.03.2011 14:11
[Помогите!] создание своего сервера warlok32 Вопросы и ответы, обсуждения 5 07.01.2011 12:22
[Помогите!] Создание своего евента ц6 zagar Общение и обсуждение, архив Lineage 2 0 14.12.2010 19:03

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

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

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