Seite 347 von 348 ErsteErste ... 247297337343344345346347348 LetzteLetzte
Ergebnis 5.191 bis 5.205 von 5206

Thema: Der-kleine-Fragen-zum-Modding-Thread

  1. #5191
    PAE.Sucht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.725
    Programmierst du da nen Compilierer? Wofür braucht man das sonst?
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  2. #5192
    PAE.Sucht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.725
    Wieso in aller Welt kann man weder ein gespeichertes Spiel noch ein als WB-Save gespeichertes Spiel fortsetzen, wenn man die dll verändert hat ?!
    Woran merkt sich CIV das dieses Spiel noch mit einer anderen dll gespielt wurde ?!

    So isses ja unmöglich zu Modden, wenn man jedesmal, wenn man die dll ändert (ändern muss), von vorne anfangen muss!

    Wenn ich ein neues Spiel anfange funktioniert alles wie es soll. Aber das WB-Save mit der vorherigen dll: keine Chance.

    Beim Debug schreibt er in der ersten Runde das FAssert(eFeatureNum > -1); von den CvGlobals. Danach CtD.
    (der kann doch nicht irgendein FeatureType erfinden und ins WB-Save packen, das es nicht gibt? oder wie kann ich das verstehen?)
    (das Laden der Saves geht ganz normal, aber eine weitere Runde -> CtD)

    Hatte jemand schonmal das Problem?
    Geändert von Pie (04. Februar 2025 um 07:28 Uhr)
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  3. #5193
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    23.034
    Kommt drauf an, was du da verändert hast. WBSave sollte immer gehen, außer da steht was drin was es so nicht mehr gibt.

  4. #5194
    PAE.Sucht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.725
    Hab nur in der movementcost den Tieren wieder erlaubt über Flüsse zu steigen, ohne dass sie danach ihre Bewegungspunkte verlieren.

    Ich kann alles spielen nur nicht bei meinem Save und WBSave weiterspielen. Das hat doch keinen Sinn?! Vor allem weil ja das Assert von eFeatureNum > -1 kommt. Das kommt ja nur, wenn es ein Feature gibt, das -1 rauswirft. Hab aber alle 101 Features überprüft
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  5. #5195
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.933
    Edit: Das der Fehler erst beim Klicken auf "Neue Runde" auftritt habe ich überlesen. Mein Text gilt für Probleme beim Laden.

    Du musst was verändert haben das Einfluss auf die ::read Methode hat. Beispielsweise weil nun im Save ein Array ausgelesen werden soll, was beim Speichern gar nicht angelegt wurde, oder dessen Größe nun anders (Xml-Änderung) ist.

    Das Lesen von -1 an unerwarteter Stelle ist zumindest ein Hinweis auf diese Art von Fehler.
    Geändert von Ramkhamhaeng (04. Februar 2025 um 17:26 Uhr)

  6. #5196
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.915
    Zitat Zitat von Pie Beitrag anzeigen
    Wieso in aller Welt kann man weder ein gespeichertes Spiel noch ein als WB-Save gespeichertes Spiel fortsetzen, wenn man die dll verändert hat ?!
    Woran merkt sich CIV das dieses Spiel noch mit einer anderen dll gespielt wurde ?!
    Was mir nur dazu einfällt: Wenn man "modifizierte Dateien sperren" beim Spielstart wählt, kann man gar nichts mehr ändern. Nicht einmal kleinste Bugs beheben. Vermutlich wird da irgendwie ein Hashwert der ursprünglichen Dateien gespeichert. Aus diesem Grund lasse ich das immer deaktiviert.
    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

  7. #5197
    PAE.Sucht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.725
    Achso, ich hab irgendwann mittendrin (das war aber noch vor meiner dll-Änderung), in der UnitXML herumgespielt und zB dem Bären UNITCOMBAT_MELEE statt NONE gegeben... ob das der Grund sein könnte?
    Aber die WB-Datei ist doch eine reine Textdatei. Da wird doch kein versteckter hash-Wert mitgespeichert.
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  8. #5198
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.915
    Zitat Zitat von Pie Beitrag anzeigen
    Achso, ich hab irgendwann mittendrin (das war aber noch vor meiner dll-Änderung), in der UnitXML herumgespielt und zB dem Bären UNITCOMBAT_MELEE statt NONE gegeben... ob das der Grund sein könnte?
    Aber die WB-Datei ist doch eine reine Textdatei. Da wird doch kein versteckter hash-Wert mitgespeichert.
    Mein Beispiel gilt auch nur, wenn "modifizierte Dateien sperren" aktiv ist.
    Andere Frage: hast du in der .dll irgendwelche Variablen hinzugefügt oder entfernt?

    Wenn ich mir deine Fehlermeldung einmal ansehe: Hast du irgendein Feature hinzugefügt? Vielleicht ist im WB-Save gespeichert, welche (wie viele) Feature-Einträge es gibt. Wobei ich dann eher erwartet hätte, dass er gar nicht lädt.

    Oder hast du irgendwo in Python ein Feature, das zum Rundenende gesetzt wird (z.B. "verbrannter Wald"), und das umbenannt wurde, so dass er zur Bezeichnung im Python-Code das dazugehörige Feature nicht mehr findet?

    Wenn du das Spiel im Debug-Modus startest (dazu musst du in Visual C++ auf "Debuggen" gehen und viel Zeit mitbringen) sollte er anstelle des Absturzes an dieser Stelle ermöglichen, dir den Code anzeigen zu lassen, wo der Fehler auftritt. So habe ich meinen letzten Fehler gefunden.
    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

  9. #5199
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.088
    Zitat Zitat von Pie Beitrag anzeigen
    Achso, ich hab irgendwann mittendrin (das war aber noch vor meiner dll-Änderung), in der UnitXML herumgespielt und zB dem Bären UNITCOMBAT_MELEE statt NONE gegeben... ob das der Grund sein könnte?
    Aber die WB-Datei ist doch eine reine Textdatei. Da wird doch kein versteckter hash-Wert mitgespeichert.
    Für Saves ist das ein Grund. Für WB-Dateien natürlich nicht.

  10. #5200
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    23.034
    Beim WBSave kann ich mir nur vorstellen, dass da eine Konstante drinsteht, die es nicht mehr gibt.

  11. #5201
    PAE.Sucht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.725
    Nö, im XML kam nix dazu und auch nix weg. Ausserdem wie gesagt, ich kann das Spiel ganz normal laden. Daraus ein WB-Save machen und dieses auch normal laden (Szenario spielen). Wenn ich dort aber eine Runde weiter möchte => CtD. Ich werd da mal nach und nach die Einträge löschen (Einheiten, Features) und probieren... wie früher... die alte Methode....

    Mit der DEBUG.dll komm ich ja vorm CtD auf den FeatureType>-1 Fehler. Was bei einem WB-Save aber nicht sein kann. Wenn da ein Feature nicht existieren sollte, würde er schon beim Laden des Szenarios motzen. Abgesehen davon hab ich nichts bei den FeatureInfos gemacht. Nicht mal in der dll. (Dort gab ich ja nur Tieren die Chance schnell über einen Fluss zu hüpfen).
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  12. #5202
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    23.034
    Wie ist die komplette Fehlermeldung?

    Geht doch bestimmt um diese Stelle in CvGlobals.cpp?

    CvFeatureInfo& CvGlobals::getFeatureInfo(FeatureTypes eFeatureNum)
    {
    FAssert(eFeatureNum > -1);
    [...]
    }

    Also wird getFeatureInfo mit ner negativen Zahl aufgerufen. Die "Tiere übern Fluss"-Stelle ist wo?

  13. #5203
    PAE.Sucht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.725
    bei CvPlot::movementCost

    PHP-Code:
        if (pFromPlot->isValidRoute(pUnit) && isValidRoute(pUnit) && ((GET_TEAM(pUnit->getTeam()).isBridgeBuilding() || !(pFromPlot->isRiverCrossing(directionXY(pFromPlotthis))))))
        {
            
    iRouteCost std::max((GC.getRouteInfo(pFromPlot->getRouteType()).getMovementCost() + GET_TEAM(pUnit->getTeam()).getRouteChange(pFromPlot->getRouteType())),
                            (
    GC.getRouteInfo(getRouteType()).getMovementCost() + GET_TEAM(pUnit->getTeam()).getRouteChange(getRouteType())));
            
    iRouteFlatCost std::max((GC.getRouteInfo(pFromPlot->getRouteType()).getFlatMovementCost() * pUnit->baseMoves()),
                            (
    GC.getRouteInfo(getRouteType()).getFlatMovementCost() * pUnit->baseMoves()));
        }
        
    // PAE: set moves to 0 when crossing rivers without roads and bridges
        // PAE: except barbarian animals
        
    else if (pUnit->AI_getUnitAIType() == UNITAI_ANIMAL && pUnit->isBarbarian()) {}
        else if (
    pFromPlot->isRiverCrossing(directionXY(pFromPlotthis)))
        {
            return 
    pUnit->maxMoves();
        }
        else if (
    pFromPlot->getTerrainType() == (TerrainTypes)(GC.getInfoTypeForString("TERRAIN_RIVER_FORD")) && this->getTerrainType() != (TerrainTypes)(GC.getInfoTypeForString("TERRAIN_RIVER_FORD")) && !this->isWater())
        {
            return 
    pUnit->maxMoves();
        }
        
    // ----- PAE river crossing
        
    else
        {
            
    iRouteCost MAX_INT;
            
    iRouteFlatCost MAX_INT;
        }

        return 
    std::max(1std::min(iRegularCoststd::min(iRouteCostiRouteFlatCost)));

    und das hat sicher nichts mit einem FeatureType <= -1 Fehler zu tun....

    EDIT:
    so, nach der altmodischen Methode alle Dinge einzeln rauszulöschen und auszuprobieren, bin ich draufgekommen, dass der Jäger der Grund für den CtD ist.... warum auch immer...
    das muss ich mir jetzt ansehen.....

    Edit2: nein, vielleicht ist es doch die Furt... ein KI Jäger steht davor....
    Geändert von Pie (05. Februar 2025 um 05:00 Uhr)
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  14. #5204
    PAE.Sucht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.725
    Es war doch ein bestimmter Jäger der KI. Der stand nicht neben einer Furt. Ich hab ihn im WB entfernt und es ging weiter. Aus Neugier hab ich den Jäger entfernt und wieder neu gesetzt und auch dann ging es ganz normal weiter. Wie das?
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  15. #5205
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    23.034
    Wenn du ihn entfernt und neu setzt, bekommt er ja ne neue ID und wird in anderer Reihenfolge abgearbeitet. Also trifft die KI andere Entscheidungen und der Zufallsgenerator hat sich weitergedreht.

Seite 347 von 348 ErsteErste ... 247297337343344345346347348 LetzteLetzte

Berechtigungen

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