Редактирования Магазинов в игре AION
Да в принципе как обычно:
Aion Extract ([ ссылка скрыта ] (
регистрация |
вход ))
ну еще и текстовый редактор, по вашему усмотрению, лично я пользовался Notepad++ и простым блокнотом.
Начнемс! (Мой гайд текстовый, и без единой картинки поетому приготовьтесь читать))
Редактирование любого магазина состоит из 2-х частей серверная, и клиентская.
Мы начнем с серверной.
СЕРВЕР
Основным файлом для редактирования будет gameserver\data\static_data\goodslists\goodslists. xml
Но к нему чуть позже. А сейчас, заходим в игру и ищем того NPC у которого хотим редактировать магазинчики, берем его в таргет и прописываем в чате //info будет выдана полная информация по NPC нас интересует Id: а точнее 6 цифр идущих после этого слова. Записываем или запоминаем, как хотите. Далее, чем угодно, открываем gameserver\data\static_data\npc_trade_list.xml внутри видим:
<tradelist_template npc_id="203060" name="mune" count="4">
<tradelist id="129"/>
<tradelist id="130"/>
<tradelist id="131"/>
<tradelist id="450"/>
</tradelist_template>
Нас интересуют строчки <tradelist id=""/> пробиваем по поиску наш id и должна появиться схожая табличка, запоминаем все находящиеся в нем tradelist id, тобиш эти 3 циферки.
Вот теперь идем в gameserver\data\static_data\goodslists\goodslists. xml
Открываем, опять же таки чем угодно, и видим:
<list id="1">
<item id="169500001"/>
<item id="169500002"/>
<item id="169500003"/>
<item id="169500004"/>
<item id="169500005"/>
<item id="169500006"/>
<item id="169500007"/>
</list>
Таким образом у нас расписаны все list id, а эти list id не что иное как tradelist id. Пробиваем по поиску записанные ранее 3 циферки tradelist id. Ну и собственно редактируем трейдлист добавляя убирая и изменяя ид предметов.
На этом с серверной частью покончено, переходим к самой геморной части процесса.
КЛИЕНТ
Открываем прогу Aion Extract распаковываем npcs.pak там берем файлик client_npc_goodlist.xml открываем его чем угодно, я юзал Notepad ++.
<client_npc_goodslist>
<id>1</id>
<name>sale_skillbook_warrior_01</name>
<desc>STR_SALE_SKILLBOOK</desc>
<goods_list>
<data>
<item>skillbook_wa_p_statboostphysicaldefense_g1</item>
&n bsp; </data>
<data>
<item>skillbook_wa_p_statboostparry_g1</item>
</data>
<data>
<item>skillbook_wa_wa_robustblow_g1</item>
</data>
<data>
<item>skillbook_wa_wa_shieldstance_g1</item>
</data>
<data>
<item>skillbook_wa_wa_armorbreak_g1</item>
</data>
<data>
<item>skillbook_wa_wa_rage_g1</item>
</data>
<data>
<item>skillbook_wa_wa_avengingcrash_g1</item>
</data>
</goods_list>
</client_npc_goodslist>
(то что выделено зеленым я буду называть абра кадаброй)
Копипастим <id>1</id> в поиск токо между id вставляем те самые 3 циферки tradelist id
Но есть такая заморочка что если в поле
<data>
<item>абра кадабра</item>
<data>
вписать тупо ид предмета то он не добавится в шоп, просто не виден будет, даже если ты его на серверной стороне пропишеш...
ну так вот вот ету абру кадабру можно узнать в файле client_items.xml, что лежит в items.pak.
Что мы делаем дальше? правильно, распаковываем нашей прогой items.pak
Далее открываем client_items.xm !блокнотом! другой редактор не потянет поиск, этот самый client_items.xm весит 139 мегов. Блокнотец наш подумает где-то минуту, и откроет заветный файлик.
Что мы видим внутри:
<client_item>
<id>100000001</id>
<desc>STR_SWORD_CIRCULOUS</desc>
<name>sword_circulous</name>
<weapon_type>1h_sword</weapon_type>
<item_type>normal</item_type>
<mesh>Sword_circulous</mesh>
<mesh_change>0</mesh_change>
<material>mat_sword_s</material>
<dmg_decal>1</dmg_decal>
<icon_name>Icon_Item_Sword_C01</icon_name>
<blade_fx>1</blade_fx>
<trail_tex>fxtrail_normal</trail_tex>
<equip_bone>Rhand_bone</equip_bone>
<price>5</price>
<max_stack_count>1</max_stack_count>
<equipment_slots>main_or_sub</equipment_slots>
<min_damage>16</min_damage>
<max_damage>20</max_damage>
<str>100</str>
<agi>0</agi>
<kno>0</kno>
<hit_accuracy>0</hit_accuracy>
<critical>50</critical>
<parry>173</parry>
<magical_skill_boost>0</magical_skill_boost>
<magical_hit_accuracy>0</magical_hit_accuracy>
<attack_type>physical</attack_type>
<attack_delay>1400</attack_delay>
<hit_count>2</hit_count>
<attack_gap>0.000000</attack_gap>
<attack_range>1.500000</attack_range>
<quality>common</quality>
<level>1</level>
<lore>FALSE</lore>
<can_exchange>TRUE</can_exchange>
<can_sell_to_npc>TRUE</can_sell_to_npc>
<can_deposit_to_character_warehouse>TRUE</can_deposit_to_chara cter_warehouse>
<can_deposit_to_account_warehouse>TRUE</can_deposit_to_account _warehouse>
<can_deposit_to_guild_warehouse>TRUE</can_deposit_to_guild_war ehouse>
<breakable>TRUE</breakable>
<soul_bind>FALSE</soul_bind>
<remove_when_logout>FALSE</remove_when_logout>
<gender_permitted>all</gender_permitted>
<warrior>1</warrior>
<scout>1</scout>
<mage>1</mage>
<cleric>1</cleric>
<fighter>1</fighter>
<knight>1</knight>
<assassin>1</assassin>
<ranger>1</ranger>
<wizard>1</wizard>
<elementalist>1</elementalist>
<chanter>1</chanter>
<priest>1</priest>
<option_slot_bonus>0</option_slot_bonus>
<bonus_apply>equip</bonus_apply>
<no_enchant>TRUE</no_enchant>
<can_proc_enchant>TRUE</can_proc_enchant>
<cannot_changeskin>0</cannot_changeskin>
<ui_sound_type>Sounds/item/item_att_long_sword</ui_sound_type& gt;
<cash_item>0</cash_item>
<can_split>FALSE</can_split>
<item_drop_permitted>FALSE</item_drop_permitted>
<race_permitted>pc_light pc_dark</race_permitted>
</client_item>
Итак, синим выделен Id предмета, по нему будет задаваться поиск.
Красным выделено имя, которое нам пондобится, оно же абра кадабра.
Зеленым выделена стоимость предмета, но о ней чуть позже.
Итак, вбиваем в поиск Id нужного нам предмета, блокнот находит его, ищем поле <name></name> и копируем его содержимое в client_npc_goodlist.xml в поле <item></item>
<data>
<item>для непонятливых, это сюда</item>
<data>
Желательно чтобы порядок предметов в client_npc_goodlist.xml и goodslists.xml совпадал.
Добавляете сюда все что добавили в клиенте, и сохраняете.
Чтобы не мучаться с запихиванием файла обратно в .pak мы просто кидаем файлик client_npc_goodlist.xml в папку Aion\Data\npcs приоритет загрузки стоит из папки поэтому гемора намного меньше.
Ну вот собственно и все, шоп готов, лично я таким способом, у себя на сервере, сделал ГМ шопы. Чтобы ГМ шоп работал необходимо чтобы измененный файл был на каждом клиенте, поетому все это надо оформлять патчик, например в архив запихнуть, так как это текстовик жми не жми он не испортится поэтому я указывал максимальный способ сжатия.
Ах да, чуть не забыл, я же еще обещас рассказать про редактирование стоимости предмета. Ну так вот, стоимость указывается в поле <price></price> которое я ранее выделял зеленым цветом. Указывая свою сумму вы указываете на только стоимость покупки данного предмета но и стоимость его продажи, она считается по формуле
sell=price-20%price
ну, тоесть, стоимость покупки - 20%. Но учтите чтобы цена изменилась так же надо в патч запихивать и измененный client_items.xm, а это дополнительные 139 мегов в патч....
update: (спасибо [ ссылка скрыта ] ( регистрация | вход ) за уточнение) !!!
1) Если у вас серверная часть и клиентская от разных команд, то,бывают случаи когда
на стороне клиента одни цены прописаны, на стороне сервера - другие. Списываются те, которые на сервере,
отображаются те, которые в клиенте. Необходимо отредактировать файл item_templates.xml
2) Поле PRICE актуально для обычных вещей, поле AP - для вещей из бездны.