Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Ergebnis 1 bis 17 von 17
  1. Beiträge anzeigen #1 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline

    [G1] Versionsnummer im Hauptmenü

    Hey. Gibt es in Gothic 1 irgendwie eine Möglichkeit, im Hauptmenü die Spielversion auszublenden?
    Phoenix Dev | Website | Discord

  2. Beiträge anzeigen #2 Zitieren
    Local Hero Avatar von Mark56
    Registriert seit
    Sep 2010
    Beiträge
    254
     
    Mark56 ist offline
    Yes there is. There is .ini entry to set this value.

    Code:
    [OPTIONS]
    show_Version = TRUE
    show_VersionX = 6500
    show_VersionX = 7200
    values are virtual positions on screen where left, top is 0,0 and right bottom are 8192, 8192

  3. Beiträge anzeigen #3 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Thank you Mark56, but this seems only to work in Gothic 2. I need a solution for Gothic 1.
    Phoenix Dev | Website | Discord

  4. Beiträge anzeigen #4 Zitieren
    Local Hero Avatar von Mark56
    Registriert seit
    Sep 2010
    Beiträge
    254
     
    Mark56 ist offline
    Zitat Zitat von lali Beitrag anzeigen
    Thank you Mark56, but this seems only to work in Gothic 2. I need a solution for Gothic 1.
    I can't dissassemble G1 right now, don't know if there is option for it. if not some system pack memory override could help change position off screen or just no-op its insertion. I am not that experienced with this type of stuff. I believe mud-freak and Lehona or MaGoth could help ?

  5. Beiträge anzeigen #5 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Das ist jetzt nicht sehr hilfreich, aber: Wofür möchtest du das denn? Eine zusätzliche Versionsnummer für deine Mod könntest du ja trotzdem einblenden, denke ich.

    Zitat Zitat von Mark56 Beitrag anzeigen
    I can't dissassemble G1 right now, don't know if there is option for it. if not some system pack memory override could help change position off screen or just no-op its insertion. I am not that experienced with this type of stuff. I believe mud-freak and Lehona or MaGoth could help ?
    I'm not really versed in G1, but before I try to look that up I'd like to know why :P

  6. Beiträge anzeigen #6 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Das hier sollte die von Mark genannte Option in Gothic 1 einfügen:

    Zu Beginn der Funktion InitPerceptions (in der Datei AI\AI_Intern\perception.d) die Zeile hideVersionInfo(); eintragen. Damit wird dann der INI-Eintrag berücksichtigt. Existiert OPTIONS.showVersion und steht auf FALSE wird, wie bei Gothic 2 der Fall, die Versionsinfo nicht angezeigt (sowohl mit als auch ohne SystemPack).

    Ich hoffe ich habe damit jetzt Lehona nicht einen Strich durch die Rechnung gemacht, herauszukitzeln wozu das gut sein soll.


    Code:
    /*
     * Add option to hide version information from Gothic 1 main menu
     */
    func void hideVersionInfo() {
        if (GOTHIC_BASE_VERSION != 1) {
            return;
        };
        MEM_InitAll();
    
        var string opt; opt = STR_Upper(MEM_GetModOpt("OPTIONS", "show_Version"));
        if (Hlp_StrCmp(opt, "FALSE") || (Hlp_StrCmp(opt, "0"))) {
            const int versioninfo    = 8625432; //0x839D18
            const int versioninfo_sp = 8189302; //0x7CF576
    
            MemoryProtectionOverride(versioninfo, 1);
            MemoryProtectionOverride(versioninfo_sp, 1);
            MEM_WriteByte(versioninfo, 0);
            MEM_WriteByte(versioninfo_sp, 0);
        };
    };
    Geändert von mud-freak (21.10.2019 um 21:18 Uhr) Grund: Code für 0 oder false in der INI erweitert, Mod Ini

  7. Beiträge anzeigen #7 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Thank you anyway, Mark. :)

    Zitat Zitat von Lehona Beitrag anzeigen
    Das ist jetzt nicht sehr hilfreich, aber: Wofür möchtest du das denn? Eine zusätzliche Versionsnummer für deine Mod könntest du ja trotzdem einblenden, denke ich.
    Darum ging es mir erstmal nicht. Immoment nutzen wir die Möglichkeit, über das SystemPack das Interface größer zu skalieren, um dadurch z.B. die Bars größer anzuzeigen und die Navigationspunkte im Hauptmenü. Langfristig brauchen wir da eine andere Lösung, dass wir das Menü für Menü und Objekt für Objekt einzeln anpassen können (das Logbuch wird jetzt z.B. zu groß angezeigt), aber bis auf Weiteres wollte ich das mal so halten.
    Die Versionsnummer ist dadurch auch größer, aber auch unabhängig der Größe hat sie mich gestört. Es würde ja ausreichen, sie z.B. im Optionsmenü anzuzeigen. Im GothicStarter wird sie ja auch schon angezeigt. Und wir werden mit nem späteren Installer sicherlich auch gleich das Spiel mit patchen, spätestens dann weiß man, welche Version man hat. Jedenfalls hatte ich mir in den Kopf gesetzt, das Hauptmenü etwa so zu rekonstruieren, wie man es im Gameplay Trailer von 2000 sehen konnte. Also wir haben da keine Grafik unterhalb der Menüpunkte, so dass die Versionsnummer da irgendwie Platz hätte. Und da hat das die angestrebte Optik kaputt gemacht. :p


    Zitat Zitat von mud-freak Beitrag anzeigen
    Das hier sollte die von Mark genannte Option in Gothic 1 einfügen:

    Zu Beginn der Funktion InitPerceptions (in der Datei AI\AI_Intern\perception.d) die Zeile hideVersionInfo(); eintragen. Damit wird dann der INI-Eintrag berücksichtigt. Existiert OPTIONS.showVersion und steht auf FALSE wird, wie bei Gothic 2 der Fall, die Versionsinfo nicht angezeigt (sowohl mit als auch ohne SystemPack).

    Ich hoffe ich habe damit jetzt Lehona nicht einen Strich durch die Rechnung gemacht, herauszukitzeln wozu das gut sein soll.


    Code:
    /*
     * Add option to hide version information from Gothic 1 main menu
     */
    func void hideVersionInfo() {
        if (GOTHIC_BASE_VERSION != 1) {
            return;
        };
        MEM_InitAll();
    
        if (Hlp_StrCmp(MEM_GetGothOpt("OPTIONS", "show_Version"), "FALSE")) {
            const int versioninfo    = 8625432; //0x839D18
            const int versioninfo_sp = 8189302; //0x7CF576
    
            MemoryProtectionOverride(versioninfo, 1);
            MemoryProtectionOverride(versioninfo_sp, 1);
            MEM_WriteByte(versioninfo, 0);
            MEM_WriteByte(versioninfo_sp, 0);
        };
    };
    Vielen Dank für die Mühe mud-freak.
    So ganz verstehe ich das nicht und bisher funktioniert es leider auch nicht.
    Ich habe es in die InitPerception eingetragen, also so:

    Code:
    FUNC VOID InitPerceptions()
    {
        hideVersionInfo();    // F: Von mud-freak, um die Version im Menü auszublenden.
    
    [hier der restliche Code]
    };
    Wieso soll das denn ausgerechnet hier rein?

    In der .ini sieht es jetzt so aus (ich habe 0 und 1 getestet, hat aber keinen Unterschied gemacht):

    Code:
    [OPTIONS]
    show_info=0
    show_Version=1
    force_subtitles=1
    force_parameters=
    playLogoVideos=0
    Phoenix Dev | Website | Discord

  8. Beiträge anzeigen #8 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von lali Beitrag anzeigen
    Wieso soll das denn ausgerechnet hier rein?
    Die Funktion ist die erste, die im Spiel aufgerufen wird (noch vor erster Erstellung des Hauptmenüs). Mein Code überschreibt ein Byte in der Exe, sodass die Version ab dem Zeitpunkt nicht mehr angezeigt wird.

    EDIT: So könnt ihr Gothic übrigens auch komplett über die Skripte beim Spielstart patchen und braucht das nicht über einen Installer machen (wenn ich dich richtig verstanden habe). Die EXE zu verändern, würde nämlich zu Inkompatibilitäten mit anderen Mods führen.

    Zitat Zitat von lali Beitrag anzeigen
    In der .ini sieht es jetzt so aus (ich habe 0 und 1 getestet, hat aber keinen Unterschied gemacht):
    Ich habe in meinem Post ja auch geschrieben, dass nach FALSE abgefragt wird und nicht 0 und 1

    EDIT: Ich habe das Skript oben angepasst damit es Groß- und Kleinschreibung von False ignoriert und auch für 0 funktioniert.
    Geändert von mud-freak (20.10.2019 um 13:11 Uhr)

  9. Beiträge anzeigen #9 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    EDIT: So könnt ihr Gothic übrigens auch komplett über die Skripte beim Spielstart patchen und braucht das nicht über einen Installer machen (wenn ich dich richtig verstanden habe). Die EXE zu verändern, würde nämlich zu Inkompatibilitäten mit anderen Mods führen.
    Ich bin mir sicher er meint nur die Installation des neusten G1-Patches, also 1.08k oder was auch immer da aktuell ist (oder das SP).

  10. Beiträge anzeigen #10 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Ah danke fürs Aufklären. Das macht natürlich mehr Sinn in dem Kontext.

  11. Beiträge anzeigen #11 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Die Funktion ist die erste, die im Spiel aufgerufen wird (noch vor erster Erstellung des Hauptmenüs). Mein Code überschreibt ein Byte in der Exe, sodass die Version ab dem Zeitpunkt nicht mehr angezeigt wird.
    Verstehe.

    Ich habe in meinem Post ja auch geschrieben, dass nach FALSE abgefragt wird und nicht 0 und 1

    EDIT: Ich habe das Skript oben angepasst damit es Groß- und Kleinschreibung von False ignoriert und auch für 0 funktioniert.
    Achso. Ich dachte das Spiel könnte zwischen False und 0 sowieso nicht unterscheiden oder so.
    Hmm, also es zeigt immernoch keine Auswirkung.. Ich habe es bisher testweise in meiner eigenen .ini und in der GothicGame.ini versucht (sowohl mit dem alten als auch mit deinem aktualisierten Code). Ich probiere noch irgendwie rum. Wäre ja toll, wenn man ne Fehlermeldung kriegen würde, aber da gar nichts passiert...?

    Zitat Zitat von Lehona Beitrag anzeigen
    Ich bin mir sicher er meint nur die Installation des neusten G1-Patches, also 1.08k oder was auch immer da aktuell ist (oder das SP).
    Ja, so meinte ich das.
    Phoenix Dev | Website | Discord

  12. Beiträge anzeigen #12 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von lali Beitrag anzeigen
    Hmm, also es zeigt immernoch keine Auswirkung.. Ich habe es bisher testweise in meiner eigenen .ini und in der GothicGame.ini versucht (sowohl mit dem alten als auch mit deinem aktualisierten Code).
    Es geht um die Gothic.ini

  13. Beiträge anzeigen #13 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Okay, das war dumm. Dann hab ich vergessen, dass ich in dem Fall ja mit Override arbeiten muss. Danke nochmal. Noch eine Rückfrage: Es wird ja ein Byte in der .exe überschrieben. Wie findest du denn raus, welches Byte du überschreiben willst? Und womit wird es denn überschrieben?

    Und zu meinem weiteren Verständnis: Stehen alle in der Engine "hardkodierten" Sachen in der .exe drin und können die alle überschrieben werden? Wenn also zB. das ATR_STRENGTH da steht und ich will dass es anders heißt (nicht der Name "Stärke"), sondern wenn jetzt dieses Attribut nicht gebraucht würde und stattdessen soll da ATR_INTELLIGENCE oder sonstwas stehen (hypothetisch), kann ich dann der Engine durch so einen Hack einflößen, dass er diese neue Konstante akzeptiert, die ich dann auch global ganz einfach in Daedalus nutzen kann? Oder ist das falsch gedacht?
    Phoenix Dev | Website | Discord

  14. Beiträge anzeigen #14 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von lali Beitrag anzeigen
    Okay, das war dumm. Dann hab ich vergessen, dass ich in dem Fall ja mit Override arbeiten muss.
    Ich glaube, das ist mein Fehler. Wird das bei Gothic 2 zufällig standardmäßig in der GothicGame.ini (bzw. Mod Ini) oder in der Gothic.ini eingestellt (kann ich gerade nicht nachschauen)? Dann sollte ich das noch einmal anpassen. Ein Override sollte da nicht funktionieren. Ich werde mir das noch einmal anschauen.


    Zitat Zitat von lali Beitrag anzeigen
    Noch eine Rückfrage: Es wird ja ein Byte in der .exe überschrieben. Wie findest du denn raus, welches Byte du überschreiben willst? Und womit wird es denn überschrieben?
    In diesem Fall habe ich die Versionsanzeige entfernt, in dem ich den Versions-Text durch einen leeren (= Länge null) ersetzt habe. Speziell heißt das, das erste Zeichen mit einem Null-Byte zu überschreiben. (Die Null signalisiert das Ende der Zeichenkette.) Die genaue Adresse in der Exe kannte ich schon, weil ich mir diesen Text auch schon einmal angeschaut hatte. Randnotiz: Das SystemPack verschiebt diese Adresse, deshalb werden in meinem Code zwei Bytes überschrieben, jeweils für mit und ohne SP.


    Zitat Zitat von lali Beitrag anzeigen
    Und zu meinem weiteren Verständnis: Stehen alle in der Engine "hardkodierten" Sachen in der .exe drin und können die alle überschrieben werden? Wenn also zB. das ATR_STRENGTH da steht und ich will dass es anders heißt (nicht der Name "Stärke"), sondern wenn jetzt dieses Attribut nicht gebraucht würde und stattdessen soll da ATR_INTELLIGENCE oder sonstwas stehen (hypothetisch), kann ich dann der Engine durch so einen Hack einflößen, dass er diese neue Konstante akzeptiert, die ich dann auch global ganz einfach in Daedalus nutzen kann? Oder ist das falsch gedacht?
    Ja, einige allerdings mit mehr Aufwand. Dein Beispiel könnte evlt. nicht umsetzbar sein, da der neue Name länger ist als der alte. Dazu müsste man Adressen verschieben, um Raum zu schaffen und auch alle Referenzen zu diesem betroffenen Bereich müssten überall angepasst werden.

  15. Beiträge anzeigen #15 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Ich glaube, das ist mein Fehler. Wird das bei Gothic 2 zufällig standardmäßig in der GothicGame.ini (bzw. Mod Ini) oder in der Gothic.ini eingestellt (kann ich gerade nicht nachschauen)? Dann sollte ich das noch einmal anpassen. Ein Override sollte da nicht funktionieren. Ich werde mir das noch einmal anschauen.
    Ja, soweit ich weiß wird das eigentlich in der Mod-Ini angegeben. Man will ja nicht unbedingt dem Spieler eine neue Gothic.ini unterjubeln und seine modifizieren. Allerdings tun wir das aktuell auch im Bezug auf andere Dinge, die man nur darüber einstellen kann, wie etwa die Sky Colors etc.

    In diesem Fall habe ich die Versionsanzeige entfernt, in dem ich den Versions-Text durch einen leeren (= Länge null) ersetzt habe. Speziell heißt das, das erste Zeichen mit einem Null-Byte zu überschreiben. (Die Null signalisiert das Ende der Zeichenkette.) Die genaue Adresse in der Exe kannte ich schon, weil ich mir diesen Text auch schon einmal angeschaut hatte. Randnotiz: Das SystemPack verschiebt diese Adresse, deshalb werden in meinem Code zwei Bytes überschrieben, jeweils für mit und ohne SP.
    Und wenn du die Adresse nicht kennst, wie kannst du das dann rausfinden?

    edit:
    Ich muss mich entschuldigen. Ich war so fixiert auf die eigene Mod.ini, weil ich ja auch wusste, dass es in Gothic 2 da abläuft etc., dass ich überhaupt nicht in der Gothic.ini nachgesehen habe. In der Gothic.ini gibts aber tatsächlich schon einen Punkt:

    Code:
    menuShowVersion=1
    ; ... show version-number of gothic in menu, default is 1

    Dachte in Gothic 1 gäbs das gar nicht. Allerdings hat auch das keinerlei Auswirkung.
    Zumindest nicht mit installiertem SystemPack, ohne hab ich jetzt nicht getestet.

    Nach dem Eintrag von show_version in der Gothic.ini, wie du gesagt hast, funktioniert es jetzt auch. Wäre natürlich trotzdem gut, wenn es noch eine Lösung für die Mod.ini gäbe. Warum soll in dem Fall eigentlich kein Override funktionieren?
    Phoenix Dev | Website | Discord
    Geändert von lali (21.10.2019 um 15:21 Uhr)

  16. Beiträge anzeigen #16 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von lali Beitrag anzeigen
    Ja, soweit ich weiß wird das eigentlich in der Mod-Ini angegeben.
    Ich habe das oben im Skript verbessert. Nun wird (wie bei Gothic 2 auch) in der Mod-Ini nach diesem Eintrag gesucht.

  17. Beiträge anzeigen #17 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Läuft problemlos. Danke nochmal.
    Phoenix Dev | Website | Discord

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide