Modderecke > Coding

Ring als Bonus

<< < (3/5) > >>

Ealendril der Dunkle:
Du musst einen PassiveAreaBehaviour anstelle eines AttributeBehaviours einbauen. Codes dafür findest du in jeder Statuen.ini.
Ansonsten würde ich es über eine FireWeapon (Stichwort Karsh) regeln, die einen Attribuitemodifier per Nugget an Verbündete abgibt.

Vermilion:
Hab das mit der Karsh Weapon versucht, das mit PassiveAreaBehaviour hab ich net ganz verstanden. Welche Statuen.ini meinst du? Die gibts nicht und keine ini enthält den Begriff "PassiveAreaBehaviour"

Also ich hab bei "Ring" in der "crate.ini folgendes eingefügt:

WeaponSet
      Conditions          = None
      Weapon              = PRIMARY      TheRingWeapon
      AutoChooseSources   = TERTIARY      NONE
End

Dann bei Weapon:

Weapon TheRingWeapon
   RadiusDamageAffects   = ALLIES
   LeechRangeWeapon      = Yes
   AttackRange           = 0.0
   MeleeWeapon           = Yes
   DelayBetweenShots     = 0  ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
   PreAttackDelay        = 0 ;KARSH_SWORD_PREATTACKDEL AY             ; 400 is sword swing delay time before contact with target.
   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
   ;FireFX                = FX_BarrowWightHit   ;FX_GondorSwordHit
   ;FiringDuration        = 2000

   ;DOTNugget                        // A basic Nugget that just does damage
      ;Damage              = 0
      ;AcceptDamageAdd    = Yes
      ;Radius              = 1.0
      ;DelayTime           = 0
      ;DamageType          = HERO
      ;DamageFXType        = SWORD_SLASH
      ;DeathType           = NORMAL
      ;DamageInterval       = 500
      ;DamageDuration       = 1500
      ;DrainLife           = Yes
      ;DrainLifeMultiplier   = 0.2
   ;End
   DamageNugget                        ; A basic Nugget that just does damage
      Damage              = 0
      Radius              = 1.0
      DelayTime           = 0
      DamageType          = MAGIC
      ;DamageFXType        = SWORD_SLASH
      DeathType           = NORMAL
      DrainLife           = Yes
      DrainLifeMultiplier   = 0.2
   End
   AttributeModifierNugget
      AttributeModifier   = TheRingBuff
      ;AntiCategories      = LEADERSHIP BUFF
      SpecialObjectFilter   = ANY +INFANTRY +CAVALRY +HERO +MONSTER +MACHINE -WORKING_PASSENGER -NO_COLLIDE -INERT -IGNORED_IN_GUI -PROJECTILE -NEUTRALGOLLUM -NOT_AUTOACQUIRABLE -WildSpiderling_Slaved -IsengardExplosiveMine -Wyrm -WargSentry NOT_FLYING_UNITS
   End
End

Dann noch folgenden Eintrag bei der attributmodifier.ini:

ModifierList TheRingBuff
   Category               = BUFF ;SPELL ; ;LEADERSHIP
   Modifier               = EXPERIENCE 200% ; ;200%
   Modifier               = ARMOR 50% ; ;50%
   Modifier                = SPEED 900%
   Modifier               = DAMAGE_MULT 200% ; ;150%      // Multiplicitive.  Damage multiplied by this, will compound in multiple bonuses
   Duration               = 0
End


Bringt nichts :-(

Gr Verm   

thepinking:
Das kann auch nicht funktionieren:
Du hast die Waffe mit dem Modifier als Standartwaffe angegeben, und nicht wie Ea sagte per FireWeapon. So wie du das eingebaut hast, würde das nur was bringen wen der Ring angreifen würde, was er nicht tut, da ihm die AI dazu fehlt selbstständig angreifen zu können.
Das FireWeapon das Ea meinte geht so:


--- Code: ---    Behavior = FireWeaponUpdate ModuleTag_Einfachdrauflosballern
        FireWeaponNugget
         WeaponName   = TheRingWeapon
             OneShot      = No    ;feuert die weapon immer ab wen sie wieder aufgeladen ist
       End
    End

--- Ende Code ---

Das ist ziemlich nützlich, und wird dir bestimmt später nochmal von nutzen sein

mfg
Pini

Vermilion:
Ja sorry hab da wohl gepennt. Habs abgeändert und auch bei der weapon.ini im entsprechenden Block "MeleeWeaopon = NO" gesetzt. Aber funzt immer noch nicht. Ich poste mal alle EInträge in der crate.ini (die den Ring betreffen)


--- Code: ---Object TheDroppedRing

Draw = W3DScriptedModelDraw ModuleTag_01
DefaultModelConditionState
Model = TheRing
ParticleSysBone NONE OneRing
;ParticleSysBone NONE OneRingAura
Shadow = SHADOW_ADDITIVE_DECAL
ShadowSizeX = 200
ShadowSizeY = 200
ShadowTexture = MUCatapultFP02
ShadowMaxHeight   = 200
ShadowOverrideLODVisibility = yes
End
IdleAnimationState
Animation
AnimationName = THERING.THERING
AnimationMode = LOOP
End
End
End

EditorSorting = MISC_MAN_MADE
DisplayName = OBJECT:TheOneRing
Side = Civilian
KindOf = SELECTABLE IMMOBILE NOT_AUTOACQUIRABLE UNATTACKABLE REVEAL_TO_ALL CRATE ONE_RING ; Only Salvage crates are marked Selectable so the Mouse can interact with them and give Salvage voices.  Being dead makes them not actually selectable
ThreatLevel = 0.0
ShroudClearingRange = 100

Body = HighlanderBody ModuleTag_Body ;Can take damage, but won't die.  Can only die from ::kill() or other unresistable damage
MaxHealth      = 1.0
End


; *** AUDIO Parameters ***;

EvaEnemyObjectSightedEvent    = DiscoveredRing ; This is so that we get the DiscoveredRing event if it is unstealthed when we first see it

ClientUpdate = EvaAnnounceClientCreate ModuleTag_AnnounceCreate
; And this covers the case where the Ring spawns in while in sight of the player's troops
AnnouncementEventEnemy = DiscoveredRing
AnnouncementEventAlly = DiscoveredRing
AnnouncementEventOwner = DiscoveredRing


OnlyIfVisible = Yes ; Don't announce if hidden in the shroud
UseObjectsPosition = Yes ; Play from the Ring's position
CreateFakeRadarEvent = Yes ; Allow player to jump to the Ring after hearing annoucement

DelayBeforeAnnouncementMS = 1000 ; Allow 1 second before announcing. This is mostly so that if someone is right on top of the ring, we can use the pickup event to block the discovered event
; and not get two announcements

; CountAsFirstSightedAnnoucement = Yes ; Doesn't matter since this unit doesn't use EvaOnFirstSightingEventEnemy/NonEnemy
End

ClientUpdate = RadarMarkerClientUpdate ModuleTag_RadarMarker
MarkerType = PingOneRing
End

;---------------------------
;Behavior = AttributeModifierAuraUpdate ModuleTag_RegisteratFortress1
        ;StartsActive            = Yes
        ;BonusName            = PrepareFortressForRing
        ;RefreshDelay            = 500
        ;Range                = 100
        ;TargetEnemy            = Yes
        ;ObjectFilter            = ANY +COMMANDCENTER
        ;End

        ;Behavior = AttributeModifierAuraUpdate ModuleTag_RegisteratFortress2
        ;StartsActive            = Yes
        ;BonusName            = PrepareFortressForRing
        ;RefreshDelay            = 500
        ;Range                = 100
;        TargetEnemy            = Yes
        ;ObjectFilter            = ANY +COMMANDCENTER
        ;End

Behavior = FireWeaponUpdate ModuleTag_Einfachdrauflosballern

        FireWeaponNugget

         WeaponName   = TheRingWeapon
             OneShot      = No    ;feuert die weapon immer ab wen sie wieder aufgeladen ist
       End
End
    

Behavior = AttachUpdate ModuleTag_Attach
ObjectFilter = ANY +INFANTRY +CAVALRY +HERO +MONSTER +MACHINE -WORKING_PASSENGER -NO_COLLIDE -INERT -IGNORED_IN_GUI -PROJECTILE -NEUTRALGOLLUM -NOT_AUTOACQUIRABLE -WildSpiderling_Slaved -IsengardExplosiveMine -Wyrm -WargSentry NOT_FLYING_UNITS
ScanRange = 10
;ParentStatus = HOLDING_THE_RING
AlwaysTeleport = No
AnchorToTopOfGeometry = Yes

// Eva events to play when the Ring is picked up by the local player / an ally / an enemy
ParentOwnerAttachmentEvaEvent = RingPickedUpLocal
;ParentAllyAttachmentEvaEvent =   Nothing for now! (Are we sure???)
ParentEnemyAttachmentEvaEvent = RingPickedUpEnemy

ParentOwnerDiedEvaEvent = LocalPlayerLosesRing ; E.g. the unit carrying the ring died, so we lost it.
;ParentAllyDiedEvaEvent =  Nothing (for now)
;ParentEnemyDiedEvaEvent = Nothing (for now)

End

; Remove the ring hero upgrade from which ever player created us. This is to remove the ability to build
; the ring heroes when out fortress holding the ring has been nuked.
Behavior = RemoveUpgradeUpgrade ModuleTag_RemoveRingFromPlayer
TriggeredBy = Upgrade_IsengardFaction Upgrade_MordorFaction Upgrade_WildFaction Upgrade_MenFaction Upgrade_ElfFaction Upgrade_DwarfFaction
UpgradeToRemove = Upgrade_RingHero
SuppressEvaEventForRemoval = Yes
End

Behavior = DestroyDie ModuleTag_Die
End

Behavior = CreateObjectDie ModuleTag_DropTheRing
CreationList = OCL_TheOneRing
End




Geometry = CYLINDER
GeometryMajorRadius = 10.0
GeometryHeight = 10.0
GeometryIsSmall = Yes
//Shadow = SHADOW_VOLUME
Shadow = SHADOW_DECAL

End

--- Ende Code ---


Gr Verm

thepinking:
bitte, poste deine Codes im "code" format....
Das sieht so aus:

(code) Dein ewig langer Code (/code)

die runden Klammern einfach durch eckige ersetzen, das macht das ganze etwas übersichtlicher...

Versuch mal beim AttributemodifierNugget eine Range anzugeben...

mfg
Pini

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln