[Modding] Fragen zum Worldmap-Patching und Areas

Dieses Thema im Forum "Modding Forum" wurde erstellt von Jastey, 2. Dezember 2019.

  1. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    Die Areas haben ja Worldmap-Entrances, also ob man im Norden, Süden, Westen... etc. in der Karte rauskommt, wenn man von Gegend 1 in die Gegend 2 über die Worldmap reist.
    Wo sehe ich die nochmal? In der Area.are sehe ich sie nicht, und beim Betrachten der Area über die Worldmap steigt mir NI aus.
     
  2. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    Ich habe das mal auch bei G3 angefragt.
     
  3. Taimon

    Taimon Senior Member

    Registriert seit:
    Nov. 2001
    Beiträge:
    1.181
    Zustimmungen:
    0
    In der ARE-Datei stehen Entrances. (z. B. "ExitN", mit Near Infinity über die "Edit"-Ansicht sichtbar)
    Diese können in den Area-Einträgen der WMAP-Datei referenziert werden.

    Falls du mehr Details benötigst, bitte nochmal nachfragen.
     
  4. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    Danke!
    k4thos hatte sich bei G3 meiner erbarmt, das hatte ich vergessen, hier zu schreiben. Ich hab das alles ja schonmal angewendet, aber das war mir total entfallen.
     
  5. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    Wenn ich für die EET die Worldmap direkt patchen möchte, dann sieht das ja z.B. so aus:
    Code:
    ACTION_IF GAME_IS ~eet~ BEGIN
        INCLUDE ~ACBre/lib/add_worldmap_tbl.tpa~
        LAF ADD_WORLDMAP_TBL
            INT_VAR
            verbose = 1
            inclSv = 0
            STR_VAR
            path_to_areas = EVAL ~ACBre/Worldmap/EET/areas.tbl~
            path_to_areas_bp = EVAL ~ACBre/Worldmap/EET/areas.tbl~
            path_to_links = EVAL ~ACBre/Worldmap/links.tbl~
            path_to_trans = EVAL ~ACBre/TRA/%LANGUAGE
    
    %/worldmap.tra~
        END
    END
    
    Frage hierzu: Was genau besagt eigentlich die unter path_to_areas_bp angegeben Datei? Inwiefern sollte die sich von der unter path_to_areas unterscheiden?
     
  6. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    Und gleich noch eine Frage hinterher.
    Wenn eine Mod die nötigen Infos bereiststellt, damit die darin befindlichen Areas von der Worldmap-Mod gepatcht werden können, dann sieht das ja z.B. so aus:
    Code:
    //Worldmap
    MKDIR ~Worldmap~
    
    ACTION_IF FILE_EXISTS ~Worldmap/map_mods_areas.tbl~ THEN BEGIN
      COPY ~Worldmap/map_mods_areas.tbl~  ~Worldmap~
      APPEND_FILE ~ACBre/Worldmap/areas.tbl~
    END ELSE BEGIN
      COPY ~ACBre/Worldmap/areas.tbl~ ~Worldmap/map_mods_areas.tbl~
    END
    ACTION_IF FILE_EXISTS ~Worldmap/map_mods_links.tbl~ BEGIN
      COPY ~Worldmap/map_mods_links.tbl~  ~Worldmap~
      APPEND_FILE ~ACBre/Worldmap/links.tbl~
    END ELSE BEGIN
      COPY ~ACBre/Worldmap/links.tbl~ ~Worldmap/map_mods_links.tbl~
    END
    ACTION_IF FILE_EXISTS ~Worldmap/map_mods_trans.tra~ BEGIN
      COPY ~Worldmap/map_mods_trans.tra~  ~Worldmap~
      APPEND_FILE_EVALUATE ~ACBre/TRA/%LANGUAGE%/worldmap.tra~
    END ELSE BEGIN
      COPY ~ACBre/TRA/%LANGUAGE%/worldmap.tra~
    
    ~Worldmap/map_mods_trans.tra~
    END
    Frage hierzu: nun hat die Worldmap-Mod abr zwei unterschiedlich große Worldmaps zur Auswahl, und in der Worldmapmod sind alle möglichen Mods mit verschobenen Koordinaten berücksichtigt (NTotS, DSOtSC, CtB, etcpp).

    -Was muss/kann/sollte eine Mod hier anbieten, um mit beiden Kartengrüßen kompatibel zu sein?
    -Sollten/müssen(?) alle Mods mit Areas für die Worldmap in der Worldmap mit verschobenen Koordinaten enthalten sein, damit für die große/kleine Worldmap richtig gepatcht wird?
     
  7. Weigo

    Weigo Senior Member

    Registriert seit:
    Juli 2005
    Beiträge:
    268
    Zustimmungen:
    25
    Die Frage kann ich dir beantworten @Jastey
    Grundsätzlich werden die Koordinaten der Gebiete auf die große 8000*6000 Karte (Werte weiß ich nicht mehr exakt) ausgelegt und angegeben.
    Für die die kleinere Version, werden die y-Koordinaten automatisch um 1700 verkleinert. Allerdings für Gebiete mit y-Koord. zwischen 0 und 1700 geht die kleinere Karte nicht.
    (z.B.: Drizzt Saga ist nicht mit der kleinen Karte kompatibel, da ja das Eiswindtal nicht mehr auf der Karte ist.)
     
  8. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    @Weigo danke für die Antwort!
    Heißt das, dass die in der Worldmapmod enthaltenen Mods die sind, bei denen die automatische Verkleinerung nicht funktioniert?
    Und das also nötig ist, wenn der y-Wert unter 1700 ist?
     
  9. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    @Weigo falls Du nir hierzu noch einen Tipp geben kannst, momentan stehen in beiden Pfaden jeweils das gleiche was keinen Sinn macht.
    Meine Vermutung: die unter path_to_areas ist die, die für das Direktpatchen der Worldmap des entsprechenden Spiels nötig ist (z.B. EET) und die unter path_to_areas_bp ist die Version für die Worldmap?
     
  10. Weigo

    Weigo Senior Member

    Registriert seit:
    Juli 2005
    Beiträge:
    268
    Zustimmungen:
    25
    In der Worldmapmod sind keine Mods enthalten. Nur besteht ein Teil des Worldmap Mods aus Verbesserungen der area und links tables. Aus dem Grund sind eine ganze Reihe von tables mit dabei. Die meisten stammen nicht von mir, ich war nur zum Teil bei Erebusants Verbesserungen dabei.

    Während der Installtion wird geprüft, ob die y Werte der Areas kleiner als 1700 sind oder bestimmte Mods, wie Drizzt Saga (die ja Gebiete im Eiswindtal haben) installiert sind (wird daran erkannt, dass in der map_mods_areas.tbl der Gebietsname auftaucht)

    Ich glaub da hast du recht mit der bp Variante. Ich kenne den Code nicht so genau, der stammte nach meiner Worldmap Zeit. Ich werde da morgen mal einen Blick darauf werfen.
     
  11. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    Ich meinte die tbl Dateien unter original/updates/tbl, z.B. Wenn ich mir da die für NTotSC ansehe, dann sieht die ntotsc_areas.tbl so aus:
    Code:
    //NTotSC New Areas Table
    SHORT_NAME  CONTENT  LONG_NAME  FLAGS  BAM_ANIM  X_POS  Y_POS  NAME         TOOLTIP      LOAD_IM
    
    AR20PB      AR20PB   AR20PB     2      62        1320   1836   @NT_783001   @NT_783001   N        //Northern Coast
    AR10PB      AR10PB   AR10PB     4      73        1500   1800   @NT_783002   @NT_783002   N        //Field of the Dead
    AR40PB      AR40PB   AR40PB     2      74        1860   1728   @NT_783003   @NT_783003   N        //Northern Wood
    AR01PB      AR01PB   AR01PB     2      40        1860   1858   @NT_783004   @NT_783004   N        //Wood of the Dead
    AR30PB      AR30PB   AR30PB     4      46        1850   2002   @NT_783005   @NT_783005   N        //Northern Citadel
    AR60PB      AR60PB   AR60PB     4      49        2330   2260   @NT_783006   @NT_783006   N        //Temple of the Black Hand
    
    Unter revised/tbl liegt die new_map_mods_areas_ntotsc.tbl, die so aussieht:
    Code:
    //NTotSC New Areas Table
    SHORT_NAME  CONTENT  LONG_NAME  FLAGS  BAM_ANIM  X_POS  Y_POS  NAME         TOOLTIP      LOAD_IM
    
    AR20PB      AR20PB   AR20PB     2      62        1010   1425   @NT_783001   @NT_783001   N        //Northern Coast
    AR10PB      AR10PB   AR10PB     4      73        1505   1325   @NT_783002   @NT_783002   N        //Field of the Dead
    AR40PB      AR40PB   AR40PB     2      74        2085   1295   @NT_783003   @NT_783003   N        //Elven Wood
    AR01PB      AR01PB   AR01PB     2      40        1660   1723   @NT_783004   @NT_783004   N        //Wood of the Dead
    AR30PB      AR30PB   AR30PB     4      46        2675   1500   @NT_783005   @NT_783005   N        //Northern Citadel
    AR60PB      AR60PB   AR60PB     4      49        2460   2185   @NT_783006   @NT_783006   N        //Temple of the Black Hand
    AR9PBA      AR9PBA   AR9PBA     4      62        1050   2350   @NT_783007   @NT_783007   N        //Sirene's Island
    

    In der Mod selbst sieht die areas.tbl so aus:
    Code:
    //NTotSC New Areas Table
    SHORT_NAME  CONTENT  LONG_NAME  FLAGS  BAM_ANIM  X_POS  Y_POS  NAME         TOOLTIP      LOAD_IM
    
    AR20PB      AR20PB   AR20PB     2      62       1320    36     @NT_783001   @NT_783001   N        //Northern Coast
    AR10PB      AR10PB   AR10PB     4      73       1500    100    @NT_783002   @NT_783002   N        //Field of the Dead
    AR40PB      AR40PB   AR40PB     2      74       1860    28     @NT_783003   @NT_783003   N        //Northern Wood
    AR01PB      AR01PB   AR01PB     2      40       1860    158    @NT_783004   @NT_783004   N        //Wood of the Dead
    AR30PB      AR30PB   AR30PB     4      46       1850    302    @NT_783005   @NT_783005   N        //Northern Citadel
    AR60PB      AR60PB   AR60PB     4      49       2330    560    @NT_783006   @NT_783006   N        //Temple of the Black Hand
    
    Ich sehe als Unterschied, dass in der Worldmapmod in der original/updates/tbl/ntotsc_areas.tbl die Koordinaten um meist 1700 größer sind als in der eigentlichen Mod angegeben. Nach welchen Gesichtspunkten unter revised/ die Koordinaten angeben wurden, weiß ich nicht.

    Ich weiß von Bugreporst von DSotSC, dass für das Worldmap-Patchen statt der in der Originalmod enthaltenen tbl-Angaben die aus der Worldmapmod genommen wurden (war zu sehen an fehlerhaften Areabezeichnungen).

    Daher meine (wiederholten) Fragen:
    1. warum sind für einige Mods in der Worldmapmod tbl-Dateien enthalten?
    2. was bewirken diese Dateien?
    3. Wozu liegen in der Mod selbst Dateien vor, wenn sie nicht verwendet werden?
    4. Was bedeuten die veränderten Koordinaten in den Optionen "original" und "revised" der Worldmapmod für Mods, die nicht mit veränderten Koordinaten enthalten sind?

    Falls Du einige der Fragen bereits beantwortet hast, dann entschuldige bitte die Wiederholung. Ich habe bisher keine konkreten Antworten auf diese Fragen erhalten oder sie zumindest nicht verstanden.
    Danke!
     
  12. Weigo

    Weigo Senior Member

    Registriert seit:
    Juli 2005
    Beiträge:
    268
    Zustimmungen:
    25
    Huiuiui, da ist von meinem tp2 Code eigentlich fast gar nichts mehr vorhanden. :)

    Ich versuche dir alles zu erklären (soweit ich es selber verstehe) und wenn was nicht klar ist, dann frag ruhig nochmal nach :D

    Code:
    /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
    /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
    /////                                                  \\\\\
    ///// Part 1: New Clothmap-style map                   \\\\\
    /////                                                  \\\\\
    /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
    /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
    
    
    BEGIN @1000
    DESIGNATED 0
    REQUIRE_PREDICATE ENGINE_IS ~tob bgee bg2ee~ ~This mod cannot be installed on this game~
    //REQUIRE_PREDICATE "%WEIDU_OS%" STRING_COMPARE_CASE osx OR FILE_EXISTS ~bp-bgt_worldmap/bin/osx/mosunpack~ ~This mod is not available for your platform~
    
    COPY_EXISTING sw1h01.itm ~override/bp-bgt_wm6.wm6~ // flag to say we've installed wm6 in our game
    
    // ==============================
    // Part 1.1: Travel Times and Area Visibility, also input construction (areas, links and translations etc) for build_worldmap
    // ==============================
    
    INCLUDE ~bp-bgt_worldmap/lib/load_tables.tpa~
    Die letzte Zeile ist entscheidend, dort werden in der load_tables.tpa die areas.tbl und link.tbl vorbereitet, bevor sie in der worldmap.wmp installiert werden

    load_tables.tpa
    Code:
    ///////////////////////////////////////////////////////////////////////////
    // Before tables are loaded ///////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////
    
    MKDIR worldmap
    
    ACTION_IF MOD_IS_INSTALLED dq.tp2 0 BEGIN
      INCLUDE "bp-bgt_worldmap/lib/compat/fft.tpa"
    END
    ACTION_IF MOD_IS_INSTALLED wheels.tp2 0 BEGIN
      INCLUDE "bp-bgt_worldmap/lib/compat/wheels.tpa"
    END
    ACTION_IF FILE_EXISTS_IN_GAME "l-sar1.are" AND GAME_INCLUDES ~tob~ BEGIN // Almateria's Restoration Project
      INCLUDE "bp-bgt_worldmap/lib/compat/arestorationp.tpa"
    END
    
    ///////////////////////////////////////////////////////////////////////////
    // Tables are loaded //////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////
    
    OUTER_SET got_revised = GAME_IS ~tutu tutu_totsc tob bgt~ ? 1 : 0
    
    //Original or Revised?
    ACTION_IF got_revised BEGIN
      PRINT @2000
      ACTION_READLN how
      OUTER_WHILE NOT IS_AN_INT how OR how > 2 OR how < 1 BEGIN
        PRINT @2000
        ACTION_READLN how
      END
    END ELSE BEGIN
      OUTER_SET how = 1
    END
    
    ACTION_IF how = 1 BEGIN
      INCLUDE ~bp-bgt_worldmap/lib/original.tpa~
    END ELSE BEGIN
      INCLUDE ~bp-bgt_worldmap/lib/revised.tpa~
    END
    Der obere Teil benutzt nochmals Tabellen und Funktionen, die Verbesserungen der einzelnen Mods einfügen.
    Beim unteren Teil kommt nun die Auswahl Original oder Revised.
    Original war ursprünglich so gedacht, dass wirklich nur die aus den Mod mitgelieferten tbls benutzt werden.
    Revised stammt von Erebusant, er hat damals sehr viel überarbeitet, viele neue Links, neue Trigger, alte Trigger deaktiviert, neue Reisezeiten usw.

    Nun zur original.tpa
    Code:
    ACTION_IF GAME_IS ~tob bgt~ BEGIN
      OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_soa_tob_areas.2da~
      OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_soa_tob_links.2da~
    END ELSE ACTION_IF GAME_IS ~tutu tutu_totsc~ BEGIN
      OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_tutu_areas.2da~
      OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_tutu_links.2da~
    END ELSE ACTION_IF GAME_IS ~bgee~ BEGIN
      OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_bg1ee_areas.2da~
      OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_bg1ee_links.2da~
    END ELSE ACTION_IF GAME_IS ~bg2ee eet~ BEGIN
      OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_bg2ee_areas.2da~
      OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_bg2ee_links.2da~
    END
    
    ////////////////////////////////////////////
    //Standard areas and links
    ////////////////////////////////////////////
    COPY ~%fl#area_table%~ ~%fl#area_table%~
      LPM read_area_array_from_2da
    BUT_ONLY
    
    COPY ~%fl#link_table%~ ~%fl#link_table%~
      LPM read_link_array_from_2da
    BUT_ONLY
    
    Hier werden die Areas und links von BG1 und BG2 aller Versionen in einen Array eingelesen.

    Dann kommen die originalen worldmap/map_mods_areas.tbl (Das sind die, die im hauptverzeichnis von BG liegen und jeder Mod seine areas und links angehängt hat.)
    Code:
    ////////////////////////////////////////////
    //Mod-added areas
    ////////////////////////////////////////////
    ACTION_IF FILE_EXISTS "worldmap/map_mods_areas.tbl" BEGIN
      COPY "worldmap/map_mods_areas.tbl" "worldmap/map_mods_areas.tbl"
        LPF fix_table END
        LPM read_area_array_from_2da
      BUT_ONLY
    END
    und dann werden die originalen nochmals geupdated
    Code:
    //"Update" the area info with stuff we provide
    //This really should be done as patches insead of overwriting all the area info
    ACTION_DEFINE_ASSOCIATIVE_ARRAY mod_tables BEGIN
      AR6526 => BGT
      AR4220 => SOS
      DD3300 => TDD
      AR3610 => CtB
      RR3100 => RoT
      DSC001 => DSotSC
      AR01PB => NTotSC
      BH0100 => SoBH
      g3g12a => G3Anniversary
      F_7777 => DS
    END
    
    ACTION_PHP_EACH mod_tables AS area => table BEGIN
      ACTION_IF FILE_EXISTS_IN_GAME "%area%.are" BEGIN
        COPY "bp-bgt_worldmap/original/tbl/updates/%table%_areas.tbl" "bp-bgt_worldmap/original/tbl/updates/%table%_areas.tbl"
          LPM read_area_array_from_2da
        BUT_ONLY
      END
    END
    Nun zur revised.tpa
    Code:
    ACTION_IF GAME_IS ~tob bgt~ BEGIN
      INCLUDE ~bp-bgt_worldmap/lib/revised/megamods.tpa~
    END ELSE ACTION_IF GAME_IS ~tutu tutu_totsc~ BEGIN
      INCLUDE ~bp-bgt_worldmap/lib/revised/tutu_revised.tpa~
    END
    megamods.tpa
    Code:
    ////////////////////////////////////////////
    //Standard SoA and ToB areas and links
    ////////////////////////////////////////////
    COPY "bp-bgt_worldmap/2da/revised_soa_tob_areas.2da" "bp-bgt_worldmap/2da/revised_soa_tob_areas.2da"
      LPM read_area_array_from_2da
    BUT_ONLY
    
    COPY "bp-bgt_worldmap/2da/revised_soa_tob_links.2da" "bp-bgt_worldmap/2da/revised_soa_tob_links.2da"
      LPM read_link_array_from_2da
    BUT_ONLY
    
    
    ////////////////////////////////////////////
    //Mod-added areas
    ////////////////////////////////////////////
    //Add areas from "worldmap/map_mods_areas.tbl"
    ACTION_IF FILE_EXISTS "worldmap/map_mods_areas.tbl" BEGIN
      COPY "worldmap/map_mods_areas.tbl" "worldmap/map_mods_areas.tbl"
        LPF fix_table END
        LPM read_area_array_from_2da
      BUT_ONLY
    END
    Erst werden die revised_soa_tob_areas.2da eingelesen und dann werden auch die originalen map_mods_areas.tbl (Die von den Mods selber hinterlegt sind) eingelesen und dann werden sie gepatched (siehe Erebusant)

    Ich hoffe ich habe dich nicht zu sehr verwirrt. Allerdings, was genau die Änderung der einzelnen Koordinaten auf sich hat, dass kann man nur auf der Karte nachvollziehen.
     
  13. Weigo

    Weigo Senior Member

    Registriert seit:
    Juli 2005
    Beiträge:
    268
    Zustimmungen:
    25
    Jetzt ist es mir wieder eingefallen, wass das genau bedeutet. Wir haben das ja letztens bei BST angesprochen.
    Wenn man einen Mod nach der BP_Weltkarte installieren will, benutzt man ja diese install worldmap function. Deshalb braucht man diese zusätzliche path_to_areas_bp.
    (Die Funktion sucht automatisch nach der BP Karte) Soll oder muss der Mod vor der Weltkarte installiert werden, kann man diese Zeile getrost ignorieren.
     
  14. Jastey

    Jastey Senior Member

    Registriert seit:
    Mai 2004
    Beiträge:
    6.547
    Zustimmungen:
    149
    Aah, das macht Sinn!
    Vielen Dank für die Erklärungen. Warum die Mods unter "original" mit drin sind und ob die nicht raus könnten wenn die Angaben in der Mod selbst enthalten sind muss ich mir nochmal genauer ansehen, abe der Hinweis mit vorher/nachher Installieren macht total Sinn! Ich merke, dass mir nicht klar war, wie das Patchen funktioniert bzw. dass es wirklich zwei verschiedene Dateien sind, die dann entsprechend im Spiel verwendet werden.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden