1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

[Guide]Редактирование Магазинов

Тема в разделе 'AION', создана пользователем TheMazzahaka, 29 дек 2010.

  1. TopicStarter Overlay

    TheMazzahaka Пользователи

    Сообщения:
    223
    Лайки:
    76
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    J-Games Dev
    Итак дети, что нам понадобится сегодня?
    Да в принципе как обычно:
    1) Руки (желательно прямые)
    2) Мозг
    3) 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>
    </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_character_warehouse>
    <can_deposit_to_account_warehouse>TRUE</can_deposit_to_account_warehouse>
    <can_deposit_to_guild_warehouse>TRUE</can_deposit_to_guild_warehouse>
    <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>
    <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 мегов в патч....

    Ну вот собственно и все, с вами был XobotyI, приходите к нам в школу еще)


    (с)XobotyI
Черновик сохранён Черновик удалён

Поделиться этой страницей