Modderecke > Coding

Alte Sum Festungen in Edain

(1/1)

Der schwarze Heermeister:
Hallo Mitglieder der Modding Union,

Ich habe mich kürzlich daran versucht, einige Elemente des freien Bauens für meinen privaten gebrauch in Edain wieder verfügbar zu machen.
Dafür habe ich als erstes Experiment Baumeister wieder verfügbar gemacht, indem ich sie wahlweise mit dem Worldbuilder auf Maps gesetzt habe oder als Starteinheiten bei Spielbeginn eingestellt habe (ich glaube, das war in der playertemplate.ini).
Das funktionierte überraschend gut. Die Baumeister konnten überraschenderweise vieles noch bauen, ohne dass ich dafür etwas tun musste.
Ein Problem das ich nicht lösen konnte trat aber bei den Festungen auf. Sobald ich bei einem Baumeister auf den Button für den Bau etwa einer Festung von Mordor oder von Isengart klicke crasht das Spiel.
Um diesen Fehler zu beheben habe ich mir die fortress.ini Dateien und die base Dateien für die Festungen angesehen, in denen ich keine Ursache für den Fehler finden konnte. Auch die Ersetzung dieser Dateien durch die Original-inis aus Aufstieg des Hexenkönigs änderte nichts am Auftreten dieses Fehlers.
Ich würde euch ein Code-Beispiel präsentieren, allerdings tritt das Problem bei mir bereits mit den aktuellen Edain-Dateien auf, wenn ich Baumeister auf welchem Weg auch immer verfügbar mache.

Hat einer von euch eine Idee, wie man den Absturz vermeiden kann?

Tar-Palantir:
Vielleicht findest du ja einen Fehler im CommandButton für den Festungsbau? Wenn der crash beim Klicken auf den Button kommt, liegt es vielleicht daran. Kannst in der ini des Baumis, sehen, welches CommandSet er nutzt, dann in der CommandSet ini dieses set suchen und dann den CommandButton (vielleicht fehlt der ja auch)

LG
Tar-Palantir

Der schwarze Heermeister:
Hallo Tar-Palantir,

Vielen Dank für deine Ideen. Leider konnte ich auch dort keinen Fehler finden. Das Problem tritt beispielsweise bei Isengard auf. In der Playertamplate.ini habe ich folgende Änderung gemacht, um einen Baumeister am Start zu erhalten:


--- Code: ---PlayerTemplate FactionIsengard
    Side                          = Isengard
    PlayableSide                  = Yes
    Evil                          = Yes
    StartMoney                    = 0
    MaxLevelMP                    = #DIVIDE( PLAYER_MAX_PURCHASE_POINTS_DEFAULT PLAYER_PURCHASE_POINTS_GRANTED )
    MaxLevelSP                    = #DIVIDE( PLAYER_MAX_PURCHASE_POINTS_EVIL PLAYER_PURCHASE_POINTS_GRANTED )
    PreferredColor                = R:216 G:175 B:48
    ;StartingBuilding             = IsengardFortress
   
    ;------------- NO STARTING UNITS FOR YOU -------
   
    StartingUnit0 = IsengardUrukScoutHorde ;_StartUnit
    StartingUnitOffset0 = X:1 Y:230 Z:0
    StartingUnit1 = IsengardPorter ;_StartUnit
    StartingUnitOffset1 = X:1 Y:150 Z:0


    StartingUnitTacticalWOTR     = IsengardUrukScoutHorde ;IsengardUrukScoutHorde_StartUnit
    StartingUnitTacticalWOTR     = IsengardUrukScoutHorde ;IsengardUrukScoutHorde_StartUnit
    StartingUnitTacticalWOTR     = ObjectRingkriegStartScript

    IntrinsicSciences            = SCIENCE_EVIL
    IntrinsicSciencesMP            = SCIENCE_ISENGARD
    DefaultPlayerAIType             = IsengardSkirmishAI
    SpellBook                = EvilSpellBook
    SpellBookMp                = IsengardSpellBook
    PurchaseScienceCommandSet        = EvilSpellStoreCommandSet
    PurchaseScienceCommandSetMP        = IsengardSpellStoreCommandSet
    DisplayName                = INI:FactionIsengard
    BeaconName                = MultiplayerBeacon
    LightPointsUpSound            = IsengardLightPointsUp
    ObjectiveAddedSound            = Gui_MissionObjectiveNew
    ObjectiveCompletedSound            = Gui_MissionObjectiveCompleted

    // NOTE: It is very important that the create-a-hero be the first buildable hero, to ensure that the create-a-hero and the ring hero are always
    // attached to the first two buttons in the command set.

    BuildableHeroesMP              = CreateAHero IsengardWulfgar GasthausLutz IsengardWormTongue_Mod IsengardSharku_mod IsengardLurtz_mod IsengardUgluk_mod IsengardSaruman_Mod
    BuildableRingHeroesMP          = RingHeroDummy
    InitialUpgrades                = Upgrade_IsengardFaction Upgrade_EvilDualEconomyChoice    Upgrade_AllFactionUpgrade ;Any upgrades this player template is born with.
    SpellStoreCurrentPowerLabel    = APT:SpellStoreCurrentRingPower
    SpellStoreMaximumPowerLabel    = APT:SpellStoreMaximumRingPower
    ResourceModifierObjectFilter   = RESOURCE_MODIFIER_OBJECT_FILTER
    ResourceModifierValues        = 100 100 100 100 100 95 90 85 80 75 72 69 67 65 63 61 59 57 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37
    MultiSelectionPortrait         = UPIsengard_Army
    LoadScreenMusic                = Shell2MusicForLoadScreenIsengard
