1. Nov 2024, 01:18 Hallo Gast.
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge. Hierbei werden gemäß Datenschutzerklärung Benutzername und Passwort verschlüsselt für die gewählte Dauer in einem Cookie abgelegt.


Select Boards:
 
Language:
 


Autor Thema: Ring als Bonus  (Gelesen 6492 mal)

Vermilion

  • Elbischer Pilger
  • **
  • Beiträge: 157
Ring als Bonus
« am: 26. Jul 2011, 15:24 »
Ich möchte für die HeldenMod die ich hier auch gepostet habe ein neues Konzept erstellen:

Und zwar gibt es in der Mod keine Ringhelden (weil die RIngmechanik zu Problemen führt). Möchte aber, dass der Ring doch irgendwie genutzt wird. Meine Idee: Sammelt irgendeine Einheit (egal ob Katapult oder Held) den Ring auf dann sollen Rüstungs und Angriffswert verdoppelt werden (jetzt als Beispiel). Die KI soll den Ring NICHT zur Festung bringen!

Geht das und wo muss ich es deaktivieren damit die EInheit nicht zur Festung rennt wenn sie den Ring hat?

Ich denke mal das mit den Werten, da muss ich nur ein Powerupdate und als Trigger "TheOneRing" oder so ähnlich eingeben.

Reshef

  • Edain Team
  • Istar
  • *****
  • Beiträge: 7.028
  • Größenwahn ist ein Typisch menschliches Laster.
Re:Ring als Bonus
« Antwort #1 am: 26. Jul 2011, 15:25 »
Zitat
Geht das und wo muss ich es deaktivieren damit die EInheit nicht zur Festung rennt wenn sie den Ring hat?
Geht nicht.

Zum rest kann ich leider nichts sagen.

Vermilion

  • Elbischer Pilger
  • **
  • Beiträge: 157
Re:Ring als Bonus
« Antwort #2 am: 26. Jul 2011, 16:29 »
Doch ich habe es in der crate.ini abgestellt. Die Einheiten rennen nicht mehr mit dem Ring zur Festung sondern kämpfen normal weiter. Aber die KI-Helden fliehen fleissig wenn angeschlagen. Soweit so gut. Nun möchte ich gerne dass der Ring der tragenden EInheit einen BOnus verleiht.

Ich hab folgende EInträge versucht hinzuzufügen:

1.)

Behavior = SpecialPowerModule ModuleTag_LurtzCarnageSt arter              SpecialPowerTemplate    = SpecialAbilityLurtzCarna ge
      StartsPaused         = Yes
      AttributeModifier      = LurtzCarnage
      AttributeModifierAffects Self = Yes
   End
   Behavior = HeroModeSpecialAbilityUp date ModuleTag_CarnageUpdate      ; So the difference in SpecialAbility is that it takes timing from this Update, instead of simply firing.
      SpecialPowerTemplate    = SpecialAbilityLurtzCarna ge
      HeroEffectDuration      = 0 ; ;30000
      UnpackTime              = 1                              ; how long the weaponset is active
   End



nachdem das nicht geklappt hat (muss wohl was mit Auraupdate sein)

2.)

Behavior = AttributeModifierAuraUpd ate ModuleTag_RingLeadership Update
      StartsActive   = Yes
      BonusName      = RingLeadership
      ;RefreshDelay   = 0
      Range         = 0
      ;ObjectFilter   = GENERIC_BUFF_RECIPIENT_O BJECT_FILTER
   End   

Hat beides leider nicht geklappt. Nix abgestürtzt aber kein Effekt.  :-(

« Letzte Änderung: 26. Jul 2011, 17:33 von Vermilion »

Mîlûr der Helle

  • Verteidiger Morias
  • **
  • Beiträge: 515
  • ICH SEHE DICH!!! o.O
Re:Ring als Bonus
« Antwort #3 am: 26. Jul 2011, 17:51 »
Mir ist grade nicht ganz klar wo du definiert hast das der Ring auslöst, dass die stärker werden.
Es ist echt lusitg wie manche Leute gucken wenn ein Satz anders endet als wie man Kartoffel ;D

http://forum.modding-union.com/index.php/topic,12827.msg242228.html#msg242228

Ich hab nerd Bilder gegoogled ;D
http://content5.promiflash.de/article-images/w500/justin-bieber-mit-nerd-brille-r3.jpg


Sanalf 2

  • Gast
Re:Ring als Bonus
« Antwort #4 am: 26. Jul 2011, 17:57 »
Hat er auch nicht^^

Also du könntest es schon über deinen zweiten Versuchsweg probieren. Bin mir nicht 100%ig sicher, ob das dann alles so klappt, wie du es willst, aber es wäre eine Möglichkeit.
 
Du nimmst also diesen Block, den du eh schon verwendet hast:

Zitat
Behavior = AttributeModifierAuraUpd ate ModuleTag_RingLeadership Update
      StartsActive   = Yes
      BonusName      = RingLeadership
      ;RefreshDelay   = 0
      Range         = 0
      ;ObjectFilter   = GENERIC_BUFF_RECIPIENT_O BJECT_FILTER
   End 

Und fügst den beim Ring ein. Ja, beim Ring, nicht bei der Einheit, die den Bonus kriegen soll!
Leider hast du hier ein paar wichtige Dinge weggelassen. Erstens: Warum hast du das "RefreshDelay" auskommentiert? Setz das einfach mal auf 2000, wie bei den anderen Leaderships auch.
Dann stellst du die Range auf etwas eher Geringes ein...probiers mal mit 50. Eigentlich "klammert" sich der Ring ja an die Einheit, die ihn aufnimmt, ich bin mir aber nicht ganz sicher, ob du für den Fall, dass eine Horde ihn aufnimmt, 1 bei der Range verwenden kannst...versuchs lieber mit 50.
Und beim ObjectFilter gibts du am besten das an, was beim Ring in seinem "AttachModule" beim ObjectFilter steht. Du könntest dann dahinter noch ein "ALLIES" schreiben, damit nur du und deine Verbündeten betroffen werden.

Also ich würde das so machen:

Zitat
      StartsActive    = Yes
      BonusName    = RingLeadership
      RefreshDelay   = 2000
      Range             = 0
      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 ALLIES

Wenn's dann noch immer nicht geht, müssen wir uns mal deine "RingLeadership" anschauen.

mfg
sanalf 2

Vermilion

  • Elbischer Pilger
  • **
  • Beiträge: 157
Re:Ring als Bonus
« Antwort #5 am: 26. Jul 2011, 19:05 »
Danke Sanalf das du mir helfen willst :-)

So im "Ring" Eintrag der crate.ini hab ich folgenden EIntrag hinzugefügt bzw bearbeitet:

Behavior = AttributeModifierAuraUpd ate ModuleTag_RingLeadership Update

      StartsActive   = Yes

      BonusName      = RingLeadership

      RefreshDelay   = 2000

      Range         = 50

      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

   End   



Und der "RingLeadership" Block in der attributemodifier.ini sieht so aus:

ModifierList RingLeadership

   Category               = SPELL ; ;LEADERSHIP

   Modifier               = EXPERIENCE 200% ; ;200%

   Modifier               = ARMOR 25% ; ;50%

   Modifier               = DAMAGE_MULT 200% ; ;150%      
   Duration               = 3000

End

Nutzt leider nix. Funzt nicht.

Sanalf 2

  • Gast
Re:Ring als Bonus
« Antwort #6 am: 26. Jul 2011, 19:41 »
Büdde...irgendwie werden wir da auch schon was zusammenbringen.

Also in deinem Attributemodifier würde ich das "SPELL" wieder durch ein "LEADERSHIP" ersetzen, weil du ja eine Leadership erstellt hast.
Und woher weißt du eigentlich, dass nichts funktioniert? Woran erkennst du das? Siehst du mit bloßem Auge deine verbesserten Werte?

mfg
sanalf 2

thepinking

  • Elronds Berater
  • **
  • Beiträge: 314
  • WotE und FdK-Mod Coder
Re:Ring als Bonus
« Antwort #7 am: 26. Jul 2011, 19:48 »
Kleiner Tipp von mir zum testen von Modifiers:
Füge folgendes im Attributemodifier ein:
Modifier               = SPEED 999%Da sollte man dan für normal sofort sehen können ob der Modifier geht oder nicht ;)

mfg
Pini

Vermilion

  • Elbischer Pilger
  • **
  • Beiträge: 157
Re:Ring als Bonus
« Antwort #8 am: 26. Jul 2011, 19:55 »
Büdde...irgendwie werden wir da auch schon was zusammenbringen.

Also in deinem Attributemodifier würde ich das "SPELL" wieder durch ein "LEADERSHIP" ersetzen, weil du ja eine Leadership erstellt hast.
Und woher weißt du eigentlich, dass nichts funktioniert? Woran erkennst du das? Siehst du mit bloßem Auge deine verbesserten Werte?

mfg
sanalf 2

Beim probespiel hatte ein held den ring, er machte keinen doppelten schaden (z.b. am gebäude)

@Pini: Danke für den tipp
« Letzte Änderung: 26. Jul 2011, 21:45 von Vermilion »

Vermilion

  • Elbischer Pilger
  • **
  • Beiträge: 157
Re:Ring als Bonus
« Antwort #9 am: 26. Jul 2011, 20:13 »
Funzt ned! :-(

Hab Spell durch Leadership ersetzt, bringt nix. Sarumans Leadership Bonus ist auch n Spell.

Muss ich da etwa noch ein Update erstellen (Update.ini?) und dann bei jeder Einheit ein Behavior dazu?

« Letzte Änderung: 26. Jul 2011, 21:51 von Vermilion »

Ealendril der Dunkle

  • Gast
Re:Ring als Bonus
« Antwort #10 am: 26. Jul 2011, 23:04 »
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

  • Elbischer Pilger
  • **
  • Beiträge: 157
Re:Ring als Bonus
« Antwort #11 am: 27. Jul 2011, 18:28 »
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

  • Elronds Berater
  • **
  • Beiträge: 314
  • WotE und FdK-Mod Coder
Re:Ring als Bonus
« Antwort #12 am: 27. Jul 2011, 19:35 »
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:

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

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

mfg
Pini
« Letzte Änderung: 27. Jul 2011, 19:40 von thepinking »

Vermilion

  • Elbischer Pilger
  • **
  • Beiträge: 157
Re:Ring als Bonus
« Antwort #13 am: 27. Jul 2011, 20:08 »
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)

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


Gr Verm
« Letzte Änderung: 27. Jul 2011, 20:27 von Vermilion »

thepinking

  • Elronds Berater
  • **
  • Beiträge: 314
  • WotE und FdK-Mod Coder
Re:Ring als Bonus
« Antwort #14 am: 27. Jul 2011, 20:13 »
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