Здравствуйте! Авторизуйтесь или зарегистрируйтесь, чтобы использовать полный функционал сайта
Быстрая авторизация через соцсети:

Главная » Статьи » Моддинг » Коддинг
Последний бой Боромира

Нам понадобится программа FinalBig 0.4.
Нужные нам файлы - ini.big, data1.big (оба находятся в папке игры, для BFME I файл просто data.big).

 

Итак, для начала объясню принцип действия:

При определенных повреждениях здоровья (указывается определенное значение HP), Боромир переходит в состояние аффекта "angry" (кодовое название разрабов).
При этом используется уникальное оружие (у тролля RAMPAGE) и анимация.

 

Первым действием пропишем скрипты:
В файле data.big проходим по адресу
data\scripts\scriptevents.xml
Вбиваем в поиск (Ctrl+F) это:

BoromirFunctions

 

Видим следующее:

    <EventList Name="BoromirFunctions" Inherit="BaseScriptFunctions">
        <!-- This contains events specific to Boromir -->
        <EventHandler EventName="UsingSpecialOne"        ScriptFunctionName="RadiateUncontrollableFear"    DebugSingleStep="false"/>
    </EventList>

 

Вставляем строку:

        <EventHandler EventName="ReallyDamaged"    ScriptFunctionName="GoIntoRampage" DebugSingleStep="false"/>

 

Следующим образом:

    <EventList Name="BoromirFunctions" Inherit="BaseScriptFunctions">
        <!-- This contains events specific to Boromir -->
        <EventHandler EventName="UsingSpecialOne"    ScriptFunctionName="RadiateUncontrollableFear"    DebugSingleStep="false"/>
        <EventHandler EventName="ReallyDamaged"    ScriptFunctionName="GoIntoRampage" DebugSingleStep="false"/>
    </EventList>

(Перевожу: при реальных повреждениях включается скрипт "GoIntoRampage". А, собственно, этот скрипт устанавливает условие (Condition) WEAPONSET_RAMPAGE).

 

Боромиру в иник (data>ini>object>goodfaction>units>men>boromir.ini)
Дописываем оружие:

    WeaponSet
        Conditions = RAMPAGE
        Weapon = PRIMARY    BoromirLastSword
        ;AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
    End

 

И следующие параметры:

;/////// LAST STAND ABILITY //////////////////////////////////
    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_LastStand
        SpecialPowerTemplate = SpecialAbilityLastStand
        TriggeredBy = Upgrade_BoromirLastStand
    End

    Behavior = SpecialPowerModule ModuleTag_LastStandUpdate
        SpecialPowerTemplate = SpecialAbilityLastStand
        UpdateModuleStartsAttack     = No
        StartsPaused     = Yes
    End  
;//////////////////////////////////////////////////////////////////

 

Блок RespawnBody заменяем на этот:

    Body = DelayedDeathBody ModuleTag_DelayedDeathBody ;DelayedDeath is a variation of RespawnBody
        CheerRadius                      = EMOTION_CHEER_RADIUS
        MaxHealth                        = BOROMIR_HEALTH
        MaxHealthReallyDamaged  = 100
        DelayedDeathTime                 = 16000                       ; Amount of time spent still fighting after being killed
        DelayedDeathPrerequisiteUpgrade  = Upgrade_BoromirLastStand
        InvulnerableFX                   = FX_BoromirLastStand
        PermanentlyKilledByFilter        = NONE        ;Who kills me permanently?
        DodgePercent                     = HERO_DODGE_PERCENT               
    End

 

И добавляем в блок "AIUpdateInterface" эту строку:

        RampageTime                    =    10000

 

