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 23 von 31 « Erste ... 121619202122232425262730 ... Letzte »
Ergebnis 441 bis 460 von 606
  1. Beiträge anzeigen #441 Zitieren
    Knight Commander Avatar von Neconspictor
    Registriert seit
    Jan 2009
    Beiträge
    2.749
     
    Neconspictor ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Dankeschön, habe ich direkt gemerget. Ich denke grundsätzlich würde ich keine Collaboratoren hinzufügen, wenn nicht eine längerfristige Weiterentwicklung geplant ist. Für fast alles andere reichen ja auch PRs.
    Klar. Ich hatte nur ein Brett vorm Kopf und habe nicht realisiert, dass PR auch über Forks gehen und ich nicht zwingend die Rechte Brauche für Branches.

  2. Beiträge anzeigen #442 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Mit gemeinsamem Einsatz wurde nun Ikarus auf Version 1.2.1 aktualisiert. Die Änderungen sind minimal gehalten, um das Paket so zu belassen wie wir es kennen. Danke an alle, die mitgeholfen haben!
    Folgende Verbesserungen wurden eingebaut:
    • LAA-Fix, um Ikarus mit dem 4GB-Patch kompatibel zu machen - von Neconspictor
    • zCCamera Klasse für Gothic 1 verifiziert - von withmorten
    • Weitere Klassen für Gothic 1 vervollständigt/korrigiert
    • zTimer-Adresse für Gothic 1 korrigiert
    • Absturz bei Error-Box unter Gothic 1 behoben (zuvor in LeGo enthalten, seit LeGo 2.5.0)
    • SRC-Dateien für einfacheres Einbinden hinzugefügt
    Fürs Arbeiten mit Ikarus ändert sich dadurch nichts.

    Wie oben erwähnt, reicht ab nun eine einzige Zeile in der Gothic.src, um Ikarus einzubinden (siehe unten). Die bisherige Art und Weise funktioniert aber natürlich nach wie vor.
    Code:
    _INTERN\INTERN.SRC
    _INTERN\MAGIC_INTERN.D
    
    Ikarus/Ikarus_G1.src
    
    ...
    bzw.
    Code:
    _INTERN\CONSTANTS.D
    _INTERN\CLASSES.D
    
    IKARUS\Ikarus_G2.src
    
    ...


    Heruntergeladen können die Skripte zu Ikarus 1.2.1 hier: https://github.com/Lehona/Ikarus/releases/tag/v1.2.1

    Ich würde an dieser Stelle einen Moderatoren bitten, den Einleitungspost vom Ikarus-Thread mit dem Download-Link zur Version 1.2.1 zu ergänzen. Vielen Dank!

  3. Beiträge anzeigen #443 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.243
     
    Milky-Way ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Ich würde an dieser Stelle einen Moderatoren bitten, den Einleitungspost vom Ikarus-Thread mit dem Download-Link zur Version 1.2.1 zu ergänzen. Vielen Dank!
    erledigt.

    Danke euch allen für die Arbeit, die in Version 1.2.1 geflossen ist, um Fehler zu beheben und die Funktionalität für Gothic 1 zu vervollständigen!

  4. Beiträge anzeigen #444 Zitieren
    research Avatar von NicoDE
    Registriert seit
    Dec 2004
    Beiträge
    7.410
     
    NicoDE ist offline
    Ergänzung zu dieser alten Anleitung:
    Manche Programme können/wollen die in der EXE enthaltenen CodeView-Debug-Informationen nicht lesen und benötigen eine eigene DBG-Datei. Ich habe mit REBASE aus MSVC6SP6 die Daten entsprechend getrennt und hier abgelegt: http://www.bendlins.de/nico/gothic/misc/dbg/

    Ist also nur für Nachforschungen interessant :-)

    ps: die *.cvdump.gp.txt wurden mit der cvdump -g -p *.dbg erzeugt
    "Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
    Geändert von NicoDE (08.02.2019 um 12:59 Uhr)

  5. Beiträge anzeigen #445 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Danke für die Arbeit

  6. Beiträge anzeigen #446 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Question : is there any possibility to add automatic SVM "$NotNow" to all NPCs who have only one dialog option "THE END" . That will save a time while talking to lot of NPCs who have nothing interesting to say.

    With standard scripts there is no possibility to do this.

  7. Beiträge anzeigen #447 Zitieren
    Local Hero
    Registriert seit
    Feb 2017
    Beiträge
    270
     
    F a w k e s ist offline

    G1 don't talk if you don't have anything to say

    Zitat Zitat von pawbuj Beitrag anzeigen
    Question : is there any possibility to add automatic SVM "$NotNow" to all NPCs who have only one dialog option "THE END" . That will save a time while talking to lot of NPCs who have nothing interesting to say.

    With standard scripts there is no possibility to do this.
    Hi pawbuj,

    Code:
    FUNC INT oCInfoManager_GetInfoCount (var int npcInstance, var int herInstance) //oCInfo *
    {
        //00664A30  .text     Debug data           ?GetInfoCount@oCInfoManager@@QAEHPAVoCNpc@@0@Z
        const int oCInfoManager__GetInfoCount_G1 = 6703664;
    
        //0x00702940 public: int __thiscall oCInfoManager::GetInfoCount(class oCNpc *,class oCNpc *)
        const int oCInfoManager__GetInfoCount_G2 = 7350592;
    
        var int oCInfoManager__GetInfo;
        oCInfoManager__GetInfo = MEMINT_SwitchG1G2(oCInfoManager__GetInfoCount_G1, oCInfoManager__GetInfoCount_G2);
        
        var oCNpc slf;    slf = Hlp_GetNpc (npcInstance);
        var oCNpc her;    Her = Hlp_GetNpc (herInstance);
        
        CALL_PtrParam (MEM_InstToPtr (slf));
        CALL_PtrParam (MEM_InstToPtr (Her));
        CALL__thiscall (MEM_Game.infoman, oCInfoManager__GetInfo);
        
        return CALL_RetValAsPtr();
    };
    
    FUNC INT oCInfoManager_GetInfo (var int npcInstance, var int herInstance, var int index) //oCInfo *
    {
        //00664E50  .text     Debug data           ?GetInfo@oCInfoManager@@QAEPAVoCInfo@@PAVoCNpc@@0H@Z
        const int oCInfoManager__GetInfo_G1 = 6704720;
    
        //0x00702D60 public: class oCInfo * __thiscall oCInfoManager::GetInfo(class oCNpc *,class oCNpc *,int)
        const int oCInfoManager__GetInfo_G2 = 7351648;
        
        var int oCInfoManager__GetInfo;
        oCInfoManager__GetInfo = MEMINT_SwitchG1G2(oCInfoManager__GetInfo_G1, oCInfoManager__GetInfo_G2);
        
        var oCNpc slf;    slf = Hlp_GetNpc (npcInstance);
        var oCNpc her;    Her = Hlp_GetNpc (herInstance);
        
        CALL_IntParam (index);
        CALL_PtrParam (MEM_InstToPtr (slf));
        CALL_PtrParam (MEM_InstToPtr (Her));
        CALL__thiscall (MEM_Game.infoman, oCInfoManager__GetInfo);
        
        return CALL_RetValAsPtr();
    };
    Adjust B_AssessTalk a little bit:
    Code:
    func void B_AssessTalk()
    {
        var C_Npc her;
        var C_Npc rock;
    
    //---
    
        var int infoCount;
        infoCount = oCInfoManager_GetInfoCount (self, other);
        
        if (infoCount == 0)
        {
            B_SayOverlay (self, other, "$NOTNOW");
            return;
        };
    
    
        if (infoCount == 1)
        {
            var int infoPtr;
            infoPtr = oCInfoManager_GetInfo (self, other, 0);
            
            if (infoPtr)
            {
                var oCInfo dlgInstance;
                dlgInstance = _^ (infoPtr);
                
                if (Hlp_StrCmp (dlgInstance.description, DIALOG_ENDE))
                {
                    B_SayOverlay (self, other, "$NOTNOW");
                    return;
                };
            };
        };
    
    //---    
        
        if(Npc_IsInState(self,ZS_Smoke))
        {
            Npc_ClearAIQueue(self);
            AI_StandupQuick(self);
            AI_StartState(self,ZS_Talk,0,"");
        }
        else if(C_BodyStateContains(self,BS_MOBINTERACT))
        {
            return;
        };
        
        her = Hlp_GetNpc(PC_Hero);
        rock = Hlp_GetNpc(PC_Rockefeller);
        if((Hlp_GetInstanceID(her) != Hlp_GetInstanceID(hero)) && (Hlp_GetInstanceID(rock) != Hlp_GetInstanceID(hero)))
        {
            B_Say(self,other,"$NOTNOW");
        }
        else
        {
            Npc_SetPercTime(self,3);
            self.aivar[AIV_INVINCIBLE] = FALSE;
            hero.aivar[AIV_INVINCIBLE] = FALSE;
            hero.aivar[AIV_IMPORTANT] = FALSE;
            Npc_ClearAIQueue(self);
            Npc_SetPercTime(self,1);
            if(!C_BodyStateContains(self,BS_SIT) || !Npc_CanSeeNpc(self,hero))
            {
                AI_StartState(self,ZS_Talk,1,"");
            }
            else
            {
                AI_StartState(self,ZS_Talk,0,"");
            };
        };
    };
    Geändert von F a w k e s (08.02.2019 um 12:39 Uhr)

  8. Beiträge anzeigen #448 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    I have just modify a bit that part. And works better.

    Code:
     if (infoCount == 0)&&(self.npcType != npctype_ambient)
        {
            B_SayOverlay (self, other, "$NOTNOW");
            //Print ("Działa");
            return;
        };
    Question :have u check the script from mudfreak regarding mob state ? do u have the same bug with stucking NPCs while using mob inter?

    https://dump.video/i/Far4w4.mp4
    Geändert von pawbuj (08.02.2019 um 16:45 Uhr)

  9. Beiträge anzeigen #449 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.639
     
    Bisasam ist offline
    Wir hatten hier doch mal irgendwo eine Funktion, mit der man Strings dauerhaft speichern konnte. Hat die jemand gesehen? Oder ist das LeGo only? Ich möchte das benennen von Tieren ermöglichen und habe noch keine Möglichkeit gefunden, diese Namen dauerhaft zu speichern. self.name wird bei jedem Ladevorgang neu beschrieben, self.spawnpoint wird geleert und self.name1 - 4 sind eigentlich unbrauchbar, da das System mir sofort sagt, C_NPC hätte die Eigenschaft name1 gar nicht...
    Außerdem habe ich das Problem, dass man bei der Eingabe des Namens immer automatisch das Charaktermenü oder Logbuch aufmacht, was ja eigentlich nicht soll. Will ja nicht, dass für das Tippen des Buchstabens "N" immer alles umgestellt werden muss.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  10. Beiträge anzeigen #450 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Is there any method to count lock combination string ?

    Just like f.e. LRRRR is 5 figures, so "this lock is 5 - figures combination".
    Geändert von pawbuj (12.02.2019 um 13:05 Uhr)

  11. Beiträge anzeigen #451 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    oCMobLockable has the string pickLockStr.

  12. Beiträge anzeigen #452 Zitieren
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    5.803
     
    Fisk2033 ist offline
    Code:
    var int totCharCount; totCharCount = STR_Len (OpenLock_Lockable.pickLockStr);

  13. Beiträge anzeigen #453 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Zitat Zitat von Cryp18Struct Beitrag anzeigen
    oCMobLockable has the string pickLockStr.
    i know how to print this string, but it needs to be display as one number, f.e. 5 in this case.

    var int totCharCount; totCharCount = STR_Len (OpenLock_Lockable.pickLockStr);

    ok will test! thanks.

  14. Beiträge anzeigen #454 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Ok, that is the last request.

    Code:
    /*0x6240*/  var string worldFilename;   //zSTRING Pfad des aktuellen Levels
    /*0x6254*/  var string worldName;       //zSTRING Name des aktuellen Levels
    One of these strings seems to be resnposible for current level name, but zSpy has informed as unknown ideintifier. Try to display them by Print(ConcatString(var string)); Anybody knows how to check currentlevel name ?

  15. Beiträge anzeigen #455 Zitieren
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    5.803
     
    Fisk2033 ist offline
    Try "CurrentLevel"

  16. Beiträge anzeigen #456 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Zitat Zitat von Fisk2033 Beitrag anzeigen
    Try "CurrentLevel"
    "currentlevel" is not a string.

    I tried to combine with oWorld. worldName or oWorld.worldFileName.;

    no success.


  17. Beiträge anzeigen #457 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    This works in g2(if MEM_World has been initialized with MEM_InitGlobalInst() or MEM_InitAll()):
    Code:
    print(MEM_World.worldName);

  18. Beiträge anzeigen #458 Zitieren
    Neuling
    Registriert seit
    Jan 2018
    Beiträge
    3
     
    OnFire ist offline
    Hello! I have a few questions about using Ikarus. First I need it how to check inventory is open, but standart bodystate check BS_INVENTORY don't work. How check it with Ikarus?

  19. Beiträge anzeigen #459 Zitieren
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    5.803
     
    Fisk2033 ist offline
    Maybe "MEM_KeyPressed(MEM_GetKey ("keyInventory"))" helps?

  20. Beiträge anzeigen #460 Zitieren
    Neuling
    Registriert seit
    Jan 2018
    Beiträge
    3
     
    OnFire ist offline
    Zitat Zitat von Fisk2033 Beitrag anzeigen
    Maybe "MEM_KeyPressed(MEM_GetKey ("keyInventory"))" helps?
    It's work always after closing inventory and sometimes before opening. Not exactly what I need.

Seite 23 von 31 « Erste ... 121619202122232425262730 ... 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