Home Risen Risen2 Risen3 Forum English Russian

Registrieren Hilfe Kalender Heutige Beiträge
Seite 2 von 3 « Erste 123 Letzte »
Ergebnis 21 bis 40 von 46
  1. #21 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.153
    So, ich denke ich habe einen Lösungsansatz für das Scroll-Problem:
    [Bild: Druidenschierling_HP_12.jpg]

    Ich habe den ModifySkill des Druidenschierling von MaxHP nach HP geändert (und Amount von 1 auf 12).
    Das könnte man auf die Scroll übertragen, indem man dort unter Item das ModifyProperty addiert.

    (Allerdings könnte sich das mit dem per code ausgelösten CommandHeal überlagern. Egal, mehr als crashen kann die Chose ja nicht.)


    Zur Mddingdiskussion: ich denke, es fehlt schlicht und ergreifend "der Spirit" bei den "PB-Spielen nach Risen". Gut zu sehen an Risen 3, das wohl 99% nach dem ersten Durchspielen "ins Regal" gestellt haben.
    Noch besser zu sehen bei Elex (1), wo es im ersten halben Jahr eine Modderblüte gab, die von jetzt auf gleich abgestorben ist. Hört sich krass an - war aber so.

    Risen war nochmal das letzte Aufbäumen (von Creator- und modder-Seite), wenn man es mal so gemein formulieren wollte.
    "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

  2. #22 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von tombom81 Beitrag anzeigen
    So, ich denke ich habe einen Lösungsansatz für das Scroll-Problem:
    Ich habe den ModifySkill des Druidenschierling von MaxHP nach HP geändert (und Amount von 1 auf 12).
    Das könnte man auf die Scroll übertragen, indem man dort unter Item das ModifyProperty addiert.
    Dann wäre es ja das selbe wie Nahrung zu sich nehmen oder?
    Da sich die überlagern würde beides addiert?
    Also die Scroll & den Schirling vergleichen bzw angleichen?
    Warum genau den Schirling und kein z.B. Fleisch?

    Bin allerdings gerade bei Ghidra
    Bringt uns dieser Code weiter? Er steht unter InfComHeal in der Script.dll


    /* public: __thiscall InfComHeal::InfComHeal(class InfComHeal const &) */


    void __thiscall InfComHeal::InfComHeal(InfComHeal *this,InfComHeal *param_1)


    {
    /* 0x1389 14 ??0InfComHeal@@QAE@ABV0@@Z */
    *(undefined ***)this = vftable;
    *(undefined4 *)(this + 4) = *(undefined4 *)(param_1 + 4);
    return;
    }


    Ich bin grade auf der Suche nach der .dll in der die Heilmenge gespeichert ist ...
    Bisher immer nur variablen xD und es sind so viele .dll´s...

    Bei Ghidra ist eine dll immer aufgeteilt in Export, Label und Classes
    Wo würdest du die Value suchen?
    Stormwind93 ist offline

  3. #23 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.153
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    Dann wäre es ja das selbe wie Nahrung zu sich nehmen oder?
    Da sich die überlagern würde beides addiert?
    Hat aber nicht geklappt.

    Habe dann den Skill-Modifier mal auf 7=STR gestellt, damit nichts kollidiert, aber die Stärke bleibt gleich.

    Also die Scroll & den Schirling vergleichen bzw angleichen?
    Das war der Plan.

    gEItemCategory ist 5= Magic bei der Scroll und 3=Consumable beim Schierling. Zusätzlich ist der UseType unterschiedlich. Ist doch komplexer als ich dachte, da von den enums die Aktionen abhängen, die mit dem Item ausgeführt werden können.

    Möglicherweise ist mehr als eine Funktion pro Item oder interaktivem Object einfach nicht vorgesehen.
    Bzw. man müsste die Property gCInteraction_PS checken; bei der Scroll CanInteract_Magic_Item, Telekinesis_Item, InventoryUse_Player_HealMedium. Da kann man nicht "mal eben schnell" drinn rumpfuschen.[Bild: s_024.gif]

    Warum genau den Schirling und kein z.B. Fleisch?
    Reiner Zufall, bin ich zufällig "reingelaufen" und passte ganz gut.

    Bringt uns dieser Code weiter? Er steht unter InfComHeal in der Script.dll
    Bedingt. Es gibt auch SetCommand@InfComHeal, ?GetEntity1@InfComHeal, aber die stehen nicht in der jump table der dll (script.dll ab 0x2F5EFE).

    Ich bin grade auf der Suche nach der .dll in der die Heilmenge gespeichert ist ...
    Willkommen im Club. Suche schon seit Jahren die Stelle, wo die Waffen gespeichert sind, mit denen die NPCs ausgestattet sind. Die sind im hidden inventory (jedenfalls bei Elex 1) und ich hatte auch ne Nexus-mod (Looting dropped weapons), wo ich das freigeschaltet hatte.

    Aber die Stelle im Code, wo die Waffen "initialisiert"/zugewiesen werden habe ich nie gefunden.

    Wo würdest du die Value suchen?
    Die Frage nach dem "wo" ist äußerst schwierig. Zielführender wäre wahrscheinlich das "wie". Also bei den Waffen einen break point im Startup code setzen ("wo", haha).

    Da gibt's aber das Problem, dass das Starten von Risen per Debugger immer in eine exception mündet (wahrscheinlich wg. dem Tages Kopierschutz?) Hmm, gab's da nicht eine offizielle kopierschutzfreie Version? Und hatte ich die nicht sogar? edit: hmm, ja. falsch verstanden; Tages is noch da, aber man braucht die DVD nicht mehr. Ahso.
    "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 (09.11.2022 um 11:42 Uhr)

  4. #24 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von tombom81 Beitrag anzeigen
    Hat aber nicht geklappt.
    Habe dann den Skill-Modifier mal auf 7=STR gestellt, damit nichts kollidiert, aber die Stärke bleibt gleich.
    gEItemCategory ist 5= Magic bei der Scroll und 3=Consumable beim Schierling. Zusätzlich ist der UseType unterschiedlich. Ist doch komplexer als ich dachte, da von den enums die Aktionen abhängen, die mit dem Item ausgeführt werden können.
    Ich habs auch probiert ^^
    Habe mal alles angeglichen was mit TPLEdit geht.
    Im Endeffekt wurde mir das Item unter Consumables angezeigt & die HP Heilung auch allerdings machte er immernoch die MediumHeal Gestik & heilte die normale Menge.

    Zitat Zitat von tombom81 Beitrag anzeigen
    Möglicherweise ist mehr als eine Funktion pro Item oder interaktivem Object einfach nicht vorgesehen.
    Das hab ich mir auch gedacht..TPLEdit ist leider echt limitiert..

    Zitat Zitat von tombom81 Beitrag anzeigen
    Willkommen im Club. Suche schon seit Jahren die Stelle, wo die Waffen gespeichert sind, mit denen die NPCs ausgestattet sind. Die sind im hidden inventory (jedenfalls bei Elex 1) und ich hatte auch ne Nexus-mod (Looting dropped weapons), wo ich das freigeschaltet hatte.
    Also auf´s hidden inventory in Risen 1 kann man doch zugreifen über z.B.
    DynEntity GetGuid Alvaro
    Dynentity Edit #r1
    & dann ins Inventar gehen, da stehen unter Inventory trade, hidden und des lootbare
    Da es Dynentity ist ändert man es auch pemanent (soweit ich weiß)

    Oder meinst du die automatisch zugewiesenen Waffen, welche sie bekommen wenn sie ihre nicht mehr haben?

    Zitat Zitat von tombom81 Beitrag anzeigen
    Die Frage nach dem "wo" ist äußerst schwierig. Zielführender wäre wahrscheinlich das "wie". Also bei den Waffen einen break point im Startup code setzen ("wo", haha).
    Ach ich hab jetzt kein bock mehr XD
    Ich mach jetzt einfach eine "Rolle des genussvollen Fleisches"
    Icon: Schriftrolle
    Heilmenge: 500
    Beim Benutzen isst man ein Fleisch..
    Gegebenenfalls mach ich noch ne Rune oder ich machs gleich als Kochrezept xD

    Zitat Zitat von tombom81 Beitrag anzeigen
    Da gibt's aber das Problem, dass das Starten von Risen per Debugger immer in eine exception mündet (wahrscheinlich wg. dem Tages Kopierschutz?) Hmm, gab's da nicht eine offizielle kopierschutzfreie Version? Und hatte ich die nicht sogar? edit: hmm, ja. falsch verstanden; Tages is noch da, aber man braucht die DVD nicht mehr. Ahso.
    Also ich hab die GoG Version.. da kann man sich auch die Offline Version runterladen, sollte dir das was helfen ^^
    Stormwind93 ist offline

  5. #25 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.153
    Zitat Zitat von Stormwind93 Beitrag anzeigen
    Oder meinst du die automatisch zugewiesenen Waffen, welche sie bekommen wenn sie ihre nicht mehr haben?
    Ja, die Stelle(n) im code wo all die initialen Werte gespeichert sind, Waffen der NPCs, health 100 der Scroll MediumHeal, usw.

    Ich denk, ich setz mal einen BP auf PostInitializeProperties im Script dll code.

    (Zum hidden inventory kommst du in Risen übrigens schneller, wenn du (mit dem NPC im Fokus) 'edit' eingibst in der debug Konsole.
    Seltsamerweise hat Gustav It_Rake dort, also die Hacke, während das FamilySword unter Items gepackt wurde. Keine Ahnung, ob das generell so ist bei Risen oder nur bei Neuland. Ahso, wahrscheinlich, damit man ihm das klauen kann; da war doch was?)

    Also ich hab die GoG Version.. da kann man sich auch die Offline Version runterladen, sollte dir das was helfen ^^
    In Risen\bin gibt es da keine TagesClient.exe? (Und selbst wenn, nochmal 9,99€ wollte ich jetzt nicht noch investieren.)

    Da wäre es günstiger, einen relativen jump auf sich selbst in die Risen.exe einzubauen, dann den debuger attachen und den Original code restaurieren, haha. Jedenfalls hat Baltram doch den code zum Enablen der DebugConsole reingepatched in die exe. (Naja, der hat auch ne Nummer mehr Ahnung...)
    "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. #26 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    Kann man sich ja net mit anschauen.

    Hier, das sollten/müssten/könnten/vielleicht die drei stellen in der Script_Game.dll sein, die bestimmen wie viel die drei heil zauber heilen.

    [Bild: Smf9qGh1BiTUnbenannt.jpg]
    [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. #27 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    Kann man sich ja net mit anschauen.

    Hier, das sollten/müssten/könnten/vielleicht die drei stellen in der Script_Game.dll sein, die bestimmen wie viel die drei heil zauber heilen.
    Hey ^^
    Sorry für späte Antwort.
    Also und wie kann ich einen Wert in Ghidra bearbeiten?
    ich blick des gar ned xD
    Irgendwie kann ich da nur sehr wenig ändern.. Funktionen, Variablennamen

    Immerhin hab ich die Stelle gefunden. Danke dafür !
    Es sieht danach aus als wären das wirklich die Stellen. Jetzt kann ich´s nur nicht ausprobieren weil ich nichts ändern kann... :/

    Wie füge ich das anschließend in eine .dll zurück?
    Eine .bin hat fast die gleiche Größe (4KB Unterschied) aber ich weiß nicht
    ob ich die einfach umbennen kann haha xD
    Mit welchem Programm hast du es den geöffnet?

    @TomBom81 Da gibt´s nur ne TagesClient.bat bei der GoG Version, aber des Thema hatte sich ja eh erledigt ^^
    Stormwind93 ist offline

  8. #28 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    Da kann ich dir leider keine einfach Antwort drauf geben. Ich hab IDA benutzt.
    Vermutlich kannst "einfach" die dll mit nem hex-editor öffnen und ne andere Zahl an die entsprechenden stellen schreiben.

    Als ich noch aktiv war wollte ich immer nen anderen weg gehen:
    Gesamte funktion reverse engineeren und via SDK ersetzen, damit jemand der nach mir kommt leichter damit arbeiten kann.
    [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

  9. #29 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.153
    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    Da kann ich dir leider keine einfach Antwort drauf geben. Ich hab IDA benutzt.
    Vermutlich kannst "einfach" die dll mit nem hex-editor öffnen und ne andere Zahl an die entsprechenden stellen schreiben.
    Ernsthaft jetzt? Sich erst lustig machen und dann das als "Lösung"? (Ich bin raus.)
    "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

  10. #30 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    https://upload.worldofplayers.de/fil...HealSpells.zip
    Die nicht enthaltenen aber referenzierten files kriegt man von meinem branch(https://svn.nicode.net/risensdk/branches/kusch/). Krieg meine credentials nicht mehr zusammen.

    Ich mache mich nicht über euch lustig. Ich bin mir nur sehr sicher, dass eure Anstätze nicht tragen. Ehrlich gesagt bin ich recht beeindruckt, dass sich Stormwind93 tatsächlich an Ghidra gewagt hat.
    Mein Interesse an Risen geht allerdings nur noch so weit, dass ich hier alle paar Wochen mal rein schau ob ich mit wenig Aufwand etwas (vermeintlich) nützliches beisteuern kann.

    Ich muss wohl akzeptieren, dass das nicht möglich ist. Wenn ich nur einen kurzen Kommentar da lasse ist das anscheinend eher beleidigend als nützlich. Das Zeug selbst zusmamen schustern kann ich zwar mit vertretbarem Aufwand, aber IMHO ist damit niemandem wirklich geholfen. Aber jemandem erklären wie die Script_Game.dll im Detail aufgebaut ist, warum man nur entweder einen Zauber mit netter Animation/Visuelleneffekten/hard-coded gameplay Effekten oder die Boni bekommen kann die im Item stehen, wie man das SDK benutzt... sorry, da bin ich (auch) raus. Mein Tag hat auch nur 24h.
    [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

  11. #31 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.153
    Ja, ok. Du musst dich nicht rechtfertigen. Bin jetzt auch nicht undankbar für das, was du für Risen geleistet hast. Kudos!

    Aber uns drei Brocken pushes vor die Füße schmeißen, nachdem wir uns hier einen abbrechen, fand ich schon etwas, naja...

    Vielleicht könntest du prinzipiell andeuten, wie du die drei Stellen im Bild hier gefunden hast?

    https://forum.worldofplayers.de/foru...1#post27082370

    Hab zwar kein IDA, aber generell komm ich mit debuggern zurecht, breakpoints setzen, Aufrufliste erstellen lassen, jump Listen checken, usw. (wenn nicht gerade ein Kopierschutz wild dazwischenhaut).

    Und ja, Stormwind93 hat mich auch beeindruckt (sonst wär ich nicht hier). Ist aber noch ein langer Weg zu gehen, wo man echt Durchhaltevermögen braucht. Zudem ist Risen inzwischen auch son bißchen weg vom Fenster, mMn, da wäre Elex (1) vielleicht der bessere Ansatz für motivierte Modding Einsteiger. Aber das ist nur meine persönliche Meinung.

    Risen hat natürlich schon "etwas"; nicht umsonst gibt es das Risen-SDK.
    "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 (28.11.2022 um 11:54 Uhr)

  12. #32 Zitieren
    Moderator Avatar von George
    Registriert seit
    Sep 2010
    Beiträge
    684
    Zitat Zitat von tombom81 Beitrag anzeigen
    Vielleicht könntest du prinzipiell andeuten, wie du die drei Stellen im Bild hier gefunden hast?
    Folgendermaßen kann man es finden:
    1. Script_Game.dll im CodeBrowser in Ghidra öffnen
    2. Im "Symbol Tree"-Bereich nach Heal suchen
    3. Dort findet man dann Funktionen mit verdächtigem Namen: InventoryUse_Player_HealEnhanced, InventoryUse_Player_HealMedium und InventoryUse_Player_HealMinor
    4. Jetzt klickt man auf einer der Funktionen, z.B. InventoryUse_Player_HealMinor
    5. Und dort findet man verdächtige Konstanten wie 0x32 (= 50) für Minor, 0x64 (= 100) für Medium, 0x96 (= 150) für Enhanced
    George ist offline Geändert von George (28.11.2022 um 22:14 Uhr)

  13. #33 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    Da steckt leider hauptsächlich Erfahrung drin, die sich schwer erklären lässt, aber ich versuchs mal.

    Also erstmal dumm dreist in der Function Liste nach "heal" suchen. Ich rate einfach, aber man kann da auch gezielt hin kommen. Im Interaction PropertySet(vergebt mir, ich schreib ausm Gedechtnis) von den Runen bzw. Schriftrollen sollte genau das Skript drin stehen, also "InventoryUse_Player_HealXYZ". Achtung, technisch gesehen ist der Name der Function die man in Ida findet _NICHT_ der String der im PropertySet steht. Da ist noch eine Indirektion dazwischen. Soll heißen nicht jedes Skipt das man in PropertySets findet kann man einfach über die Function Liste in Ida wieder finden. Aber ich schweife ab.
    [Bild: Functions.jpg]

    Also Doppelklick auf eins von den Teilen(egal welches, die boppelten sind immer nur ein jump zum jeweils anderen) und überfliegen was da so drin steht. Ich kann euch beim besten Willen nicht sagen wonach ich genau suche. Ich glaub ich hab das Ding vor Jahren schonmal reversed(und andere Spells, ich war mir einfach relativ sicher, dass das Zeugs eigentlich immer Hardcoded ist), die Skript Funktionen haben immer etwa die selbe Struktur, die ich halt schon kenne, und InventoryUse_Player_HealXYZ ist vergleichsweiße kurz.
    [Bild: heal.jpg]

    IMHO sticht diese Stelle aus zwei Gründen heraus, einmal wird hier mit einer "ungewöhnlichen" Konstante gearbeitet. Sonst sieht man überall 0 oder 1, vielleicht mal ne 2 oder FFFFFFFFh(-1), aber 32h(50) sticht schon heraus. Und zum zweiten ist das "offensichtlich" ein parameter für eine andere Skript Funktion(push kurz vor call eCScriptProxyScript:perator()). Das deutet darauf hin, dass das tatsächlich Spiellogik ist. Es wird nicht versuche irgendwas in der Engine zu steuern, ne, es sagt einem Skript(Spiellogik) was es genauer tun soll.

    Also mal gucken welches Skript dieses unk_1020E0F4 Dingens da ist('x' drücken).
    Sehr interessant, wird genau in den InventoryUse_Player_Healxyz Skript Funktionen benutzt und in zwei unbenannten(nicht exportierten) Funktionen. Ich weiß, dass das eine Unbenante ist wo das Skript Objekt unk_1020E0F4 initialisiert wird aka da kriegt man raus welches Skript es representiert und das andere wo es zerstört wird.
    [Bild: HealPartyInit.jpg]

    Nachdem man dann gesehen hat welche Zahlen von den drei InventoryUse_Player_Healxyz in HealParty gestopft wird 50/100/150 würde mir das erstmal reichen um die Vermutung zu äußern, dass es das ist.

    Man kann sich dann noch HealParty anschauen(ist netterweiße in der Function Liste). Da findet man dann einmal "PSSkills::SetHitPoints"
    [Bild: SetHitPoints.jpg]

    Und, dass da leider nochmal verdächtige Zahlen vorkommen... hab ich auch übersehen. Anscheinend wird bei den Geheilten auch nochmal ein visueller Effekt ausgespielt(Nicht nur beim Spieler), der abhängig davon ist wie viel geheilt wird... aka wenn man die Zahlen in InventoryUse_Player_Healxyz ändert, ändern sich auch die visuellen Effekte, die bei den Geheilten ausgespielt werden. Ziemlich schrottige aufteilung der Verantwortlichkeiten, aber ist halt so.
    [Bild: Effect.jpg]
    [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

  14. #34 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.153
    Wow, danke ihr zwei! Da schwappt gleich jede Menge Knowledge rüber, dass ich fast ersaufe darin.

    Besonderen Dank an Kusch für deine Mühe.

    Wenn George auch Ghidra erwähnt, muss ich das jetzt wohl installieren.

    (Bin aber gerade im "Elex 1 Rausch", weil ich endlich die Icons gefunden habe.)

    Wenn Ghidra bei mir läuft, gehe ich das Heal-"Problem" hier an, versprochen.
    (Mit xdbg ist das schon 'ne echte Quälerei.)

    Vielleicht kommt mir ja Stormwind93 zuvor? Nur Mut!
    "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

  15. #35 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Hey Ho ^^

    Nachdem ich längere Zeit keine Motivation aufbringen konnte .. ist er zurück xD

    Also Ghidra liefert einem einen kleinen HexCode in Assembly. 68 96 00 00 00
    Er steht an der Stelle wo der Wert vom EnhancedHeal steht.
    Wenn man ihn jetzt in den HexEditor eingibt kommt da genau eine Stelle raus die dort vorhanden ist

    Ratet mal was passiert wenn man 96 durch FF ersetzt
    Ja richtig ^^ die Heilung wird auf 255 erhöht

    ich hab mal versucht die Menge weiter zu erhöhen aber irgendwie heilt er mich dann immer komplett
    Eigentlich wollte ich nur 600, aber selbst bei 4000 HP heilts mich komplett, wenn ich 02 58 (statt 96 00) eingebe.
    Edit: Habe rumprobiert.. 58 02 heilt 600 HP also passt xD (man sollte keine HexRechner aus dem Internet benutzen ... hmm xD

    Jetzt muss ich nur noch die anderen beiden schauen.. werd ich demnächst machn ^^
    Stormwind93 ist offline Geändert von Stormwind93 (20.01.2023 um 07:38 Uhr)

  16. #36 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    Da kann der hex rechner nicht viel dafür.
    little endian is wierd, selbst nach 15 Jahren software entwicklung hab ich mich nur langsam damit abgefunden.

    little endian bedeutet das zahlen "falschrum" da stehen, also zweihunderachtunddreißig steht da als 832.
    Und weil das ja viel zu einfach wäre stehen die bytes in umgekehrter reihenfolge da, aber die zwei ziffern/buchstaben die ein byte ausmachen in der normalen reihenfolge.

    600 = 0x258
    als 4 bytes = 0x00000258
    als bytes gruppiert: 0x00 0x00 0x02 0x58
    little endian: 0x58 0x02 0x00 0x00
    [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

  17. #37 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    Da kann der hex rechner nicht viel dafür.
    little endian is wierd, selbst nach 15 Jahren software entwicklung hab ich mich nur langsam damit abgefunden.
    little endian bedeutet das zahlen "falschrum" da stehen, also zweihunderachtunddreißig steht da als 832.
    Und weil das ja viel zu einfach wäre stehen die bytes in umgekehrter reihenfolge da, aber die zwei ziffern/buchstaben die ein byte ausmachen in der normalen reihenfolge.
    Gut zu wissen und so ein Schmarn xD
    Danke für die Aufklärung ^^

    Jetzt hab ich bei der MediumHeal allerdings ein Problem..
    6a 64
    6a 00
    ist die Stelle im HexEditor, soweit gut
    Allerdings wenn ich was ändere (die 64) wirds immer zu 0 was ich heile?
    die 64 und die 00 werden beide per PUSH (Assembly) ausgeführt also dürften die zusammen gehören oder?
    Die 6a´s (106 vom dezimalen Wert) weiß ich allerdings nicht was die bringen
    Ich check nicht ganz warum es bei der großen Heilung funktioniert und bei der mittleren nicht..
    Bei der kleinen Heilung siehts ähnlich aus..
    6a 32
    6a 00
    hmmm anscheinend (meine Vermutung) sind da nicht mehr als 1 Byte eingeplant, wenn man es mit EnhancedHeal vergleicht..
    Es wäre allerdings gut, wenn es möglich wäre das mal zu testen vielleicht liegts auch nur an meinem kaputten Risen... xD

    PS: Bei der großen Heilung lautet der gesamte Code: 68 96 00 00 00 6a 00

    Edit: Das Problem ist das der Schmarn sich auf Int8 bezieht.. also maximal Werte bis 127.. toll ..
    Du hast nicht zufällig ne Idee? Sonst lass ich den kleinen auf 75, den mittleren auf 125 .. und naja der beste heilt dann halt 600 ... XD

    Grüße
    Stormwind93 ist offline Geändert von Stormwind93 (22.01.2023 um 04:16 Uhr)

  18. #38 Zitieren
    Ritter
    Registriert seit
    May 2009
    Beiträge
    1.688
    ah, das ist tatsächlich ein problem

    ohne jetzt groß nachzudenken oder nachzuschauen:
    sowohl 6a als auch 68 sind push befehle, der unterschied ist wie groß ihr parameter ist
    das problem ist, dass du nicht einfach 6a auf 68 ändern kannst weil du dann alles dahinter weiter schieben müsstest und das geht tatsächlich praktisch nicht.
    Da müsste man jetzt etwas schwerere techniken anwenden: irgendwohin jumpen wo platz ist dort den größeren push durchführen und eventuelle weitere befehle die man mit dem jump überschrieben hat und dann wieder zurück jumpen.
    [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

  19. #39 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.153
    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    Da müsste man jetzt etwas schwerere techniken anwenden: irgendwohin jumpen wo platz ist dort den größeren push durchführen und eventuelle weitere befehle die man mit dem jump überschrieben hat und dann wieder zurück jumpen.
    Ohne Assembler-Kenntnisse wäre das grausam (vor 10 jahren hätte ich das tatsächlich noch in hex hinbekommen.)

    @Stormwind93: ich hatte ja gesagt, dass ich das nochmal angehen wollte (aber Ghidra noch nicht installiert; das macht nur Sinn, wenn ich länger frei habe). Du willst das jetzt nicht "in Hex" durchziehen, oder?

    Wenn du mal den Assembler-Ausschnitt hochladen würdest, wo du gerade "rumturnst" und was du geändert haben willst, kann ich mir das mal ansehen. Wusste nicht, dass x32dbg auch ne Symbolsliste hat (hatte wie'n Blinder in den ASM logs gesucht).

    edit: hab's gefunden; break point wird auch ausgelöst, jetzt muss man sehen, wie die 0x64 "verarbeitet" werden. Bei consume@PSCastInfo bin ich erstmal erschöpft... (Bild zeigt, wo's losgeht, die 0x64 stehen woanders, btw.)

    Spoiler:(zum lesen bitte Text markieren)

    btw, wunder dich nicht über die Adressen am linken Rand; die sind auf jedem PC anders (teilweise auch auf dem gleichen PC nach Neustart, je nachdem, wo Risen in den Speicher geladen wird.).
    EIP (instruction pointer passt auch nicht, weil ich keinen BPt gesetzt habe. Hoffe, das klappt dann, wenn ich mich heile. Morgen vielleicht...)
    "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 (23.01.2023 um 10:05 Uhr)

  20. #40 Zitieren
    Abenteurer
    Registriert seit
    Mar 2019
    Beiträge
    56
    Zitat Zitat von tombom81 Beitrag anzeigen
    Ohne Assembler-Kenntnisse wäre das grausam (vor 10 jahren hätte ich das tatsächlich noch in hex hinbekommen.)

    @Stormwind93: ich hatte ja gesagt, dass ich das nochmal angehen wollte (aber Ghidra noch nicht installiert; das macht nur Sinn, wenn ich länger frei habe). Du willst das jetzt nicht "in Hex" durchziehen, oder?

    Wenn du mal den Assembler-Ausschnitt hochladen würdest, wo du gerade "rumturnst" und was du geändert haben willst, kann ich mir das mal ansehen. Wusste nicht, dass x32dbg auch ne Symbolsliste hat (hatte wie'n Blinder in den ASM logs gesucht).
    Öhm ich lese diesen Code aus Ghidra aus ^^
    Hier die Grafik
    https://upload.worldofplayers.de/fil...einer_heal.png
    https://upload.worldofplayers.de/fil...eal_Medium.png
    https://upload.worldofplayers.de/fil...l_Enhanced.png
    https://upload.worldofplayers.de/fil...m_Beispiel.png


    Zitat Zitat von Kuchenschlachter Beitrag anzeigen
    ohne jetzt groß nachzudenken oder nachzuschauen:
    sowohl 6a als auch 68 sind push befehle, der unterschied ist wie groß ihr parameter ist
    das problem ist, dass du nicht einfach 6a auf 68 ändern kannst weil du dann alles dahinter weiter schieben müsstest und das geht tatsächlich praktisch nicht.
    Da müsste man jetzt etwas schwerere techniken anwenden: irgendwohin jumpen wo platz ist dort den größeren push durchführen und eventuelle weitere befehle die man mit dem jump überschrieben hat und dann wieder zurück jumpen.
    Hast du einen Tutorial Link? Ich hab keine Ahnung von jumbs ^^
    Würde es auch gehen am Ende Bytes hinzuzufügen?
    Und die soll ich dann verknüpfen = Jumb ? xD
    Stormwind93 ist offline

Seite 2 von 3 « Erste 123 Letzte »

Berechtigungen

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