Установка GMShop в игру AION
Часть 1.Подготовка
1.Качаем для начала это.
2.Потом качаем Aion Extract , он нужен для того что бы расшифровывать xml файлы.
3.Еще нам понадобится текстовый редактор, я советую Notepad++
Часть 2.Ставим NPC
2.1. Клиентская часть
Для начала распаковываем вот эти pak файлы:
strings.pak
npcs.pak
Они в папке Data , а там сами найдите
Дальше извлекаем zip архивы.НО сами архивы не закрываем пусть будут открытыми.
Дальше с помощью проги Aion Extract расшифровываем все *.xml файлы.Потом открываем в Notepad++ файлы client_strings.xml и client_npcs.xml( Notepad ++ , может открывать в одном окне сразу несколько файлов, и это нам на руку).Главное БУДЬТЕ ВНИМАТЕЛЬНЫ.
Итак переходим в файл client_npcs.xml.Там копируем строку любого рабочего NPC ( я брал Mune , в фоете кузнец) Вот его код:
<npc_client>
<id>203060</id>
<desc>STR_NPC_Mune</desc>
<name>Mune</name>
<material>mat_flesh</material>
<foot_mat>foot_2leg_medium</foot_mat>
<disk_type>merchant</disk_type>
<ui_type>general</ui_type>
<cursor_type>trade</cursor_type>
<ui_race_type>light</ui_race_type>
<hide_path>0</hide_path>
<idle_animation>idle_P</idle_animation>
<talk_animation>talk_P</talk_animation>
<appearance>
<pc_type>light_f</pc_type>
<face_type>1</face_type>
<hair_type>1</hair_type>
</appearance>
<visible_equipments>
<torso>weapon_npc_01</torso>
<leg>rb_pants_nomesh_01</leg>
<foot>rb_shoes_nomesh_01</foot>
<shoulder>rb_shoulder_nomesh_01</shoulder>
<glove>rb_glove_nomesh_01</glove>
</visible_equipments>
<appearance_custom>LFnormal8</appearance_custom>
<erect>1</erect>
<bound_radius>
<front>0.500000</front>
<side>0.700000</side>
<upper>2.000000</upper>
</bound_radius>
<scale>100</scale>
<weapon_scale>100</weapon_scale>
<altitude>0.000000</altitude>
<stare_angle>75.000000</stare_angle>
<stare_distance>15.000000</stare_distance>
<move_speed_normal_walk>1.500000</move_speed_normal_walk>
<art_org_move_speed_normal_walk>1.500000</art_org_move_speed_n ormal_walk>
<move_speed_normal_run>6.000000</move_speed_normal_run>
&n bsp; <move_speed_combat_run>4.200000</move_speed_combat_run>
&n bsp; <art_org_speed_combat_run>4.200000</art_org_speed_combat_run&g t;
<in_time>0.100000</in_time>
<out_time>0.500000</out_time>
<neck_angle>90.000000</neck_angle>
<spine_angle>10.000000</spine_angle>
<pushed_range>2.000000</pushed_range>
<hpgauge_level>3</hpgauge_level>
<magical_skill_boost>0</magical_skill_boost>
<game_lang>light</game_lang>
<ai_name>Lmerchant</ai_name>
<quest_ai_name>Mune</quest_ai_name>
<tribe>general</tribe>
<race_type>PC_Light</race_type>
<pet_ai_name>Pet</pet_ai_name>
<sensory_range>20.000000</sensory_range>
<attack_range>2.000000</attack_range>
<attack_rate>1000</attack_rate>
<npc_type>general</npc_type>
<talking_distance>5.000000</talking_distance>
<trade_info>
<tab_list>
<data>
<tab>sale_armor_robe_01</tab>
</data>
<data>
<tab>sale_armor_leather_01</tab>
</data>
<data>
<tab>sale_armor_chain_01</tab>
</data>
<data>
<tab>sale_shield_01</tab>
</data>
</tab_list>
<buy_price_rate>200</buy_price_rate>
</trade_info>
<ment>Mune</ment>
</npc_client>
Итак что бы завершить клиентскую часть добавляем в конец самого непися( то о чём говорилось выше) причём переделывая его под себя, потом смотрим вашу надпись из client_string.pak ( у меня это STR_NPC_MUNE ) , и идём в client_strings.xml, в нём мы должны найти эту надпись и запомнить её ID , а так же запомните ID вашего NPC'a .Дальше мы сохраняем изменённый clients_npc.xml , открываем ваш архив(npcs) , и нажимаеш кнопку ДОБАВИТЬ , и добавляем изменённый файл clients_npcs.xml , сразу говорю файл надо добавлять ТОЛЬКО с помощью кнопки ДОБАВИТЬ , если вы попробуете создать новый архив npcs.zip , то у вас не получится.Далее изменённый архив конвертируем в формат pak , и всё на этом клиентская часть закончена.
2.2. Серверная часть
В серверной части не очень сложно.
Итак идём вначале в папку data\static_data\npcs
и открываем файл npc_templates.xml .
Дальше копируем параметры непися, которого мы копировали в клиентской части ( у меня это mune).
Вот изначальный скрипт:
<npc_template npc_id="203060" level="10" name="mune" name_id="351003" npc_type="NON_ATTACKABLE" height="1.0" title_id="350351" rank="NORMAL" tribe="GENERAL" srange="20" arange="2" arank="1000" hpgauge="3">
<stats maxMp="418" maxHp="1392" maxXp="1040" block="25" parry="25" mdef="25" pdef="25" crit="25" power="25" evasion="25" accuracy="25" magic_accuracy="25" walk_speed="1.5" run_speed="6.0" run_speed_fight="4.2" fly_speed="0.0"/>
<equipment>
<item>114100294</item>
<item>111100277</item>
<item>113100276</item>
<item>112100256</item>
<item>110100302</item>
</equipment>
</npc_template>
Изменяем в нём
npc_id = "ваш ID NPC"
name_id="ваш ID client_strings"
и вставляем в конец файла.Сохраняем.
Дальше идём в data\static_data\spawns\Npcs
Тут открываем ту локацию которая вам нужна.
Т.к. у меня фоэта , я выбирал файл 210010000.xml. Тут опять копируем строку с вашем изначальным неписем( напоминаю у меня mune)
вот изначальная строка:
<spawn map="210010000" npcid="203060" pool="1" interval="105">
<object x="868.7704" y="1248.559" z="119.13373" h="60"/>
</spawn>
Я в ней ничего не изменял, т.к. ставил непися на место изначального ( некогда возиться с координатами)
А вы изменяйте свои координаты.
Вот и всё. Если вы всё сделали правильно у вас на выбранном месте должен появиться ваш NPC.
Часть 3.Создаём trade-list
3.1. Клиентская часть
Итак идём в файл client_npcs_goodlist.xml.Тут в самом низу перед тегом </client_npc_goodlists> ( не перед тегом </client_npc_goodlist> , это важно)
создаём новый трейд лист по типу:
client_npc_goodslist>
<id>ваш айди</id>
<name>sale_d_abyss_material_01 (тут без нормального client_strings.xml , лучше ничего не трогать) </name>
<desc>STR_SALE_MATERIAL (тут без нормального client_strings.xml , лучше ничего не трогать)</desc>
<use_category>1</use_category>
<goods_list>
<data>
<item>итем №1</item>
</data>
<data>
<item>итем №2</item>
</data>
<data>
<item>итем №3</item>
</data>
</goods_list>
</client_npc_goodslist>
Названия итемов берёте из client_strings ( т.е. надписи наподобие sale_d_abyss_material_01 ) , если у вас корявый этот файл , то смотрите в базе его ID , и смотрите потом в каком трейд листе он есть, т.е. хотите вы например ввести на продаже итем: с ID 169500052 , вы идёте в папку вашего сервера, там дальше идёте data\static_data\goodslists , находите итем с этим ID , запоминаете ID трейд листа , в котором он есть, и в каким по счёту он идёт , потом идёте в клиентский goodlist
по этим данным находите нужную строку , и копируете в ваш лист.
Итак вот вы создали этот трейд лист , вы должны запомнить его ID, ID всех итемов которые в нём идут, и в каком порядке они идут.
Дальше вы опять повторяете шаг с архивом из 1-ой части, и на этом клиентская часть закончилась.
3.2. Серверная часть
Идём в \data\static_data\goodslists , открываем goodslists.xml , и в конце добавляем лист типа:
<list id="ID вашего листа">
<item id="итем"/>
</list>
Часть 4.Соединяем
Итак идём сюда :
ваш сервер:\gameserver\data\static_data\npc_trad e_list.xml
Пишем в самом низу:
<tradelist_template npc_id="ID вашего непися" name="имя вашего непися ( то что вы писали в 2-ой части у непися в поле name) count="2">
<tradelist id="ID листа"/>
</tradelist_template>
Дальше возращаемся в клиент к нашему неписю и в поле
<trade_info>
<tab_list>
<data>
<tab>sale_d_abyss_material_01( то что написано в поле name , в файле client_npc_gooodlists) </tab>
</data>
</tab_list>
<buy_price_rate>200</buy_price_rate>
</trade_info>
Ну вот и всё
Помните, изменение клиента внезаконно.