Всем привет.
Вот что-то не спится и решил написать мануальчик по созданию своего ГМ Шопа. В данном мануале я подробно расписал по строчкам как и что делать, так что после него вопросов не должно оставаться даже у дерева.
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/
У меня он выглядит так:
<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
у меня он будет выглядеть так:
Как мы видим, у нас вместо 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 --- создаём его.
Несколько нажатий на 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>
Вот то, что у нас получилось в самом ГМ Шопе:
[Ссылки могут видеть только зарегистрированные пользователи. ]
И вот так добовляется всё полностью что вы хотите видить на вашем сервере в ГМ Шопе.
Надеюсь что мой мануал окозался самым простым в понимании.
Приимушества созданново вами ГМ Шопа:
У вас всегда есть готовый ГМ Шоп, в котором уже всё добавленно (что вам нужно) и вам не нужно сидеть и гемороиться, после того как вы скачали
новый ГМ Шоп с интернета чтобы сделать его такой как у вас был.
При ковырянии новой сборки, вам необходимо прописать всего лиш одну строчку в таблице с НПЦ и скопи пастить уже готовые файлы.
________________
Let them hate us so long as they fear us....