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

 

Seite 1 von 2 12 Letzte »
Ergebnis 1 bis 20 von 30
  1. Homepage besuchen Beiträge anzeigen #1 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline

    Option einer ANDEREN Ini-Datei auslesen und abfragen?

    Hey,
    mit der Ikarus-Funktion MEM_GetGothOpt kann man ja sämtliche Optionen aus der Gothic.ini auslesen und abfragen. Auch mit der eigenen Mod.ini scheint dies möglich zu sein. Nun frage ich mich, ob sich solche Optionen auch aus völlig unabhängigen .ini-Dateien auslesen lassen, die sich ebenfalls im Gothic 2 / System Ordner befinden?
    Worum es mir eigentlich geht, ist, aus der Systempack.ini auszulesen, ob die Option EnableShields auf 1 steht, also aktiviert ist. Die sorgt nämlich dafür, dass das von den Piranha Bytes unvollständig implementierte Schilde-Feature in Gothic funktioniert und angelegte Schilde nicht mehr unsichtbar sind. Wir verwenden dieses Feature in Velen und es ist nun schon ziemlich oft passiert, dass Spieler beim Spielstart entweder das Systempack gar nicht installiert hatten oder die Option in der Ini auf 0 stand, weil die standardmäßig deaktiviert ist. Sämtliche Schilde sind dadurch nicht sichtbar und auch wenn man sie im Nachhinein noch aktiviert bzw. das Systempack installiert, besteht das Problem bei bereits vorher gespeicherten Spielständen weiterhin. Das lässt sich auch nur wieder beheben, indem jeder NPC das Schild ablegt und erneut anlegt.
    Nachdem sämtliche Versuche meinerseits, das Problem einfach per Skript zu beheben, erfolglos waren, kam mir die Idee, beim Spielstart dem Spieler einfach eine Meldung anzuzeigen, die darauf hinweist, dass entweder das Systempack nicht installiert oder die Option in der Ini deaktiviert ist und das Spiel zu schließen, sobald der Spieler die Meldung wegklickt. Nur dafür bräuchte ich statt einer MEM_GetGothOpt eher so etwas wie MEM_GetIniOpt (Ini-Datei, Sektion, Option). Existiert so etwas? Oder gibt es hier vielleicht sogar jemanden, der das Feature ebenfalls verwendet und es bereits geschafft hat, das Problem irgendwie anders zu lösen?

  2. Beiträge anzeigen #2 Zitieren
    Local Hero Avatar von Mark56
    Registriert seit
    Sep 2010
    Beiträge
    254
     
    Mark56 ist offline
    You can implement your own parsing of ini with LeGo and Binary Mchines

    https://lego.worldofplayers.de/?BinaryMachines

  3. Homepage besuchen Beiträge anzeigen #3 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Zitat Zitat von Mark56 Beitrag anzeigen
    You can implement your own parsing of ini with LeGo and Binary Mchines

    https://lego.worldofplayers.de/?BinaryMachines
    Thanks, but that looks too complicated to me as a LeGo and Ikarus noob.

    Maybe there is anybody who has already created something like that or who knows another possibility to reach my goal?

  4. Beiträge anzeigen #4 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von Bloodfly91 Beitrag anzeigen
    Thanks, but that looks too complicated to me as a LeGo and Ikarus noob.

    Maybe there is anybody who has already created something like that or who knows another possibility to reach my goal?
    The binary machines are not very magical - they simply allow you to read the file. Mark56 basically suggests reading the file and looking for the option yourself. Ini files are not that complicated*, so you could probably get away with reading the .ini line by line and checking for 'EnableShields'.

  5. Homepage besuchen Beiträge anzeigen #5 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    The binary machines are not very magical - they simply allow you to read the file. Mark56 basically suggests reading the file and looking for the option yourself. Ini files are not that complicated*, so you could probably get away with reading the .ini line by line and checking for 'EnableShields'.
    Ich glaube, du hast recht. Das sieht sogar für mich machbar aus. Hatte mir das vorhin wohl zu kurz angeschaut...
    Werde es später mal damit versuchen, danke.

  6. Beiträge anzeigen #6 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von Bloodfly91 Beitrag anzeigen
    Ich glaube, du hast recht. Das sieht sogar für mich machbar aus. Hatte mir das vorhin wohl zu kurz angeschaut...
    Werde es später mal damit versuchen, danke.
    Meld dich, wenn du Fragen oder Probleme hast. Habe die BinaryMachines noch nie zum Lesen von Dateien verwendet - die API sieht allerdings noch etwas lückenhaft aus und die Dokumentation eher löchrig. Falls du den richtigen Codeteil findest, kannst du dir in der PermMem.d eventuell ein Beispiel ansehen - dort wird irgendwo die SCRPTSAVE.SAV geladen/gelesen.

  7. Beiträge anzeigen #7 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Wenn es dir nur um das Überprüfen von EnableShields geht, kannst du auch einfach (einer der entsprechenden) Adressen überprüfen, die das SystemPack anpasst. Das sollte um einiges einfacher sein, als eine Datei einzulesen:
    Code:
    const int SP_Shield1 = 9093451; //0x8AC14B
    
    if (!MEM_ReadByte(SP_Shield1)) {
        // Shields enabled
    } else {
        // Shields not enabled
    };
    Code ungetestet.

  8. Beiträge anzeigen #8 Zitieren
    Apprentice
    Registriert seit
    Feb 2018
    Beiträge
    19
     
    bogu9821 ist offline
    I am afraid that this is impossible because the machine code is injectable before the initiation of ikarus.
    Unfortunately, many things can not be checked / fixed with an icarus (eg climbing cache) and only machine code / dll can do it, because ikarus initiates too late.

    EDIT: all in all, the mud freak way is logical and possible
    Geändert von bogu9821 (15.07.2019 um 20:14 Uhr)

  9. Homepage besuchen Beiträge anzeigen #9 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Wenn es dir nur um das Überprüfen von EnableShields geht, kannst du auch einfach (einer der entsprechenden) Adressen überprüfen, die das SystemPack anpasst. Das sollte um einiges einfacher sein, als eine Datei einzulesen:
    Code:
    const int SP_Shield1 = 9093451; //0x8AC14B
    
    if (!MEM_ReadByte(SP_Shield1)) {
        // Shields enabled
    } else {
        // Shields not enabled
    };
    Code ungetestet.
    Vielen Dank! Ich habe mir überlegt, einfach beides zu kombinieren. Mit BinaryMachines-Funktionen prüfe ich, ob das Systempack überhaupt korrekt installiert ist, indem im System-Ordner nach der Systempack.ini gesucht wird. Und per MEM_ReadByte prüfe ich dann, ob die Schilde aktiviert sind. Na ja, so hätte ich es jedenfalls gerne. Denn bisher funktioniert nur die Abfrage, ob die Systempack.ini überhaupt existiert...
    Wenn ich deine Funktion bei mir so wie sie ist einbaue, sind laut dieser die Schilde immer deaktiviert, auch wenn die Funktion eigentlich aktiviert ist. Dachte erst, dass das vielleicht einfach nur umgekehrt sein muss, also nahm ich einfach das Ausrufezeichen vor MEM_ReadByte weg. Daraufhin waren die Schilde laut Funktion allerdings immer aktiviert, auch wenn sie in der Ini-Datei deaktiviert waren.
    Habe es ebenfalls schon ohne meiner zusätzlichen Funktion, die prüft, ob die Systempack.ini existiert, getestet, allerdings existierte das Problem weiterhin. Es liegt also definitiv an der Funktion von dir. Nur wo genau ist da der Fehler?

    Das komplette Skript:

    Code:
    const string SystempackIni = "System\SystemPack.ini";
    
    
    var int CheckSystempackShieldOption_False;
    
    
    func void DIV_CheckSystempackShieldOption()
    {
    	if (!CheckSystempackShieldOption_False)
    	{
    		CheckSystempackShieldOption_False = TRUE;
    	
    		if (BR_OpenFile(SystempackIni))
    		{
    			const int SP_Shield1 = 9093451; //0x8AC14B
    
    
    			if (!MEM_ReadByte(SP_Shield1)) 
    			{
    				MEM_ErrorBox ("Systempack-Ini-Schilde sind aktiviert!");
    				
    			} else {
    			
    				MEM_ErrorBox ("Achtung! Die Schilde in der Systempack-Ini-Datei sind DEAKTIVIERT!"); 
    			};
    		
    		} else {
    		
    			MEM_ErrorBox ("Achtung! Die Datei SystemPack.ini konnte nicht im System-Ordner deiner Gothic 2 Installation gefunden werden. Das Systempack wird benötigt, damit die Modifikation reibungslos funktioniert! Bitte stelle sicher, dass du die aktuellste Systempack-Version installiert hast. Das Spiel wird nun beendet.");
    		};
    		
    		BR_Close();
    	};
    };

  10. Beiträge anzeigen #10 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von bogu9821 Beitrag anzeigen
    I am afraid that this is impossible because the machine code is injectable before the initiation of ikarus.
    Yes, that's exactly what I want. Once Ikarus is initialized, the machine code will have been injected already long before and only then does my proposed check make sense. You might have misunderstood.

    Wie auch immer, du könntest auch direkt das Einschalten der Schilde erzwingen indem du den Maschinencode vom SystemPack mittels Ikarus zusätzlich einsetzt.

    Code:
    const int Shield1 = 9093451; //0x8AC14B
    // 00 5A 53 5F 4C 45 46 54 41 52 4D 00
    
    const int Shield2 = 8574111; //0x82D49F
    // 60 8B CE 6A 09 68 50 83 8B 00 6A 00 68 F0 E6 82 00 54 E8 4A C3 F1 FF 83 C4 10 61 60 8B CE 6A 0A 68 4C C1 8A 00 6A 00 68 F0 E6 82 00 54 E8 2F C3 F1 FF 83 C4 10 61 60 68 FF D4 82 00 8B CE E8 AE C1 F1 FF 81 F9 00 01 00 00 7D 0B 61 68 0C 1E AB 00 E9 98 CC F0 FF 51 8B CE E8 C3 51 F0 FF EB EB F0 E6 82 00 00 00 00 00 2C 83 8B 00 0C 00 00 00 1F
    
    const int Shield3 = 7577992; //0x73A188
    // E9 12 33 0F 00
    
    const int Shield4 = 7573597; //0x73905D
    // E9 D9 44 0F 00
    
    const int Shield5 = 7574665; //0x739489
    // E9 DD 40 0F 00
    
    const int Shield6 = 7566881; //0x737621
    // E9 7A 5F 0F 00 90
    
    const int Shield7 = 8574227; //0x82D513
    // F0 E6 82 00 00 00 00 00 4C C1 8A 00 0A 00 00 00 1F 00 00 00 F0 E6 82 00 00 00 00 00 50 83 8B 00 09 00 00 00 1F 00 00 00 68 F4 1E AB 00 60 8B CE E8 08 A9 F0 FF 81 F9 00 01 00 00 7D 06 61 E9 2D BB F0 FF 61 60 8B CE 68 13 D5 82 00 68 27 D5 82 00 E8 57 68 F1 FF EB E5 68 F4 1E AB 00 60 8B CE 68 13 D5 82 00 E8 13 C1 F1 FF 81 F9 00 01 00 00 7D 06 61 E9 03 BF F0 FF 61 60 8B CE 68 27 D5 82 00 68 13 D5 82 00 E8 22 68 F1 FF EB E5 8B 86 B8 09 00 00 33 FF 85 C0 7E 35 8D 49 00 8B 96 B0 09 00 00 8B 04 BA 68 17 D5 82 00 8D 48 04 E8 EB AA BE FF 85 C0 74 0D 8B 86 B8 09 00 00 47 3B F8 7C DB EB 0B 8B 86 B0 09 00 00 8B 3C B8 EB 02 33 FF 57 8B CE E8 75 D0 F1 FF 8B 86 B8 09 00 00 E9 31 A0 F0 FF
    
    const int Shield8 = 8574454; //0x82D5F6
    // 60 68 0C 1E AB 00 8B CE E8 8D 49 F0 FF 85 C0 75 0B 61 68 F0 1E AB 00 E9 2A EC F1 FF 50 8B CE E8 A6 50 F0 FF EB EB
    
    const int Shield9 = 7651895; //0x74C237
    // E9 BA 13 0E 00
    Geändert von mud-freak (15.07.2019 um 20:15 Uhr)

  11. Beiträge anzeigen #11 Zitieren
    Apprentice
    Registriert seit
    Feb 2018
    Beiträge
    19
     
    bogu9821 ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Yes, that's exactly what I want. Once Ikarus is initialized, the machine code will have been injected already long before and only then does my proposed check make sense. You might have misunderstood.

    Wie auch immer, du könntest auch direkt das Einschalten der Schilde erzwingen indem du den Maschinencode vom SystemPack mittels Ikarus zusätzlich einsetzt.

    Code:
    const int Shield1 = 9093451; //0x8AC14B
    // 00 5A 53 5F 4C 45 46 54 41 52 4D 00
    
    const int Shield2 = 8574111; //0x82D49F
    // 60 8B CE 6A 09 68 50 83 8B 00 6A 00 68 F0 E6 82 00 54 E8 4A C3 F1 FF 83 C4 10 61 60 8B CE 6A 0A 68 4C C1 8A 00 6A 00 68 F0 E6 82 00 54 E8 2F C3 F1 FF 83 C4 10 61 60 68 FF D4 82 00 8B CE E8 AE C1 F1 FF 81 F9 00 01 00 00 7D 0B 61 68 0C 1E AB 00 E9 98 CC F0 FF 51 8B CE E8 C3 51 F0 FF EB EB F0 E6 82 00 00 00 00 00 2C 83 8B 00 0C 00 00 00 1F
    
    const int Shield3 = 7577992; //0x73A188
    // E9 12 33 0F 00
    
    const int Shield4 = 7573597; //0x73905D
    // E9 D9 44 0F 00
    
    const int Shield5 = 7574665; //0x739489
    // E9 DD 40 0F 00
    
    const int Shield6 = 7566881; //0x737621
    // E9 7A 5F 0F 00 90
    
    const int Shield7 = 8574227; //0x82D513
    // F0 E6 82 00 00 00 00 00 4C C1 8A 00 0A 00 00 00 1F 00 00 00 F0 E6 82 00 00 00 00 00 50 83 8B 00 09 00 00 00 1F 00 00 00 68 F4 1E AB 00 60 8B CE E8 08 A9 F0 FF 81 F9 00 01 00 00 7D 06 61 E9 2D BB F0 FF 61 60 8B CE 68 13 D5 82 00 68 27 D5 82 00 E8 57 68 F1 FF EB E5 68 F4 1E AB 00 60 8B CE 68 13 D5 82 00 E8 13 C1 F1 FF 81 F9 00 01 00 00 7D 06 61 E9 03 BF F0 FF 61 60 8B CE 68 27 D5 82 00 68 13 D5 82 00 E8 22 68 F1 FF EB E5 8B 86 B8 09 00 00 33 FF 85 C0 7E 35 8D 49 00 8B 96 B0 09 00 00 8B 04 BA 68 17 D5 82 00 8D 48 04 E8 EB AA BE FF 85 C0 74 0D 8B 86 B8 09 00 00 47 3B F8 7C DB EB 0B 8B 86 B0 09 00 00 8B 3C B8 EB 02 33 FF 57 8B CE E8 75 D0 F1 FF 8B 86 B8 09 00 00 E9 31 A0 F0 FF
    That's right, I did not understand exactly. I am very tired today. Your way will definitely work.

  12. Beiträge anzeigen #12 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von bogu9821 Beitrag anzeigen
    Unfortunately, many things can not be checked / fixed with an icarus (eg climbing cache) and only machine code / dll can do it, because ikarus initiates too late.
    What is "climbing cache"? All I get from Google are results relating to rock climbing and geo caching.

  13. Homepage besuchen Beiträge anzeigen #13 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Die Antwort von bogu9821, die ich leider etwas zu spät sah, brachte mich auf die Idee, das komplette Skript einfach mal in die InitPerceptions zu integrieren, die ja schon vor dem erstellen des Hauptmenüs aufgerufen wird. So scheint das auch mit deiner Funktion von vorhin bereits perfekt zu funktionieren! Dass die Meldung dem Spieler schon direkt im Menü, vor dem starten des Spiels, angezeigt wird, ist mMn. ohnehin um einiges sinnvoller.
    Nun bräuchte ich allerdings noch eine Möglichkeit, das Spiel direkt wieder zu schließen, nachdem der Spieler die Meldung weggeklickt hat... Habe es bereits mit ExitGame versucht, das funktioniert nicht. Dann fand ich eine Funktion namens EmergencyExit. Diese habe ich versucht aufzurufen, das Spiel wird auch beendet, nur erscheint danach auch direkt eine AV, deshalb denke ich eher weniger, dass die Funktion selbst funktioniert.
    Ich habe versucht, die Adresse per CALL__stdcall aufzurufen, ehrlich gesagt weiß ich nicht mal, ob das die Funktion ist, mit der man Engine-Adressen direkt aufrufen kann...

    Code:
    const int emergencyExit = 6596608; //0X0064A800
    CALL__stdcall (emergencyExit);

  14. Beiträge anzeigen #14 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Ich empfehle
    Code:
    MEM_SendToSpy(zERR_TYPE_FATAL, "Bad you!");
    Hast du mal geschaut, ob du nicht einfach das Einschalten der Schilde erzwingen willst? (siehe mein Post weiter oben)

  15. Homepage besuchen Beiträge anzeigen #15 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Ich empfehle
    Code:
    MEM_SendToSpy(zERR_TYPE_FATAL, "Bad you!");
    Hast du mal geschaut, ob du nicht einfach das Einschalten der Schilde erzwingen willst? (siehe mein Post weiter oben)
    Würde so wohl funktionieren, danke. Allerdings denke ich, dass es tatsächlich besser wäre, das einfach zu erzwingen. Allerdings erschließt sich mir nicht ganz, wie ich das anstelle. Die Funktion von meinem vorherigen Beitrag, ist wohl nicht wirklich dafür geeignet und nach meiner Suche hier im Forum denke ich, dass ich wohl die Funktionen MemoryProtectionOverride und MEM_WriteInt dafür benötige. Ist das korrekt? Allerdings verstehe ich nicht, wie ich diese beiden Funktionen dann letztendlich verwende. Der erste Parameter wäre wohl bei beiden die Adresse, also zum Beispiel Shield1? Aber der zweite Parameter?

    Würden die Spieler dann eigentlich trotzdem noch zwingend das Systempack benötigen, also wäre die Abfrage, ob die Systempack.ini vorhanden ist, weiterhin sinnvoll? Oder werden dadurch direkt einfach nur die Schilde aktiviert, die ja in Gothic halb fertig bereits existieren und durch die Systempack-Option aktiviert werden?

  16. Homepage besuchen Beiträge anzeigen #16 Zitieren
    Ritter Avatar von MaGoth
    Registriert seit
    May 2007
    Ort
    Russland (Samara)
    Beiträge
    1.407
     
    MaGoth ist offline
    Bloodfly91,
    As an option, use Playerkit-2.8..

    In your ini-mod file add:
    Code:
    [OVERRIDES_SP]
    PARAMETERS.EnableShields=1
    ps, In SP-1.8, shields are enabled by default.


    MfG MaGoth,
    |: WOG.de :|: WOG.en :|: WOG.ru :|: WOG.ro :|||: MAGIC-Team :|
    [Bild: 106462_941c3dcc88ff9e9b5597d9f24d9aea88.jpg]
    |: WOR.de :|: WOR.en :|: WOR.ru :|: WOR.ro :|||: Piranha-Bytes :|
    -=GOTHIC UND DIE FREUNDSCHAFT FÜR ALLE ZEITEN!=-

  17. Homepage besuchen Beiträge anzeigen #17 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Zitat Zitat von MaGoth Beitrag anzeigen
    Bloodfly91,
    As an option, use Playerkit-2.8..

    In your ini-mod file add:
    Code:
    [OVERRIDES_SP]
    PARAMETERS.EnableShields=1
    Hey MaGoth!
    I've tryed this immediately and it seems to work perfect. Many thanks! But now another problem remains instead... What if the player has started the game without the Playerkit-2.8? In that case his save would also be corrupted forever as soon as he saves it. And as far as I know Spine does not install it automatically and also doesn't offer it. So I would now need a check if the Playerkit-2.8 is installed or not. That doesn't seem to be that simple because it doesn't add any new file but it does only replace the GothicStarter.exe, is that correct?

    Zitat Zitat von MaGoth Beitrag anzeigen
    ps, In SP-1.8, shields are enabled by default.


    MfG MaGoth,
    That's good to hear! I wanted to ask you anyway for a long time already why this option isn't enabled by default. Because as far as I know there are no disadvantages in other modifications when this feature is enabled, even if they doesn't use this shield feature.

  18. Homepage besuchen Beiträge anzeigen #18 Zitieren
    Ritter Avatar von MaGoth
    Registriert seit
    May 2007
    Ort
    Russland (Samara)
    Beiträge
    1.407
     
    MaGoth ist offline
    Zitat Zitat von Bloodfly91 Beitrag anzeigen
    Hey MaGoth!
    I've tryed this immediately and it seems to work perfect. Many thanks! But now another problem remains instead... What if the player has started the game without the Playerkit-2.8? In that case his save would also be corrupted forever as soon as he saves it. And as far as I know Spine does not install it automatically and also doesn't offer it. So I would now need a check if the Playerkit-2.8 is installed or not. That doesn't seem to be that simple because it doesn't add any new file but it does only replace the GothicStarter.exe, is that correct?
    1. In more detail, what's the problem with saving?
    2. When installing it, the file is replaced with a new version, with support for ini-file overrides.

    ps, And what prevents to add starter check to the installer of the mod?
    Code:
    Function .onVerifyInstDir
      !insertmacro GLOBAL_IfInstallVersion $INSTDIR "2.8.0.0" done
      !insertmacro GLOBAL_IfInstallVersionBase $INSTDIR "2.8" code
    About the Spine, I can not say anything.


    MfG MaGoth,
    |: WOG.de :|: WOG.en :|: WOG.ru :|: WOG.ro :|||: MAGIC-Team :|
    [Bild: 106462_941c3dcc88ff9e9b5597d9f24d9aea88.jpg]
    |: WOR.de :|: WOR.en :|: WOR.ru :|: WOR.ro :|||: Piranha-Bytes :|
    -=GOTHIC UND DIE FREUNDSCHAFT FÜR ALLE ZEITEN!=-
    Geändert von MaGoth (16.07.2019 um 07:02 Uhr)

  19. Homepage besuchen Beiträge anzeigen #19 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Zitat Zitat von MaGoth Beitrag anzeigen
    1. In more detail, what's the problem with saving?
    As soon as one starts the game without shields enabled, all shields are invisible. Even if one saves the current game and enables shields after that in the SystemPack.ini, all shields are still invisible and they will stay invisible permanently for the savegame. The only way to fix that is to equip every shields manually again.

    Zitat Zitat von MaGoth Beitrag anzeigen
    ps, And what prevents to add starter check to the installer of the mod?
    Code:
    Function .onVerifyInstDir
      !insertmacro GLOBAL_IfInstallVersion $INSTDIR "2.8.0.0" done
      !insertmacro GLOBAL_IfInstallVersionBase $INSTDIR "2.8" code
    Thank you. The problem with that is, that I am a totally noob in creating installers. If the NSIS-Script from NicoDE (I think?) wouldn't exist, Velen would not have a installer for sure.
    Even nowdays our installer is bad programmed and does not look that good. I still hope to find somebody, who has good knowledge in creating such things. ^^
    This is a very big advantage of Spine in my opinion, there is no need to create an installer.
    Geändert von Bloodfly91 (16.07.2019 um 07:44 Uhr)

  20. Homepage besuchen Beiträge anzeigen #20 Zitieren
    Ritter Avatar von MaGoth
    Registriert seit
    May 2007
    Ort
    Russland (Samara)
    Beiträge
    1.407
     
    MaGoth ist offline
    Zitat Zitat von Bloodfly91 Beitrag anzeigen
    As soon as one starts the game without shields enabled, all shields are invisible. Even if one saves the current game and enables shields after that in the SystemPack.ini, all shields are still invisible and they will stay invisible permanently for the savegame. The only way to fix that is to equip every shields manually again.
    A little explanation of the work of SP and shields.
    1. Old save games/mods without SP installed are not compatible with SP installed. Here, only the New game!
    2. If shields are disabled (EnableShields=0), the slot for them does not exist.
    At the start of the game, all things are displayed in slots and the shield does not fall into its slot because it does not exist. Of course, if you start the game/mod from the old saves with the disabled option, then the shields will be invisible.
    3. You can not run the game/save with shields off, if your mod uses shields implemented via SP.
    4. Playerkit(2.6f or 2.8) in game/mods saves does not change anything, there can be no errors from its use.

    Conclusion:
    Use your mod with: SystemPack → Playerkit-2.8 → INI-Shields On → New Game.


    MfG MaGoth,
    |: WOG.de :|: WOG.en :|: WOG.ru :|: WOG.ro :|||: MAGIC-Team :|
    [Bild: 106462_941c3dcc88ff9e9b5597d9f24d9aea88.jpg]
    |: WOR.de :|: WOR.en :|: WOR.ru :|: WOR.ro :|||: Piranha-Bytes :|
    -=GOTHIC UND DIE FREUNDSCHAFT FÜR ALLE ZEITEN!=-

Seite 1 von 2 12 Letzte »

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