В данной статье я попытаюсь подробно рассказать Вам о том, как сделать магазин (ГМ-шоп) для своего сервера.
Создание магазина состоит из 3-х частей, а именно:
1 Часть – XML часть (Непосредственно сами мультиселлы)
2 Часть – HTML часть (Диалог НПЦ)
3 Часть – XML (Реализация самого НПЦ)
Для начала нам нужно зайти в папку Multisell, которая находится в папке data (data находится в папке gameserver). В данной папке создаем текстовый документ (Блокнот) и вставляем в него данный код:
Это только для примера. Данный код Вы должны переделать для себя, сейчас я постараюсь рассказать что к чему.
?xml version=»1.0″ encoding=»utf-8″? — данная строка обязательно должна быть вверху каждого XML файла
item id=»1″ — ID предмета
ingredient id=»12300000″ – это то за что будет покупать игрок предметы, в нашем случаи это Адена (ID Adena – 57)
count=»123″ – цена покупаемого предмета, так как у нас Адена, игроку придётся отдать за покупку предмета 123 Адены
enchant=»0″ – Заточка предмета
production id=»6680″ – предмет который получит игрок, в нашем случаи это Draconic Тело
count=»1″ – количество получаемого предмета
enchant=»0″ – Заточка предмета
Переделываем под себя и сохраняем данный текстовый документ. Переименовываем файл в название которого еще нет в папке Multisell, например 13333, переименовываем файл в 13333.xml. На этом Xml часть наконец-то заканчивается.
Теперь начнем рассматривать 2 часть – HTML
Заходим в папку html она находится в GameServer ->data -> html -> находим нужный нам диалог или добавляем свой самостоятельно.
Теперь о том как прикреплять свой мультиселл к диалогу НПЦ, для примера берем наш созданный мультиселл 13333 который мы уже создали выше
Можно сделать упрощенной строкой:
[npc_%objectId%_multisell 13333|Просмотреть список]
Можно сделать в HTML виде:
<a action="bypass -h npc_%objectId%_multisell 13333">Просмотреть список</a>
Как вы видите мы указываем в формате нужный нам id npc_%objectId%_multisell 13333
Теперь начнем рассматривать 3 часть – XML Npc
Местонахождение GameServer ->data -> npc -> 40000-40099.xml
Берем для примера готового НПЦ уже созданного c id 40013:
Создание магазина состоит из 3-х частей, а именно:
1 Часть – XML часть (Непосредственно сами мультиселлы)
2 Часть – HTML часть (Диалог НПЦ)
3 Часть – XML (Реализация самого НПЦ)
Для начала нам нужно зайти в папку Multisell, которая находится в папке data (data находится в папке gameserver). В данной папке создаем текстовый документ (Блокнот) и вставляем в него данный код:
XML:
<?xml version='1.0' encoding='utf-8'?>
<list>
<item id="1">
<ingredient id="57" count="12300000" enchant="0"/>
<production id="6680" count="1" enchant="0"/>
</item>
<item id="2">
<ingredient id="57" count="12300000" enchant="0"/>
<production id="6681" count="1" enchant="0"/>
</item>
<item id="3">
<ingredient id="57" count="12300000" enchant="0"/>
<production id="6682" count="1" enchant="0"/>
</item>
</list>
Это только для примера. Данный код Вы должны переделать для себя, сейчас я постараюсь рассказать что к чему.
?xml version=»1.0″ encoding=»utf-8″? — данная строка обязательно должна быть вверху каждого XML файла
item id=»1″ — ID предмета
ingredient id=»12300000″ – это то за что будет покупать игрок предметы, в нашем случаи это Адена (ID Adena – 57)
count=»123″ – цена покупаемого предмета, так как у нас Адена, игроку придётся отдать за покупку предмета 123 Адены
enchant=»0″ – Заточка предмета
production id=»6680″ – предмет который получит игрок, в нашем случаи это Draconic Тело
count=»1″ – количество получаемого предмета
enchant=»0″ – Заточка предмета
Переделываем под себя и сохраняем данный текстовый документ. Переименовываем файл в название которого еще нет в папке Multisell, например 13333, переименовываем файл в 13333.xml. На этом Xml часть наконец-то заканчивается.
Теперь начнем рассматривать 2 часть – HTML
Заходим в папку html она находится в GameServer ->data -> html -> находим нужный нам диалог или добавляем свой самостоятельно.
Теперь о том как прикреплять свой мультиселл к диалогу НПЦ, для примера берем наш созданный мультиселл 13333 который мы уже создали выше
Можно сделать упрощенной строкой:
[npc_%objectId%_multisell 13333|Просмотреть список]
Можно сделать в HTML виде:
<a action="bypass -h npc_%objectId%_multisell 13333">Просмотреть список</a>
Как вы видите мы указываем в формате нужный нам id npc_%objectId%_multisell 13333
Теперь начнем рассматривать 3 часть – XML Npc
Местонахождение GameServer ->data -> npc -> 40000-40099.xml
Берем для примера готового НПЦ уже созданного c id 40013:
XML:
<npc id="40013" name="Item Mall" title="Merchant">
<set name="aggroRange" value="0" />
<set name="ai_type" value="CharacterAI" />
<set name="baseAtkRange" value="40" />
<set name="baseCON" value="43" />
<set name="baseCritRate" value="40" />
<set name="baseDEX" value="30" />
<set name="baseHpMax" value="3290.113" />
<set name="baseHpRate" value="1" />
<set name="baseHpReg" value="8.5" />
<set name="baseINT" value="21" />
<set name="baseMAtk" value="1242" />
<set name="baseMAtkSpd" value="333" />
<set name="baseMDef" value="469" />
<set name="baseMEN" value="20" />
<set name="baseMpMax" value="1674.8" />
<set name="baseMpReg" value="3" />
<set name="basePAtk" value="1952" />
<set name="basePAtkSpd" value="278" />
<set name="basePDef" value="577" />
<set name="baseRunSpd" value="120" />
<set name="baseSTR" value="40" />
<set name="baseShldDef" value="0" />
<set name="baseShldRate" value="0" />
<set name="baseWIT" value="20" />
<set name="baseWalkSpd" value="75" />
<set name="collision_height" value="23.0" />
<set name="collision_radius" value="8.0" />
<set name="level" value="80" />
<set name="rewardExp" value="0" />
<set name="rewardRp" value="0" />
<set name="rewardSp" value="0" />
<set name="shots" value="NONE" />
<set name="texture" value="" />
<set name="type" value="Merchant" /> <!-- Тип НПЦ обозначающий его принадлежность к торговцам -->
<set name="displayId" value="13298"/> <!-- Внешний вид который будет использовать НПЦ -->
<set name="htm_root" value="mods/gmshop/" /> <!-- Откуда будет брать НПЦ свой диалог-->
<attributes>
<defence attribute="fire" value="20" />
<defence attribute="water" value="20" />
<defence attribute="wind" value="20" />
<defence attribute="earth" value="20" />
<defence attribute="holy" value="20" />
<defence attribute="unholy" value="20" />
</attributes>
</npc>
Last edited: