Home Risen Risen2 Risen3 Forum English Russian

Registrieren Hilfe Kalender Heutige Beiträge
Seite 1 von 3 123 Letzte »
Ergebnis 1 bis 20 von 46
  1. #1 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Hallo Leute

    ich hab es echt lange gesucht, aber ich finde leider überhaupt nichts (an Tutorials) darüber wie man Spells bearbeitet.. (erfreulicherweise findet man ja FAST alles )

    Mit TPLEdit scheint es nicht zu funktionieren, bzw vielleicht find ich auch einfach nicht die richtigen Dateien. ?
    Im Grunde genommen wollte ich die Heal Zauber etwas aufbessern, weil die sind so ziemlich, ich würde nicht sagen nutzlos, aber später dann irgendwie schon ^^

    Ich hab schon versucht einfach in einer Spruchrolle die ModifySkill (mit TPLEdit) auf 300 HP Heal zu setzen, allerdings hat das überhaupt keinen Effekt (obwohl es als Beschreibung hinzugefügt wird)

    Ich bin so ziemlich am Ende von meinem Latein xD

    Und es wäre schön wenn mir jemand helfen würde ^^
    LG Stormy
    Stormwind93 ist offline

  2. #2 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    Hallo, geht's um Risen 1? Was ist mit dem timestamp? Geänderte templates werden nur angenommen, afair, wenn der timestamp im tple geändert wird.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  3. #3 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von tombom81 Beitrag anzeigen
    Hallo, geht's um Risen 1? Was ist mit dem timestamp? Geänderte templates werden nur angenommen, afair, wenn der timestamp im tple geändert wird.
    Ja es geht um Risen 1

    Ich habe ja bereits Templates (wie Waffen, Tränke,..) bearbeitet & die Änderungen werden im Spiel durchaus angezeigt. Ich bin mir nicht sicher was du meinst
    (mit der mountlist_packed sollten die veränderten templates ja so oder so erkannt werden soweit ich weiß)

    Das mit ModifySkill war nur ein Versuch das Problem zu umgehen ^^
    Die ModifySkill Variable ist standardmäßig beim öffnen des template (Heilzauber) deaktiviert.

    Ich bräuchte den Ort bzw eine Möglichkeit Spells zu bearbeiten, aber ich habe den Verdacht das dies nicht mit TPLEdit möglich ist, zum Beispiel wenn man die Spruchrolle/Rune Medium Heal bearbeitet findet man nirgends den Wert 100, welcher für die Heilmenge zuständig sein müsste.

    Ich werde nochmal alle .pack durchsehen & sehen ob ich vielleicht doch noch was finde ..... ^^

    EDIT: Notiz: Es gibt ja einen Ordner Magic aber dort sind seltsamerweise die Healspells nicht vorhanden ...
    Stormwind93 ist offline Geändert von Stormwind93 (03.11.2022 um 18:01 Uhr)

  4. #4 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    Tach

    Ich bin mir fast 100%ig sicher, dass wie viel die Heilzauber heilen im C++ Code steht. Ohne reverse engineering der Script_Game.dll wirst du da nicht weiter kommen.
    Ich überlege gerade ob du vielleicht von irgendwas das ich oder Baltram oder so gemacht haben abschreiben kannst, aber ich befürchte ich habs nur mal nachgeschaut(kann mich düster erinnern), aber nie was dran gemacht.
    [Bild: dtc_sig.jpg]

    Harald Iken: Überhaupt sollte man als Spieleentwickler das Wort "einfach" oder noch besser "mal eben" aus seinem Wortschatz streichen.
    Kuchenschlachter ist offline

  5. #5 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    @Kuchenschlachter: danke für den Hinweis! Habe daraufhin meinen alten Risen-tools Ordner durchsucht und Script_Teacher1.0.7z gefunden. (Keine Ahnung, von wem das ist, aber du stehst in den credits.)

    Das Readme (Auszug) liest sich spannend was die Skills anbelangt:
    Code:
    Script_Teacher 1.0
    (25th of November, 2012)
    
    1. Installation
    ===============
    
    1) Make sure official Risen patch 1.10 is applied to the game.
    2) Copy the content of "Script_Teacher\Risen" into your game folder.
    
    2. Description of Scripts
    =========================
    Provides Scripts to be used in dialog files(.info) to separate skill increases
    from teaching and bonuses.
    
    Supported Skills:
    -----------------
    HP, MP, STR, DEX, INT, Prot_Edge, Prot_Blunt, Prot_Point, Prot_Fire, Prot_Ice,
    Prot_Magic, Sword, Axe, Staff, Bow, CrossBow, Circle, Fireball, Frost, Missile,
    Smith, Mining, Lockpick, Pickpocket, Sneak, Acrobat, Alchemy, Scribe, Trophy,
    
    Scripts ("Skill" is replaced with the desired Skill from the above list):
    -------------------------------------------------------------------------
    Teach"Skill"
    WithinBounds"Skill"
    IsTaught"Skill"Less
    IsTaught"Skill"LessEqual
    IsTaught"Skill"Equal
    IsTaught"Skill"GreaterEqual
    IsTaught"Skill"Greater
    
    Teach"Skill" increases the skill of the Self Entity and a GameVariable named
    Taught"Skill" by Param.
    Additionally there are TeachStat_HP and TeachStat_MP. These differ from
    TeachHP and TeachMP by changing only maximum HP/MP not current HP/MP whereas
    TeachHP and TeachMP also heal the amount of added maximum HP/MP.
    
    WithinBounds"Skill" checks if the absolute limit of a skill would be passed.
    
    IsTaught"Skill"* compares the Taught"Skill" GameVariable to Param. So in case
    of less it returns Taught"Skill" < Param.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  6. #6 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    Ah ja, ich erinnere mich SEHR düster. Das müsste von mir sein. Hat aber mit dem Problem hier nix zu tun.
    [Bild: dtc_sig.jpg]

    Harald Iken: Überhaupt sollte man als Spieleentwickler das Wort "einfach" oder noch besser "mal eben" aus seinem Wortschatz streichen.
    Kuchenschlachter ist offline

  7. #7 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    Ja es geht um Risen 1

    Ich habe ja bereits Templates (wie Waffen, Tränke,..) bearbeitet & die Änderungen werden im Spiel durchaus angezeigt. Ich bin mir nicht sicher was du meinst
    https://forum.worldofplayers.de/foru...1#post24559962
    (Bezog sich aber auf Monster, nicht auf spells, etc.)

    edit: bei It_Scr_MediumHeal z.B. ist das Problem, dass der Wert 100 (hexadezimal 64 00 00 00) nur einmal im template auftaucht, als Goldvalue. Der 2. Wert 100 (für "Heilung um 100 Lebenspunkte") fehlt. Scheint also tatsächlich im code verankert zu sein. Happy coding.

    edit2: beim Debuggen fiel mir auf, dass It_Scr_MediumHeal InfoCommandHeal aufruft. Das InfoCommand wird zwar in keiner xinf-Datei verwendet, aber da man Fässern Dialoge geben konnte (jedenfalls in G3, afair), könnte man vielleicht auch Items einen geben und damit Heilung auslösen. Leider zu beschäftigt, um das mal auszuprobieren.

    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (04.11.2022 um 15:04 Uhr)

  8. #8 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von tombom81 Beitrag anzeigen


    edit: bei It_Scr_MediumHeal z.B. ist das Problem, dass der Wert 100 (hexadezimal 64 00 00 00) nur einmal im template auftaucht, als Goldvalue. Der 2. Wert 100 (für "Heilung um 100 Lebenspunkte") fehlt. Scheint also tatsächlich im code verankert zu sein. Happy coding.
    YaY HappyCoding
    Okay also wie Kusch vermutet hat ... good to know

    Zitat Zitat von tombom81 Beitrag anzeigen
    edit2: beim Debuggen fiel mir auf, dass It_Scr_MediumHeal InfoCommandHeal aufruft. Das InfoCommand wird zwar in keiner xinf-Datei verwendet, aber da man Fässern Dialoge geben konnte (jedenfalls in G3, afair), könnte man vielleicht auch Items einen geben und damit Heilung auslösen. Leider zu beschäftigt, um das mal auszuprobieren.
    Damit kenne ich mich zu wenig aus. Bzw wie wäre das praktisch & schrittweise umzusetzen? Einfach einen neuen Dialog mit einer Schriftrolle als Ziel?

    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    Tach

    Ich bin mir fast 100%ig sicher, dass wie viel die Heilzauber heilen im C++ Code steht. Ohne reverse engineering der Script_Game.dll wirst du da nicht weiter kommen.
    Ich überlege gerade ob du vielleicht von irgendwas das ich oder Baltram oder so gemacht haben abschreiben kannst, aber ich befürchte ich habs nur mal nachgeschaut(kann mich düster erinnern), aber nie was dran gemacht.
    Hey Kusch
    Okay das bedeutet im Klartext, ohne größeren Aufwand wird man hier wohl nichts ändern können..?
    Es gibt wohl kein übersichtliches, vereinfachenderes Tool mit dem man die Script_Game.dll bearbeiten könnte? Ich hab mal versucht diese mit DotPeek zu öffnen, aber irgendwie unterstützt es das Format nicht? (Obwohl man .dll Dateien damit normalerweise öffnen könnte)
    Wie kann man den die Risen .dll´s öffnen? Bzw wie hast du´s damals gemacht?

    Allerdings hört sich das alles ziemlich mühselig an xD
    Ich weiß ehrlich gesagt nicht ob ich mir das antue ... ^^
    Stormwind93 ist offline

  9. #9 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    Damit kenne ich mich zu wenig aus. Bzw wie wäre das praktisch & schrittweise umzusetzen? Einfach einen neuen Dialog mit einer Schriftrolle als Ziel?
    Praktisch habe ich sowas Ähnliches (für Gothic 3) mal hier gemacht:
    https://forum.worldofplayers.de/foru...1#post25218562
    allerdings mit einer interact-entity.

    "schrittweise"? Ja, das wären aber ziemlich viele Schritte. Erstmal muss man sich mit properties auskennen. Hier ein Auszug aus It_Scr_MediumHeal aus der Monastery_Item.lrent, mit RisenVIM von NicoDE erstellt:
    Code:
                PropertySet[3] {
                  ClassVersion = 0x0039 (57)
                  ClassName: gCItem_PS, Version: 57
                  Properties {
                    Amount (long) = 0x00000001 (1)
                    GoldValue (long) = 0x00000064 (100)
                    MissionItem (bool) = 0x00 (0)
                    Permanent (bool) = 0x00 (0)
                    SortValue (long) = 0x0000016D (365)
                    Category (bTPropertyContainer<enum gEItemCategory>) = 0x00000005 (5)
                    IconImage (eCGuiBitmapProxy2) = "ic_it_scr_mediumheal"
                    HoldOffset (bCVector) = {      0.000000;       0.000000;       0.000000}
                    Dropped (bool) = 0x00 (0)
                    ItemWorld (eCTemplateEntityProxy) = {...}
                    ItemInventory (eCTemplateEntityProxy) = {...}
                    Spell (eCTemplateEntityProxy) = {...}
                    RequiredSkills (bTObjArray<class gCSkillValue>) = {...}
                    ModifySkills (bTObjArray<class gCModifySkill>) = {...}
                    UseType (bTPropertyContainer<enum gEItemUseType>) = 0x00000013 (19)
                    CanEquipScript (eCScriptProxyScript) = {...}
                    EquipScript (eCScriptProxyScript) = {...}
                    UnEquipScript (eCScriptProxyScript) = {...}
                    EffectMaterial (bCString) = "scroll"
                    HoldType (bTPropertyContainer<enum gEItemHoldType>) = 0x00000000 (0)
                    IsDangerousWeapon (bool) = 0x00 (0)
                    CombatHitRangeOffset (float) =       0.000000
                  }
                }
    Da müsste man eine gCDialog_PS property ein- bzw. anfügen. (Keine Erinnerung, wie ich das bei der G3 animated door gemacht habe).
    Für Risen könnte der RisenEditor von Galrath hilfreich sein.

    edit: sehe gerade, dass Object_Interact_Magic_Orb_Levitation eine Dialog_PS property besitzt. Habe zwar keine Ahnung, wie das Ding aussieht und ein Inventar-Item ist es sicher nicht. Mal ingame suchen gehen. (Ach Mist, mein Risen ist kaputto. Nur die Neuland-mod geht. Mal den Orb spawnen lassen... ok...)

    Interaktive Objekte können einen Dialog haben, zum Beipsiel ein Bett:
    Code:
    <Document
        ClassName="gCInfo"
        ClearChildren="False"
        ConditionType="gEInfoCondType_General"
        CurrentInfoCommandIndex="-1"
        Folder=""
        GoldCost="0"
        InfoGiven="False"
        InfoIsRunnig="False"
        LearnPointCost="0"
        MainSortID="2"
        Name="FILLERX2_00327"
        Owner="Object_Interact_Bed"
        Parent=""
        Permanent="True"
        Quest=""
        SortID="662"
        StartChapter="-1"
        Type="gEInfoType_Info"
        EndChapter="-1"
        >
        <Command
            ClassName="gCInfoCommandDescription"
            Text="INFO_FILLERX2_00003103"
        >
        </Command>
        <Command
            ClassName="gCInfoCommandSleep"
            Entity1=""
            TargetHour="20"
        >
        </Command>
        <Command
            ClassName="gCInfoCommandEnd"
        >
        </Command>
    </Document>
    Die Kristallkugel löst aber stattdessen den Levitationseffekt aus und kann auch nicht im Inventar getragen werden. Vielleicht gibt es geeignetere Objekte? Oder doch It_Scr mit Dialog-Property versehen?


    btw, die Erweiterungs-dlls (Script_Extensions.dll zum Beispiel) wurden mit Hilfe des RisenSDKs erstellt. Ohne code-Vorlage/Beispiel ist das aber, öhm, schwierig.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (05.11.2022 um 10:44 Uhr)

  10. #10 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Apropos Orb´s
    Es gibt unter Templates/Items/MagicOrbs/It_Orb_MediumHeal
    Es ist benutzbar & kostet 0 Mana.. & heilt
    eigentlich hatte ich gehofft das hier vielleicht die Heilmenge versteckt sein könnte oder es dir vllt hilft ^^

    Woher bekomm ich den das RisenVIM, das ich mir die Files genauer anschauen könnte? Leider ist es hier nicht zu finden:
    https://forum.worldofplayers.de/foru...es-for-modding
    EDIT: Meinst du den Risen Viewer? Den hab ich gefunden, allerdings woher bekomm ich die Irents?

    Nur zur Sicherheit, du schaust dir schon die templates genauer an oder? Nicht die DialogFiles? (Das ist leider absolutes Neuland für mich)

    Eine andere Idee: Wäre es möglich Heal-Zauber doppelt ausführen zu lassen?
    Dann wären sie ja vom Wert her doppelt. (Müsste man nur die Manakosten anpassen ^^, falls notwendig)

    Noch eine andere Idee zum umgehen: Ich könnte theoretisch beim Schriftrollenschreiben (mit TPLEdit) einfach beim Rezept ResultAmount auf 3 setzen, leider ist mir aufgefallen, das das noch nie funktioniert hat bei mir xD Woran liegt das?
    Stormwind93 ist offline Geändert von Stormwind93 (05.11.2022 um 19:39 Uhr)

  11. #11 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    Mein Beileid.

    Also dotPeek ist für C#(oder allgemein clr?) assemblies. Die dlls von Risen sind visual C++.
    Damals hab ich IDA benutzt(https://de.wikipedia.org/wiki/Interactive_Disassembler) heute würde man aber wohl, wenn man kein Gewohnheitstier ist, eher Ghidra nehmen.

    Dass ResultAmount nicht funktioniert hat einen ganz einfachen Grund. Weils im Code nicht benutzt wird.
    Musste ich auch auf die harte Tour lernen und im assembly hab ich die stelle auch gefunden wo dreist ResultAmount ignoriert wird. Bin mir nicht mehr sicher ob ichs dann auch gepatcht hab, aber ich glaub das hat wieder neue Probleme erzeugt.
    [Bild: dtc_sig.jpg]

    Harald Iken: Überhaupt sollte man als Spieleentwickler das Wort "einfach" oder noch besser "mal eben" aus seinem Wortschatz streichen.
    Kuchenschlachter ist offline

  12. #12 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    Apropos Orb´s
    Es gibt unter Templates/Items/MagicOrbs/It_Orb_MediumHeal
    Es ist benutzbar & kostet 0 Mana.. & heilt
    Geil! (4 Augen sehen mehr als 2. Kann mich garnicht erinnern, den Heil-Orb jemals in Risen gesehen zu haben. Oder einfach nur zu lange her.)

    edit: den Orb mal gespawnt, aha, hat keinen Fokusnamen; wurde also nie im Spiel verwendet; daher auch 0 Manakosten.

    Woher bekomm ich den das RisenVIM, das ich mir die Files genauer anschauen könnte?
    Hab's mal hier angehängt:
    https://forum.worldofplayers.de/foru...1#post24594261

    EDIT: Meinst du den Risen Viewer? Den hab ich gefunden, allerdings woher bekomm ich die Irents?
    Musst du aus der projects.pak entpacken und kannst sie unter dem tab hier laden:
    [Bild: RisenEditor_Monastery_Item.jpg]

    Nur zur Sicherheit, du schaust dir schon die templates genauer an oder? Nicht die DialogFiles?
    Yep. Allerdings stehe ich bei Risen template-analysemäßig etwas auf dem Schlauch. RisenVIM ist nur ein Logger und tpledit etwas unflexibel. Müsste man eigentlich was für das properties-Einfügen coden. (Für Gothic 3 gibt's g3dit, das hat so ein feature, iirc.)

    Eine andere Idee: Wäre es möglich Heal-Zauber doppelt ausführen zu lassen?
    Dann wären sie ja vom Wert her doppelt. (Müsste man nur die Manakosten anpassen ^^, falls notwendig)
    Du meinst in einem Schritt? Happy coding, haha. (Das sind so Dinge, die in einem umfangreicheren scripting-System a la Redscript (Witcher Series) besser bzw. überhaupt umzusetzen sind.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (05.11.2022 um 22:30 Uhr)

  13. #13 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    Mein Beileid.

    Also dotPeek ist für C#(oder allgemein clr?) assemblies. Die dlls von Risen sind visual C++.
    Damals hab ich IDA benutzt(https://de.wikipedia.org/wiki/Interactive_Disassembler) heute würde man aber wohl, wenn man kein Gewohnheitstier ist, eher Ghidra nehmen.
    Soweit ich das jetzt gelesen habe könnte ich mit Ghidra die dll decompilieren aber sie nie wieder so zusammenfügen? XD

    Deshalb müsste ich einen Patch erstellen, welcher wiederrum in die Script_Game.dll eingreift um Sachen zu verändern..
    Wie du es hier gemacht hast mit Frad:
    https://forum.worldofplayers.de/foru...highlight=Fred
    Dein source Code ist da auch dabei ^^

    Wäre dieses Tutorial genau das was ich suche?
    https://forum.worldofplayers.de/foru...creation-setup
    Mein Englisch ist leider ähh... eingerostet ^^
    RisenSDK wurde ja bereits in dem Zusammenhang erwähnt

    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    Musste ich auch auf die harte Tour lernen und im assembly hab ich die stelle auch gefunden wo dreist ResultAmount ignoriert wird...
    Warum bauen sie Funktionen ein um sie zu ignorieren? Wahrscheinlich hat das wohl mit den Bugs zu tun, die du erwähnt hast xD

    Zitat Zitat von tombom81 Beitrag anzeigen
    Geil! (4 Augen sehen mehr als 2. Kann mich garnicht erinnern, den Heil-Orb jemals in Risen gesehen zu haben. Oder einfach nur zu lange her.)
    Sorry für die Verwirrung .. ich dachte wirklich es wäre brauchbar ^^
    Es scheinen irgendwie nur 4 Orbs ins Spiel integriert zu sein, die anderen sind wohl alle nur Kopien der Scrolls ohne Namen ohne Kosten hmmm

    Zitat Zitat von tombom81 Beitrag anzeigen
    Yep. Allerdings stehe ich bei Risen template-analysemäßig etwas auf dem Schlauch. RisenVIM ist nur ein Logger und tpledit etwas unflexibel. Müsste man eigentlich was für das properties-Einfügen coden. (Für Gothic 3 gibt's g3dit, das hat so ein feature, iirc.)
    Ich werd mal da reinschaun, ich probier grade ein bisschen rum.. da die templates auf C++ basieren, könnte man die mit Visual Studio C++ öffnen?
    Ich probiers mal bzw es läd irgendwie ewig runter xD
    EDIT: Naja das war wohl nix xD ...

    Also ich hab mir mal mit Library export effects, die Effekte gezogen, aber da scheinen nur VFX & SFX abgerufen zu werden. Allerdings auch interessant zu wissen, das diese dort gespeichert sind ^^

    EDIT: ich hab mal versucht direkt auf die Spruchrolle einen Dialog zu schreiben.. naja aber das hat nicht funktioniert xD
    Oder meintest du das mit der gcDialogProperty, welche man bei der Rolle hinzufügen muss damit man einen Dialog intergrieren kann?
    Stormwind93 ist offline Geändert von Stormwind93 (06.11.2022 um 05:55 Uhr)

  14. #14 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    Ich werd mal da reinschaun, ich probier grade ein bisschen rum.. da die templates auf C++ basieren, könnte man die mit Visual Studio C++ öffnen?
    Öhm, wenn es so einfach wäre, hätte NicoDE nicht damals das RisenSDK erstellen müssen.

    Kurz zum Verständnis: C++ code wird (grob gesprochen) kompiliert zu Maschinen(hex)code, wobei HIER Assemblercode (ASM) als Zwischenstufe dient, um den Hexcode menschenlesbar zu gestalten:
    Code:
    Adresse    Hexcode                    ASMcode
    -----------------------------------------------------
    2033C410 | 56                       | push esi                                | esi:&"J\"@"
    2033C411 | 8BF1                     | mov esi,ecx                             |
    2033C413 | E8 CC37CFFF              | call <game.??1gCInfoCommandHeal@@UAE@XZ |
    2033C418 | F64424 08 01             | test byte ptr ss:[esp+8],1              |
    2033C41D | 74 09                    | je game.2033C428                        |
    2033C41F | 56                       | push esi                                | esi:&"J\"@"
    2033C420 | E8 7E133100              | call <game.sub_2064D7A3>                |
    2033C425 | 83C4 04                  | add esp,4                               |
    2033C428 | 8BC6                     | mov eax,esi                             | esi:&"J\"@"
    2033C42A | 5E                       | pop esi                                 | esi:&"J\"@"
    2033C42B | C2 0400                  | ret 4                                   |
    2033C42E | CC                       | int3                                    |
    Du könntest C++ lernen, aber um mit dem RisenSDK brauchbare dll-Erweiterungen zu erstellen, braucht es einiges an Erfahrung. Der bessere Ansatz (mMn) wäre, x86-Assembler zu lernen und den code direkt zu patchen. Hört sich irre an? Möglicherweise. Tatsächlich ist es aber so, dass man zum Beispiel die Speicherstelle zur Verminderung der Hero-Gesundheit schnell mit CheatEngine finden und mit Hilfe des integrierten Debuggers "noppen" kann, also den Dekrementiercode durch Leerbefehle (no operation, nop) ersetzen (nop= 0x90 als Hexwert).

    Wenn man mit dem Cheatengine debugger "warm" geworden ist (setzt gründliche ASM-Kennisse voraus), kann man z.B. daran gehen, den obigen call <game.??1gCInfoCommandHeal nachzuverfolgen in Einzelschritten und mit call CommandGive vergleichen, um abschätzen zu können, ob und mit welchen Parametern CommandHeal in InfoDialogen benutzt werden kann (möglicherweise ist CommandHeal nicht dafür gedacht. Allerdings gab es bei Gothic 3 CommandMove und CommandWear, die auch in keinem InfoDialog vorkamen und trotzdem später von Moddern verwendet wurden.)

    edit2: öhm ja, Commandxxx im Risen- und Elex-Universum, bei Gothic 3 hieß das noch einfach MoveTo.

    edit3: CommandHeal in ASM checken? Haha, es geht viel einfacher:
    Code:
    <Command
            ClassName="gCInfoCommandTeach"
            Entity1="PC_Hero"
            >
            <TeachSkill
                Amount="5"
                ClassName="gCSkillValue"
                Skill="gESkill_Stat_HP"
            >
            </TeachSkill>
        </Command>
    Jetzt muss tatsächlich "nur" die Schriftrolle um eine Dialog-Property erweitert werden. Hmm, Stringentry-table, wo die Indices von tple zu tple variieren? Ich glaub, jetzt fallen mir alle von PBs Sünden wieder ein...

    EDIT: ich hab mal versucht direkt auf die Spruchrolle einen Dialog zu schreiben.. naja aber das hat nicht funktioniert xD
    Oder meintest du das mit der gcDialogProperty, welche man bei der Rolle hinzufügen muss damit man einen Dialog intergrieren kann?
    Genau. Du könntest mal G3_Object_Interact_Animated_Door_09 aus diesem post runterladen und mit g3dit öffnen, dann mit einem vanilla Door template vergleichen, um den Unteschied zu sehen

    edit: eh du dir den ASM-Quatsch antust, solltest du dir vielleicht mal, wie vom Kusch vorgeschlagen, Ghidra ansehen, der einen Decompiler haben soll (Maschinencode zu C code Konverter).
    Wurde hier erwähnt.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (06.11.2022 um 10:40 Uhr) Grund: Ghidra Bezug

  15. #15 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    War ein bisschen fummelig, auch weil ich sowas das letzte Mal vor 6 Jahren gemacht habe, aber ein zusätzliches Dialog Property in ein tple einfügen hat geklappt, wie man hier sehen kann:
    [Bild: Scr_MediumHeal_withDialog_PS.jpg]

    (Jetzt muss ich noch eine .xinf -datei einbauen; das schüttel ich jetzt aber nicht mal eben so aus dem Ärmel.)
    (ahso, "library compile infos", da war doch was...)

    edit: guten Morgen auch, da habe ich wohl die Abläufe etwas durcheinandergebracht: für Items im Fokus lässt sich naürlich kein Dialog ausführen, das geht nur mit interaktiven Objekten (oder NPCs/Monstern). Items landen im Inventar, wie es sich gehört. Dort wiederum kann man sie entweder konsumieren/verkaufen/whatever oder spezielle Skriptcommands ausführen (wie CommandHeal bei It_Scr_MediumHeal zum Beispiel).

    Jaja, viel Lärm um nichts...
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (07.11.2022 um 07:41 Uhr)

  16. #16 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    WoW wie hast du es den letztendlich geschafft?

    geSkill_Stat_HP erhöht glaub ich allerdings die maximalen HP, mein Dialog schaute genauso aus ^^

    Also bringt uns das ganze nichts? Weil der Dialog nicht aufgeführt wird?
    Bzw ein Dialog nicht darauf ausgelegt ist in dieser Weise zu funktionieren?

    Dann muss ich doch mal in Ghidra reinschaun hmmm
    Ich scheue davor etwas zurück weil es sich sehr kompliziert anhört
    & ich vermute das ich den Code nicht verstehe
    Stormwind93 ist offline

  17. #17 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    WoW wie hast du es den letztendlich geschafft?
    Wenn man sich etwas mit den properties auskennt, ist es nur Zahlen ersetzen:
    [Bild: n7bnTh7E70m8Ptple_add_a_dialog_PS.jpg]
    Schwach gekästelte 09 und 0E sind bool bzw. float. (Mussten im Scroll-ple nicht geändert werden.)
    Die .._PS (wie Dialog_PS) fangen bei 0x79 an, da die Stringtabelle am tple-Ende aber bei Index 0xAB endete, musste alles ab 79 ersetzt werden. D.h. 79-> AC, 7A->AD, usw.

    (Das erste A1 000000 ist die size, btw, bleib unverändert.)

    geSkill_Stat_HP erhöht glaub ich allerdings die maximalen HP, mein Dialog schaute genauso aus ^^

    Also bringt uns das ganze nichts? Weil der Dialog nicht aufgeführt wird?
    Bzw ein Dialog nicht darauf ausgelegt ist in dieser Weise zu funktionieren?
    Das ist mein Kenntnisstand. Man könnte interaktive Objekte, die kein Dialog_PS haben, damit ausstatten. Das sollte funktionieren (weil es in Gothic 3 ging.).

    Dann muss ich doch mal in Ghidra reinschaun hmmm
    Ich scheue davor etwas zurück weil es sich sehr kompliziert anhört
    & ich vermute das ich den Code nicht verstehe
    Wenn du noch nie programmiert hast, würde ich als soft-Einstieg empfehlen, mal mit der Cheatengine die Health-points des players zu freezen, so dass er keinen Schaden mehr nimmt.

    Das kann man schnell lernen mittels Tutorials. Die Codestellen, die auf die HP-Adresse zugreifen (access or write) findet der CE-Debugger dann für dich, das ist das Geniale. Die kannst du dann noppen (also mit Leerbefehlen, nop, füllen), ohne dass du Assembler können musst. Weil der debugger die Länge der instructions (= Anzahl der erforderlichen nops) kennt bzw. meckert, wenn du nur ein nop einbaust statt 3 z.B.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  18. #18 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von tombom81 Beitrag anzeigen
    Wenn du noch nie programmiert hast, würde ich als soft-Einstieg empfehlen, mal mit der Cheatengine die Health-points des players zu freezen, so dass er keinen Schaden mehr nimmt.
    So ist es auch nicht, das ich das noch nie programmiert habe ^^
    Ich verstehe "normalen" Code ja recht gut (siehe Gothic 2), aber meine Befürchtung war das Ghidra mir keinen C++ Code liefert (diese wurde bestätigt xD)
    Leider weiß ich nicht genau wie ich den Code hier als Bild einfüge deshalb hier ein paar Zeilen (ist das Assembler Code?)

    1011c1b5 68 5c d7 PUSH s_It_Scr_MediumHeal_101cd75c = "It_Scr_MediumHeal"
    1c 10
    1011c1ba 8d 4c 24 38 LEA ECX=>local_c0,[ESP + 0x38]
    1011c1be ff d7 CALL EDI=>SCRIPT.DLL::Template::Template


    Mit der CheatEngine hab ich bisher nur einfache Sachen gemacht wie in Risen 3 Gold cheaten xD
    In dieser Hinsicht wollt ich mich eh mal weiterbilden also passt das recht gut

    Zitat Zitat von tombom81 Beitrag anzeigen
    Das kann man schnell lernen mittels Tutorials. Die Codestellen, die auf die HP-Adresse zugreifen (access or write) findet der CE-Debugger dann für dich, das ist das Geniale. Die kannst du dann noppen (also mit Leerbefehlen, nop, füllen), ohne dass du Assembler können musst. Weil der debugger die Länge der instructions (= Anzahl der erforderlichen nops) kennt bzw. meckert, wenn du nur ein nop einbaust statt 3 z.B.
    Ich werd mich demnächst mal dran machen

    Eine Frage: Sind sich Gothic 3 & Risen 1 wirklich so ähnlich vom Modden her?
    Ja sie mögen beide Piranha Bytes Spiele sein. Ich frage nur weil du dich oft darauf beziehst, aber ich zum Beispiel fand es beim Gothic 2 Modding zwar auch anspruchsvoll, aber nie so überfordernd & umständlich wie jetzt bei Risen xD
    Selbst hab ich Gothic 3 weder richtig gespielt noch gemoddet deshalb kann ich da nur wenig dazu sagen...
    Stormwind93 ist offline

  19. #19 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.143
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    aber meine Befürchtung war das Ghidra mir keinen C++ Code liefert (diese wurde bestätigt xD)
    Sagt wer? Ghidra hat einen Decompiler, sagt
    Zitat Zitat von Lehona Beitrag anzeigen
    IDA Free beinhaltet keinen Decompiler, nur einen Disassembler. Ghidra liefert aber einen gratis Decompiler mit. Habe den bisher nur für ARM verwendet, aber der für x86 ist bestimmt sogar besser
    Also C-code mindestens. Das reicht. (C++ macht die Sache eh nur komplizierter.)

    (ist das Assembler Code?)

    Code:
            
    1011c1b5 68 5c d7    PUSH     s_It_Scr_MediumHeal
    1011c1ba 8d 4c 24 38 LEA    ECX=>local_c0,[ESP + 0x38]
    1011c1be ff d7       CALL    EDI=>SCRIPT.DLL::Template::Template
    Yep. Adresse des codes im RAM, dann Maschinensprache (Hexwerte) und schließlich die Assembler Mnemonics, push.., lea.., call...


    Eine Frage: Sind sich Gothic 3 & Risen 1 wirklich so ähnlich vom Modden her?
    Für Gothic 3 habe ich nur was für Bollock gmacht und eine "sprechende Tür", mit Risen auch nur alle möglichen Gimmicks, daher bin ich nich wirklich der passende Ansprechpartner. Da Risen eine erweiterte Version der genome engine verwendet, prinzipiell: ja. Die Grundstruktur der properties und der prinzipielle Aufbau der Weltsektordateien sind gleich. Bei den info/xinf-Dateien wurden xml-Tags eingeführt.

    Was bei Risen neu war, war das SDK. (Inzwischen hat das George für Gothic 3 angepasst, afair.)

    Ja sie mögen beide Piranha Bytes Spiele sein. Ich frage nur weil du dich oft darauf beziehst, aber ich zum Beispiel fand es beim Gothic 2 Modding zwar auch anspruchsvoll, aber nie so überfordernd & umständlich wie jetzt bei Risen xD
    Gothic 2 modding ist nochmal eine ganz andere Hausnummer. Erstmal haben die den Spacer, der Worldbuilding ermöglicht, soweitichmicherinner. Ist schon erstaunlich, mit welcher Hartnäckigkeit da immer noch gemoddet wird. Schade, dass wenige bis keiner von denen den Weg zu neueren PB-Titeln findet.

    Und die Neuland-Truppe um Baltram, JFaron und Kusch ist wohl retired, mehr oder weniger. (Denke, die waren sicher etwas enttäuscht wg. der bescheidenen Resonanz, nachdem sie ein Teil ihres Lebens in Neuland (DTC) gesteckt hatten.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (08.11.2022 um 06:07 Uhr)

  20. #20 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von tombom81 Beitrag anzeigen
    Sagt wer? Ghidra hat einen Decompiler, sagt

    Also C-code mindestens. Das reicht. (C++ macht die Sache eh nur komplizierter.)
    Ja großartig gleich mal schaun ^^
    Ich bin mit dem Programm ja gar ned vertraut...
    verdammt den link wo das erwähnt wird hast du mir doch geschickt glaub ich
    .. fail xD

    Die Frage ist kann ich das dann nachher wieder so zusammenfügen?
    Werds mal testen...

    Zitat Zitat von tombom81 Beitrag anzeigen
    Gothic 2 modding ist nochmal eine ganz andere Hausnummer. Erstmal haben die den Spacer, der Worldbuilding ermöglicht, soweitichmicherinner. Ist schon erstaunlich, mit welcher Hartnäckigkeit da immer noch gemoddet wird. Schade, dass wenige bis keiner von denen den Weg zu neueren PB-Titeln findet.
    Kann es sein das die neueren Titel auch schwieriger zu modden sind?
    In Risen 3 hat man ja nicht mal standardmäßig ne Console...
    Ich wollte letztens die Risen 3 Real Enhanced Edition ausprobieren, aber hat irgendwie nicht funktioniert...kam sowas wie "Handeln nicht gefunden"
    Als ob er mit mir handeln wollt tzz XD
    Spaß beiseite es hieß "handle"

    Zitat Zitat von tombom81 Beitrag anzeigen
    Und die Neuland-Truppe um Baltram, JFaron und Kusch ist wohl retired, mehr oder weniger. (Denke, die waren sicher etwas enttäuscht wg. der bescheidenen Resonanz, nachdem sie ein Teil ihres Lebens in Neuland (DTC) gesteckt hatten.)
    Das find ich auch sehr schade. Aus eigener Erfahrung weiß ich wie viel Arbeit & Zeit da investiert werden müssen. Ich hab´s leider auch noch nicht geschafft es auszuprobieren. Aber ich denke mal das wird sich hoffentlich bald ändern ^^
    Stormwind93 ist offline

Seite 1 von 3 123 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •