Seite 12 von 26 ErsteErste ... 2891011121314151622 ... LetzteLetzte
Ergebnis 166 bis 180 von 384

Thema: Kleine Fragen zum Colonization-Modden

  1. #166
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Über die DLL und XML ist das eigentlich ganz selbsterklärend.
    Da kannst du einfach das bestehende XML verwenden und musst eben an den richtigen stellen der Unit und UnitAI die passende Logik hinzufügen.

    Genau dafür sind ja schließlich diese XML da:

    CIV4UnitAIInfos.xml
    CIV4BuildInfos.xml
    CIV4CommandInfos.xml
    CIV4MissionInfos.xml
    CIV4AutomateInfos.xml

    Da muss man eigentlich kein neues System erfinden.
    Außerdem kannst du eh nur in der DLL vernünftig KI-Logik implementieren.

    Wenn ich mir das Python-Beispiel ansehen, dann kann sowas um Längen einfacher (und mit weniger Code und weniger Fehlerrisiko) in der DLL programmiert werden.
    (Bäume Pflanzen oder Sumpf Trockenlegen hatte ich komplett in ca. 30 Minuten fertig programmiert.)

    Mein Tip für Modding-Neulinge:

    Macht euch das Leben nicht unnötig schwer.

    Jede Technology in Civ4 oder Civ4Col hat ihren Zweck und ihre Stärken / Schwächen.
    Versucht entsprechend dieser Stärken und Schwächen zu modden und nicht darum herum.

    Anstatt komplett neue Systeme zu entwickeln, kann man die bestehenden normalerweise viel schneller / effektiver nutzen.
    Wenn die Funktionalität dann eben nicht ausreicht, dann bastelt man sie bei Bedarf da dran.
    Geändert von raystuttgart (05. Mai 2013 um 19:23 Uhr)
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  2. #167
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    ich wollte mit Hilfe der Civ4-Anleitung http://forums.civfanatics.com/showthread.php?t=331001 einen Einheiten-Befehlsbutton einfügen. Leider wird mein erstes Minimalbeispiel nicht angezeigt.
    Um welchen Befehl handelt es sich denn konkret? Das hilft vielleicht, den richtigen Tipp zu geben.

    (Ich habe bislang nur neue Pionier-Befehle integriert. Dafür brauchte man weder python- noch DLL-Änderungen.)

  3. #168
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Zitat Zitat von Writing Bull Beitrag anzeigen
    Ich habe bislang nur neue Pionier-Befehle integriert.
    Du sprichst vermutlich von Builds für Improvements.
    (Bäume Pflanzen oder Sumpf Trockenlegen hab ich auch als Builds umgesetzt, nachdem ich die XML-Funktionalität ein wenig erweitert hab.)

    Die reinen Buttons für Commands (z.B. Aufstacheln von Ureinwohnern) oder Missions (z.B. Walfang) oder Automates (z.B. Walfang automatisieren) können ebenfalls über XML eingerichtet werden.

    Zitat Zitat von Writing Bull Beitrag anzeigen
    Dafür brauchte man weder python- noch DLL-Änderungen.
    Solange die neue Aktion nach "Schema F" wie irgendwas bereits existierendes funktioniert, stimmt das auch.
    Dann braucht man wirklich keine DLL Änderung.

    Und falls es was Neues ist, muss man sich einfach nur in der DLL ansehen, wo es verarbeitet wird und an genau den selben Stellen eben seine Logik eingreifen lassen.
    (Wenn da keine KI dabei ist, ist das Ruck-Zuck erledigt.)

    Deswegen sag ich ja, dass im XML und in der DLL schon praktisch für alles die System-Grundlagen da sind.
    Builds, Commands, Missions und Automates sind furchtbar einfach in DLL und XML umgesetzt.
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  4. #169
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Mein Ziel war die Verknüpfung einer Einheit (Schiff) mit einer Stadt. Wird die Funktion das erste Mal auf einem Schiff genutzt, wird an einer fest definierten Stelle eine Stadt gegründet. Danach wird immer diese Stadt angewählt, wenn man den Button im Schiffsmenü drückt.
    Eine zweite Funktion sollte das "Beamen" von Einheiten vom Schiff in diese Stadt und umgekehrt sein.
    Ich glaube, das geht über die Manipulation von XML-Dateien hinaus.

    Außerdem wollte ich heraus finden, ob/wie man einer Nation unterschiedlichen Stadtbildschirme zuweisen kann. Ohne mich mit dem Civ-Modding auszukennen, schätze ich das trivial bis unmöglich ein

    Warum ich mich für Python statt Änderungen der DLL entschieden habe, liegt vor allem daran, dass ich unter Linux keinen Zugriff auf Visual Studio habe und mich nicht damit auseinander setzen wollte, ob ich den Code mit dem G++ kompilieren kann (und dann noch ne DLL erzeuge...).
    Außerdem wurde im verlinkten Tutorial (der Link ist ja aus eurer Zusammenfassung) der Python-Weg eingeschlagen.

  5. #170
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Mein Ziel war die Verknüpfung einer Einheit (Schiff) mit einer Stadt.
    Das kannst du nur in der DLL, weil du nur dort die Objekte Schiff und Stadt "fest" über die Speicherung der entsprechenden Variablen miteinander verknüpfen kannst.
    (Beispielsweise musst du sowas ja auch in ein Save schreiben oder immer noch verfügbar haben, wenn du 3 Runden später die Einheit wieder anwählst.)

    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Ich glaube, das geht über die Manipulation von XML-Dateien hinaus.
    Ja klar, deswegen spreche ich ja auch von XML und DLL.
    Ich würde sowas als Command umsetzten: Button über XML und Logik dafür in der DLL.

    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Außerdem wollte ich heraus finden, ob/wie man einer Nation unterschiedlichen Stadtbildschirme zuweisen kann.
    Das ist ein typisches Beispiel für etwas, dass sich besser in Python umsetzen lässt.

    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Ohne mich mit dem Civ-Modding auszukennen, schätze ich das trivial bis unmöglich ein
    Kommt drauf an, was du machen willst.
    Wenn es nur darum geht Hintergründe auszutauschen sollte das schon möglich sein.
    (Allerdings ist das jetzt nicht unbedingt etwas, mit dem man als Modding Neuling seine ersten Erfahrungen sammelt.)

    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Außerdem wurde im verlinkten Tutorial (der Link ist ja aus eurer Zusammenfassung) der Python-Weg eingeschlagen.
    Vieles ist möglich.
    Dennoch lassen sich manche Dinge am besten in der DLL umsetzen lassen und manche Dinge am besten in Python.
    Geändert von raystuttgart (06. Mai 2013 um 10:38 Uhr)
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  6. #171
    Registrierter Benutzer Avatar von Logan
    Registriert seit
    09.08.12
    Ort
    Niedersachsen
    Beiträge
    1.020
    Ist es möglich eine Geländeverbesserung einzufügen, die einem Feld einen Bonus gewährt den es dort eig. gar nicht gibt?
    Als absurdes Beispiel würde man mit einem Pionier auf einem Gebirgefeld einen Bauernhof errichten können der als festen Wert immer 3 Nahrung bringt?
    Eine kleine Geschichte in der Geschichte des Werewolves Mod
    http://http://civforum.de/showthread.php?81723-CivCol-TAC-Werewolves-Mod

    [TAC] Klein-Venedig - Ergänzungspaket zur Mod TAC 2.03_final
    http://www.civforum.de/showthread.ph...TAC-2-03_final

  7. #172
    hat den Blues Avatar von Elwood
    Registriert seit
    05.11.07
    Beiträge
    4.352
    Was macht eigentlich die xxxDETAIL.dds bei den Texturen? Die scheint häufig ein fach leer/transparent zu sein.
    Geschichten zum Lesen ...

    Der seltsame Fall des William Penn | Col II --- TaC-Mod | abgebrochen
    Wahnsinn mit Methode? | Col II --- TaC-Mod | beendet | SdM April 2012
    Visiting Vvardenfell | TES III Morrowind | pausiert
    Es war einmal (noch) kein Portugal | Civ IV --- PAE-Mod | beendet
    Pack die Thermohose ein ... | Icewind Dale --- Trials of the Luremaster | läuft
    NEU: [RL] ... wie Gott nach Frankreich - Elwoods ??? | Modellbaubericht | läuft

  8. #173
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Bei Civ4 ist die Stadtgröße ja nur ein Integer, da die Bürger nicht unterschieden werden. Wie kann man bei Col die Stadtgröße erhöhen?
    Wenn es die zwei Schritte
    1. Einheit erzeugen
    2. Einheit an Stadt anschließen

    sind, fehlt mir der Befehl wir den zweiten Schritt.
    Ich bin mit der Api unter http://civ4bug.sourceforge.net/PythonAPI/index.html ganz zufrieden. Gibt es für Col auch so eine Übersicht?

  9. #174
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Logan Beitrag anzeigen
    Ist es möglich eine Geländeverbesserung einzufügen, die einem Feld einen Bonus gewährt den es dort eig. gar nicht gibt?
    Als absurdes Beispiel würde man mit einem Pionier auf einem Gebirgefeld einen Bauernhof errichten können der als festen Wert immer 3 Nahrung bringt?
    Auch wenn's blöd klingt: Probiere es doch einfach mal schnell aus.

    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Ich bin mit der Api unter http://civ4bug.sourceforge.net/PythonAPI/index.html ganz zufrieden. Gibt es für Col auch so eine Übersicht?
    Nach meinem Wissen leider nicht.

  10. #175
    Registrierter Benutzer Avatar von Logan
    Registriert seit
    09.08.12
    Ort
    Niedersachsen
    Beiträge
    1.020
    Auch wenn's blöd klingt: Probiere es doch einfach mal schnell aus.
    Na das habe ich ja.Nun zumindest über die xml.
    Bis jetzt ist es mir nur gelungen einen höheren Ertrag durch eine Verbesserung zu erzeugen wenn das Terrain min. einen Grundertrag von 1 in der entsprechenden Ressource hat.
    Vllt. mach ich auch mal wieder irgendwas falsch
    Eine kleine Geschichte in der Geschichte des Werewolves Mod
    http://http://civforum.de/showthread.php?81723-CivCol-TAC-Werewolves-Mod

    [TAC] Klein-Venedig - Ergänzungspaket zur Mod TAC 2.03_final
    http://www.civforum.de/showthread.ph...TAC-2-03_final

  11. #176
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Logan Beitrag anzeigen
    Bis jetzt ist es mir nur gelungen einen höheren Ertrag durch eine Verbesserung zu erzeugen wenn das Terrain min. einen Grundertrag von 1 in der entsprechenden Ressource hat. Vllt. mach ich auch mal wieder irgendwas falsch
    Ich gehe davon aus, dass du da nichts falsch gemacht hast und dass das die Grenzen sind, die die Programmierung setzt. Wenn man das ändern wollte, müsste man wohl in andere Programmdateien wie die DLL eingreifen.

  12. #177
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Zitat Zitat von Logan Beitrag anzeigen
    Bis jetzt ist es mir nur gelungen einen höheren Ertrag durch eine Verbesserung zu erzeugen wenn das Terrain min. einen Grundertrag von 1 in der entsprechenden Ressource hat.
    Vllt. mach ich auch mal wieder irgendwas falsch
    Versuch mal die "Changes" anstatt die "Increases".

    In deinem Beispiel mit dem Berg könntest du wahrscheinlich das hier benutzen:
    (Auch wenn das genauso für Hügel zählt.)

    <HillsYieldChanges>

    Es gibt immer wieder ziemlich viele Tricksereien.
    KJ_Jansson hat beispielsweise mal mit Bonussen und Improvements komplett neue Yields auf der Karte gesetzt.
    (Er hat so mit Improvements Brauerei und Winzerei, Bier und Wein über Plot-Professions realisiert. Sprich Weintrauben/Weizen wurden über Improvement zu Wein/Bier geändert.)

    Am einfachsten und mit am wenigsten Nenbenwirkungen könntest du aber wohl tatsächlich über Änderung des XML/XML-Schema und DLL
    einen neuen XML-Tag mit entsprechender Logik einführen.

    Außerdem rate ich dir bei solchen Experimenten immer nachzuprüfen, was die KI damit treibt.
    (In deinem Beispiel könnte es sein, dass die KI nur noch das neue Improvement und keine Mienen mehr auf den Bergen baut.)
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  13. #178
    Registrierter Benutzer Avatar von Logan
    Registriert seit
    09.08.12
    Ort
    Niedersachsen
    Beiträge
    1.020
    Am einfachsten und mit am wenigsten Nenbenwirkungen könntest du aber wohl tatsächlich über Änderung des XML/XML-Schema und DLL
    einen neuen XML-Tag mit entsprechender Logik einführen.
    Das würde wohl alle meine Probleme lösen ( Leider habe ich davon Null Ahnung )
    Eine kleine Geschichte in der Geschichte des Werewolves Mod
    http://http://civforum.de/showthread.php?81723-CivCol-TAC-Werewolves-Mod

    [TAC] Klein-Venedig - Ergänzungspaket zur Mod TAC 2.03_final
    http://www.civforum.de/showthread.ph...TAC-2-03_final

  14. #179
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Bei Civ4 ist die Stadtgröße ja nur ein Integer, da die Bürger nicht unterschieden werden. Wie kann man bei Col die Stadtgröße erhöhen?
    Wenn es die zwei Schritte
    1. Einheit erzeugen
    2. Einheit an Stadt anschließen
    Ah, das Schlüsselwort ist "Profession. Um eine neue Einheit einer Stadt anzuschließen kann man so vorgehen:
    Code:
     pUnit = pUnitOwner.initUnit( iUT,  gc.getUnitInfo(iUT).getDefaultProfession(),
                         iX-2, iY-2, UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION, iYieldAmount ) 
     pUnit.setProfession(gc.getInfoTypeForString("PROFESSION_CARPENTER"))
    => Neuer Zimmerman

  15. #180
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    @Ramkhamhaeng:

    Benutz lieber diese Methode des City-Objekts:
    addPopulationUnit(pUnit, NO_PROFESSION)

    Mit NO_PROFESSION sucht sich die CityAI selber den besten Arbeitsplatz.

    Mit deiner Methode kann es dazu führen, dass die Unit nicht zur Stadt hinzugefügt wird.
    (Weil beispielsweise kein Arbeitsplatz da ist.)

    Da kommt in der DLL noch eine Prüfung mit canHaveProfession, wo dann gar nichts passiert, wenn die Profession nicht gültig ist.
    Und da hast du sogar noch richtig Glück, dass das abgefangen wird, weil du sonst CTDs riskierst.

    Die DLL vergibt viele Dinge einfach nicht und letztlich rufst du hier aus Python eine Methode der DLL auf.
    Irgendwann kracht es dann vielleicht und da man außerhalb der DLL (z.B. im Python) nicht debuggen kann, sucht man sich dann einen Wolf nach dem Fehler.

    Ich würde dazu raten sich die Methoden in der DLL anzusehen, bevor man im Python drauf los programmiert.
    Das erleichtert vieles ungemein.
    Geändert von raystuttgart (07. Mai 2013 um 19:12 Uhr)
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

Seite 12 von 26 ErsteErste ... 2891011121314151622 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •