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 20 von 21 « Erste ... 913161718192021 Letzte »
Ergebnis 381 bis 400 von 404
  1. Beiträge anzeigen #381
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Hast halt dann asm(JUMP, 1) oder so, habe aus'm Kopf wenig Ahnung von Opcode. Aber genau für sowas gibt es doch Konstanten? Du kannst dir die Funktionen sonst ja auch eben selber zusammenbasteln.

  2. Homepage besuchen Beiträge anzeigen #382
    Exodus Avatar von Sektenspinner
    Registriert seit
    Jul 2004
    Ort
    Karlsruhe
    Beiträge
    7.827
     
    Sektenspinner ist offline
    Holywater hat recht. Die ASM Funktionen in Ikarus klingen zwar nach Assembler, können aber fast nichts.
    Zitat Zitat von Ikarus Doku
    Bemerkung: Die Funktionen tragen das Präfix "ASM_" für Assembler(sprache). Assemblersprache ist eine menschenlesbare Sprache mit eins-zu-eins Entsprechungen zur Maschinensprache. Strenggenommen ist das "ASM_" Präfix daher fehlleitend, da es hier um Maschinencode und nicht um Assemblersprache geht.
    Kein Mensch kann mit dem, was Ikarus bietet sinnvoll Maschinencode produzieren. Und niemand kann mal schnell die ganzen Opcodes und Adressierungsarten von Hand nachimplementieren.

    Für die Call Skripte musste ich aber nur eine Hand voll raussuchen, das ging ganz gut. Und für andere kleine Sachen sollte das ebenso unproblematisch sein.

    Was die ASM Funktionen einem abnehmen, ist die Speicherverwaltung für das Codestück und der eigentliche Aufruf (da muss man sich ein Externalsymbol zurechtbiegen).

    Zitat Zitat von Holywater
    so eine art runtime assembler wäre echt cool
    Was hast du vor?

    Was mir noch an Lowlevel-Zeug einfällt, was in Ikarus rein sollte sind Hooks. Es sollte möglich sein, Aufrufe an bestimmte Enginefunktionen abzufangen, und vor der Engine zu reagieren. Damit könnte man zum Beispiel noch schnell Dinge tun, bevor der Archiver anfängt sich ein Savegame zusammenzusammeln (so kann man zusätzliche Daten ins Savegame schmuggeln die man später wieder entpacken will).
    Die Hoffnung, dass mich oder jemand anderen in diese Richtung nochmal die Muße packt, war auch einer der Gründe, weshalb ich die ASM Funktionalität aus den CALL Skripten herausfaktorisiert habe.
    Für Spieler:
    Velaya # Velaya in English # Exodus Demo # Irrwichtel
    Tools für Modder:
    DiaDepp # DOPA-PARTER # zSlang
    Scripte für Modder:
    Ikarus Skriptpaket # Floats # Broadcasts

  3. Beiträge anzeigen #383
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Da wir uns auf dem Moddertreffen damit auseinandergesetzt haben (Großes Danke an Nico hier, dank *ein wenig Hilfe* von ihm war das erst möglich), war es ja abzusehen: Ich habe schnell ein Script zusammengeschmiert, was die Manabar dauerhaft anzuzeigen vermag.

    Nach jedem Neustart von Gothic muss die Funktion erneut aufgerufen werden, daher sollte man sie wohl in die Init_Global() eintragen.

    Die Konstanten sind übrigens nicht als Parameter für euch gedacht

    Code:
    const int MANABAR_SHOW = /*0x0D8B14EB*/ 227218667;
    const int MANABAR_HIDE = /*0x0000BCE9*/ 48361;
    const int MANABAR_DEFAULT = /*0x0D8B1475*/ 227218549;
    
    //  1 = Show 
    //  0 = Default 
    // -1 = Hide
    
    
    func void ShowManabar(var int cond) {
            var int tmp; 
            
            MemoryProtectionOverride(/*0x006C33EC*/7091180, 4);
            
            if (cond == 1) {
            	tmp = MANABAR_SHOW;
         	} else if (cond == 0) {
         		tmp = MANABAR_DEFAULT;
            } else if (cond == -1) {
                tmp = /*000000BC*/ 188;
                MEM_WriteInt(/*0x006C33EC*/ 7091181, tmp);
            	tmp = MANABAR_HIDE;
            };
                    
            MEM_WriteInt(/*0x006C33EC*/ 7091180, tmp);
    };
    Credits gehen zusätzlich zu mir an Nico, Sektenspinner und Gottfried, gerade letzter hat sich vorhin dreisterweise meinen Code geschnappt und getestet.

    Edit: Da Gottfried mich auf eine weitere Idee gebracht hat, gleich noch ein Script hinterher:

    Code:
    //  1 = ShowInFight
    //  0 = Normal
    // -1 = ShowOutFight
    
    
    func void ShowManabarInFight(var int cond) {
    	var int tmp;
    	
    	MemoryProtectionOverride( /*0x006C33F9*/ 7091193, 8);
    	
    	if (cond == 1) {
    		tmp = /*0x0F00F883*/ 251721859;
    		MEM_WriteInt(7091193, tmp);
    		tmp = /*0x00AB840F*/ 11240463;
    		MEM_WriteInt(7091196, tmp);
    	} else if (cond == 0) {
    		tmp = /*0F07F883*/ 252180611;
    		MEM_WriteInt(7091193, tmp);
    		tmp = /*0x00AB850F*/ 11240719;
    		MEM_WriteInt(7091196, tmp);
    	} else if (cond == -1) {
    		tmp = /*0x0F00F883*/ 251721859;
    		MEM_WriteInt(7091193, tmp);
    		tmp = /*0x00AB850F*/ 11240719;
    		MEM_WriteInt(7091196, tmp);
    	};
    };
    Mit diesem Script kann man a) die Manabar nur in Kämpfen oder b) die Manabar nur ausserhalb von Kämpfen anzeigen lassen (Und das ganze Rückgängig machen). Es beeinflusst das erste Script nicht (Das erste hat aber vorrang).

    Edit2: Habe jetzt im ersten Script mal die Konstanten geändert, der zweite Name war nicht unbedingt eindeutig.
    Geändert von Lehona (08.03.2011 um 16:57 Uhr)

  4. Homepage besuchen Beiträge anzeigen #384
    Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen Avatar von Player140
    Registriert seit
    Jul 2004
    Beiträge
    3.111
     
    Player140 ist offline
    Und wie kann man das Verhalten der Manabar wieder aufs standard-Verhalten setzen?
    Optimal wäre eine Funktion SetManabarState, die als parameter die Kontanten für show, hide u. default erwartet um jeden möglichen state gerecht zu werden.

  5. Beiträge anzeigen #385
    Ehrengarde Avatar von Gottfried
    Registriert seit
    Mar 2006
    Beiträge
    2.512
     
    Gottfried ist offline
    Zitat Zitat von Player140 Beitrag anzeigen
    Und wie kann man das Verhalten der Manabar wieder aufs standard-Verhalten setzen?
    Code:
    // -1 = Normal


    Die zweite Funktion tut doch genau das was du willst, oder? Die erste schaltet übrigens auch zwischen Show & Default hin und her. Die Manabar wird also nie vollständig deaktiviert..

    MfG Gottfried

  6. Beiträge anzeigen #386
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Stimmt natürlich, Fehler in meiner Beschreibung. Bein ShowManabar(False) verhält sie sich wieder normal. Falls jemand sie unbedingt ganz ausschalten möchte soll er das sagen, dann bastel ich das auch noch, ist nicht (mehr) so kompliziert.

  7. Beiträge anzeigen #387
    Veteran Avatar von MyFreshP
    Registriert seit
    Sep 2010
    Ort
    nicht auf dieser Welt
    Beiträge
    598
     
    MyFreshP ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Falls jemand sie [die Manabar] unbedingt ganz ausschalten möchte soll er das sagen [...]
    Ich würde die Manabar gerne ganz ausschalten. Wäre also sehr nett von dir, wenn du das dann auch noch zusammenbasteln würdest.
    Betatester bei Xeres' Rückkehr

  8. Beiträge anzeigen #388
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von LordEdhor Beitrag anzeigen
    Ich würde die Manabar gerne ganz ausschalten. Wäre also sehr nett von dir, wenn du das dann auch noch zusammenbasteln würdest.
    Ich habe meinen Post oben geupdatet

  9. Beiträge anzeigen #389
    Veteran Avatar von MyFreshP
    Registriert seit
    Sep 2010
    Ort
    nicht auf dieser Welt
    Beiträge
    598
     
    MyFreshP ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Ich habe meinen Post oben geupdatet
    Vielen Dank. Ich habe die Ikarusscripts in meine Mod integriert und die von dir oben genannte Funktion eingetragen. Allerdings erhalte ich beim Parsen die Fehlermeldung Unkown identifier MemoryProtectionOverride. Das Script mit der Funktion wird nach den Ikarusscripts geparst. Muss ich dabei irgendwas besonderes beachten?
    Betatester bei Xeres' Rückkehr

  10. Beiträge anzeigen #390
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Hast du die neuste Version von Ikarus? *kratz*
    (Oder hat Sekti den Funktionsnamen geändert? Bezweifle ich, wäre ein harter Verstoß gegen Rückwärtskompatibilität.)

  11. Beiträge anzeigen #391
    Veteran Avatar von MyFreshP
    Registriert seit
    Sep 2010
    Ort
    nicht auf dieser Welt
    Beiträge
    598
     
    MyFreshP ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Hast du die neuste Version von Ikarus?
    Ich hatte die neuste Version zwar auf meinem PC, doch blöderweise eine ältere Version, die irgendwo auf meinem PC noch umhergeisterte, eingebaut. Der Fehler ist nun jedoch behoben.

    Dafür stürzt das Spiel sauber nach dem Laden der ersten Welt ab. In der Funktion init_global habe ich folgenden Code eingefügt:
    Code:
    ShowManabar(-1);
    Betatester bei Xeres' Rückkehr

  12. Beiträge anzeigen #392
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von LordEdhor Beitrag anzeigen
    Ich hatte die neuste Version zwar auf meinem PC, doch blöderweise eine ältere Version, die irgendwo auf meinem PC noch umhergeisterte, eingebaut. Der Fehler ist nun jedoch behoben.

    Dafür stürzt das Spiel sauber nach dem Laden der ersten Welt ab. In der Funktion init_global habe ich folgenden Code eingefügt:
    Code:
    ShowManabar(-1);
    Mein Fehler, der Befehl in IDA ist 5 Byte groß, das habe ich irgendwie übersehen *hust*

    Ich stell gleich 'ne neue Version hoch.

    Edit: Schon da. Wenn's nun nicht geht bin ich mit meinem Latein erstmal am Ende und werde da wohl ein wenig mehr rumprobieren müssen.

  13. Beiträge anzeigen #393
    Veteran Avatar von MyFreshP
    Registriert seit
    Sep 2010
    Ort
    nicht auf dieser Welt
    Beiträge
    598
     
    MyFreshP ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Edit: Schon da. Wenn's nun nicht geht bin ich mit meinem Latein erstmal am Ende und werde da wohl ein wenig mehr rumprobieren müssen.
    Funktioniert jetzt wunderbar!
    Betatester bei Xeres' Rückkehr

  14. Beiträge anzeigen #394
    Ehrengarde Avatar von HolyWater
    Registriert seit
    Aug 2007
    Beiträge
    2.214
     
    HolyWater ist offline
    jemand ne idee wie ich shader rein basteln kann?
    ich selbst hab es bis jetzt noch nich hinbekommen die kacke auf dx9 zu bringen (meine kack alte X1600 unterstützt ja leider kein dx10 oder 11)

    eine recht talentierte person hier im forum hats (soweit ich das beurteilen kann) auf dx10 geschafft -> läuft leider bei mir nicht!
    im schlimmsten fall dachte ich dran (wenigsten für postprocessing) im hintergrund noch nen device zu erstellen, würde aber extrem kacke sein.
    ideen wären cool
    ♥ HolyWater ♥ YAY xD

  15. Beiträge anzeigen #395
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.246
     
    Milky-Way ist offline
    Ich beziehe mich mal auf den Tipp zu eigenen Einstellungen in der .ini:
    http://forum.worldofplayers.de/forum...&#post13765649

    Bei mir werden zwar Werte in die .ini geschrieben, das Auslesen funktioniert aber nicht.
    Section und Option habe ich als String-Konstante auch in den Content-Skripten:
    Code:
    const string szOption_Section		=	"STEINZEIT";
    const string szOption_Difficulty	=	"zsDifficulty";
    identisch zu den Angaben in den Menü-Skripten:
    Code:
        onChgSetOption                      = "szDifficulty";
        onChgSetOptionSection               = "STEINZEIT";
    Jetzt versuche ich die auch auszulesen:
    Code:
    IF (Hlp_StrCmp (MEM_GetGothOpt (szOption_Section, szOption_Difficulty), "0"))
    	{
    		Print ("Klappt!");
    	} else {
    		Print ("Klappt nicht!");
    	};
    Allerdings kommt da immer "Klappt nicht!" raus (auch wenn in der .ini als Wert 0 steht. Also mal schnell das "Klappt nicht!" ersetzt durch
    Code:
    MEM_GetGothOpt (szOption_Section, szOption_Difficulty)
    um mir anzusehen, was der String denn nun ist. Ergebnis: nichts wird angezeigt.

    Was mache ich falsch?

  16. Homepage besuchen Beiträge anzeigen #396
    Clockwork Origins Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    11.826
     
    Bonne6 ist offline
    Du hast einmal zsDifficulty und einmal szDifficulty

  17. Beiträge anzeigen #397
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.246
     
    Milky-Way ist offline
    Zitat Zitat von Bonne6 Beitrag anzeigen
    Du hast einmal zsDifficulty und einmal szDifficulty
    Stimmt, jetzt klappt es, danke. Eine halbe Stunde unnötig herumprobiert, weil ich nicht aufmerksam genug verglichen (und einen Fehler dort schon ausgeschlossen ) hatte.

  18. Homepage besuchen Beiträge anzeigen #398
    Clockwork Origins Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    11.826
     
    Bonne6 ist offline
    Zitat Zitat von Milky-Way Beitrag anzeigen
    Stimmt, jetzt klappt es, danke. Eine halbe Stunde unnötig herumprobiert, weil ich nicht aufmerksam genug verglichen (und einen Fehler dort schon ausgeschlossen ) hatte.
    In dem Fall halt auch fies, weil es keinen Parser-Fehler gibt, da kann man sich schon dumm und dämlich suchen

  19. Homepage besuchen Beiträge anzeigen #399
    Clockwork Origins Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    11.826
     
    Bonne6 ist offline
    Hab grad überlegt, wie ich das mit dem Speichern in Elemental War verbessert hab. Jetzt ist mir folgende Idee gekommen:

    1. Bei Pausetaste Spiel anhalten wie Sekti mit seinem Zauber bei der eXodus-Präsi auf dem Moddertreff
    2. Ggf. Positionen der Monster speichern im Aivar
    3. KI-Glocke hochsetzen
    4. Teleportieren

    Wenn man zurückgeht eben Spiel weiterlaufen lassen, Positionen wiederherstellen und KI-Glocke wieder verkleinern.

    Könnte das klappen, dass die Monster dann alle an ihrer Position bleiben, auch nach dem Laden? Problem könnte sein, dass ich dann doch wieder alles voller WPs für die Monster machen muss, weil die sonst vllt. den Weg nicht mehr finden wie es anfangs war, als nur an den Ecken welche waren und bei Treffern sind die vom Weg abgekommen.

  20. Homepage besuchen Beiträge anzeigen #400
    Exodus Avatar von Sektenspinner
    Registriert seit
    Jul 2004
    Ort
    Karlsruhe
    Beiträge
    7.827
     
    Sektenspinner ist offline
    Zitat Zitat von Bonne6 Beitrag anzeigen
    Hab grad überlegt, wie ich das mit dem Speichern in Elemental War verbessert hab. Jetzt ist mir folgende Idee gekommen:

    1. Bei Pausetaste Spiel anhalten wie Sekti mit seinem Zauber bei der eXodus-Präsi auf dem Moddertreff
    Das war etwas komplizierter, weil ich ja wollte, dass der Spieler noch ganz normal laufen kann. Etwas einfacher ist folgendes:

    Code:
    func void pause(var int showPauseText) {
        const int oCGame__pause = 7113424; //0x06C8AD0
        CALL_IntParam(!showPauseText);
        CALL__thiscall(MEM_InstToPtr(MEM_Game), oCGame__pause);
    };
    
    func void unpause() {
        const int oCGame__unpause = 7114064; //0x6C8D50
        CALL__thiscall(MEM_InstToPtr(MEM_Game), oCGame__unpause);
    };
    Das macht letztendlich das, was beim drücken von F9 passiert. Reicht dir das?

    Zitat Zitat von Bonne6
    Könnte das klappen
    Ich verstehe nicht ganz, was Pausieren des Spiels mit Speichern und Teleportieren zu tun hat. Und wenn sich alles in der Standard-KI Glocke abspielt ist normales Speichern ja ohnehin kein Problem.
    Welches Problem gilt es genau zu lösen?
    Für Spieler:
    Velaya # Velaya in English # Exodus Demo # Irrwichtel
    Tools für Modder:
    DiaDepp # DOPA-PARTER # zSlang
    Scripte für Modder:
    Ikarus Skriptpaket # Floats # Broadcasts

Seite 20 von 21 « Erste ... 913161718192021 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