End

--- Ende Code ---

Die Änderung ist nur sehr klein. Ich habe nur die Starteinheit verändert. Wie gesagt, finde ich in den inis der Festung und der Base Datei keine Ursache.

Betrachtung des Commandbuttons:
Ich bin deinem Hinweis nachgegangen und habe das Commandset des Baumeisters geprüft. Er benutzt das Folgende:

--- Code: ---    CommandSet = IsengardPorterCommandSet   
--- Ende Code ---
Dieses Commandset sieht so aus:

--- Code: ---CommandSet IsengardPorterCommandSet
    1  = Command_Stop
    2  = Command_PorterExtinguishFire
    3  = Command_Repair
    4  = Command_ConstructIsengardTavern
    5  = Command_PorterConstructIsengardWargPit
    6  = Command_PorterConstructIsengardUrukPit
    7  = Command_PorterConstructIsengardSiegeWorks
    8  = Command_PorterConstructIsengardWargSentry
    9  = Command_PorterConstructIsengardBattleTower
    10 = Command_PorterConstructIsengardArmory
    11 = Command_PorterConstructIsengardWallHubPlayer
    12 = Command_PorterConstructIsengardAußenposten
    13 = Command_PorterConstructIsengardFortress
End

--- Ende Code ---

Folglich ist der CommandButton für die Festung:


--- Code: ---CommandButton Command_PorterConstructIsengardFortress
    Command                = DOZER_CONSTRUCT
    Object                = IsengardFortress
    TextLabel            = CONTROLBAR:ConstructIsengardFortress
    ButtonImage            = BIFortress
    ButtonBorderType    = BUILD
    DescriptLabel        = CONTROLBAR:ToolTipConstructIsengardFortress
    Radial                = Yes 
End

--- Ende Code ---
Hier besteht meiner Meinung nach kein Fehler.

Ich habe allerdings neue Erkenntnisse gewonnen:
Wenn ich in den Code für die Base welche entpackt werden soll Quatsch schreibe, dann stürzt das Spiel nicht ab. (Natürlich wird dann aber auch bei der Fertigstellung der Festung nichts entpackt und es steht am Ende keine Festung da.)

Diesen Murks habe ich da reingeschrieben:

--- Code: ---    Behavior = CastleBehavior ModuleTag_castle
          CastleToUnpackForFaction    = Isengard blabla_Isengard
        CastleToUnpackForFaction    = Men Fortress_Isengard
        CastleToUnpackForFaction    = Elves Fortress_Isengard
        CastleToUnpackForFaction    = Dwarves Fortress_Isengard       
        CastleToUnpackForFaction    = Wild Fortress_Isengard       
        CastleToUnpackForFaction    = Mordor Fortress_Isengard
        CastleToUnpackForFaction    = Angmar Fortress_Isengard
        CastleToUnpackForFaction    = Arnor Fortress_Isengard

        ;//Anything that does not fit this filter will be given to the neutral player, so the template can have rocks and props.
        FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER       

        MaxCastleRadius             = 130.0
        InstantUnpack                = Yes       
        KeepDeathKillsEverything    = Yes

        EvaEnemyCastleSightedEvent = EnemyFortressSighted
    End

--- Ende Code ---

Ein anderer Interessanter Fall tritt auf, wenn ich im Commandbutton die Fortress durch die FortressCitadel ersetze. Diese wird dann nämlich völlig korrekt gebaut. Leider hat sie dann keine Bauplätze außen herum.

Vielleicht gibt es ja noch andere Ideen, was man tuen könnte?

VG Der schwarze Heermeister

FG15:
Hast du mal geschaut, ob die Base noch in Edain 4.5 exisitert? Beziehungsweise alle Elemente der Base? Und auch ob diese noch fehlerfrei funktionieren?

Der schwarze Heermeister:
Hallo FG15,

Vielen Dank für deine Antwort. Die Base existiert noch. Alle Objekte der Base habe ich allerdings noch nicht direkt geprüft. (Besteht die Base nicht nur aus der Fortress Citadel und den Bauplätzen?)
Ich werde aber nun insbesondere überprüfen, ob die einzelnen Objekte, die ich in der Base finde, fehlerfrei funktionieren.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln