главная турниры статьи wiki карта сайта логин

Автор Тема: AMLA Upgdrade  (Прочитано 1902 раз)

0 Пользователей и 1 Гость просматривают эту тему.

LightWarrior

  • level 4
  • ****
  • Сообщений: 607
  • Dead man walking
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • Просмотр профиля
  • Раса: Огр
AMLA Upgdrade
« : Август 09, 2011, 22:29:40 »
Ну я надеюсь, что это будет кому-нибудь полезно. По сути - разбор Kaleh.cfg. В любом случае, облегчит работу мододелам-новичкам.

Заранее предупреждаю - сей трактат не для совсем новичков. Для начала лучше почитать что-нибудь другое. Или хотя бы знать, как расшифровывается AMLA.


Ну начнём:
#define KALEH_LEVEL_BONUS
    # We increase damage by one when we increase the level.
    [effect] <-- это тег эффекта. ну вы поняли
        apply_to=attack <-- указывает, что будем изменять. в данном случае - атаку
        times=per level <-- указывает, сколько раз будет изменение. в данном случае - за каждый уровень бойца
        increase_damage=1 <-- ну и наконец, указывает что произойдёт. в данном случае - увеличивает урон на единицу
    [/effect]
#enddef
Что это такое? А это макрос, увеличивающий урон от оружия (причём, любого) за уровень. Обратите внимание, что все улучшения в дефайне. Вы же знаете, что это такое? I hope it so.

#define KALEH_ADVANCEMENT HP_INCREMENT XP_INCREMENT EFFECT_WML VARIATION_NAME
    [advancement]
        max_times=1
        always_display=yes
        [effect]
            apply_to=hitpoints     <-- будет увеличиваться количество жизней                           
            increase_total={HP_INCREMENT} <-- увеличивает максимальное кол-во жизней
            increase={HP_INCREMENT} <-- текущее кол-во тоже не в обиде   
        [/effect]
        [effect]
            apply_to=max_experience <-- увеличивает требуемое для улучшения кол-во опыта
            increase={XP_INCREMENT}  <-- собственно, это и увеличивает
        [/effect]
        [effect]
            apply_to=variation
            name={VARIATION_NAME}
        [/effect]
        {EFFECT_WML}
    [/advancement]
#enddef
А это "скелет" улучшений. Тоже дефайн. Разъясню по ходу дела.

#define KALEH_LEADERSHIP VARIANT_NAME
    {KALEH_ADVANCEMENT /запускает тот самый дефайн-скелет/ 3 /увеличивает кол-во жизней/ 8 /увеличивает кол-во опыта/(
        id=leadership <-- айди улучшения.
        description= _ "a leader in battle" <-- описание улучшения
        image=units/elves-desert/kaleh-leading.png <-- иконка, которая будет справа от описания
        require_amla="" <-- требуется улучшение. тут никакого не надо. но бывают такие, которым надо.
        [effect]
            apply_to=new_ability <-- будем добавлять способность
            [filter]
                level=2 <-- если боец 2 уровня, то
            [/filter]
            [abilities]
                {ABILITY_LEADERSHIP_LEVEL_2} <-- оно и даёт способность
            [/abilities]
        [/effect]
        [effect]
            apply_to=new_ability <-- вариант для 3 уровня
            [filter]
                level=3
            [/filter]
            [abilities]
                {ABILITY_LEADERSHIP_LEVEL_3}
            [/abilities]
        [/effect]
    ) {VARIANT_NAME}}
#enddef
И наконец, собственно первое улучшение. Даёт абилку лидерство.

#define KALEH_BOLAS VARIANT_NAME
    {KALEH_ADVANCEMENT 4 6 (
        id=bolas
        description= _ "trained by Nym in using the bolas"
        image=attacks/bolas.png
        require_amla=""
        [effect]
            apply_to=new_attack  <-- даёт новую атаку
            name=bolas
            description= _"bolas"
            type=impact
            range=ranged
            damage=4
            number=2
            [specials]
                {WEAPON_SPECIAL_SLOW}
            [/specials]
            icon=attacks/bolas.png
        [/effect]
        [effect]
            apply_to=attack <-- за каждый уровень будет давать +1 к урону для атаки
            name=bolas
            times=per level
            increase_damage=1
        [/effect]
        [effect]
            apply_to=new_animation <-- анимация новой атаки
            [attack_anim]
                [filter_attack]
                    name=bolas
                [/filter_attack]
                [missile_frame]
                    begin=-150
                    end=0
                    image=projectiles/bolas-n.png
                    image_diagonal=projectiles/bolas-ne.png
                [/missile_frame]
                [if]
                    hits=yes
                    [frame]
                        begin=-300
                        end=-200
                        image=units/elves-desert/kaleh.png
                        sound=hatchet.wav
                    [/frame]
                [/if]
                [else]
                    hits=no
                    [frame]
                        begin=-300
                        end=-200
                        image=units/elves-desert/kaleh.png
                        sound=hatchet-miss.wav
                    [/frame]
                [/else]
                [frame]
                    begin=-200
                    end=0
                    image=units/elves-desert/kaleh.png
                [/frame]
                {SOUND:SLOW}
            [/attack_anim]
        [/effect]
    ) {VARIANT_NAME}}
