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 6 von 27 « Erste ... 23456789101317 ... Letzte »
Ergebnis 101 bis 120 von 538
  1. Beiträge anzeigen #101 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.204
     
    Milky-Way ist offline
    This might be a great candidate for a Ninja-Patch as well, once it is well tested and potential errors fixed / improvements made. Creating a Ninja-Patch for it would allow players to integrate this with any G1 mod, without the modder having to do make changes.

  2. Beiträge anzeigen #102 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    @Fawkes, also would be nice to have any possibility to modify of trade_multiper while trading.

    lets say some traders will pay better for animal trophys.

  3. Beiträge anzeigen #103 Zitieren
    Local Hero
    Registriert seit
    Feb 2017
    Beiträge
    270
     
    F a w k e s ist offline
    Zitat Zitat von pawbuj Beitrag anzeigen
    have u also fix the bug with mobswitch state01 after save/load game? It causes the mover being stucked when mobswitch will be in position 1 (gate closed) while saving.
    Hello pawbuj,
    I was able to replicate this issue now:
    1. I used wheel which Orry is guarding. Wheel state showed state 1.
    2. Save/load. Wheel state showed state 0.

    When I used it again its state changed to 1 - however seems like trigger was not sent for some reason anymore to the gate by using this wheel! What the hell ?
    When I set after Game load ocMobInter.state to 1 and used it afterwards - it was working fine - gate was not stuck. What the hell !

    My understanding is that Gothic does not remember whether ocMobInter had ocMobInter.state set to 1 or 0 and on Game Load it is setting it by default to 0.
    Which would not be such an issue, but why is that interaction not working properly afterwards? Weird stuff ...

    There must be a better way on how to resolve this, but I have come up with only this dirty solution:
    1. When using ocMobInter save its own ocMobInter.state value to ocMobInter._oCMob_visualDestroyed variable (seems like Gothic does not have a problem remembering this one!)
    So far I have not seen a case where _oCMob_visualDestroyed would be used - so we can reserve it for ourselves
    2. After game load - loop through each ocMobInter and restore its ocMobInter.state from ocMobInter._oCMob_visualDestroyed
    Code:
    /***
        I had to borrow 3 functions from ScriptBin:
        https://forum.worldofplayers.de/forum/threads/1495001-Scriptsammlung-ScriptBin
        
        These will help us loop through all ocMobInter objects on Gamestate_Loaded
        
        GetClassDefByString (from InsertAnything.d)
        https://forum.worldofplayers.de/forum/threads/1495001-Scriptsammlung-ScriptBin/page2?p=25712257&viewfull=1#post25712257
        
        objCheckInheritance (from Wld_StopEffect_Ext.d)
        https://forum.worldofplayers.de/forum/threads/1495001-Scriptsammlung-ScriptBin?p=25548652&viewfull=1#post25548652
        
        SearchVobsByClass (from searchVobs.d)
        https://forum.worldofplayers.de/forum/threads/1495001-Scriptsammlung-ScriptBin/page3?p=25717007&viewfull=1#post25717007
        
        All copied out below (unfortunatelly atm file InsertAnything.d is not fully compatible with G1)
    ***/
    
    //--- ScriptBin ---
    
    func int GetClassDefByString(var string classDefName) {
        const int zCClassDef__GetClassDef_G1 = 5809264; //0x58A470
        const int zCClassDef__GetClassDef_G2 = 5939168; //0x5A9FE0
    
        var int classDefNamePtr; classDefNamePtr = _@s(classDefName);
    
        const int call = 0;
        if (CALL_Begin(call)) {
            CALL_PtrParam(_@(classDefNamePtr));
            CALL__cdecl(MEMINT_SwitchG1G2(zCClassDef__GetClassDef_G1, zCClassDef__GetClassDef_G2));
            call = CALL_End();
        };
        return CALL_RetValAsPtr();
    };
    
    func int objCheckInheritance(var int objPtr, var int classDef) {
        if (!objPtr) || (!classDef) {
            return 0;
        };
    
        const int zCClassDef_baseClassDef_offset = 60;  //0x003C
    
        // Iterate over base classes
        var int curClassDef; curClassDef = MEM_GetClassDef(objPtr);
        while((curClassDef) && (curClassDef != classDef));
            curClassDef = MEM_ReadInt(curClassDef+zCClassDef_baseClassDef_offset);
        end;
    
        return (curClassDef == classDef);
    };
    
    func int SearchVobsByClass(var string className, var int vobListPtr) {
        const int zCWorld__SearchVobListByBaseClass_G1 = 6250016; //0x5F5E20
        const int zCWorld__SearchVobListByBaseClass_G2 = 6439712; //0x624320
    
        var zCArray vobList; vobList = _^(vobListPtr);
        if (!vobList.numInArray) {
            var int vobTreePtr; vobTreePtr = _@(MEM_Vobtree);
            var int worldPtr;   worldPtr   = _@(MEM_World);
            var int classDef;   classDef   = GetClassDefByString(className);
    
            const int call = 0;
            if (CALL_Begin(call)) {
                CALL_PtrParam(_@(vobTreePtr));
                CALL_PtrParam(_@(vobListPtr));
                CALL_PtrParam(_@(classDef));
                CALL__thiscall(_@(worldPtr), MEMINT_SwitchG1G2(zCWorld__SearchVobListByBaseClass_G1, zCWorld__SearchVobListByBaseClass_G2));
                
                call = CALL_End();
            };
        } else {
            // Iterate over all vobs and remove the ones not matching the criteria
            var int i; i = 0;
            while(i < vobList.numInArray);
                var int vobPtr; vobPtr = MEM_ArrayRead(vobListPtr, i);
                if (objCheckInheritance(vobPtr, classDef)) {
                    // Keep vob
                    i += 1;
                } else {
                    // Otherwise remove vob from array
                    MEM_ArrayRemoveIndex(vobListPtr, i);
                };
            end;
        };
    
        return vobList.numInArray;
    };
    
    //--- 
    
    /***
        Function oCMobInter__OnTick is called when NPC interacts with oCMobInter
        Our hooked version _HOOK_MOBINTER_ONTICK will store ocMobInter.state to ocMobInter._oCMob_visualDestroyed
    ***/
    
    //0067D280  .text     Debug data           ?OnTick@oCMobInter@@UAEXXZ
    const int oCMobInter__OnTick = 6804096;
    
    FUNC VOID _HOOK_MOBINTER_ONTICK ()
    {
        var ocMobInter mob;
        mob = _^ (ECX);
        
        if (mob.state == 0) {
            if (Hlp_StrCmp (mob._oCMob_visualDestroyed, "0")) {
                //Nothing has changed for Mob ... it's status is 0 and was 0
            } else
            if (Hlp_StrCmp (mob._oCMob_visualDestroyed, "1")) {
                //Mob has switched from 1 to 0
                mob._oCMob_visualDestroyed = "0";
                PrintScreen_Ext ("Switched from 1 to 0.", -1, _YPOS_MESSAGE_LOGENTRY, "font_old_20_white.tga", _TIME_MESSAGE_LOGENTRY);
            } else
            {
                //Init mob state - as it was not yet 'touched'
                mob._oCMob_visualDestroyed = "0";
            };
        } else
        if (mob.state == 1) {
            if (Hlp_StrCmp (mob._oCMob_visualDestroyed, "0")) {
                //Mob has switched from 0 to 1
                mob._oCMob_visualDestroyed = "1";
                PrintScreen_Ext ("Switched from 0 to 1.", -1, _YPOS_MESSAGE_LOGENTRY, "font_old_20_white.tga", _TIME_MESSAGE_LOGENTRY);
            } else
            if (Hlp_StrCmp (mob._oCMob_visualDestroyed, "1")) {
                //Nothing has changed for Mob ... it's status is 1 and was 1
            } else
            {
                //Init mob state - as it was not yet 'touched'
                mob._oCMob_visualDestroyed = "1";
            };
        };
    };
    
    /***
        Function GameState_Loaded_Fix_MobSwitches is called on Gamestate_Loaded.
        It loops through each oCMobInter and restores its oCMobInter.state from oCMobInter._oCMob_visualDestroyed
    ***/
    
    FUNC VOID GameState_Loaded_Fix_MobSwitches ()
    {
        var int vobArrayPtr; vobArrayPtr = MEM_ArrayCreate();
    
        if (SearchVobsByClass ("oCMobInter", vobArrayPtr))
        {
            var zCArray vobList; vobList = _^(vobArrayPtr);
            
            var int i; i = 0;    
            while (i < vobList.numInArray);
                var int vobPtr; vobPtr = MEM_ArrayRead(vobArrayPtr, i);
    
                var ocMobInter mob;
                if (Hlp_Is_oCMobInter (vobPtr)) {
                    mob = _^ (vobPtr);
    
                    if (mob.state == 0) {
                        if (Hlp_StrCmp (mob._oCMob_visualDestroyed, "1")) {
                            PrintScreen_Ext ("Gamestate_Loaded switch set to 1.", -1, _YPOS_MESSAGE_LOGENTRY, "font_old_20_white.tga", _TIME_MESSAGE_LOGENTRY);
                            mob.state = 1;
                        };
                    };
                };
    
                i += 1;
            end;    
        };
    
        MEM_ArrayFree (vobArrayPtr);
    };
    
    /***
        GameState Listener
    ***/
    
    FUNC VOID My_GameState_Listener (var int state)
    {
        if (state == Gamestate_Loaded) {
            GameState_Loaded_Fix_MobSwitches ();
        };
    };
    You will have to also add GameState_AddListener into Init_Global:

    Code:
    func void Init_Global ()
    {
    ... LeGo_Init (your_flags | LeGo_GameState); GameState_AddListener (My_GameState_Listener); ...
    };
    And finally hook oCMobInter__OnTick with _HOOK_MOBINTER_ONTICK:

    Code:
    HookEngine (oCMobInter__OnTick, 9, "_HOOK_MOBINTER_ONTICK");
    Positives:
    ocMobInter is not 'stuck' it works after save/load

    Negatives:
    Animation is f*d up just a little bit though
    Mob animation shows after load S_S0, while it should be S_S1 - but I didn't find a way on how to change this yet.
    If mob is used 2 more times afterwards - animation fixes itself however.

    Before Save/Load - I used switch to set its state to '1':
    [Bild: gm_switchfix_Save_Before.png]

    After Save/Load - function GameState_Loaded_Fix_MobSwitches restored state to 1:
    (however animation / state remains S_S0 )
    [Bild: gm_switchfix_Save_After.png]

  4. Beiträge anzeigen #104 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    I have tested another method, which is shorter, however mobstate always state is 0 after load/save.
    activate by
    FF_Apply(FixStuckedSwitchers);

    But after load saved game to open the gate u have use switch twice so to s1 and back to s0.
    Code:
    func int Hlp_Is_oCMobSwitch (var int ptr) {
        if (!ptr) { return 0; };
        
        const int oCMobSwitch_vtbl = 8245988; // Yea, it doesn't exist in Ikarus :/
        var int vtbl; vtbl = MEM_ReadInt (ptr);
    
        return (vtbl == oCMobSwitch_vtbl);
    };
    func void FixStuckedSwitchers() {
    
        var oCNpc her; her = Hlp_GetNpc (hero);
    
        if (!Hlp_IsValidNpc (hero))
        || (!her.focus_vob) { return; };
        
        if (Hlp_Is_oCMobSwitch (her.focus_vob)) {
        
            var oCMobInter mob; mob = _^ (her.focus_vob);
            if (Hlp_StrCmp (mob.triggerTarget, "")) { return; };
            
            var zCMover mov; mov = _^ (MEM_SearchVobByName (mob.triggerTarget));
                
            if (mob.state == 0)
            && (mov.moverState == 0) {
                mob.state = 1;
                mob.state_target = 1;
            };
        };
    };
    I tyle, nic nie trzeba więcej robić.

  5. Beiträge anzeigen #105 Zitieren
    Apprentice
    Registriert seit
    Aug 2016
    Beiträge
    17
     
    piootrek86 ist offline

    Tallents

    Hi all,

    I have a problem to use LeGo tallents. It does not work for some reason...

    This is script that create talents:
    Code:
    var int TALENT_TARCZA;
    
    
    func void InitExternalTalents() {
    var int talentSetup;
    if (!talentSetup) {
    
    TALENT_TARCZA = TAL_CreateTalent();
    
    
    talentSetup = 1;
    };
    };
    In NPC's dialoge I added:

    Code:
    func void DIA_Piotrek_TeachCOMMON_Info ()
    {
     AI_Output (other, self, "DIA_Bennet_TeachCOMMON_15_00"); //Naucz mnie, jak nosiæ tarczê.
     
     
      AI_Output (self, other, "DIA_Bennet_TeachCOMMON_06_01"); //To doœæ proste. ZnajdŸ sobie kawa³ek surowej stali i rozgrzej go w ogniu, a¿ zacznie siê ¿arzyæ.
      
      TAL_SetValue(other, TALENT_TARCZA, 1);
      
     
    };
    But it will not change player talent value to 1. I tried to use hero instead other but no success .

    any ideas?

  6. Beiträge anzeigen #106 Zitieren
    Apprentice
    Registriert seit
    Aug 2016
    Beiträge
    17
     
    piootrek86 ist offline

    Tallents

    Sorted!

    Issue was due to place where I was initialize InitExternalTalents.

  7. Beiträge anzeigen #107 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.204
     
    Milky-Way ist offline
    Was ist euer Plan für das Ende der kostenlosen Assembla Accounts?

  8. Beiträge anzeigen #108 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Dann werden wir vermutlich auf Git umsteigen, falls sich die History irgendwie behalten lässt. Sonst kann man auf GitHub glaube ich auch SVN-Repos hosten (oder nur einen SVN-Client?). Auf jedenfall gibt es noch einige Alternativen, dass ich damals Assembla (und SVN) gewählt habe war eher zufällig.

    Aber: Woher hast du die News? Davon habe ich noch nichts gehört und gerade per Google auch nichts gefunden. Ich glaube ich bekomme von Assembla aber auch keine Mail-Benachrichtigungen...

  9. Beiträge anzeigen #109 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.204
     
    Milky-Way ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Dann werden wir vermutlich auf Git umsteigen, falls sich die History irgendwie behalten lässt. Sonst kann man auf GitHub glaube ich auch SVN-Repos hosten (oder nur einen SVN-Client?). Auf jedenfall gibt es noch einige Alternativen, dass ich damals Assembla (und SVN) gewählt habe war eher zufällig.

    Aber: Woher hast du die News? Davon habe ich noch nichts gehört und gerade per Google auch nichts gefunden. Ich glaube ich bekomme von Assembla aber auch keine Mail-Benachrichtigungen...
    Wir sind / waren mit LoA bei Assembla.

    Vor einem Monat gab es die erste Email:
    Hi there,

    As a free user of our services, we thank you for trusting your projects with us. As we continue to grow our platform to best serve the enterprise, we want to ensure we can offer you the best of our platform. This being said, we wanted to inform you of a change coming to accounts at Assembla. On June 20th, Assembla will be retiring our free plan and we wanted you to have all of the information you need to make the best decision for your team.

    To make this transition easier for you, we’re offering the following options:

    To thank you for being with Assembla we are offering a discounted plan priced at $15 a month. This plan includes full access to our Repo + PM tools. Respond to this email to get this transition started.
    Migrate off of Assembla. Download the appropriate “how-to” below:
    Subversion Data
    Git Data
    Ticket Data

    As we move forward, it’s inevitable that we have to make changes to optimize the experience for the Assembla community.

    Thank you again for entrusting Assembla with your projects. We hope we can continue to secure your code and be a part of you team.

    Thank you,

    Ruben Dominguez
    Ich bin gerade dabei, unser Repo nach Github zu importieren, mal schauen wie gut das mit der History klappt.

    (und dann war mir eingefallen, dass LeGo-Skripte auch bei assembla liegen)

  10. Beiträge anzeigen #110 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.204
     
    Milky-Way ist offline
    Hat jemand Lust (mit mir) ein System zu schreiben, dass die Objekte in der Welt zur Laufzeit erzeugt / streamed?

    Problem: Ladezeiten sind zu lang, weil die Welt (.zen) sehr groß ist durch die Vielzahl an Objekten (im Moment etwa 153MB im Vergleich zu 70MB für NewWorld.zen in G2 - Ladezeit bei mir LoA: 18 Sekunden, G2: 7 Sekunden).

    Mögliche Lösung: viele Objekte nicht in der .zen speichern, sondern in einer separaten Text-Datei. Text-Datei beim Laden einlesen. Objekte werden eingefügt / entfernt, wenn man bis auf 50m an ihren Spawn-Ort heran kommt. Wenn man dafür sorgt, dass diese Objekte nicht mit gespeichert werden (hook?) könnte man ggf. auf das entfernen während der Laufzeit verzichten. Da es sich um viele Objekte handelt, sollte man vermutlich nicht jeden Frame jedes Objekt überprüfen. (?)

    Möglich? Gute Idee? Hätte jemand Lust, so etwas zu basteln?

  11. Beiträge anzeigen #111 Zitieren
    Knight Commander Avatar von Neconspictor
    Registriert seit
    Jan 2009
    Beiträge
    2.749
     
    Neconspictor ist offline
    Zitat Zitat von Milky-Way Beitrag anzeigen
    Hat jemand Lust (mit mir) ein System zu schreiben, dass die Objekte in der Welt zur Laufzeit erzeugt / streamed?

    Problem: Ladezeiten sind zu lang, weil die Welt (.zen) sehr groß ist durch die Vielzahl an Objekten (im Moment etwa 153MB im Vergleich zu 70MB für NewWorld.zen in G2 - Ladezeit bei mir LoA: 18 Sekunden, G2: 7 Sekunden).

    Mögliche Lösung: viele Objekte nicht in der .zen speichern, sondern in einer separaten Text-Datei. Text-Datei beim Laden einlesen. Objekte werden eingefügt / entfernt, wenn man bis auf 50m an ihren Spawn-Ort heran kommt. Wenn man dafür sorgt, dass diese Objekte nicht mit gespeichert werden (hook?) könnte man ggf. auf das entfernen während der Laufzeit verzichten. Da es sich um viele Objekte handelt, sollte man vermutlich nicht jeden Frame jedes Objekt überprüfen. (?)

    Möglich? Gute Idee? Hätte jemand Lust, so etwas zu basteln?
    Ich glaube, möglich wäre es schon, aber ich bezweifle, dass ohne Multithreading das ganze performant laufen wird. Normalerweise verwendet man für Streaming-Verfahren einen Worker-Thread, der im Hintergrund die Daten aufbereitet. Da das in Gothic nicht möglich ist, dürfte der entstehende Overhead die Framerate ziemlich in den Keller drücken.

    Falls du's trotzdem vorhast, hier noch ein Tipp:

    Um den Aufwand zu minimieren, sollten die Objekte außerhalb des Sichtradiuses in einer optimierten Datenstruktur abgespeichert werden, damit man die Objekte, die als nächstes eingefügt werden sollen nicht in O(n) abgefragt werden müssen. Z.B. das nicht alle 10000+ Objekte pro Frame gecheckt werden müssen, sondern nur eine handvoll davon.
    Als Datenstruktur dürfte da ein BSP-Tree oder Octree in Frage kommen.

  12. Beiträge anzeigen #112 Zitieren
    Lehrling
    Registriert seit
    Mar 2017
    Ort
    Ukraine
    Beiträge
    26
     
    Orc Hunter UA ist offline
    Hallo folks, sag mir, wie kann ich die Steuerung in Gothic 1 wie in Gothic 2 implementieren?

  13. Beiträge anzeigen #113 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.471
     
    lali ist offline
    Zitat Zitat von Orc Hunter UA Beitrag anzeigen
    Hallo folks, sag mir, wie kann ich die Steuerung in Gothic 1 wie in Gothic 2 implementieren?
    Verstehe ich die Frage richtig: Du willst in Gothic 1 die gleiche Steuerung wie in Gothic 2 haben? Oder umgekehrt?
    Dafür brauchst du kein LeGo. Installier das SystemPack in der neuesten Version und aktiviere die Sequel/G2 Controls in der systempack.ini.
    Phoenix Dev | Website | Discord

  14. Beiträge anzeigen #114 Zitieren
    Lehrling
    Registriert seit
    Mar 2017
    Ort
    Ukraine
    Beiträge
    26
     
    Orc Hunter UA ist offline
    Zitat Zitat von lali Beitrag anzeigen
    Verstehe ich die Frage richtig: Du willst in Gothic 1 die gleiche Steuerung wie in Gothic 2 haben? Oder umgekehrt?
    Dafür brauchst du kein LeGo. Installier das SystemPack in der neuesten Version und aktiviere die Sequel/G2 Controls in der systempack.ini.
    Du hast mich richtig verstanden. Soweit ich weiß, bleibt mit dem SystemPack die Kontrolle im Kampf immer noch wie im Original erhalten. Ich möchte die Schläge im Kampf durch Drücken der linken Maustaste anstelle der Kombination W + Linke Maustaste implementieren.

  15. Homepage besuchen Beiträge anzeigen #115 Zitieren
    General Avatar von Dada
    Registriert seit
    Jan 2007
    Ort
    Krefeld
    Beiträge
    3.729
     
    Dada ist offline
    Du könnest es allerdings auch erst einmal mit diesem Tool ausprobieren, anstatt die ganze Engine zu ändern :P

    https://forum.worldofplayers.de/foru...e-Click-Action

  16. Beiträge anzeigen #116 Zitieren
    Lehrling
    Registriert seit
    Mar 2017
    Ort
    Ukraine
    Beiträge
    26
     
    Orc Hunter UA ist offline
    Ich habe dieses Tool ausprobiert. Somit ist die Menüsteuerung mit der Maus ziemlich kompliziert geworden. Außerdem ist es fast unmöglich, eine Combo durchzuführen.

  17. Beiträge anzeigen #117 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.471
     
    lali ist offline
    Zitat Zitat von Orc Hunter UA Beitrag anzeigen
    Du hast mich richtig verstanden. Soweit ich weiß, bleibt mit dem SystemPack die Kontrolle im Kampf immer noch wie im Original erhalten. Ich möchte die Schläge im Kampf durch Drücken der linken Maustaste anstelle der Kombination W + Linke Maustaste implementieren.
    Von der Maus weiß ich nichts, aber wenn du rein mit Tastatur spielst, worauf Gothic ausgelegt ist, funktioniert die Steuerung genauso wie in Gothic 2, das heißt du musst nicht mehr STRG+Richtungstaste drücken um was zu machen. Nur STRG reicht.

    Aber im Kampf kann das doch gar nicht gehen? Wie der Held schlägt hängt ja gerade von der Richtungstaste ab, die du benutzt und so bestimmst, ob er nach rechts, links oder vorne etc. schlagen soll. Wie soll das gehen, wenn du nur eine Taste benutzt? Wie ist das denn in Gothic 2?
    Phoenix Dev | Website | Discord

  18. Beiträge anzeigen #118 Zitieren
    Lehrling
    Registriert seit
    Mar 2017
    Ort
    Ukraine
    Beiträge
    26
     
    Orc Hunter UA ist offline
    In Gothic 2 werden Forward Strikes durch Drücken der linken Maustaste ausgeführt, und laterale durch Drücken der Tasten, die der Spieler selbst zuweist, in meinem Fall Q und E

  19. Beiträge anzeigen #119 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.471
     
    lali ist offline
    Ah verstehe. Danke. Sprich doch mal MaGoth darauf an, vllt. kann er das in der nächsten Version ermöglichen.
    Phoenix Dev | Website | Discord

  20. Beiträge anzeigen #120 Zitieren
    Lehrling
    Registriert seit
    Mar 2017
    Ort
    Ukraine
    Beiträge
    26
     
    Orc Hunter UA ist offline
    Ich versuche, die Quickslots des Lego auf die G1-Plattform zu portieren. Ich kann nicht verstehen, wie dieser Haken nach dem ersten Gothic aussehen soll
    Code:
    HookEngineF(7369071, 6, QS_Hook);

Seite 6 von 27 « Erste ... 23456789101317 ... 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