Modding Union
Modderecke => Coding => Thema gestartet von: Azaril am 27. Nov 2013, 12:37
-
Seid gegrüßt, Member der Modding-Union,
ich wende mich an euch aufgrund eines Problems, welches ich seit längerem habe und dessen Lösung mir bislang verschleiert blieb.
Lasst mich euch zuerst erklären, was ich getan habe, dass es zu diesem Problem gekommen ist:
Ich wollte, dass man in meiner Mod die Einheiten-produzierenden Gebäude nur innerhalb eines gewissen Radius um die Festungen bauen kann, wie bei Isengard in der Edain Mod.
Wie bei den Isengard-Gebäuden oben genannter Mod wandte ich also einen "WallHubBehavior" an und gab ihnen den KindOf "WALL_HUB".
Das Ergebnis: Gebäude können wie gewollt nur in einem bestimmten Radius um die Festung gebaut werden, allerdings müssen sie für einen Sieg nicht mehr zerstört werden, sondern nur noch die Festung.
Meine Frage an euch ist nun, wie man dieses Problem beheben kann, da man schon das ganze Lager zerstören sollte, um einen Spieler zu vernichten.
Ich hoffe, dass ihr mir wieder einmal weiterhelfen könnt.
MfG
Carmondai
PS: Bevor jemand danach fragt: Ich habe durch ausprobieren herausgefunden, dass es garantiert an dem "WallHubBehavior" und dem entsprechenden KindOf liegt und an nichts anderem.
-
Es gibt zwei KindOfs, die diese von dir angesprochene Sache betreffen:
IGNORE_FOR_VICTORY -> Sorgt dafür, dass das Object unrelevant für den Sieg ist.
MP_COUNT_FOR_VICTORY -> Sorgt explizit dafür, dass das Object relevant für den Sieg ist.
-
Ja, ich kenne diese beiden KindOfs, die betroffenen Gebäude besitzen auch MP_COUNT_FOR_VICTORY, aber das scheint ignoriert zu werden, sobald ich WALL_HUB dazu schreibe.
Aus meiner ElvenBarracks.ini:
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION MP_COUNT_FOR_VICTORY AUTO_RALLYPOINT FS_FACTORY LIVING_WORLD_BUILDING_MIRROR WALL_HUB
Mit diesem KindOf muss das Gebäude nicht zerstört werden, um den Spieler, dem es gehört, zu erledigen.
Wenn ich WALL_HUB auskommentiere, funktioniert es wieder und der Spieler hat erst verloren, wenn auch die Elbenkaserne zerstört wird.
-
Dann lass doch einfach ein unsichtbares Egg von der Kaserne beschwören. Welches das Kindof MPCount... hat und wenn die Kaserne zerstört wird, dann feuert es einfach eine Weapon, die das Egg zerstört.
-
Geht sogar noch einfacher: ObjectCreation-Module einbauen und dort eben jenes unsichtbare Object mit dem Kindof droppen. Dort folgenden SlavedBehaviour einfügen:
Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
End
Mich wundert aber, dass du dieses Problem hast, Wenn ich mich recht entsinne, hatten wir das Problem bei Isengart nicht,
-
Doch, wir hatten das Problem bei Isengart auch. Man hat nur überlebt, wenn man mindestens eine Zitadelle/Festung hatte.^^ (war zumindest das letzte Mal so, als ich es getestet hab)
-
Das Object:
Object VictoryCounter
Draw = W3DScriptedModelDraw ModuleTag_Draw
DefaultModelConditionState
Model = NONE
End
End
KindOf = MP_COUNT_FOR_VICTORY
Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
End
Body = ActiveBody ModuleTag_02
MaxHealth = 1.0
End
End
Und dann in der ElvenBarracks.ini:
Behavior = GrantUpgradeCreate ModuleTag_ActLikeAnOldUpgrade
UpgradeToGrant = Upgrade_TrebuchetTurret
GiveOnBuildComplete = Yes
End
Behavior = ObjectCreationUpgrade SpawnVictoryCounter
TriggeredBy = Upgrade_TrebuchetTurret
Delay = 0.0
ThingToSpawn = VictoryCounter
Offset = X:0 Y:0 Z:0
FadeInTime = 0
End
Aber kein Unterschied im Spiel. Der Spieler geht zugrunde, sobald die Festung zerstört wurde.