Главная » Статьи » Моддинг » Коддинг

Новая способность для Боромира "призвать воинов Гондора"
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 отряда Гондорских солдат навсегда (можно сделать что-бы на время)


Категория: Коддинг | Добавил: SFS (13.09.2014)
Просмотров: 2283 | Комментарии: 12 | Теги: Боромир, ini, солдаты Гондора. | Рейтинг: 4.8/16
Комментарии (12):
avatar
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
Не могу сделать Лес Эльфов и сделать что бы бойцы не тупо умирали при окончании времени, а исчезали в дымке, подскажи пожалуйста, где искать?
avatar
3 Diman1812 • 09:36, 06.05.2018

И как сделать их на время?
avatar
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
avatar
5 Diman1812 • 07:11, 07.05.2018
ObjectNames = GondorFighterHorde_Summoned - так его надо же сначала в хордах сделать, ведь так? Пытался слямзить от Эльфов! Не получается!
avatar
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
Полоска времени есть, доходит до конца, бойцы не исчезают!
avatar
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
avatar
8 Diman1812 • 19:43, 08.05.2018
Не получилось! Скинул для BFME 2!
avatar
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
avatar
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
avatar
11 Diman1812 • 20:04, 08.05.2018
Вобщем попробую эту способность у Боромира доделать до конца, выложу сюда потом
avatar
2 Oversun • 13:25, 10.03.2015
Спасибо, сработало. Подскажите пожалуйста, как сделать:
1) Призыв в определенные координаты относительно призывающего, т.е. без доп. курсоров, одним кликом. Можно ли задать угол, под которым появятся призванные объекты?
2) Одноразовый призыв, без возможности повторить его (желательно чтоб исчезла кнопка призыва)
3) При возможности нескольких призывов разными кнопками (допустим, лучники/мечники/копейщики), призваь только один, с невозможностью у этого объекта использовать другие призывы.
Благодарю.
avatar
1 SFS • 18:15, 31.08.2015
1) наверно можно, если аблитку настроить, не пробовал.
2) можно в  SpecialPower сделать время 9999999 и сделать кнопку быстрого ввода, как в строительстве приюта орков T (как не знаю, но если можно то пропиши) и спрятать за палантир, не будет видно, нельзя повторно использовать т.к никто наверное столько времени ждать не будет.
3) не знаю но наверное можно в 2 серии как-нибудь
avatar