Register and log in to move these advertisements down
The Special Power Guide
Ridder Blauw
|
Category: |
Code |
Level: |
Intermediate
|
Created: |
Wednesday March 25, 2009 - 9:41 |
Updated: |
Friday May 28, 2010 - 15:36 |
Views: |
12090 |
Summary: |
Here you will read and learn tips and tricks about special powers. |
|
Rating
Staff says
3.7
|
Members say
4.0
|
Average
3.9/5.0
|
9 votes
|
Firing Word of Power on Wound Arrow
This tutorial will show you how to add a Wound Arrow that carries Word of Power to a hero of your choice.
Level: Begginer (Though this depends on how much you want to fool around with this)
INI's Needed:
'Your Hero'.ini *The hero you will be editing
Goodfactionsubobjects.ini
To start of we must create a new arrow for the spell. Open the file goodfactionsubobjects.ini.
Goodfactionsubobjects.ini
Now scroll down all the way and past this piece of code:
Code |
Object FaramirSpecialArrow
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
DefaultModelConditionState
Model = RULegolas_AROW
ParticleSysBone NONE FaramirArrowTrail
End
IdleAnimationState
Animation = RULegolas_AROW
AnimationName = RULegolas_AROW.RULegolas_AROW
AnimationMode = LOOP
End
End
End
; *** AUDIO Parameters ***
; ***DESIGN parameters ***
EditorSorting = SYSTEM
ArmorSet
Armor = NoArmor
End
VisionRange = 0.0
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE NO_COLLIDE HIDE_IF_FOGGED SCARY
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
End
;Behavior = DestroyDie ModuleTag_03
; nothing
;End
Behavior = SlowDeathBehavior ModuleTag_03
SinkDelay = 0
DestructionDelay = 250
End
Behavior = BezierProjectileBehavior ModuleTag_04
; To tweak a Bezier path
DetonateCallsKill = Yes
FirstHeight = 9 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 9
FirstPercentIndent = 20% ; Percentage of shot distance control points are placed
SecondPercentIndent = 90%
FlightPathAdjustDistPerSecond = 50 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. (45 is default human speed)
GroundHitFX = FX_WoundingArrowHit
CurveFlattenMinDist = 100.0
End
Behavior = FXListDie ModuleTag_07
DeathTypes = ALL
DeathFX = FX_WoundingArrowHit
End
Geometry = Sphere
GeometryIsSmall = Yes
GeometryMajorRadius = 0.8
End |
At the moment it is just a copy of Faramir's Wound Arrow object, so we will start with renaming the arrow.
Code |
Object FaramirSpecialArrow |
Because my hero is named Plaffie I will call the object:
Code |
Object PlaffieSpecialArrow |
Next go to the end of the object and look at this piece of code:
Code |
Behavior = FXListDie ModuleTag_07
DeathTypes = ALL
DeathFX = FX_WoundingArrowHit
End |
Replace it with this piece of code:
Code |
Behavior = FXListDie ModuleTag_07
DeathTypes = ALL
DeathFX = FX_GandalfPreAttackBlast ;This allows you to see the wop fx at the destruction of the arrow. Without this block there is no fx.
End
Behavior = FireWeaponWhenDeadBehavior ModuleTag_07Weapon
StartsActive = Yes ;No need to give an upgrade to let this happen.
DeathWeapon = GandalfWordOfPower ; This tells what weapon must be fired, in this spell Word of Power.
End |
The whole object should now look like this:
Code |
Object PlaffieSpecialArrow
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
DefaultModelConditionState
Model = RULegolas_AROW
ParticleSysBone NONE FaramirArrowTrail
End
IdleAnimationState
Animation = RULegolas_AROW
AnimationName = RULegolas_AROW.RULegolas_AROW
AnimationMode = LOOP
End
End
End
; *** AUDIO Parameters ***
; ***DESIGN parameters ***
EditorSorting = SYSTEM
ArmorSet
Armor = NoArmor
End
VisionRange = 0.0
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE NO_COLLIDE HIDE_IF_FOGGED SCARY
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
End
;Behavior = DestroyDie ModuleTag_03
; nothing
;End
Behavior = SlowDeathBehavior ModuleTag_03
SinkDelay = 0
DestructionDelay = 250
End
Behavior = BezierProjectileBehavior ModuleTag_04
; To tweak a Bezier path
DetonateCallsKill = Yes
FirstHeight = 9 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 9
FirstPercentIndent = 20% ; Percentage of shot distance control points are placed
SecondPercentIndent = 90%
FlightPathAdjustDistPerSecond = 50 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. (45 is default human speed)
GroundHitFX = FX_WoundingArrowHit
CurveFlattenMinDist = 100.0
End
Behavior = FXListDie ModuleTag_07
DeathTypes = ALL
DeathFX = FX_GandalfPreAttackBlast ;This allows you to see the wop fx at the destruction of the arrow. Without this block there is no fx.
End
Behavior = FireWeaponWhenDeadBehavior ModuleTag_07Weapon
StartsActive = Yes ;No need to give an upgrade to let this happen.
DeathWeapon = GandalfWordOfPower ; This tells what weapon must be fired, in this spell Word of Power.
End
Geometry = Sphere
GeometryIsSmall = Yes
GeometryMajorRadius = 0.8
End |
That's it for the Arrow object, next we will look at the Weapon.ini.
Weapon.ini
So now again we scroll all the way down, but now we paste this:
Code |
;------------------------------------------------------------------------------
Weapon PlaffieSpecialArrow ; Arrow name has been changed so the game does not confuse it with Faramir's wound arrow.
AttackRange = FARAMIR_WOUNDING_ARROW_RANGE
LeechRangeWeapon = Yes
WeaponSpeed = 321 ; dist/sec
MinWeaponSpeed = 241
MaxWeaponSpeed = 481 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
FireFX = FX_FaramirWoundingArrow
ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
HitPercentage = 100 ;When this weapon is used it will hit exactly 75% of the time.
ScatterRadius = 0.0 ;When this weapon misses it can randomly miss by as much as this distance.
DelayBetweenShots = 15000 ; time between shots, msec
PreAttackDelay = 1 ; we want isntant
PreAttackType = PER_POSITION
FiringDuration = 1 ; Duration of the archer firing shot is 500ms.
ClipSize = 1
AutoReloadsClip = Yes
AutoReloadWhenIdle = 1
ClipReloadTime = Min:FARAMIR_BOW_RELOADTIME_MIN Max:FARAMIR_BOW_RELOADTIME_MAX
AntiAirborneVehicle = Yes
AntiAirborneMonster = Yes
PreferredTargetBone = B_LLLID ; Likes to shoot things in their left eye.
ProjectileNugget ; A Nugget that creates an Object and sends it to the target with a Warhead
ProjectileTemplateName = PlaffieSpecialArrow ; References the arrow object we just created.
WarheadTemplateName = PlaffieSpecialArrowWarhead ; References the warhead that actually gives damage.
End
End
;------------------------------
Weapon PlaffieSpecialArrowWarhead ; The name of the arrow's warhead has been changed so the game does not confuse it with Faramir's arrow warhead.
ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS
RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
HitStoredTarget = Yes ; Always hits initial target.
DamageNugget ; A basic Nugget that just does damage
Damage = FARAMIR_WOUNDING_ARROW_DAMAGE
DamageScalar = 10% NONE +STRUCTURE +MordorCatapult +IsengardBallista +GondorTrebuchet +GondorTrebuchetWall
DamageScalar = 300% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
DamageScalar = 150% NONE +MordorMountainTroll +MordorCaveTroll +MordorDrummerTroll
DamageScalar = 200% NONE +RohanTreeBerd +RohanEntFir +RohanEntBirch +RohanEntFir_Summoned +RohanEntBirch_Summoned
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = HERO
DamageFXType = GOOD_ARROW_PIERCE
DeathType = NORMAL
End
; ;
DamageNugget ; A basic Nugget that just does damage
Damage = FARAMIR_WOUNDING_ARROW_DAMAGE
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = CAVALRY
DamageFXType = REFLECTED ; ;
DeathType = EXPLODED
SpecialObjectFilter = NONE +HERO -MONSTER
End
EmotionWeaponNugget
EmotionType = TERROR
Radius = 0
Duration = 5
SpecialObjectFilter = ANY ENEMIES +MONSTER
End
End |
I have commented what I have edited from the original Faramir Wound Arrow. Next we will open the 'Your Hero'.ini.
'Your Hero'.ini
Scroll the special power section and paste this:
Code |
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseWoundArrow
SpecialPowerTemplate = SpecialAbilityWoundArrow
TriggeredBy = (Fill in the upgrade that activates the special power here, for more info on this check preceding tutorials.)
End
Behavior = SpecialPowerModule ModuleTag_WoundArrow
SpecialPowerTemplate = SpecialAbilityWoundArrow
UpdateModuleStartsAttack = Yes
InitiateSound = FaramirRangerVoiceWoundingArrow
StartsPaused = Yes
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_WoundArrowUpdate
SpecialPowerTemplate = SpecialAbilityWoundArrow
SkipContinue = Yes
UnpackTime = 2000
PreparationTime = 1
PersistentPrepTime = 1000
PackTime = 1
AwardXPForTriggering = 0
StartAbilityRange = #SUBTRACT( FARAMIR_WOUNDING_ARROW_RANGE 25 )
ApproachRequiresLOS = Yes
SpecialWeapon = PlaffieSpecialArrow ; References to the weapon we made earlier.
WhichSpecialWeapon = 1
End
Behavior = AutoAbilityBehavior ModuleTag_WoundArrowAutoAbility
SpecialAbility = SpecialAbilityWoundArrow
MaxScanRange = #SUBTRACT( FARAMIR_WOUNDING_ARROW_RANGE 25 )
Query = 1 ALL ENEMIES -STRUCTURE
End |
I have commented what I have edited. Remember that problems may occure if the hero already has Wounding Arrow as a power. Now you only have to add Command_SpecialAbilityWoundArrow to the hero's commandset.
That's all for this tutorial, if you uncover a mistake in this tutorial or fool around further you can always contact me for help. Links / DownloadsCommentsDisplay order: Newest first | Page: 1, 2 clank234 - Tuesday November 16, 2010 - 12:41 I gave a 5
1) A lot off effort just to help others which i love to see a lot.
2) Can i hav some help with Summon Balrog, when i try to play it crashes and the upgrade.ini isnt right Ridder Blauw - Monday August 23, 2010 - 6:05 That means the thing that is filled in at Attackrange in the weapon is wrong.
Or the macro there doesnt exsist or the characters filled in are wrong. SkillModLord - Friday August 20, 2010 - 0:02 Weapon.ini
That part where you combine woundarrow with Word of Power goes wrong.
When I put the piece of code you written there in my weapon.ini and correct it as you said, I try to start up the game and it says that attacktange in the file weapon.ini isnt good. I try to put other command first under the wounding arrow but then the the same bug appears with the new command first :S Shininku - Sunday September 13, 2009 - 18:53 This was pretty awesome guide and it helped me to fix up my powers. But I think I need help. I've set up my hero so that he can summon a BlackRider (Ringwraith w/e) at level 10. When my character gets to level 10, Blackrider icon lights up like it's usable. But when I click it, nothing happens. I don't get the little summoning area thing. What'd I do wrong? drogoth232 - Wednesday September 9, 2009 - 14:07 In the coding part. Will sam have the throwing anims? Ridder Blauw - Wednesday August 19, 2009 - 8:34 That's modeling and coding. ;)
--------
Added a Two Part tutorial to continue the Editing Projectile Spells tutorial, New Projectile Spells! ;):);) Spartan184 - Wednesday June 24, 2009 - 18:09 I tryed adding Summon Balrog to Saruman and it crashed its for bfme1.
Nevermind Fixed it. Thanks a lot UR THE BEST!!!
For the Gimli thing for instead of haveing a axe he has a Spear can we change the weopen like say sarumans staff or something? Ridder Blauw - Sunday May 10, 2009 - 22:26 The code calls them dozers in the code block DOZER_CONSTRUCT don't they?
--------
Didn't get at first why you brought it up, so would you forgive me.
And thanks. Prolong - Sunday May 10, 2009 - 19:57 DOZERs are Builder/Porters
Go to top
|