Главная » Уроки » Моддинг » Кодинг » Новая способность для Боромира "призвать воинов Гондора"

Новая способность для Боромира "призвать воинов Гондора"

Ini.big адреса :
data\ini\commandbutton.ini
data\ini\commandset.ini
data\ini\experiencelevels.ini
data\ini\object\goodfaction\units\gondor\boromir.ini
data\ini\objectcreationlist.ini
data\ini\specialpower.ini

в commandbuttin.ini ищите это:
CommandButton Command_SpawnOathbreakers
Command = SPECIAL_POWER
SpecialPower = SuperweaponSpawnOathbreakers
TextLabel = CONTROLBAR:Oathbreakers
ButtonImage = UCOathbreaker_OathTimer
Options = NEED_TARGET_POS CONTEXTMODE_COMMAND
RadiusCursorType = SUMMON_OATH_BREAKERS
CursorName = Bombard
InvalidCursorName = GenericInvalid
ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:TooltipOathbreakers
InPalantir = Yes
;UnitSpecificSound = AragornVoiceSummonOathbreakers
;AutoAbility = Yes ;
;TriggerWhenReady = Yes ;
End

снизу пишите это:
CommandButton Command_SpawnGondorFighter
Command = SPECIAL_POWER
SpecialPower = SuperweaponSpawnGondorFighter
TextLabel = CONTROLBAR:ConstructGondorFighterHorde - на сайте есть тутор по тексту
ButtonImage = BGBarracks_Soldiers - для добавления новых иконок есть тутор от меня
Options = NEED_TARGET_POS CONTEXTMODE_COMMAND
RadiusCursorType = SUMMON_OATH_BREAKERS
CursorName = Bombard
InvalidCursorName = GenericInvalid
ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is
DescriptLabel = ToolTipBuildGondorFighterHorde - на сайте есть тутор по тексту
InPalantir = Yes
;UnitSpecificSound = AragornVoiceSummonOathbreakers
;AutoAbility = Yes ;
;TriggerWhenReady = Yes ;
End
(с названием и описанием проблема)

далее commandset ищите boromircommandset

и заменяйте на это

CommandSet BoromirCommandSet
1 = Command_SpecialAbilityBoromirForGondor ;
2 = Command_SpecialAbilityHornOfGondor
3 = Command_SpecialAbilityCaptainOfGondorBoromir
; 3 = Command_BoromirLastStandFakeButton
4 = Command_SpawnGondorFighter
13 = Command_AttackMove
14 = Command_Stop

теперь experiencelevels.ini

ищите boromirlevel10

и где rank = 10 снизу этого вставьте это:

Upgrades = Upgrade_AragornOathbreakers
(способность взята с призыв мёртвых у Арагорна)

переходим в data\ini\object\goodfaction\units\gondor\boromir.ini

там где ;--------------------- Start Leadership bonus ---------------

сверху это вставляйте это:

;---------------------------------Fighter-----------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_BoromirFighterEnabler
SpecialPowerTemplate = SuperweaponSpawnGondorFighter
TriggeredBy = Upgrade_AragornOathbreakers
End

Behavior = OCLSpecialPower ModuleTag_OCLSpecialPower
SpecialPowerTemplate = SuperweaponSpawnGondorFighter
OCL = OCL_GondorFighter
CreateLocation = CREATE_AT_LOCATION
StartsPaused = Yes
SetModelCondition = ModelConditionState:USER_1
SetModelConditionTime = 8.1
End

data\ini\objectcreationlist.ini ищите:

; ---------------------------------------------------------------------------------------
ObjectCreationList OCL_GondorArmyofTheDeadEggSmall
; The egg is going to die (hatch) immediately, and play the FXLists, then wait, then do the Finish below
CreateObject
ObjectNames = GondorArmyofTheDeadSmallEgg
UseJustBuiltFlag = Yes
Count = 1
Disposition = LIKE_EXISTING
IgnoreCommandPointLimit = Yes
End
End

снизу вставляйте это:

; ---------------------------------------------------------------------------------------
ObjectCreationList OCL_GondorFighter
CreateObject
ObjectNames = GondorFighterHorde - призываемый объект
UseJustBuiltFlag = Yes
Count = 3 - кол-во отрядов Гондора
Disposition = LIKE_EXISTING
IgnoreCommandPointLimit = Yes
End
End

теперь specialpower.ini

там где SpecialAbilityHornOfGondor
внизу вставьте это:

; -----------------------------------------------------------------------------
SpecialPower SuperweaponSpawnGondorFighter
Enum = SPECIAL_SPAWN_OATHBREAKERS
ReloadTime = 150000 ; in milliseconds
PublicTimer = No
RadiusCursorRadius = 100.0
End

всё, теперь Боромир призывает 3 отряда Гондорских солдат навсегда (можно сделать что-бы на время)
Категория: Кодинг | Добавил:
Просмотров: 3238 | Комментарии: 12 | Теги: Боромир, солдаты Гондора., ini | Рейтинг: 4.8/17

1 2 »
Комментарии (12):
12 Diman1812 • 10:38, 09.05.2018
В OCL сделал так, что бы стояли треугольником:
; --------------------------------------------------------------------------------- ------  
  ObjectCreationList OCL_GondorFighter  
  CreateObject  
  ObjectNames = GondorFighterHorde_Summoned
  UseJustBuiltFlag = Yes  
  Count = 3 
        Disposition = SPAWN_AROUND
        DispositionAngle = 120    ;SpawnAround uses this as the arc between guys
        DispositionIntensity = 200 ; and this for distance from center
 
  IgnoreCommandPointLimit = Yes  
  End  
  End
И добавил звук горна:
; ----------------------------------------------------------------------------- 
SpecialPower SuperweaponSpawnGondorFighter 
Enum = SPECIAL_SPAWN_OATHBREAKERS 
ReloadTime = 150000 ; in milliseconds 
PublicTimer = No 
RadiusCursorRadius = 100.0 
    InitiateAtLocationSound    = SpellElvenSummon
End
Не могу сделать Лес Эльфов и сделать что бы бойцы не тупо умирали при окончании времени, а исчезали в дымке, подскажи пожалуйста, где искать?
11 Diman1812 • 20:04, 08.05.2018
Вобщем попробую эту способность у Боромира доделать до конца, выложу сюда потом
10 Diman1812 • 19:48, 08.05.2018
В командах убрал кнопки апгрейда:
CommandSet GondorFighterHordeCommandSet_Summoned
    1 = Command_Guard
    2 = Command_ToggleFormationGondorFighter
    13 = Command_AttackMove
    14 = Command_Stop
        15 = Command_Guard
End
9 Diman1812 • 19:45, 08.05.2018
ChildObject GondorFighterHorde_Summoned GondorFighterHorde 
      IsTrainable      =    No 
      CommandPoints =    0 
      CommandSet      =    GondorFighterHordeCommandSet_Summoned 
      EquivalentTo  =    GondorFighterHorde 

      DisplayName  =  OBJECT:HordeGondorSoldier 

      Behavior = HordeContain ModuleTag_HordeContain 
          ObjectStatusOfContained =   

          InitialPayload = GondorFighter_Summoned 5
          Slots = 5 
          PassengerFilter    = NONE +INFANTRY 
          ShowPips = No 
          ThisFormationIsTheMainFormation = Yes 
          RandomOffset=X:0 Y:0 

          RankInfo = RankNumber:1 UnitType:GondorFighter_Summoned Position:X:50 Y:0            Position:X:50 Y:20            Position:X:50 Y:-20            Position:X:50 Y:40            Position:X:50 Y:-40   
          RankInfo = RankNumber:2 UnitType:GondorFighter_Summoned Position:X:30 Y:0            Position:X:30 Y:20            Position:X:30 Y:-20            Position:X:30 Y:40            Position:X:30 Y:-40            
          RankInfo = RankNumber:3 UnitType:GondorFighter_Summoned Position:X:10 Y:0            Position:X:10 Y:20            Position:X:10 Y:-20            Position:X:10 Y:40            Position:X:10 Y:-40               
            
          RanksToReleaseWhenAttacking = 1 
          MeleeAttackLeashDistance = 1      

          AlternateFormation = GondorFighterHordeBlock 
          BackUpMinDelayTime         = 1  
          BackUpMaxDelayTime         = 3000  
          BackUpMinDistance         = 1  
          BackUpMaxDistance         = 3  
          BackupPercentage         = 80%  
          End 
        
      Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate 
 
          MinLifetime        = 120000 
          MaxLifetime        = 120000 
          DeathType        = FADED 
      End      

End
8 Diman1812 • 19:43, 08.05.2018
Не получилось! Скинул для BFME 2!
0
7 SauronGreat • 10:55, 07.05.2018
"Делать" их не надо, они уже есть в оригинале. Я же написал, что в нашем конкретном случае достаточно название призываемого объекта сменить.
А так да, если изначально отряд со временной жизнью не прописан, надо его добавить.

И да, если хотите подобный отряд создать, помимо хорды надо еще отдельный объект самого юнита сделать, где также должен быть прописан блок LifetimeUpdate.
+в самой хорде нужен блок HordeContain с измененным названием объектов хорды.

Вот там выдержки из оригинала. Это сам юнит:
Код
//------------------------------------------------------------------------------
ChildObject GondorFighter_Summoned GondorFighter
      IsTrainable = No
      CommandPoints = 0
      EquivalentTo = GondorFighter
      Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
      // This one does the work, but the one in the horde displays the timer
          MinLifetime        = CREATE_A_HERO_REINFORCEMENT_LIFETIME
          MaxLifetime        = CREATE_A_HERO_REINFORCEMENT_LIFETIME
          DeathType        = FADED
      End      