#enddef
Новая атака.

#define KALEH_SUSTENANCE VARIANT_NAME
    {KALEH_ADVANCEMENT 5 8 (
        id=sustenance
        description= _ "gain +20% resistance under the sun"
        image=attacks/sand-storm.png
        require_amla=bow
        [effect]
            apply_to=new_ability <-- новая способность
            [abilities]
                [resistance] <-- меняются резисты
                    id=sustenance <-- айди способности
                    add=20 <-- сколько добавляет
                    max_value=30 <-- какоймаксимум - больше этого не будет, если в общем счёте окажется больше, то добавка урежется
                    apply_to=blade,pierce,impact,fire,cold,arcane <-- к каким сопротивляемостям добавляется
                    [filter_base_value]
                        greater_than=-1
                    [/filter_base_value]
                    [filter_self]
                        [filter_location]
                            time_of_day=lawful <-- только днём
                        [/filter_location]
                    [/filter_self]
                    name= _ "sustenance" <-- название
                    description= _ "Sustenance:
This unit's resistances are increased by 20% in daylight, on defense and attack. Vulnerabilities are not affected." <-- описание
                    affect_self=yes
                [/resistance]
            [/abilities]
        [/effect]
    ) {VARIANT_NAME}}
#enddef
Та дам, новая абилка. Совсем новая.

#define KALEH_BOW3 VARIANT_NAME
    {KALEH_ADVANCEMENT 4 8 (
        id=bow3
        description= _ "a marksman with the bow"
        image=attacks/bow-elven.png
        require_amla=bow2
        [effect]
            apply_to=attack
            name=bow
            increase_damage=1
            [set_specials] <-- добовляет особенность
                {WEAPON_SPECIAL_MARKSMAN} <-- что за особенность добавляется
            [/set_specials]
        [/effect]
    ) {VARIANT_NAME}}
#enddef
На закуску - добавление особенности к атаке.

#define KALEH
    id=Kaleh
    race=elf
    name= _ "Kaleh of the Quenoth Elves"
    image=units/elves-desert/kaleh.png
    movement_type=woodland
    #desert elves move fast across the sands, but are not used to forests
    #they are also a bit faster in caves
    [movement_costs]
        sand=1
        forest=2
        cave=2
        frozen=3
    [/movement_costs]
    [defense]
        sand=40
        forest=50
    [/defense]
    movement=5
    profile=portraits/kaleh.png
    alignment=lawful
    [leading_anim]
        [frame]
            begin=-150
            end=150
            image=units/elves-desert/kaleh-leading.png
        [/frame]
    [/leading_anim]
    advances_to=null
    cost=14
    usage=fighter
    description= _ "Kaleh is still a young Elf of the Quenoth, on the verge of adulthood. He trained with his father with the bow and sword, joining him in lighter expeditions and raids. When his father was lost, Kaleh became more serious and solemn than is usual for those who walk under the two suns. He turned inwards for answers and guidance, not knowing how much his people would look towards him for guidance in times to come."+{SPECIAL_NOTES}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_MARKSMAN}+{SPECIAL_NOTES_SLOW}
    die_sound={SOUND_LIST:ELF_HIT}
    {DEFENSE_ANIM_RANGE "units/elves-desert/kaleh-defend.png" units/elves-desert/kaleh.png {SOUND_LIST:ELF_HIT} melee}
    {DEFENSE_ANIM_RANGE "units/elves-desert/kaleh-ranged-defend.png" units/elves-desert/kaleh-ranged.png {SOUND_LIST:ELF_HIT} ranged}
    # Melee damage increased by 1, ranged damage decreased by 1
    [attack]
        name=sword
        description= _"sword"
        type=blade
        range=melee
        damage=5
        number=4
        icon=attacks/sword-elven.png
    [/attack]
    [attack]
        name=bow
        description= _"bow"
        type=pierce
        range=ranged
        damage=2
        number=3
        icon=attacks/bow-elven.png
    [/attack]
    [attack_anim]
        [filter_attack]
            name=bow
        [/filter_attack]
        [missile_frame]
            begin=-100
            end=0
            image=projectiles/missile-n.png
            image_diagonal=projectiles/missile-ne.png
        [/missile_frame]
        [frame]
            begin=-445
            end=-380
            image="units/elves-desert/kaleh-ranged.png"
        [/frame]
        [if]
            hits=yes
            [frame]
                begin=-380
                end=-305
                image="units/elves-desert/kaleh-ranged-1.png"
                sound=bow.ogg
            [/frame]
        [/if]
        [else]
            hits=no
            [frame]
                begin=-380
                end=-305
                image="units/elves-desert/kaleh-ranged-1.png"
                sound=bow-miss.ogg
            [/frame]
        [/else]
        [frame]
            begin=-305
            end=-230
            image="units/elves-desert/kaleh-ranged-2.png"
        [/frame]
        [frame]
            begin=-230
            end=-130
            image="units/elves-desert/kaleh-ranged-3.png"
        [/frame]
        [frame]
            begin=-130
            end=-100
            image="units/elves-desert/kaleh-ranged-4.png"
        [/frame]
        [frame]
            begin=-100
            end=0
            image="units/elves-desert/kaleh-ranged-4.png"
        [/frame]
        [frame]
            begin=0
            end=65
            image="units/elves-desert/kaleh-ranged.png"
        [/frame]
    [/attack_anim]
    [attack_anim]
        [filter_attack]
            name=sword
        [/filter_attack]
        [frame]
            begin=-200
            end=-100
            image=units/elves-desert/kaleh-melee-1.png
        [/frame]
        [if]
            hits=yes
            [frame]
                begin=-100
                end=100
                image=units/elves-desert/kaleh-melee-2.png
                sound={SOUND_LIST:SWORD_SWISH}
            [/frame]
        [/if]
        [else]
            hits=no
            [frame]
                begin=-100
                end=100
                image=units/elves-desert/kaleh-melee-2.png
                sound={SOUND_LIST:MISS}
            [/frame]
        [/else]
        [frame]
            begin=100
            end=200
            image=units/elves-desert/kaleh.png
        [/frame]
    [/attack_anim]
#enddef
Собственно, сам боец. В дефайне, т.к. особые причины.

[unit_type] <-- ну вы поняли
    {KALEH} <-- берёт дефайн нашего бойца. тот самый, да.
    hitpoints=28
    experience=22
    level=1
    [variation] <-- один из вариантов, стартовый.
        {KALEH}
        variation_name=Youth
        inherit=no
        level=1
        hitpoints=28
        experience=22
        name= _ "Desert Youth"
        {KALEH_SWORD_FIRST  Fighter} <-- в кого превратиться наш боец, выбрав определённые улучшения
        {KALEH_BOW_FIRST    Fighter}
    [/variation]
    # Generic Fighter variation tree.
#define KALEH_FIGHTER VARIANT_NAME <-- доступные бойцу в определённой вариации улучшения
    {KALEH_BOLAS        {VARIANT_NAME}}
    {KALEH_SWORD        {VARIANT_NAME}}
    {KALEH_BOW          {VARIANT_NAME}}
    {KALEH_BOW2         {VARIANT_NAME}}
    {KALEH_BOW3         {VARIANT_NAME}}
    {KALEH_CAMOUFLAGE   {VARIANT_NAME}}
    {KALEH_SUSTENANCE   {VARIANT_NAME}}
    {KALEH_ARMOR        {VARIANT_NAME}}
    {KALEH_STUN         {VARIANT_NAME}}
#enddef
    [variation]
        {KALEH}
        variation_name=Fighter
        inherit=no
        level=1
        hitpoints=28
        experience=28
        name= _ "Desert Fighter"
        {KALEH_LEADERSHIP   Captain } <--
        {KALEH_SWORD2       Hero    }    <-- ну понятно.
        {KALEH_FIGHTER      Fighter1}    <--
    [/variation]
[/unit_type]
Вот и особые причины. В зависимости от выбранных улучшений, боец будет изменяться. Также буддут заблокированы некоторые улучшения.

За сим заканчиваю свой труд, удачного мододельства. Полный вариант разобранного здесь файла лежит по адресу data/campaigns/Under_the_Burning_Suns/units/Kaleh.cfg
Если интересно, можете посмотреть.

P.S. Я надеюсь, что ничего не забыл. Если что - пишите.
« Последнее редактирование: Август 09, 2011, 22:32:09 от LightWarrior »