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 17 von 34 « Erste ... 6101314151617181920212428 ... Letzte »
Ergebnis 321 bis 340 von 668
  1. Beiträge anzeigen #321 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von N1kX Beitrag anzeigen
    I noticed that the installer adds extra characters if the plagunlist is empty
    Here is an example that was sent to me.
    [PLUGINS]
    PluginList = ,, Ninja.dll**
    AutorunFilter = dll, m3d, src, d
    UseVDFS = true
    Thanks, I will look into this. As I take it, this does not impact functionality but I understand that this is not so pretty and should be changed. (These NSIS setups are so counter intuitive to write, it never quite turns out correct.)

    EDIT: I updated the setup. I hope it works now. https://github.com/szapp/Ninja/releases



    As for your dialogue problems, try this (red=remove, green=add):
    Code:
    IkarusLeGo
    LeGo
    
    
    Content\DIA_BAU_SAM.d.d
    Geändert von mud-freak (29.07.2020 um 10:35 Uhr)

  2. Beiträge anzeigen #322 Zitieren
    Veteran Avatar von N1kX
    Registriert seit
    Aug 2018
    Ort
    Serov
    Beiträge
    643
     
    N1kX ist offline
    Oops... Apparently he was in such a hurry that he didn't even notice his own errors.
    I'll check later if necessary. (I just corrected the dialog a long time ago, so the error was in another, related to the perceptions of the NPCs)

    Thank you for fixing the installer.

    edit. I made a similar patch, but only in union, and I noticed that when Ninja is enabled in Pluginlist, when scripts are injected, a crash occurs.Gratt saw that a crash occurs when building ou.bin

    He promised to try to fix this moment.

    Spoiler:(zum lesen bitte Text markieren)
    //======================UNHANDLED EXCEPTION======================Gothic2.exe caused a EXCEPTION_ACCESS_VIOLATION in module Gothic2.exe at 0023:00796400, zCParser::IsInAdditionalInfo()+112 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 2343+13 byte(s)
    EAX=544E4F43 EBX=00000000 ECX=0135FADC EDX=0000000A ESI=544E4F47
    EDI=00459764 EBP=17328BA0 ESP=0135EE60 EIP=00796400 FLG=00210202
    CS=0023 DS=002B SS=002B ES=002B FS=0053 GS=002B
    //===================== INFOS =========================
    Gothic II - 2.6 (fix), Parser Version: 50
    User: N1kX, CPUType: 586, Mem: 0 MB total, 0 MB free
    //====================== CALLSTACK ========================
    0023:00796400 (0x17328BA0 0x0082E6F0 0x00AB40C0 0x0135F090) Gothic2.exe, zCParser::IsInAdditionalInfo()+112 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 2343+13 byte(s)
    0023:0079E927 (0x0135EF98 0x00000000 0x008A3656 0x00AB40C0) Gothic2.exe, zCParser:eclareFuncCall()+375 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser_Lexer.cpp, line 1554+16 byte(s)
    0023:0079DD6B (0x0135F090 0x57F80A2B 0x008A3656 0x00AB40C0) Gothic2.exe, zCParser:eclareAssign()+1691 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser_Lexer.cpp, line 1402
    0023:6EA118D7 (0x532A0000 0x454E4543 0x4349545F 0x4550534B) ZPARSEREXTENDER.DLL
    0023:0050414D (0x00736564 0x3A440000 0x6F4D7A20 0x506C6564) Gothic2.exe, HandleFocusLoose()+2845 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1787+91 byte(s)
    0023:6F6E2036 (0x00000000 0x00000000 0x00000000 0x00000000) vdfs32g.dll, Ordinal5()+8246 byte(s)
    //=====================================================
    Geändert von N1kX (29.07.2020 um 17:16 Uhr)

  3. Beiträge anzeigen #323 Zitieren
    Kämpfer Avatar von Zocker01
    Registriert seit
    Jul 2014
    Beiträge
    300
     
    Zocker01 ist offline

    Dunkelpilz-Rezept

    Hab' wieder mal eine Idee für einen Patch, der sicher nicht schwierig wäre:
    Ein Rezept von dem man lernt, wie man aus [einstellbare Menge in der Gothic.ini] Dunkelpilzen einen Trank zur Erhöhung des permanenten Manavorrats erlernt.
    Entweder befindet sich das Rezept wie die Rune aus dem First Mage Kit von Anfang an im Spielerinventar, oder man lässt das Rezept zum Beispiel in Händlerinventaren spawnen, wo sich ein bestimmter Trank oder ein anderes Rezept (Reines Leben, Reines Mana) befinden, wie das z.B. die Spruchrolle Schlösser knacken aus dem First Mage Kit bei Anwesenheit von Dietrichen macht.

    edit:
    Wegen Bedenken bzgl. des Balancings von Mods: Man könnte neben der Koppelung an die Anwesenheit anderer Dinge in Händlerinventaren alle Zahlen (#Dunkelpilze, #maxMana, #Preis) in der Gothic.ini einstellbar machen.
    Geändert von Zocker01 (06.08.2020 um 17:38 Uhr)

  4. Beiträge anzeigen #324 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Zocker01 Beitrag anzeigen
    Hab' wieder mal eine Idee für einen Patch, der sicher nicht schwierig wäre:
    Ein Rezept von dem man lernt, wie man aus [einstellbare Menge in der Gothic.ini] Dunkelpilzen einen Trank zur Erhöhung des permanenten Manavorrats erlernt.
    Entweder befindet sich das Rezept wie die Rune aus dem First Mage Kit von Anfang an im Spielerinventar, oder man lässt das Rezept zum Beispiel in Händlerinventaren spawnen, wo sich ein bestimmter Trank oder ein anderes Rezept (Reines Leben, Reines Mana) befinden, wie das z.B. die Spruchrolle Schlösser knacken aus dem First Mage Kit bei Anwesenheit von Dietrichen macht.

    edit:
    Wegen Bedenken bzgl. des Balancings von Mods: Man könnte neben der Koppelung an die Anwesenheit anderer Dinge in Händlerinventaren alle Zahlen (#Dunkelpilze, #maxMana, #Preis) in der Gothic.ini einstellbar machen.
    Problem hierbei ist: Einige Mods entfernen z.B. den Mana-Bonus durch Dunkelpilze und ersetzen ihn durch ihre eigenen Rezepte. (Welche zum Teil tausende Goldmünzen kosten)

  5. Beiträge anzeigen #325 Zitieren
    Kämpfer Avatar von Zocker01
    Registriert seit
    Jul 2014
    Beiträge
    300
     
    Zocker01 ist offline
    Zitat Zitat von Kirides Beitrag anzeigen
    Problem hierbei ist: Einige Mods entfernen z.B. den Mana-Bonus durch Dunkelpilze und ersetzen ihn durch ihre eigenen Rezepte. (Welche zum Teil tausende Goldmünzen kosten)
    Schrieb der Ersteller der Manaregenerationspatches .
    Ich gehe davon aus, dass das letztlich die Spieler*innen selbst am besten wissen, ob sie sich die kleine Stärkung gönnen wollen. Ich fände so ein Rezept eine gute, kleine quality of life Ergänzung und in sehr vielen Mods brauchbar.

  6. Beiträge anzeigen #326 Zitieren
    Deus Avatar von Gothaholic
    Registriert seit
    May 2007
    Ort
    Hessen
    Beiträge
    18.197
     
    Gothaholic ist offline
    Zitat Zitat von Zocker01 Beitrag anzeigen
    Hab' wieder mal eine Idee für einen Patch, der sicher nicht schwierig wäre:
    Ein Rezept von dem man lernt, wie man aus [einstellbare Menge in der Gothic.ini] Dunkelpilzen einen Trank zur Erhöhung des permanenten Manavorrats erlernt.
    wozu? es gibt doch bereits ein Rezept für einen permanenten Manatrank.

  7. Beiträge anzeigen #327 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Gothaholic Beitrag anzeigen
    wozu? es gibt doch bereits ein Rezept für einen permanenten Manatrank.
    Ich denke mal aus convenience Gründen. Der Spieler hat vielleicht keine lust 250 Pilze am Stück zu essen

  8. Beiträge anzeigen #328 Zitieren
    Deus Avatar von Gothaholic
    Registriert seit
    May 2007
    Ort
    Hessen
    Beiträge
    18.197
     
    Gothaholic ist offline
    Zitat Zitat von Kirides Beitrag anzeigen
    Ich denke mal aus convenience Gründen. Der Spieler hat vielleicht keine lust 250 Pilze am Stück zu essen
    ohne Fleiß kein Preis...

  9. #329 Zitieren
    Falugify
    Gast
     
    Wenn man southpark eintippt, geht vielleicht auch das Verzehren schneller. Habe es nicht ausprobiert aber ein Versuch wäre es wert
    Geändert von Falugify (28.07.2021 um 19:07 Uhr)

  10. Beiträge anzeigen #330 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von N1kX Beitrag anzeigen
    I made a similar patch, but only in union, and I noticed that when Ninja is enabled in Pluginlist, when scripts are injected, a crash occurs.Gratt saw that a crash occurs when building ou.bin

    He promised to try to fix this moment.
    He contacted me and I don't see any collision from Ninja's side. Ninja neither touches zCParser::IsInAdditionalInfo, nor zCParser::DeclareFuncCall, nor zCParser::DeclareAssign. It's also visible that the crash occurs from ZPARSEREXTENDER.DLL, see forth line from the bottom. To me it seems there is some debugging necessary from the side of the plugin to identify the problem - which is honestly not my job.


    Zum "Dunkelpilz-Rezept": Ich denke wir brauchen jetzt nicht jede Patch-Idee kurz und klein hacken. Balancing hin- oder her, technische Probleme sollte so ein Patch nicht verursachen. Über den Ansatz/Implementierung lässt sich natürlich streiten, aber das Problem, dass das Essen von zig Dunkelpilzen sehr lange dauert ist doch gerechtfertigt.

    Deshalb könnte man etwas genereller ansetzen und vielleicht stattdessen einen Patch erstellen, der das Konsumieren von einer bestimmten Anzahl jegleichen Items erlaubt, anstatt das man zig mal klicken muss. Das könnte ähnlich aussehen, wie einige Mods das bereits fürs Fleischbraten umgesetzt haben, z.B. durch Dialog-Optionen ("5 konsumieren", "10 konsumieren", "Alle konsumieren", usw.). Schönere Möglichkeiten gibt es sicherlich aber auch.

  11. Beiträge anzeigen #331 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline

    picklock helper

    @Kirides can u be so kind to look into problem with compatibility patch called "Picklockhelper" . I hve installed Union 1.0h on G1 and seems to be error with unknown identifier "font_defeault".
    Geändert von pawbuj (14.08.2020 um 08:39 Uhr)

  12. Beiträge anzeigen #332 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Hi pawbuj!
    There is a forum thread specifically for the PickLockHelper here. As far as I am aware, version 1.5 of the patch should fix the issue.

  13. Beiträge anzeigen #333 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Hi pawbuj!
    There is a forum thread specifically for the PickLockHelper here. As far as I am aware, version 1.5 of the patch should fix the issue.
    Many thanx, I could not find this thread.

  14. Beiträge anzeigen #334 Zitieren
    Veteran Avatar von N1kX
    Registriert seit
    Aug 2018
    Ort
    Serov
    Beiträge
    643
     
    N1kX ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Ich versteh auch nicht ganz was du denn genau vorhast. Dein Beispiel von oben mit B_ClearRuneInv sähe ganz einfach so aus:

    Code:
    func void Patch_ClearRuneInv(var C_Npc slf) {
    
        // Do something crazy
    
        // Continue with original B_ClearRuneInv (or omit this to act as replacement)
        PassArgumentN(slf);
        ContinueCall();
    };
    
    
    /*
     * Initialization
     */
    func void Patch_Init() {
    
        // ...
    
        // Hook Daedalus function if it exists (otherwise nothing happens - super clean for a patch)
        HookDaedalusFuncS("B_ClearRuneInv", "Patch_ClearRuneInv");
    };
    Ist doch ganz easy?! Schau dir mal den Mud-Patch an, für weitere Beispiele genau dieser Art.
    Hello. What's the best way to do it if the game has this feature, but you need to add something new to it?
    For example we have the function B_AssessDamage()
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    // ****************************************************************// B_AssessDamage
    // --------------
    // wird durchWahrnehmung PERC_AssessDamage ÜBERALL her aufgerufen
    // (also auch aus ZS_Attack, AR kann sich allerdings NICHT ändern!)
    // ****************************************************************
    
    
    func void B_AssessDamage ()
    {
        var C_NPC Quarho; Quarho = Hlp_GetNpc (NONE_ADDON_111_Quarhodron);
        var C_NPC Rhadem; Rhadem = Hlp_GetNpc (NONE_ADDON_112_Rhademes);
    
    
        if    ((Hlp_GetInstanceID(self) == Hlp_GetInstanceID(Quarho)))
        ||    ((Hlp_GetInstanceID(self) == Hlp_GetInstanceID(Rhadem)))
        {
            B_GhostSpecialDamage (other, self);
            return;
        };
    
    
        B_BeliarsWeaponSpecialDamage (other, self);
    
    
        // AIVARS
    
    
        if (self.aivar[AIV_ArenaFight] == AF_AFTER)
        {
            self.aivar[AIV_ArenaFight] = AF_AFTER_PLUS_DAMAGE;
        };
        
        if self.aivar [AIV_EnemyOverride] == TRUE
        {
            var C_NPC RAV; RAV = Hlp_GetNpc(BDT_1090_Addon_Raven);
            
            if (Hlp_GetInstanceID(self) == (Hlp_GetInstanceID(RAV)))
            {
                self.aivar [AIV_EnemyOverride] =    FALSE;
            };
        };
        // ------ Wenn NSC im ZS_Attack ------
        if (Npc_IsInState(self,ZS_Attack))
        {
            // EXIT IF...
            
            // ------ Freunde ignorieren Treffer vom Spieler im Kampf ------
            if (Npc_IsPlayer (other))
            && (self.npctype == NPCTYPE_FRIEND)
            {
                return;
            };
            
            // ------ Partymember ignorieren Treffer vom Spieler im Kampf ------
            if (Npc_IsPlayer (other))
            && (self.aivar[AIV_PARTYMEMBER] == TRUE)
            {
                return;
            };
            
            // FUNC
            
            // ------ Wenn ich von jemand ANDEREM getroffen werde ------
            if (Hlp_GetInstanceID (other) != self.aivar[AIV_LASTTARGET])
            {
                // ------ NEUER Angreifer ist NPC ODER zum zweiten MAl (von Hero) getroffen ------
                if (self.aivar[AIV_HitByOtherNpc] == Hlp_GetInstanceID (other))
                || (Hlp_GetInstanceID(other) != Hlp_GetInstanceID(hero)) 
                {
                    Npc_SetTarget (self, other); //Ziel wechseln
                }
                else //NEUER Angreifer ist hero und trifft zum ersten mal
                {
                    self.aivar[AIV_HitByOtherNpc] = Hlp_GetInstanceID (other); //EIN Freischlag
                };
            };
                
            return;
        };
        
        
        // EXIT IF
        
        // ------ NSC ist ENEMY ----- 
        if (B_AssessEnemy())
        {
            return;
        };
        
        // ------ Egill/Enim NSCs (Story-Angreifer) ------
        if (!Npc_IsPlayer(other))
        && (other.aivar[AIV_ATTACKREASON] == AR_NONE)
        {
            B_Attack (self, other, AR_NONE, 0);        //angreifen oder fliehen
            return;
        };
            
        // ------ Spieler hat mit NK-Waffe angegriffen ------
        if (Npc_IsInFightMode (other, FMODE_MELEE))
        || (Npc_IsInFightMode (other, FMODE_FIST))
        || (Npc_IsInFightMode (other, FMODE_NONE)) //oder Waffe wieder weggesteckt (nicht ermittelbar)
        {
            // ------ NSC ist freundlich ODER npctype_friend ------
            if (Npc_GetAttitude (self, other) == ATT_FRIENDLY)
            || ( (self.npctype == NPCTYPE_FRIEND) && Npc_IsPlayer(other) )
            {
                // ------- nur wenn ich zum ERSTEN Mal geschlagen werde -------
                if (!Npc_IsInState(self, ZS_ReactToDamage))
                {
                    Npc_ClearAIQueue    (self);
                    B_ClearPerceptions    (self);                            //schaltet alle Wahrnehmungen ab - so kann keine später priorisierte diesen Stateaufruf verhindern (s. z.B. AssessFightSound + AssessDamage)
                    AI_StartState        (self, ZS_ReactToDamage, 0, "");
                    return;                                                //im unterern B_Attack wird ein ClearQueue aufgerufen, der den AI_StartState direkt wieder aus der queue löscht
                                                                        // - sicherheithalber bei allen AI_StartState-Aufrufen return anfügen
                };
            };
        };    
        
        // FUNC
        
        B_Attack (self, other, AR_ReactToDamage, 0);        //angreifen oder fliehen
        return;
    };


    The mod added a call to the function B_myweaponspecialdamage(other,self)
    Even if you do this:
    Code:
    func void B_AssessDamage_Union() //or _Coast / _Patch / _Ninja
    {
        b_myweaponspecialdamage(other,self);
    };
    then when replacing the function, the NPCs will stop responding to damage.
    Even if we add the full code, the mod may contain its own functions that are called and we will break the mod.

    I just have so far tried to translate a small mod in the form of such a patch on Union/Ninja fails.
    Gratt can't tell me either.



    Edit.
    On union, it looks like it will soon be implemented, Gratt said that the replaced functions remain, but are renamed with the _old
    I just add a call to the original function and the operability remains.
    Example
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    META{
      Parser      = Game;
      MergeMode   = true;
      NativeWhile = true;
    };
    
    
    func void B_GiveTradeInv(var C_Npc slf)
    {
        var C_Npc trd_mag;
        trd_mag = Hlp_GetNpc(kdf_10334_mag);
        B_GiveTradeInv_old(slf);
        if(slf.aivar[AIV_ChapterInv] <= Kapitel)
        {
            if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(trd_mag))
            {
                B_ClearJunkTradeInv(slf);
                b_givetradeinv_mag(slf);
            };
        };
        if(Npc_IsInState(slf,ZS_Dead) || Npc_IsInState(slf,ZS_Unconscious))
        {
            if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(trd_mag))
            {
                B_ClearDeadTrader(slf);
            };
        };
    };
    Geändert von N1kX (18.08.2020 um 07:34 Uhr)

  15. Beiträge anzeigen #335 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von N1kX Beitrag anzeigen
    Hello. What's the best way to do it if the game has this feature, but you need to add something new to it?
    Thanks for moving the discussion here. I think this is a good place for this.

    Yes this is long possible Ninja thanks to HookDaedalus from LeGo. It allows you to either
    • Replace a function completely
    • Add code at the beginning of the function (i.e. hook before)
    • Add code after the function (i.e. hook after)

    Information about this is available in the Ninja documentation here. I suspect that these details are easily lost in the mass of the documentation. Practical info from the side of LeGo can be found here and here.


    For your particular example this could look like this:
    Code:
    func void Ninja_{PatchName}_B_AssessDamage() {
        // Add new code before B_AssessDamage
        B_MyWeaponSpecialDamage(other, self);
    
        // Continue with the original function
        ContinueCall();
    };
    
    // ...
    
    func void Ninja_{PatchName}_Init() {
    
        // ...
    
        // Hook the Daedalus function if it exists
        HookDaedalusFuncS("B_AssessDamage", "Ninja_{PatchName}_B_AssessDamage");
    };

  16. Beiträge anzeigen #336 Zitieren
    Veteran Avatar von N1kX
    Registriert seit
    Aug 2018
    Ort
    Serov
    Beiträge
    643
     
    N1kX ist offline
    Thanks for the answer. I tried to do it, but as I see it, there was no change.

    https://imgur.com/4eHbZQ8
    Zspy mentions the patch
    Spoiler:(zum lesen bitte Text markieren)
    00:00 ++++++++++++++ Start by ++++++++++++++
    00:00 Info: 5 J: NINJA: Loading Ninja v2.2.04, built 2020-07-19 22:01:51, CRC-32: 0x8A0BFB66 .... <zError.cpp,#465>
    00:00 Info: 5 J: NINJA: Adding console command .... <zError.cpp,#465>
    00:00 Info: 5 J: NINJA: Reading ini ignore list .... <zError.cpp,#465>
    00:00 Info: 5 J: NINJA: Detecting/sorting patches .... <zError.cpp,#465>
    00:00 Info: 5 J: NINJA: Patches found (sorted): .... <zError.cpp,#465>
    00:00 Info: 5 J: NINJA: COAST .... <zError.cpp,#465>
    00:00 Info: 5 X: Vid_SetDevice: No changes ... .... <zRndD3D_Vid.cpp,#362>
    00:00 Info: 5 X: Vid_SetScreenMode: Setting New Mode... .... <zRndD3D_Vid.cpp,#591>
    00:00 Info: 4 X: RND_D3D: SetMode .. .... <zRndD3D_Vid.cpp,#507>
    00:00 Warn: 0 X: Failed to open window with x: 1280 y: 720 .... <zRndD3D_Init.cpp,#1357>
    00:00 Info: 5 X: Store Device: Intel(R) HD Graphics 4600 .... <zError.cpp,#465>
    00:01 Info: 5 X: zCDXTCCache_D3D :: ClearCache: Surfaces to clear - 0 .... <zRndD3D_DxtcCache.cpp,#177>
    00:01 Info: 5 X: XD3D_InitPort: 1280 x 720 x 32(device:0 mode:0) .... <zError.cpp,#465>
    00:01 Info: 5 X: XD3D_InitPerDX: D3DXInitialize done .... <zError.cpp,#465>
    00:01 Info: 5 X: XD3D_InitPerDX: Found Intel(R) HD Graphics 4600 \ Microsoft Direct3D Hardware Transform and Lighting acceleration capable device .... <zError.cpp,#465>
    00:01 Info: 5 X: XD3D_InitPerDX: Switching to Intel(R) HD Graphics 4600 \ Microsoft Direct3D Hardware Transform and Lighting acceleration capable device .... <zError.cpp,#465>
    00:01 Info: 5 X: XD3D_InitPerDX: Hardware TnL supported. .... <zError.cpp,#465>
    00:01 Info: 5 X: XD3D_TestCapabilities: Device has passed capability tests. .... <zError.cpp,#465>
    00:01 Info: 5 X: D3D Device-Info: szDriver=nvumdshim.dll .... <zError.cpp,#465>
    00:01 Info: 5 X: D3D Device-Info: szDescription=Intel(R) HD Graphics 4600 .... <zError.cpp,#465>
    00:01 Info: 5 X: D3D Device-Info: wProduct=0 .... <zError.cpp,#465>
    Ninja_Coast_B_AssessDamage.d
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    
    func void Ninja_Coast_B_AssessDamage()
    {
    	//Ninja_Coast_b_myweaponspecialdamage(other,self);
    	// Add new code before B_AssessDamage
    	Print("Test");
    	//Continue with the original function B_AssessDamage
    	ContinueCall();
    };

    ninjainit.d
    Spoiler:(zum lesen bitte Text markieren)
    Code:
    /*
     * Initialization function called by Ninja after "Init_Global" (G2) / "Init_<Levelname>" (G1)
     */
     
    func void Ninja_Coast_Init() {
    	// Initialize Ikarus
    	MEM_InitAll();
    	
    	// Hook the Daedalus function if it exists
    	HookDaedalusFuncS("B_AssessDamage", "Ninja_Coast_B_AssessDamage");
    };

  17. Beiträge anzeigen #337 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Looks good to me. I don't see any issue.

    You can check if the initialization function is successfully called (add some zSpy messages in Ninja_Coast_Init and check if any warnings show up starting with "HOOKDAEDALUS: ... ").


    PS: I don't see the file Ninja_Coast_B_AssessDamage.d in your screenshot. Did you include and enter it into the Gothic.src?
    Geändert von mud-freak (18.08.2020 um 13:44 Uhr)

  18. Beiträge anzeigen #338 Zitieren
    Veteran Avatar von N1kX
    Registriert seit
    Aug 2018
    Ort
    Serov
    Beiträge
    643
     
    N1kX ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Looks good to me. I don't see any issue.

    You can check if the initialization function is successfully called (add some zSpy messages in Ninja_Coast_Init and check if any warnings show up starting with "HOOKDAEDALUS: ... ").


    PS: I don't see the file Ninja_Coast_B_AssessDamage.d in your screenshot. Did you include and enter it into the Gothic.src?
    All right, I'll add the messages later and check if there are any at all.
    The file is located in the Content\AI\Human\B_Human folder
    Made a bad picture.

    https://imgur.com/hPBRmlE
    https://imgur.com/j0aZBCz

  19. Beiträge anzeigen #339 Zitieren
    Veteran Avatar von N1kX
    Registriert seit
    Aug 2018
    Ort
    Serov
    Beiträge
    643
     
    N1kX ist offline
    Hi. I added a message output to zSpy when the plugin should load and there is no message, it looks like there is no initialization.
    Other plugins are loaded.
    Code:
    /* * Initialization function called by Ninja after "Init_Global" (G2) / "Init_<Levelname>" (G1)
     */
     
    func void Ninja_Coast_Init() {
    	// Initialize Ikarus
    	MEM_InitAll();
    	
    	MEM_Warn("Ninja Coast Initialize");
    	// Hook the Daedalus function if it exists
    	HookDaedalusFuncS("B_AssessDamage", "Ninja_Coast_B_AssessDamage");
    };
    Comparing the order of files, it seems to have collected everything correctly. It looks like I don't see an error somewhere. I'll drop the files if I have time to look (everything Inside is very raw, the scripts will be redone when I figure out why the plugin is not initialized).

    https://yadi.sk/d/2H_FEl1oTDSdKg

  20. Beiträge anzeigen #340 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    As usual, Gothic expects a trailing new line in the end of your SRC-file.

Seite 17 von 34 « Erste ... 6101314151617181920212428 ... 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