End


Это хорда юнита:
Код
ChildObject GondorFighterHorde_Summoned GondorFighterHorde
      IsTrainable      =    No
      CommandPoints =    0
      CommandSet      =    GondorFighterHordeCommandSet_Summoned
      EquivalentTo  =    GondorFighterHorde

      DisplayName  =  OBJECT:HordeGondorSoldier

      Behavior = HordeContain ModuleTag_HordeContain
          FrontAngle = 270
          FlankedDelay = 2000
          ObjectStatusOfContained =   

          InitialPayload = GondorFighter_Summoned GOOD_MEN_GIANT_HORDE_SIZE
          Slots = 15
          PassengerFilter    = NONE +INFANTRY
          ShowPips = No
          ThisFormationIsTheMainFormation = Yes    //Used to determine which armorset to use (and anything else we want!)
          RandomOffset=X:0 Y:0
          MeleeBehavior = Amoeba
          End

          RankInfo = RankNumber:1 UnitType:GondorFighter_Summoned Position:X:50 Y:0            Position:X:50 Y:20                Position:X:50 Y:-20                Position:X:50 Y:40                Position:X:50 Y:-40   
          RankInfo = RankNumber:2 UnitType:GondorFighter_Summoned Position:X:30 Y:0 Leader 1 0    Position:X:30 Y:20 Leader 1 1    Position:X:30 Y:-20 Leader 1 2    Position:X:30 Y:40 Leader 1 3    Position:X:30 Y:-40 Leader 1 4
          RankInfo = RankNumber:3 UnitType:GondorFighter_Summoned Position:X:10 Y:0 Leader 2 0    Position:X:10 Y:20 Leader 2 1    Position:X:10 Y:-20 Leader 2 2    Position:X:10 Y:40 Leader 2 3    Position:X:10 Y:-40 Leader 2 4
            
          RanksToReleaseWhenAttacking = 1   

          AlternateFormation = GondorFighterHordeBlock
          MeleeAttackLeashDistance = 1   //How far the hordes    can    move from the center of    the    horde when melee attacking.                    
          BackUpMinDelayTime         = 1    //The minimum amount of    time to    delay before backing up
          BackUpMaxDelayTime         = 3000    //The maximum amount of    time to    delay before backing up
          BackUpMinDistance         = 1    //The minimum number of    cells to backup
          BackUpMaxDistance         = 3    //The maximum number of    cells to backup
          BackupPercentage         = 80%    //The amount of    chance that    a unit will    back up.
      End
        
      Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
      // This one displays the timer, but the one in the uint does the work   
          MinLifetime        = CREATE_A_HERO_REINFORCEMENT_LIFETIME
          MaxLifetime        = CREATE_A_HERO_REINFORCEMENT_LIFETIME
          DeathType        = FADED
      End      

End
6 Diman1812 • 07:46, 07.05.2018
Сделал так:
ChildObject GondorFighterHorde_Summoned GondorFighterHorde
    IsTrainable = No
    CommandPoints = 0

    KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ARCHER MELEE_HORDE SUMMONED
    
    Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
        MinLifetime        = 90000 ; 120000
        MaxLifetime        = 90000 ; 120000
        DeathType        = FADED
    End    
End
Полоска времени есть, доходит до конца, бойцы не исчезают!
5 Diman1812 • 07:11, 07.05.2018
ObjectNames = GondorFighterHorde_Summoned - так его надо же сначала в хордах сделать, ведь так? Пытался слямзить от Эльфов! Не получается!
1
4 SauronGreat • 22:29, 06.05.2018
В данном конкретном случае достаточно заменить GondorFighterHorde на GondorFighterHorde_Summoned в OCL. Т.е. вместо:
Код
; --------------------------------------------------------------------------------- ------  
  ObjectCreationList OCL_GondorFighter  
  CreateObject  
  ObjectNames = GondorFighterHorde
  UseJustBuiltFlag = Yes  
  Count = 3
  Disposition = LIKE_EXISTING  
  IgnoreCommandPointLimit = Yes  
  End  
  End

Прописать так:
Код
; --------------------------------------------------------------------------------- ------  
  ObjectCreationList OCL_GondorFighter  
  CreateObject  
  ObjectNames = GondorFighterHorde_Summoned
  UseJustBuiltFlag = Yes  
  Count = 3
  Disposition = LIKE_EXISTING  
  IgnoreCommandPointLimit = Yes  
  End  
  End
3 Diman1812 • 09:36, 06.05.2018

И как сделать их на время?
1-10 11-12