-
#30
von
Melkor Bauglir
am 20 Dez, 2015 14:49
-
Bei einer permanente Weapon oder für das permanente Beschwören eines Objectes, würde ich einfach ein FireWeaponUpdate verwenden. (Fire Delay im FireWeaponNugget gibt hier allesdings nur den ersten Delay an. Den generellen Intervall musst du in der Weapon bei DelaybetweenShots angeben).
Das FireWeapon Modul in der immobilen / eingenisteten Form funktioniert fehlerfrei, die Probleme sind wirklich das Zurückmounten und dass das Spinnennetz nicht angezeigt wird.
Bei deinem SpawnBehavior hast du immer nur ein Object gleichzeitig.
Wie meinst du das? So wie ich mir das vorgestellt habe, ruft die eingenistete Brutmutter das Spinnennetz. Das bleibt zwar permanent hat aber den Eintrag "DieOnMastersDeath = Yes", also dachte ich, es würde verschwinden, wenn ich die Brutmutter zurückmounte, weil das Ausgangsobject dann ja weg ist. Nur erscheint es halt überhaupt nicht.
Hier ist noch mal der Code vom Netz:
Object MordorBrutmutterSpinnennetz
/// Das ist einfach nur die Spinnenweben-Textur auf dem Boden
Draw = W3DScriptedModelDraw ModuleTag_Draw
DefaultModelConditionState
Model = exkankraweb
Shadow = SHADOW_ALPHA_DECAL_DYNAMIC ;SHADOW_ADDITIVE_DECAL_DYNAMIC
ShadowSizeX = 210
ShadowSizeY = 210
ShadowTexture = SCCSpiderlingSummon2
ShadowOpacityStart = 0
ShadowOpacityFadeInTime = 500
ShadowOpacityPeak = 255
ShadowOpacityFadeOutTime = 1000
ShadowOpacityEnd = 0
ShadowOverrideLODVisibility = YES
ParticleSysBone = NONE KankraFlies FollowBone:No
End
End
Side = Mordor
EditorSorting = STRUCTURE
CampnessValue = 0
// *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE NOT_AUTOACQUIRABLE BASE_SITE CAN_SEE_THROUGH_STRUCTURE CAN_ATTACK FS_BASE_DEFENSE
Body = ActiveBody ModuleTag_MakesKillWork
MaxHealth = 50.0
InitialHealth = 50.0
End
Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
End
Behavior = SlowDeathBehavior ModuleTag_FizzleDeath
DeathTypes = ALL
DestructionDelay = 10
End
Geometry = CYLINDER
GeometryMajorRadius = 10
GeometryHeight = 5
GeometryIsSmall = No
End
Wie macht man das denn über mithilfe von WeaponToggle? (Sorry, ich kenne mich damit wirklich kaum aus.) Bisher habe ich das nur dafür verwendet, um das WeaponSet selber zu ändern, allgemeine Eigenschaften habe ich so noch nicht überarbeitet.
Gruß
Melkor Bauglir
-
#31
von
Ealendril der Dunkle
am 20 Dez, 2015 21:48
-
Objecte mit einer Geschwindigkeit von 0 (oder gestunnt) können nicht mounten. Mounten ist ein Bewegungsfilter, auch wenn das Object an der gleichen Stelle verharrt. Du wirst dir dafür also eine andere Methode überlegen müssen.
-
#32
von
Melkor Bauglir
am 23 Dez, 2015 20:42
-
Aha, vielen Dank. Wenn ich so drüber nachdenke, macht es auch wirklich Sinn, ansonsten würden einige Fähigkeiten etwas unglücklich gekontert werden können.
Dann probiere ich es mal mit einer anderen Herangehensweise.
Gruß
Melkor Bauglir
-
#33
von
Melkor Bauglir
am 26 Dez, 2015 13:37
-
Alsoooo: Ich habe das Spinnennetz-System nun zwar ganz anders umgesetzt, aber es funktioniert einwandfrei und passt ebenfalls. Allerdings bereitet mir eine Sache Kopfzerbrechen: Ich dachte mir, dass das Spinnennetz Spinnen darin tarnen sollte, also habe ich folgenden Eintrag hinzugefügt:
Behavior = InvisibilityUpdate ModuleTag_BroadcastCamouflage
InvisibilityNugget
InvisibilityType = CAMOUFLAGE
DetectionRange = 10
End
UpdatePeriod = 1000
Broadcast = Yes
BroadcastRange = 75
BroadcastObjectFilter = ANY +MordorSpiderling +MordorSpiderling_Summoned +MordorBrutmutterMordorsubmod +WildZuchtspinnen ALLIES
StartsActive = Yes
End
Das komische ist, dass das Modul überhaupt keine Wirkung auf die Spinnen hat, jedoch z.B. Orks (als ich sie dort testweise eintrug) korrekt unsichtbar machte. (Der klassische Objectfilter ELVEN_MIST_OBJECT_FILTER folgt übrigens dem exakt gleichen Aufbau wie mein verwendeter BroadcastObjectFilter.)
Weiß da jemand, woran das liegen könnte? Spinnen haben ja bereits einen Unsichtbarkeitseintrag in ihrer eigenen .ini, da sie neben Bäumen unsichtbar werden.
Gruß
Melkor Bauglir
-
#34
von
Melkor Bauglir
am 08 Jan, 2016 22:34
-
Nochmal eine Frage:
Weiß wirklich niemand, was der Fehler an dem Tarn-Modul sein könnte? Es kommt mir eigentlich nur so vor, als würde ich Tarnung allgemein noch nicht ganz verstanden haben, denn der Code funktioniert ja auf anderen Einheiten völlig fehlerfrei.
Gruß
Melkor Bauglir
-
#35
von
Prinz von Dol Amroth
am 17 Jan, 2016 00:00
-
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.
-
#36
von
Melkor Bauglir
am 17 Jan, 2016 00:19
-
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.
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!
-
#37
von
Melkor Bauglir
am 29 Jan, 2016 23:16
-
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
-
#38
von
Prinz von Dol Amroth
am 30 Jan, 2016 12:41
-
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.
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
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.
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
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
Das PvDAEgg sähe dann so aus:
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
-
#39
von
Melkor Bauglir
am 30 Jan, 2016 14:03
-
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
-
#40
von
Melkor Bauglir
am 08 Mär, 2016 00:38
-
Also, ich hätte da noch einmal zwei kleinere Fragen:
1. Ich habe momentan einen Gebäudesummon, der dahingehend seltsam ist, dass man ihn wirklich überall hin wirken kann -z.B. kann ich ihn mitten auf meine eigenen Gebäude setzen. Weiß jemand, wie man das ändern kann?
2. Bei vielen Spellgebäuden ist es ja so, dass sie beim Beschwören nicht einfach erscheinen, sondern ihre Aufbauanimation immer noch abgespielt wird, indem sie z.B. aus dem Boden wachsen. Kann man das irgendwo einstellen oder funktioniert das eh nur bei dafür irgend geeigneten Gebäuden?
Gruß
Melkor Bauglir
-
#41
von
Prinz von Dol Amroth
am 08 Mär, 2016 10:31
-
1.
Das musst du in der SpecialPower festlegen, wo man den Summon wirken kann. So hat der Einsame Turm folgenden Eintrag:
Flags = NO_FORBIDDEN_OBJECTS RESPECT_RECHARGE_TIME_DISCOUNT
ForbiddenObjectFilter = NO_SUMMON_STRUCTURE_NEAR_OBJECT_FILTER
ForbiddenObjectRange = SPAWN_LONE_TOWER_DECAL_RADIUS
2.
Im OCL ist der UseJustBuiltFlag entscheidend. Die Gebäude haben allerdings einen extra Eintrag in ihrem Object, dass die Animation abgespielt wird. Ich nehme an, dass die meisten Gebäude diese Animation nicht standardmäßig haben.
ObjectCreationList OCL_GondorSpellBookSpawnLoneTower
CreateObject
ObjectNames = GondorSentryTower_Independant
Count = 1
UseJustBuiltFlag = Yes ; turn on the JUST_BUILT model condition.
JustBuiltDuration = LONE_TOWER_BUILD_TIME ; Keep JUST_BUILT on for time it takes to build.
StartingBusyTime = LONE_TOWER_BUILD_TIME
ClearRemovables = Yes
End
End
Object GondorSentryTower
ModelConditionState = JUST_BUILT
Model = GBBtlTwrM_A
End
AnimationState = JUST_BUILT
StateName = JustBuilt
Animation = GBBtlTwrM_A
AnimationName = GBBtlTwrM_A.GBBtlTwrM_A
AnimationMode = ONCE
AnimationBlendTime = 0
AnimationSpeedFactorRange = 2.2 2.2
End
Flags = START_FRAME_FIRST
End
[...]
End
-
#42
von
Melkor Bauglir
am 08 Mär, 2016 22:51
-
Vielen Dank schonmal!
Was den JustBuiltFlag betrifft, so habe ich den lustigerweise ständig verwendet, nur eben nie den logischen Sprung gemacht, einmal in der .ini des Objects nachzusehen, ob der Eintrag dort irgendwo auftaucht.
Was allerdings das Gebäudestapelproblem betrifft, so bin ich mir nicht ganz so sicher ob das reicht. Natürlich löst ein Mindestabstand zu anderen Gebäuden das Problem grundsätzlich, allerdings können normale Gebäude überhaupt nicht auf unpassierbares Gelände gewirkt werden (bereits bebautes Gelände ist ja gewissermaßen unpassierbar^^), obwohl sie keinen spezifischen Mindestabstand zu diesem Gebäudetyp besitzen.
Bei diesem einen Gebäudesummon besteht nur irgendwie das Problem, dass das Feld einfach niemals rot wird und ich theoretisch die Fähigkeit überall hin wirken kann -sie wird dann zwar aufgrund der Reichweite der Fähigkeit in der .ini der Einheit nicht ausgeführt, aber es ist doch arg unschön.
Gruß
Melkor Bauglir
-
#43
von
Melkor Bauglir
am 28 Mär, 2016 23:10
-
Noch einmal eine Frage: Gibt es eine Möglichkeit, ein (sichtbares, wohlgemerkt!) Objekt so zu gestalten, dass man auf ihm bauen kann? Konkret ist es nicht nur sichtbar, sondern hat auch noch den Eintrag COMMANDCENTER, hat aber weder eine Geometry, noch habe ich vergessen das NO_COLLIDE hinzuzufügen und Einheiten ignorieren das Object auch korrekt. Nur Gebäude kann ich eben nicht direkt auf ihm errichten, was schade ist, weil es ein System unnötig verkompliziert.
Gruß
Melkor Bauglir
-
#44
von
Melkor Bauglir
am 15 Nov, 2016 23:58
-
Dumm, di dumm, es ist als wäre ich nie weg gewesen...
Also, nach längerer Zeit stelle ich mir folgende Frage: Ich versuche momentan verzweifelt, Orkgruben die Möglichkeit zu geben, an ihnen Truppen auflösen zu können. (Genau wie bei Festungen, wo man ja auch Truppen für Geld entlassen kann.)
Die funktioniert aber gar nicht, die Truppen laufen auf das Gebäude zu, werden unanwählbar und verharren dann endlos in einer Laufanimation, ohne zu verschwinden (und Rohstoffe zu gewähren).
Weiß hier jemand Rat bzw. gibt es einen Eintrag, den Gebäude brauchen, um Truppen entlassen zu können?
Gruß
Melkor Bauglir