Modderecke > Coding
Ring als Bonus
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