И в анимацию добавляем это:

        AnimationState = WEAPONSET_RAMPAGE DYING SPLATTED
            Animation
                AnimationName = GUBoromir_SKL.GUBoromir_SPCE
                AnimationMode = ONCE
            End
        End

        AnimationState = WEAPONSET_RAMPAGE DYING AFLAME
            Animation
                AnimationName = GUBoromir_SKL.GUBoromir_SPCE
                AnimationMode = ONCE
            End
        End

        AnimationState = WEAPONSET_RAMPAGE DYING
            Animation
                AnimationName = GUBoromir_SKL.GUBoromir_SPCE
                AnimationMode = ONCE
            End
        End

        AnimationState        = WEAPONSET_RAMPAGE DAMAGED FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE
            StateName           = LastStandAttacking
            Animation           = SPCB
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCB
                AnimationMode     = ONCE
            End
            Animation           = SPCC
                AnimationName    = GUBoromir_SKL.GUBoromir_SPCC
                AnimationMode     = ONCE
            End
            FXEvent    = Frame:25 Name: FX_BladeMasterHitOrient
        End

        AnimationState        = WEAPONSET_RAMPAGE DAMAGED FIRING_OR_PREATTACK_A
            StateName           = LastStandAttacking
            Animation           = SPCB
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCB
                AnimationMode     = ONCE
                UseWeaponTiming        = Yes
            End
            Animation           = SPCC
                AnimationName    = GUBoromir_SKL.GUBoromir_SPCC
                AnimationMode     = ONCE
                UseWeaponTiming        = Yes
            End

            FXEvent    = Frame:25 Name: FX_BladeMasterHitOrient
        End

        AnimationState        = WEAPONSET_RAMPAGE DAMAGED ATTACKING
            StateName           = LastStand
            Animation           = ALERT_1
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCA
                AnimationMode     = LOOP ;ONCE
            End
        End

        AnimationState                = WEAPONSET_RAMPAGE DAMAGED LEVELED                         ; This state clears itself in 3 seconds
            StateName = LastStand
            Animation                = LevelUp
                AnimationName        = GUBoromir_SKL.GUBoromir_SPCA
                AnimationMode        = ONCE
            End
        End

        AnimationState                = WEAPONSET_RAMPAGE DAMAGED SELECTED
            StateName = LastStand
            Animation                = ATNB
                AnimationName        = GUBoromir_SKL.GUBoromir_SPCA
                AnimationMode        = LOOP
            End
        End

        AnimationState                = WEAPONSET_RAMPAGE DAMAGED
            StateName = LastStand
            Animation                = LastStand
                AnimationName        = GUBoromir_SKL.GUBoromir_SPCA
                AnimationMode        = LOOP
            End
        End


Затем двигаемся в data>ini>experiencelevels.ini, находим там GondorBoromir и на желаемый уровень (на нём и будет активироваться способность) добавляем строку:

Upgrades = Upgrade_BoromirLastStand

 

Далее проходим по адресу data>ini>specialpower.ini, и вставляем туда это:

;------------------------------------------------------------------------------
SpecialPower SpecialAbilityLastStand
  Enum                = SPECIAL_FAKE_LEADERSHIP_BUTTON
  ReloadTime          = 1 ; in milliseconds
  ;PalantirMovie = PalantirAlert_RohanReinforcements
End

 

И, наконец, в data>ini>weapon.ini:

Weapon BoromirLastSword
    AttackRange        = #MULTIPLY( STANDARD_MELEE_ATTACK_RANGE 3 )
    FireFX              = FX_GondorSwordHit
    RadiusDamageAffects = ENEMIES NEUTRALS
    DelayBetweenShots   = 500            
    ClipSize            = 0
    ClipReloadTime      = 1000
    IgnoreLinearFirstTarget = Yes
    LinearTarget = X: 0.0    Y: 0.0    T:0
    LinearTarget = X: 15.0    Y: 0.0    T:10
    LinearTarget = X:-15.0    Y: 0.0    T:10
    LinearTarget = X: 11.0    Y: 11.0    T:10
    LinearTarget = X:-11.0    Y: 11.0    T:10   
    LinearTarget = X: 14.0    Y: -5.0    T:10
    LinearTarget = X:-14.0    Y: -5.0    T:10
    LinearTarget = X: 11.0    Y: 11.0    T:10
    LinearTarget = X:-11.0    Y: 11.0    T:10

    DamageNugget                       
        Damage        = 450                   
        Radius        = 15.0
        DelayTime     = 0
        DamageType    = HERO
        DamageFXType  = SWORD_SLASH
        DeathType     = NORMAL
        DamageSpeed   = 500.0
    End

    MetaImpactNugget
        ShockWaveAmount   = 40.0
        ShockWaveArc      = 90.0
        ShockWaveRadius   = 20.0
        ShockWaveTaperOff = 1.0
        ShockWaveZMult      = 1.200
        ShockWaveSpeed      = 500.0
    End
End

 

И на нужный уровень вписываем апгрэйд.
В завершении, можно склепать липовую абилку, чтобы была информация о этой способности в игре.




Оценить:
Просмотров: 2969 | Комментарии: 2 | Рейтинг: 5.0/15
Категория: Коддинг | Добавил: SauronGreat (11.02.2011) W
Теги: Boromir Last Stand
ПОХОЖИЕ МАТЕРИАЛЫ

Всего комментариев: 2
avatar
2 Marluk • 23:29, 10.05.2015
эм.. а... сиськи
avatar
1 Journey • 10:44, 20.11.2011
Posts like this brihtgen up my day. Thanks for taking the time.
avatar