Ankündigung

Einklappen
Keine Ankündigung bisher.

Tutorial: Wie baue ich ein Upgrade ein?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tutorial: Wie baue ich ein Upgrade ein?

    Da ich oft die Frage sehe, wie genau man ein neues Upgrade in SuM einbaut, hab ich mich entschloßen, das mal an einem praktischen Beipiel zu demonstrieren.

    Dazu will ich für Gondor das "Gegengewichte"-Upgrade einbauen, dass die Reichweite für Katapulte um 25% erhöhen soll. Man soll eine Level 2 Belagerungswerkstatt dafür brauchen.
    (Ich hab das Upgrade für meinen Mod gemacht, die Idee dazu hab ich aus Upgrade.ini (dazu später mehr))


    Vorrausetzung für das Tutorial ist, daß ihr wißt,
    -wie man die inis aus der ini.big extrahiert und wie man SuM mit den veränderten inis startet
    -wie man neue Strings (Texte) in die lotr.csf einfügt (Hier ein kurzes Tutorial zum Thema lotr.csf)
    -wie man Werte (Kosten, Bauzeiten und ähnliches) in der gamedata.ini definiert
    -Grundwissen über die Funktionsweise von CommandButtons und Waffen



    Schritt 1
    Wir öffnen die upgrade.ini und suchen den Eintrag "Upgrade_GondorCounterweights". Dieses Upgrade war ursprünglich für SuM geplannt, wurde aber dann doch nicht eingebaut.
    Wir wollen es jetzt wieder einbauen mit dem Effekt, das es Katapulten mehr Reichweite gibt (ka, was es Orginal für einen Effekt haben sollte).



    Schritt 2
    Wir verändern das Upgrade so:

    Aus
    Upgrade Upgrade_GondorCounterweights
    DisplayName = UPGRADE:GondorCounterweights
    Type = OBJECT
    ButtonImage = BGWorkshop_Counterweights
    Cursor = ArrowUpgrade
    ;UnitSpecificSound = GondorPorterVoiceCreate__________
    End
    wird

    Upgrade Upgrade_GondorCounterWeights
    DisplayName = UPGRADE:GondorCounterWeights
    Type = OBJECT
    BuildCost = GONDOR_PERSONAL_COUNTER_WEIGHTS_BUILDCOST
    BuildTime = GONDOR_PERSONAL_COUNTER_WEIGHTS_BUILDTIME
    ResearchSound = UpgradeFireStones
    UpgradeFX = FX_PorterDeliverFireStones
    End
    Darüber fügen wir jetzt diesen Eintrag ein:
    Upgrade Upgrade_TechnologyGondorCounterWeights
    DisplayName = UPGRADE:GondorCounterWeights
    Type = PLAYER
    BuildCost = GONDOR_TECH_COUNTER_WEIGHTS_BUILDCOST
    BuildTime = GONDOR_TECH_COUNTER_WEIGHTS_BUILDTIME
    ResearchSound = PorterFireStonesVoiceReady
    End
    Upgrade_TechnologyGondorCounterWeights ist das Upgrade (oder genauer gesagt, die Technologie), die man in der Belagerungswerkstatt/Schmiede erforscht, während Upgrade_GondorCounterWeights das Upgrade ist, das man bei der Einheit selbst entwickelt.

    DisplayName verweißt auf einen String in der lotr.csf, dies wird in SuM aber nicht gebraucht und kann daher ignoriert werden (stammt noch aus CnC Generals).

    Type ist sehr wichtig, ein Upgrade mit Player muss vom Spieler nur einmal erforscht werden und wirkt dann auf alle Einheiten, ein Upgrade mit Object muss für jede Einheit seperat gekauft werden.

    BuildCost und BuildTime sind die Kosten und die Bauzeiten der Upgrades, man kann sie hier direkt per Zahl hinschreiben oder sie in der gamedata.ini definieren (das werd ich hier nicht extra beschreiben).

    ResearchSound und UpgradeFX sind die Licht und Soundeffekte, die abgespielt werden, wenn das Upgrade erforscht wurde. (ich hab hier einfach die Effekte eines anderen Upgrades genommen, da es zu lange dauern würde, neue Effekte zu machen)

    Zusammenfassung:
    Wir haben nun 2 Upgrades, einmal die Technologie Upgrade_TechnologyGondorCounterWeights, die man einmal (Type = PLAYER) in der Belagerungswerkstatt erforscht und einmal das Upgrade Upgrade_GondorCounterWeights, mit dem wir jede Einheit seperat ausrüsten müssen (Type = OBJECT).
    Die Upgrade.ini kann nun geschloßen werden.


    Schritt 3
    Wir öffnen die CommandButton.ini und fügen am Ende 2 neue Buttons ein:

    CommandButton Command_PurchaseTechnologyGondorCounterWeights
    Command = PLAYER_UPGRADE
    Options = NEED_UPGRADE CANCELABLE
    Upgrade = Upgrade_TechnologyGondorCounterWeights
    NeededUpgrade = Upgrade_StructureLevel2
    TextLabel = CONTROLBAR:PurchaseTechnologyGondorCounterWeights
    ButtonImage = BGWorkshop_Trebuchet
    ButtonBorderType = UPGRADE
    DescriptLabel = CONTROLBAR:ToolTipPurchaseTechnologyGondorCounterW eights
    Radial = Yes
    InPalantir = Yes
    LacksPrerequisiteLabel = TOOLTIP:LackLevel2WorkshopCounterWeights
    End
    CommandButton Command_PurchaseUpgradeGondorCounterWeights
    Command = OBJECT_UPGRADE
    Options = NEED_UPGRADE OK_FOR_MULTI_SELECT CANCELABLE
    Upgrade = Upgrade_GondorCounterWeights
    NeededUpgrade = Upgrade_TechnologyGondorCounterWeights
    TextLabel = CONTROLBAR:PurchaseUpgradeGondorCounterWeights
    ButtonImage = BGWorkshop_Trebuchet
    ButtonBorderType = UPGRADE
    DescriptLabel = CONTROLBAR:ToolTipPurchaseUpgradeGondorCounterWeig hts
    InPalantir = Yes
    LacksPrerequisiteLabel = TOOLTIP:LackGondorCounterWeights
    End
    Command hat in dem Fall eine ähnliche Funktion wie Type in der Upgrade.ini, auch hier gibts PLAYER_UPGRADE und OBJECT_UPGRADE zur Auswahl (man sollte darauf achten, bei einem PLAYER-Upgrade auch einen PLAYER_UPGRADE-Commandbutton zu benutzen, das gleiche gilt für OBJECT-Upgrades).

    Options gibt die Eigenschafften des Buttons an, NEED_UPGRADE bedeutet, das man ein anderes Upgrade braucht, um den Button zu drücken, OK_FOR_MULTI_SELECT heißt, dass man den Button auch verwenden kann, wenn mehrere Einheiten gleichzeitig ausgewählt sind und CANCELABLE bedeutet, dass man das Upgrade auch abbbrechen kann.

    Upgrade ist das Upgrade, was dieser Button entwickelt

    NeededUpgrade ist das Upgrade, welches man haben muss, um den Button zu benutzen. Upgrade_StructureLevel2 bedeutet, das das betrefffende Gebäude erst Rank2 haben muss, ehe man dort das Upgrade entwickeln kann.

    TextLabel, DescriptLabel, LacksPrerequisiteLabel sind die Texte, die im Button angezeigt werden, sie müssen in der lotr.csf definiert werden (dies ist nicht Bestandteil des Tutorials)

    ButtonImage ist das Icon, das für den Button verwendet wird (ich hab da das Icon des Katapultes genommen)

    ButtonBorderType ist die Farbe des Randes, von dem der Button umgeben ist.

    InPalantir legt fest, ob der Button links unten im Palantir angezeigt wird.

    Zusammenfassung:
    Die Technologie (Upgrade_TechnologyGondorCounterWeights) kann erst erforscht werden, wenn das Gebäude Rank2 hat (NeededUpgrade = Upgrade_StructureLevel2), während das Upgrade (Upgrade_GondorCounterWeights) erst erfoscht werden kann, wenn man schon Upgrade_TechnologyGondorCounterWeights erforscht hat (NeededUpgrade = Upgrade_TechnologyGondorCounterWeights).
    Die CommmandButton.ini kann un geschloßen werden.


    Schritt 4
    Wir fügen nun die Buttons in die CommandSet.ini ein.

    Dazu öffnen wir die Commandset.ini und suchen nach GondorTrebuchetCommandSet. Dies ändern wir so um:
    CommandSet GondorTrebuchetCommandSet
    1 = Command_Guard
    2 = Command_ToggleTrebAutoAcquire
    3 = Command_PurchaseUpgradeGondorFireStones
    4 = Command_PurchaseUpgradeGondorCounterWeights
    5 = Command_Bombard
    13 = Command_AttackMove
    14 = Command_Stop
    15 = Command_Guard
    End
    GondorTrebuchetWallCommandSet verändern wir ebendfalls:
    CommandSet GondorTrebuchetWallCommandSet
    1 = Command_ToggleTrebAutoAcquire
    2 = Command_PurchaseUpgradeGondorFireStones
    3 = Command_PurchaseUpgradeGondorCounterWeights
    4 = Command_Bombard
    14 = Command_Stop
    End
    Ebendso ändern wir TrebComboHordeCommandSet:
    CommandSet TrebComboHordeCommandSet
    1 = Command_Guard
    2 = Command_ToggleTrebAutoAcquire
    3 = Command_PurchaseUpgradeGondorForgedBlades
    4 = Command_PurchaseUpgradeGondorHeavyArmor
    5 = Command_PurchaseUpgradeGondorFireStones
    6 = Command_PurchaseUpgradeGondorCounterWeights
    7 = Command_PurchaseUpgradeGondorBasicTraining
    13 = Command_AttackMove
    14 = Command_Stop
    15 = Command_Guard
    End
    Zu guter letzt bearbeiten wir GondorWorkshopCommandSet (Achtung, hier fügen wir einen anderen Button ein als bei den anderen Commandsets):
    1 = Command_ConstructGondorTrebuchet
    2 = Command_PurchaseTechnologyGondorFireStones
    3 = Command_PurchaseTechnologyGondorCounterWeights
    4 = Command_Sell
    End
    Zusammenfassung:
    Wir haben nun bei der Schmiede den Button für die Technologie (Command_PurchaseTechnologyGondorCounterWeights) und bei den Katapulten den Button für das Upgrade (Command_PurchaseUpgradeGondorCounterWeights) eingefügt.
    Die CommandSet.ini kann nun geschloßen werden.



    Schritt 6
    Nun müssen wir die Einheiten so umbauen, damit das Upgrade auch ne Wirkung hat. Dazu öffnen wir die trebuchet.ini (data\ini\object\goodfaction\units\gondor).

    Die folgenden Schritte sind die schwersten bei Einbau eines Upgrades, sie sind je nach Upgrade und Einheit verschieden.
    Bei diesem Upgrade ist das Problem, das man die Reichweite nur mit einem Weaponset-Upgrade verändern kann, beim Katapult wird dies aber schon von den Feuerstein-Upgrade benutzt.
    Wir müssen also nicht nur das neue Upgrade einbauen, sondern auch das alte umbauen.

    Dazu suchen wir erstmal nach Weapon = PRIMARY GondorTrebuchetRockFlaming und ändern es zu Weapon = PRIMARY GondorTrebuchetWithCounterWeight.

    Als nächstes ersetzt ihr
    Behavior = WeaponSetUpgrade ModuleTag_FlamingRock
    TriggeredBy = Upgrade_GondorFireStones
    End
    durch

    Behavior = WeaponSetUpgrade ModuleTag_CounterWeights
    TriggeredBy = Upgrade_GondorCounterWeights
    End

    Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
    TriggeredBy = Upgrade_GondorFireStones Upgrade_TechnologyGondorTechnologyGondorFireStones
    RequiresAllTriggers = Yes
    End
    WeaponSetUpgrade legt fest, dass das Weaponset von Conditions = None zu Conditions = PLAYER_UPGRADE wechselt (das PLAYER_UPGRADE hat nichts mit dem TYPE oder dem Command aus der Upgrade.ini/CommandButton.ini zu tun)

    StatusBitsUpgrade hat eigentlich keinen wirklichen Effekt, aber ein Upgrade muss im Code der Einheit erwähnt werden, sonst kann diese Einheit das Upgrade nicht erforschen (SubObjectsUpgrade werden dabei nicht beachtet).
    Also mußte ich ein StatusBitsUpgrade einbauen, da man sonst keine Feuersteine mehr entwickeln könnte.

    Zusammenfassung:
    Bisher haben wir das Katapult so umgebaut, das es nach dem Gegengewichte-Upgrade (Upgrade_GondorCounterWeights) seine Waffe wechselt und nicht mehr nach dem Feuersteine-Upgrade (Upgrade_GondorFireStones).
    Die Trebuche.ini kann nun geschloßen werden.

    Momentmal, jetzt haben wir das normale Katapult verändert, doch wie sorgen wir dafür, das auch das Katapult auf der Mauer mit unserem neuen Upgrade ausgerüstet werden kann?

    Ganz einfach, dies geschiet automatisch: Das Katapult auf der Mauer benutzt die gleichen Codes wie das normale Katapult, dh wir haben beide Katapulte auf einmal geändert.


    Schritt 6
    Die ist der letzte Schritt, nun brauchen wir die weapon.ini.
    Sucht dort nach GondorTrebuchetRock. Die ist die normale Katapult-Waffe, so wie sie standartmäßig verwendet wird. Im unteren Teil der Waffe finden wir diese Zeilen:
    ProjectileNugget
    ProjectileTemplateName = GondorTrebuchetRockProjectile
    WarheadTemplateName = GondorTrebuchetRockWarhead
    End

    ProjectileNugget
    ProjectileTemplateName = GondorTrebuchetRockProjectile
    WarheadTemplateName = GondorTrebuchetRockWarhead
    RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
    End

    ProjectileNugget
    ProjectileTemplateName = GondorTrebuchetRockProjectile
    WarheadTemplateName = GondorTrebuchetRockWarhead
    RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
    End
    Die letzten ProjectileNuggets stammen von einem Upgrade, das es in der veröffentlichten Version von SuM nicht mehr gibt, ändert die ProjectileNuggets daher so um:

    ProjectileNugget
    ProjectileTemplateName = GondorTrebuchetRockProjectile
    WarheadTemplateName = GondorTrebuchetRockWarhead
    ForbiddenUpgradeNames = Upgrade_GondorFireStones
    End
    ProjectileNugget
    ProjectileTemplateName = GondorTrebuchetRockProjectileFlaming
    WarheadTemplateName = GondorTrebuchetRockWarheadFlaming
    RequiredUpgradeNames = Upgrade_GondorFireStones
    End
    Anstelle vom ursprünglichen 3 Nuggets gibts nur noch 2, die beide verwendet werden.
    Das erste wird ganz normal verwendet, sobald aber das Feuerstein-Upgrade (Upgrade_GondorFireStones) erforscht wurde, wird es nicht mehr benutzt (ForbiddenUpgradeNames = Upgrade_GondorFireStones) .
    Das 2. Nugget wird nur verwendet, wenn man das Feuerstein-Upgrade erforscht hat (RequiredUpgradeNames = Upgrade_GondorFireStones) . Somit hätten wir den Effekt des Feierstein-Upgrades wieder eingebaut, nun müssen wir noch unser Gegengewichts-Upgrade einbauen.

    Dazu kopiert ihr die veränderte GondorTrebuchetRock-Waffe, nennt sie GondorTrebuchetWithCounterWeight und gebt ihr eine höhere Reichweite als der normalen Waffe (da das Upgrade die Reichweite um 25% erhöhen soll, wäre die neue Reichweite 525. Ihr könnt die Zahl direkt bei der neuen Waffe hinschreiben (AttackRange) oder wieder in die gamedata.ini eintragen.


    Zusammenfassung:
    Sobald man das Gegengewichts-Upgrade (Upgrade_GondorCounterWeights) entwickelt, wechselt das Katapult von der normalen Waffe (GondorTrebuchetRock) zu der geänderten Waffe mit mehr Reichweite (GondorTrebuchetWithCounterWeight). Sobald man das Feuerstein-Upgrade (Upgrade_GondorFireStones) erforscht hat, wird einfach automatisch das Geschoß gewechselt.


    So, damit wären wir dann auch am Ende des Tutorial angekommen.

    Sofern ihr auch alle benötigten Werte in der gamedata.ini eingetragen habt, solltet ihr euer neues Upgrade bauen können müssen. ^^
    Hier ensteht eine neue Signatur.

  • #2
    Boha, ich steig da zwar nicht durch weil ich eh kein Mapper/Modder bin und es auch nie werden will, sieht aber sehr schön übersichtlich aus
    well done

    Kommentar


    • #3
      AW: Tutorial: Wie baue ich ein Upgrade ein?

      äh, könntest du eins noch für FX/spezialeffekte machen?

      Kommentar


      • #4
        AW: Tutorial: Wie baue ich ein Upgrade ein?

        @ Chriz

        anstelle der Zitat Funktion hättest du auch die Code-Funktion nutzen können. Dann wäre deine Formatierung mit eingeflossen und es wäre dann was übersichtlicher.

        Ich schlag mal vor ein Tuto-Subforum zu machen. Dann werden Tutos wie das hier auch nicht so schnell verschwinden

        Kommentar


        • #5
          AW: Tutorial: Wie baue ich ein Upgrade ein?

          ihr wisst schon, dass das ding hier über ein jahr alt ist?
          "Oh ja, kämpft und ihr sterbt vielleicht. Flieht und ihr lebt, wenigstens eine Weile... Und wenn Ihr dann in vielen Jahren sterbend in eurem Bett liegt, wärt Ihr dann nicht bereit, jede Stunde einzutauschen von heute bis auf jenen Tag, um ein Mal nur, ein einziges Mal nur, wieder hier stehn zu dürfen und unsren Feinden zuzurufen. Ja, sie mögen uns das Leben nehmen, aber niemals nehmen sie uns unsre FREIHEIT!"

          Kommentar


          • #6
            AW: Tutorial: Wie baue ich ein Upgrade ein?

            Ok, wer achtet schon aufs verfallsdatum bei sowas

            Kommentar


            • #7
              AW: Tutorial: Wie baue ich ein Upgrade ein?

              habs mit aufgenommen. Bilder dazu wären toll. auch wenn wir sowas fort führen.

              Chris ? kannst du mal drüber schauen. und hin und wieder kleiner Tuts erstellen.
              Zuletzt geändert von HQ|Buccane; 10.07.2006, 19:23.
              HdR Head Administrator
              Legend Mapper
              sigpic

              Kommentar


              • #8
                AW: Tutorial: Wie baue ich ein Upgrade ein?

                das is doch kein Tut für den Worldbuilder ... O___o
                sigpic

                Kommentar


                • #9
                  AW: Tutorial: Wie baue ich ein Upgrade ein?

                  LOL, etwas fürs Kuriositätenkabinet

                  Und dieses Tuto ist in erster Linie für SuM1, soweit ichs beim überfliegen bzw am Alter des Tutos festelle. Aber mal ehrlich, wer ärgert sich noch mit SuM1 Upgrades herum, wenn er mit SuM2 doch noch viel mehr Spaß hat - in Sachen Modding zumindest...

                  Zumal der WB nichtmal erwähnt wird, oder irre ich mich da?
                  Zuletzt geändert von Medusa; 10.07.2006, 22:06.

                  Kommentar


                  • #10
                    AW: Tutorial: Wie baue ich ein Upgrade ein?

                    was den sonst ?

                    ein tutorial, wie man etwas modifiziert.

                    und na klar ist es nicht für den wb.
                    HdR Head Administrator
                    Legend Mapper
                    sigpic

                    Kommentar


                    • #11
                      AW: Tutorial: Wie baue ich ein Upgrade ein?

                      Urgs, hätte nie gedacht, das in dem Thread nochmal was passiert >_<

                      Also 1. ist das Tutorial für SuM1, nicht für SuM2 - und aht daher in der Liste der SuM2 Tutorials gar nichts zu suchen (vor allem nicht bei den WB2 Tutorials )
                      2. War das wohl das erste und letzte Tutorial, das ich je geschrieben habe :P
                      3. "Bilder dazu wären toll" Ich hab absolut keine Ahung, was Bilder dazu helfen sollen - das ganze besteht nur aus Änderungen in einer Text-Datei, Bilder wäre da wohl nicht so der Bringer >_<
                      Hier ensteht eine neue Signatur.

                      Kommentar


                      • #12
                        AW: Tutorial: Wie baue ich ein Upgrade ein?

                        alles klar...
                        schade....den usern hilfts anscheinend.
                        denn die idde kam ja von ihnen, habs nur aufgenommen.
                        dachte es ist ne gute idee. ein tut vom besten zu benutzen.

                        habs geändert.

                        wegen den pics...hehe..naja keine ahnung vom modden..
                        bin nur ein einfacher mapper.
                        Zuletzt geändert von HQ|Buccane; 11.07.2006, 00:53.
                        HdR Head Administrator
                        Legend Mapper
                        sigpic

                        Kommentar


                        • #13
                          AW: Tutorial: Wie baue ich ein Upgrade ein?

                          Zitat von HQ|Buccane
                          ...wegen den pics...hehe..naja keine ahnung vom modden..
                          bin nur ein einfacher mapper.

                          Aber jetzt weißte auch schon ein bisl mehr

                          Kommentar

                          Lädt...
                          X