Ergebnis 1 bis 10 von 10

Thema: Bitte um Hilfe - Einheit soll obsolet werden und verschwinden

  1. #1
    Registrierter Benutzer Avatar von Bafragor
    Registriert seit
    01.12.21
    Ort
    Niedersachsen
    Beiträge
    6

    Bitte um Hilfe - Einheit soll obsolet werden und verschwinden

    Ich wünsche einen guten Abend allerseits,

    ich bin neu in diesem Forum und habe mich bisher auf civfanatics herum getrieben.

    Ich arbeite seit ein paar Jahren immer mal wieder an meiner Mod für Civ4. Sie ist auch schon länger spielbar, nur kommen mir immer mal wieder neue Ideen, die ich bisher erfolgreich umsetzen konnte.

    Nun stoße ich aber leider an meine Grenzen und bitte einfach mal um Hilfe, in der Hoffnung, dass sich Jemand erbarmt

    Zum Thema:

    Ich habe meiner Mod einen religiöseren Touch geben wollen. In diesem Zusammenhang gibt es nun einen christlichen und einen muslimischen Siedler. Sie sehen nur anders aus, haben aber die gleichen Werte/Funktionen, wie der normale Siedler.
    Die religiösen Siedler können erst ausgebildet werden, wenn die jeweilige Staatsreligion entsprechend ihrer Ausrichtung geändert wird. Das heißt, sie schließen sich gegenseitig aus.
    Aufgrund dessen bleibt nun aber der originale Siedler im Stadtbaumenu erhalten, weil ja immer eine der beiden Upgrade-Einheiten fehlt.

    Siehe hier:

    <UnitClassUpgrades>
    <UnitClassUpgrade>
    <UnitClassUpgradeType>UNITCLASS_ISLAMIC_SETTLER</UnitClassUpgradeType>
    <bUnitClassUpgrade>1</bUnitClassUpgrade>
    </UnitClassUpgrade>
    <UnitClassUpgrade>
    <UnitClassUpgradeType>UNITCLASS_CHRISTIAN_SETTLER</UnitClassUpgradeType>
    <bUnitClassUpgrade>1</bUnitClassUpgrade>
    </UnitClassUpgrade>
    </UnitClassUpgrades>

    Würde mir jmd helfen, das Problem zu lösen? Ich bin mir ziemlich sicher, dass das Problem nicht über den normalen Editor zu lösen ist. Stattdessen vermute ich die Lösung in Python. Ihr würdet mir einen großen Gefallen tun... ich modde sehr gerne, habe viele Kleinigkeiten bereits selber mühsam herausgefunden und eingebaut. Aber das bekomme ich einfach nicht gelöst. Vielleicht gibt es ja auch noch einen anderen Weg, den normalen Siedler "los zu werden", sobald die Voraussetzung für einen religiösen Siedler gegeben ist. Es muss nicht unbedingt über die Unit-Upgrade Funktion laufen

    Viele Grüße und danke,

    Bafragor
    Geändert von Bafragor (01. Dezember 2021 um 22:56 Uhr)

  2. #2
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.924
    Willkommen im Forum.
    Die Modding-Szene ist ja etwas ausgedünnt, da freut man sich über jedes neue Gesicht.
    Eine direkte Lösung habe ich für dein Problem gerade nicht. Ich denke auch, dass Python und dort der cannotTrainCallback die Lösung sein werden, irgend etwas in der Richtung "Array mit den religiösen Siedlern - wenn einer davon baubar, Standardsiedler nicht mehr baubar" gemacht werden muss. Python-Callbacks können aber das Spiel etwas deutlich verlangsamen, CannotTrain ist vermutlich einer der weniger kritischen, von CannotMoveInfo kann ich nur dringend abraten.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  3. #3
    Registrierter Benutzer Avatar von Bafragor
    Registriert seit
    01.12.21
    Ort
    Niedersachsen
    Beiträge
    6
    Hey, danke für deine schnelle Antwort

    Ich hatte ja überlegt, zum Einen vielleicht "einfach" die Upgrade-Funktion für alle Einheiten ändern zu lassen. Dann würde es z.B. auch keinen Krieger mehr geben, wenn man den Axtkämpfer zwar ausbilden kann, dafür aber noch nicht den Speerkämpfer. Oder keinen Bogenschützen mehr, sobald entweder der Langbogenschütze oder der Armbrustschütze erforscht ist, der jeweils andere aber noch nicht.

    Eine andere Idee die ich habe, wäre, die Meshes aufgrund des Religionswechsels vom Spiel geändert zu bekommen. Ähnlich wie es ja schon bei den ethnischen Meshes funktioniert. Da wäre dann aber meine Frage, ob das Spiel das so überhaupt zulässt. Denn der Fall ist ja nicht an eine Zivilisation gebunden, sondern an der Religion.

    Aber das sind Beides Lösungsansätze, die mir schlüssig erscheinen. Umsetzen kann ich sie nicht...

  4. #4
    Registrierter Benutzer Avatar von Bafragor
    Registriert seit
    01.12.21
    Ort
    Niedersachsen
    Beiträge
    6
    Hier hat das Jemand mit ethnischen Gebäuden geschafft, was ich gerne mit religiösen Einheiten hätte:

    https://forums.civfanatics.com/threa...gs-mod.401945/

  5. #5
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Zitat Zitat von Bafragor Beitrag anzeigen
    Hier hat das Jemand mit ethnischen Gebäuden geschafft, was ich gerne mit religiösen Einheiten hätte:

    https://forums.civfanatics.com/threa...gs-mod.401945/
    "different art for the same building for different civilizations"

    Das ist nicht dasselbe. Die Mod lässt Gebäude von bestimmten Nationen einfach nur anders aussehen - unabhängig davon, welcher Religion sie angehören.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  6. #6
    Registrierter Benutzer Avatar von Bafragor
    Registriert seit
    01.12.21
    Ort
    Niedersachsen
    Beiträge
    6
    Okay. Was schlägst du vor?

  7. #7
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Ich würde die Einheiten vermutlich nicht baubar machen (Prodkosten: -1) und im CvEventmanager.py "einfach" bei onUnitBuilt mit den richtigen Voraussetzungen nen Siedler gegen den ensprechenden anderen Siedler "austauschen": Also den gebauten entfernen und den richtigen neuen erstellen mit derselben UNITAI.

    Im Stadtbildschirm ändert sich das Symbol aber dann natürlich nicht.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  8. #8
    Registrierter Benutzer Avatar von Bafragor
    Registriert seit
    01.12.21
    Ort
    Niedersachsen
    Beiträge
    6
    Danke für deine Antwort.

    Was denkst du zu der Idee, die Unit-Upgrade Funktion so zu manipulieren, dass ALLE Einheiten davon beeinflusst werden und verschwinden, sobald für sie jeweils eine der neuen Einheiten als Upgrade zur Verfügung steht (z.B. Krieger weg, weil Axtkämpfer ausbildbar, aber Speerkämpfer nicht)?

    Kannst du das einschätzen, wie schwer das ist oder wo der Eintrag dazu zu finden ist?


    Ich würde ja versuchen, etwas in Eigenregie zu verändern, wenn ich eine Lösung erfahre...



    ----------------------------


    Alternativ könnte ich mir auch vorstellen, sofern das hier nicht anstößig ist, meinem Helfer (wenn denn jmd Lust hat) für das Problem neben der Freude an der Sache in einem gewissen Rahmen mit Euros zu belohnen (ja, ich bin ein Civ-Nerd).


    Programmieren kann ich selber leider nicht. Lediglich Einträge manipulieren.

  9. #9
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Wäre dann ne gute Gelegenheit das Programmieren auszuprobieren. Dazu müsstest du nämlich USE_CANNOT_TRAIN_CALLBACK aktivieren und das in CvGameUtils.py reinprogrammieren. Andernfalls müsstest du die CvCity.cpp (C++) anpassen und ne neue DLL erstellen, das ist aber aufwendiger.

    Schlage vor, dass du zunächst kleinere Dinge programmierst, indem du dir z.B. den CvEventmanager.py von Mods (wie BASE) anschaust. Für die Umsetzung deines Wunsches in Python muss man schon Logik und Struktur verstanden haben.

    Es lohnt sich jedenfalls für deinen Wunsch CvCity.cpp in \Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL in einem Editor zu öffnen und sich UnitTypes CvCity::allUpgradesAvailable sowie bool CvCity::canTrain anzuschauen.

    ---

    Alternativ könnte ich mir auch vorstellen, sofern das hier nicht anstößig ist, meinem Helfer (wenn denn jmd Lust hat) für das Problem neben der Freude an der Sache in einem gewissen Rahmen mit Euros zu belohnen (ja, ich bin ein Civ-Nerd).
    Kannst du natürlich immer anbieten. Hab nur die Erfahrung gemacht, dass den Leuten hier Zeit wichtiger ist als Geld/Bier oder sonstiges. xD Bin auch nur Hobbyprogrammierer und würde gerne was Bestimmtes in BASE einbauen, aber schaffe es alleine auch nicht.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  10. #10
    Registrierter Benutzer Avatar von Bafragor
    Registriert seit
    01.12.21
    Ort
    Niedersachsen
    Beiträge
    6
    Hey,

    ja, habe schon gesehen, dass du eine aufwendige Mod gemacht hast. So viel habe ich bisher nicht erreicht.

    Ich habe mir die Dateien einmal angeschaut; sieht vielversprechend aus. Leider werde ich kein eigenes Skript oder dergleichen schreiben können.

    Finde aber interessant, dass hier Werte ohne großen Aufwand verändert werden können...


    Hat denn noch Jemand Interesse an meinem Thema mit den Einheiten? Ich würde ja gerne auch etwas anbieten. Aber das, was ich kann, ist wohl nicht besonders genug, als dass es wem nützt^^

Berechtigungen

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