Modderecke > Coding

Melkors Modding Fragen

<< < (8/19) > >>

Prinz von Dol Amroth:
Also, ich habe deinen Code, der auch richtig aussah, testweise mal der MordorZidatelle gegeben einen MordorFighter und eine MordorSpiderling als Starteinheit gesetzt und die Spinne wurde bei mir getarnt.
Vielleicht hast du nicht genau hingesehen, denn die Tarnanimation ist ja nicht durchgängig durchsichtig oder du hast andere Spinnenobjecte beschwören lassen.

Melkor Bauglir:
Ich habe es mittlerweile auch zum Laufen gekriegt, nachdem ich in meiner Verzweiflung zwischenzeitlich ungefähr auf der ganzen Karte alle meine Objekte hab tarnen lassen, um visuelle Fehler auszuschließen. :D Die Probleme mit der Unsichtbarkeit waren auch der Grund, warum das DG-Update so auch sich hat warten lassen. Der Fehler war tatsächlich ziemlich vertrackt: Bei der Brutmutter stand ein kurzer Codetext dazu, dass sie sich in der Nähe von Bäumen tarnt. Nachdem ich den entfernt hatte, ging es^^ Ich bin nicht ganz sicher, woran das gelegen hat, vermute aber, dass es daran liegt, dass die Unsichtbarkeit bei FIRING_ANY oder so deaktiviert wird -und der Spinnensummon läuft über eine Weapon.
Und bei den anderen Spinnen hatte ich Depp vergessen, die Horde einzutragen. Eigentlich verstehe ich es auch immer noch nicht, aber was soll's: Es läuft ja... ;)

Gruß
Melkor Bauglir

Edit: Trotzdem vielen Dank an dich! Es kam nur so lange keine Antwort, dass ich das Problem nicht mehr als gelöst gemeldet habe. Sorry, dafür! ;)

Melkor Bauglir:
Ist es eigentlich möglich, Gebäude direkt Horden respawnen zu lassen. Als ich versucht habe, dies über das übliche SpawnBehavior zu coden, hat es nämlich nicht funktioniert. (Ich rede natürlich nicht von einer periodisch genutzten OCL oder so, die Horde sollte schon nur in begrenzter Anzahl vom Gebäude generiert werden, wie z.B. bei einem Bewohner-System.)

Gruß
Melkor Bauglir

Prinz von Dol Amroth:
Ich habe es eben ausprobiert und es geht tatsächlich nicht bei Horden. Wusste ich vorher auch noch nicht.
Die einfachste Möglichkeit ist, dass du statt deiner Horde ein Egg beschwörst, welches die eigentliche Horde beschwört. Das Egg muss dann nur mit sterben, wenn die Horde stirbt. Das könnte man über ein Attachupdate regeln. Das Egg attached die Horde, die sie beschworen hat. Das hat den großen Vorteil, dass das Egg automatisch stirbt, wennn das attachede Object stirbt.
Ein Nachteil hierran wäre, dass es zu kleinen Problem kommen kann, da das Egg vielleicht das falsche Object attached und eine Horde von 2 Eggs attached wurde. Dies hängt davon ab, in welchem Abstand es nachgespawnt werden soll und wie viele gleichzeitig existieren.

--- Code: ---Object PvDAEgg
Draw = W3DScriptedModelDraw ModuleTag_01 ;;Zum Testen bekommen alle meine Eggs das Ringdesign.
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
Behavior = ObjectCreationUpgrade CreateTheMoat
TriggeredBy = Upgrade_MordorFaction
Delay = 0.0
ThingToSpawn = MordorFighterHorde_Summoned;;
End
    Body = ActiveBody ModuleTag_MakesKillWork
        MaxHealth    = 1
    End
    Behavior = AttachUpdate ModuleTag_Attach
        ObjectFilter            = NONE +MordorFighterHorde_Summoned
        ScanRange               = 0.5
        AlwaysTeleport          = Yes
        AnchorToTopOfGeometry   = Yes
    End
End
--- Ende Code ---

Eine andere Möglichkeit die Eggs zu zerstören, wenn die Horde stirbt, wäre diese hier. Ich hatte generell schonmal ein spezielles lizensiertes System für mich entwickelt, wo es nötig war genau ein Egg zu vernichten, wo es mehrere Eggs von diesen gleichzeitig gab und diese auch zum Teil exakt auf der selben Stelle sich befinden.
Das System hat bei mir fehlerfrei geklappt.

Das PvDAZerstörenObject müsste dann bei der gewünschten Horde übder ein slowdeath OCL beschworen werden.

--- Code: ---Object PvDAZerstörenObject
Draw = W3DScriptedModelDraw ModuleTag_01 ;;Zum Testen haben alle meine Eggs das Ringdesign.
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

    KindOf    = INERT IMMOBILE UNATTACKABLE
    Behavior = AttachUpdate ModuleTag_Attach
        ObjectFilter            = NONE +PvDAEgg
        ScanRange               = 99999999
        AlwaysTeleport          = Yes
        AnchorToTopOfGeometry   = Yes
    End
    Body = ActiveBody ModuleTag_MakesKillWork
        MaxHealth    = 1
    End

    Behavior = LifetimeUpdate ModuleTag_HatchTrigger
        MinLifetime = 1000.0
        MaxLifetime = 1000.0
    End

    Behavior = FireWeaponUpdate ModuleTag_DamageHandler
        FireWeaponNugget
            WeaponName = PvDAZerstörungsWeapon
            FireDelay = 100
            OneShot = Yes
        End
    End
End
--- Ende Code ---


--- Code: ---Weapon PvDAZerstörungsWeapon
LeechRangeWeapon = Yes
AttackRange = 99999999
MeleeWeapon = No
DelayBetweenShots = 99999;zur Sicherheit
PreAttackDelay = 0
PreAttackType = PER_SHOT
FiringDuration = 0
RadiusDamageAffects = ALLIES;NONE +PvDAEgg ALLIES;klappt nicht

DamageNugget                        ; A basic Nugget that just does damage
Damage = 1000000
Radius = 1.0
DamageType = CHOP
DeathType = NORMAL
SpecialObjectFilter = NONE +PvDAEgg ALLIES
ForceKillObjectFilter = NONE +PvDAEgg ALLIES
End
End
--- Ende Code ---

Das PvDAEgg sähe dann so aus:

--- Code: ---Object PvDAEgg
Draw = W3DScriptedModelDraw ModuleTag_01 ;;Zum Testen bekommen alle meine Eggs das Ringdesign.
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
    Body = ActiveBody ModuleTag_MakesKillWork
        MaxHealth    = 1
    End
KindOf    = PRELOAD CAN_CAST_REFLECTIONS PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT ATTACK_NEEDS_LINE_OF_SIGHT NOTIFY_OF_PREATTACK GRAB_AND_DROP
;INERT IMMOBILE; UNATTACKABLE ;;Brauchen nun natürlich andere KindOf's. Einige sind davon bestimmt zu viel, aber lieber zu viel als zu wenig.
    ArmorSet
        Conditions      = None
        Armor           = ChopArmor ;;Und eine ChopArmor wäre nicht schlecht.
        DamageFX        = NormalDamageFX
    End
Behavior = ObjectCreationUpgrade CreateTheMoat
TriggeredBy = Upgrade_MordorFaction
Delay = 0.0
ThingToSpawn = MordorFighterHorde_Summoned;;
End
End

--- Ende Code ---

Melkor Bauglir:
OK, dann habe ich bei meinem System offenbar keine offensichtliche Methode übersehen. ;) Ich habe damals halt erst gefunden, dass das Bewohnersystem nicht funktioniert und dann ohne weiter nachzuforschen, gleich ein anderes System angewandt: Ich selbst nutze momentan nämlich ein ähnliches System wie deine erste Idee, allerdings mit einem SlavedObject, das über die Horde beschworen wird und halt den "DieOnMastersDeath"-Eintrag besitzt -dieses kann sich aber nicht bewegen und bleibt daher neben dem Gebäude liegen. (Stirbt die Horde, stirbt das Object und macht über ein SlowDeathBehavior das Object kaputt, das ich von meinem Gebäude spawnen lasse, das dann die Horde per OCL beschwört. Und DAS Object kann ich ja ganz regulär neu erscheinen lassen.)

Gruß
Melkor Bauglir

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln