• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

Gidbinn Quest-Belohnung Asheara

Sanguinus

Member
Registriert
19 April 2009
Beiträge
297
Punkte Reaktionen
0
Hallo Leute,

gibt es eine Möglichkeit die Belohnung von Asheara zu verändern (Iron Wolves bieten sich umsonst als Söldner an)?

Ich würde es gerne in eine "+1 Skill Punkt-Belohnung" ändern, wie die Belohnung von Akara bei Akt 1 Quest 1.

MfG
 
Ist hardcodded, solltest allerdings für alle Versionen im Offset Thread finden. Musst nur den entsprechenden für deine Version suchen, ansonsten im PK schauen.

MfG
AlphA
 
das ist aber nur die belohnung von ormus (ring)

Ich glaube nicht das sich die Belohnung von Ashera so leicht ändern lässt..
 
Bekommt man da einen Iron Wolf, oder wird da nur das Anheuern frei geschaltet.
Sollte letzteres der Fall sein, dann kannst du zwar machen, dass das Anheuern immer geht, aber sonst nichts.
 
man bekommt nach dem abschließen der Quest einen Eisenwolf von Ashera geschenkt, wenn man noch keinen Söldner besitzt.
 
Dann müsste man nur in der D2Game nach der Addresse suchen, wo das geschieht, dann das so umschreiben, dass man einen Skillpunkt erhält.
 
Da man ja eigentlich immer einen Söldner zu diesem Zeitpunkt mit sich führt, finde ich die Belohnung ziemlich sinnlos - zumal sich ja der Preis in der Anheuern-Tabelle nicht ändert, man also auch nicht einfach später einen Iron Wolf umsonst anheuern kann.

Leider habe ich keine Ahnung davon wie ich in der d2game.dll ohne bekannten Offset nach der Adresse suchen kann und wie ich diese dann umschreiben soll. Ich habe auch bei PK keine(n) entsprechenden Offset(s) für 1.12 gefunden.

MfG
 
:hy:

Ich habe mich mal ein wenig damit beschäftigt, Infos gab es dazu ja wie du sagst leider nur wenige (bis gar keine...)
Ich habe mich einfach an den im PK für 1.10-1.13 bekannten Funktionen orientiert, damit ging es halbwegs gut auch wenn es sehr aufwendig war.

Der jetzige Stand ist, dass man, wenn man mit Ashara nach der Abgabe des Gidbins spricht, einen Skillpunkt kriegt - allerdings auch noch bei Kashya nach der Erlösung von Blutrabe.
Die beiden Quests nutzen einen hübschen Teil Code gemeinsam, da müsste man noch ein paar Abfragen einbauen...
(Wen auch immer man zuerst anspricht, diejenige gibt einem derzeit auch noch einen Söldner, aber das muss mit der anderen Unterscheidung zusammen noch gefixt werden...)

Dummerweise ist das jetzt alles in 1.13c, ich wusste nicht dass du es für 1.12a suchst ^^'
Möchtest du es trotzdem schonmal sehen, vlt hilft es dir ja weiter?
Dann müsste ich meine wunschschönen und übersichtlichen Notizen in eine forentaugliche Form bringen.



Ein paar weiterführende Fragen, vlt kann das ja jemand leicht beantworten :)

Was für die Unterscheidungen nützlich wäre:
Wie kommt man am besten an den aktuellen Akt dran, in dem sich der Charakter befindet?
Geht das nur über die hier verlinkten Funktionen?
Diese:
1.10f
Code:
[color=#C80000]D2Common.10342[/color]
Function:   Get hRoom from ptUnit
Offset:     0007E270 (6FDBE270) in v1.10 final
Parameters: Arg1 - ptUnit
Returns:    EAX = hRoom

Code:
[color=#C80000]D2Common.10057[/color]
Function:   Get game level from hRoom
Offset:     0004C7A0 (6FD8C7A0) in v1.10 final
Parameters: Arg1 - hRoom
Returns:    EAX = game level

Code:
[color=#C80000]D2Common.10001[/color]
Function:   Get act number from game level
Offset:     00035300 (6FD75300) in v1.10 final
Parameters: Arg1 - game level
Returns:    EAX = act number

Falls man diesen Weg gehen muss, wie kommt man an die benötigte ptUnit um den hRoom zu kriegen?

:hy:
 
Wäre es dann nicht für Nightmare und Hell interessant, wenn man bei Blutrabe auch nen Skillpoint kriegt.
Gleiches gilt auch für Normal, wenn man sich schon nen Söldner geholt hat. Natürlich kann man das auch ausnutzen, aber dazu muss man vor Blutrabe schon lvl 9 sein ... und das passiert bisher eher selten:D Also müsste man für den Skillpoint schon ein wenig mehr Arbeit investieren.
 
ptUnit+0x18=actNo.
Hier und hier findest du Infos zu den ganzen Structs. Unterschiede gibts zwischen 1.10f und 1.11b so gut wie keine.

Die Art, wie du zur ptUnit kommst, unterscheidet sich zwischen Server und Client erheblich:
Client:
D2ClientBase+0x11C200 [dword] clientside ptPlayer
Server:
So gut wie unmöglich, da durch die Funktion, die dir den ptPlayer gibt, an die richtige zu kommen. Aber meistens findest du den ptPlayer, um den es gerade geht, auf dem Stack.
 
:hy:

Danke für die Info :)
"Client:
D2ClientBase+0x11C200 [dword] clientside ptPlayer"
Für welche Version ist das da?

Und verstehe ich das richtig?
Zur Laufzeit wird beispielsweise in D2ClientBasisAdresse + 0x11C200 + 0x18 immer der aktuelle Akt des Spielers gespeichert?

(Ach ja und was ist der Unterschied zu +1C ptAct?^^)

Bald geht Cobra Elf los, danach schaue ich mal ob ich mit den Units zurecht komme :D

:hy:

P.S. @NickNackMan :hy: :)
 
v1.10f.
Zur Laufzeit wird beispielsweise in D2ClientBasisAdresse + 0x11C200 + 0x18 immer der aktuelle Akt des Spielers gespeichert?
Nö^^ Die holst dir erst die Addresse (also den ptPlayer) aus D2ClientBase+0x11C200, und dann ptPlayer+0x18=actNo [byte]
(Ach ja und was ist der Unterschied zu +1C ptAct?^^)
Afaik ist ptAct ein Liste mit sämtlichen hRooms, die es in dem Act gibt.
 
:hy:

Aaah, sehr schön, läuft!

Vielen Dank :top: :)
Damit sollte sich doch etwas anfangen lassen, jetzt muss man's nur noch für neuere Versionen finden. :ugly:

:hy:
 
Ja ich spiele 1.12(a).
Wenn es einfache Offset-Änderungen gibt, probiere ich diese gerne bei mir aus!
Das man dann auch bei Kashya einen Skill Point erhält würde mich nicht stören, da ich in meinem Mod zusätzliche Synergien eingebaut habe die auch finanziert werden wollen :)

MfG
 
:hy:

Also hier mal die für die Quest interessanten Stellen für 1.12a:
D2Game.dll
Code:
000BBF08   E8 839AFCFF      CALL 00085990	; 
Aufruf "Söldnervergabe als Questbelohnung" - Kram
000BBF0D   6A 08            PUSH 8		; Rücksprungpunkt

Code:
000859E3   0F85 A0010000    JNZ 00085B89	; 
Falls schon ein Söldner vorhanden ist, wird der Sprung genommen, 
andernfalls folgt die Vergaberoutine für einen Söldner als Questbelohnung

Code:
00085B9D   83C4 18          ADD ESP,18
00085BA0   C2 0C00          RETN 0C		; 
Rücksprung nach Abhandlung der Söldervergabe

Jetzt bleibt die Frage, was genau du haben möchtest.
Hier die leichteste Lösung:
Nach jedem Questabschluss (Blutrabe/Gidbin) gibt's einen Skillpunkt und ggf, falls noch nicht vorhanden, einen Söldner.

Code:
00085B9D   83C4 18          ADD ESP,18		; hier springen wir einfach in irgendeinen
00085BA0   C2 0C00          RETN 0C		; nicht benutzen Codebereich in der Game.dll
->
00085B9D   E9 3E240700      JMP 000F7FE0	; bei mir einfach mal zum Testen 000F7FE0	
00085BA2   90               NOP			;

An der gewählten Stelle wird dann eingetragen:
Code:
000F7FE0   50               PUSH EAX
000F7FE1   8B45 0C          MOV EAX,DWORD PTR SS:[EBP+C]
000F7FE4   6A 00            PUSH 0
000F7FE6   6A 01            PUSH 1
000F7FE8   6A 05            PUSH 5
000F7FEA   50               PUSH EAX
000F7FEB   E8 C825F1FF      CALL 0000A5B8
000F7FF0   58               POP EAX
000F7FF1   83C4 18          ADD ESP,18
000F7FF4   C2 0C00          RETN 0C
000F7FF7   90               NOP

Dieses Fragment ist an den Code von Akara angelehnt, der benutzt wird, um ihren +1 Skillpunkt umzusetzen.
So läuft's bei mir, wenn du es testest, dann sag mal bitte Bescheid ob das bei dir auch so ist, nicht dass ich hier
irgendwas wichtiges vergesse :ugly:
In Alptraum und Hölle habe ich den Gidbin nicht getestet, aber Kashya "funktioniert" wie erwartet.

So sieht's dann im Spiel aus:
"Was will die komische Frau von mir?"

"Die will ja gar nichts, die gibt was!"

"...nämlich eine Söldnerin und einen Skillpunkt! Und was will sie jetzt auf einmal, hat man denn hier nie seine Ruhe!?"

"Sie gibt auch was! Noch ein Skillpunkt, da lacht das Herz :)"

(Auch wenn dieser Testchar wohl, wie man sieht, nichts damit anfangen kann :D
TestChars müssen schnell laufen können, sonst nervt's!)

Und das war's dann.
Das wäre eine Variante damit umzugehen, falls du es anders machen möchtest, hast du jetzt zumindest den Ansatz :)

Wenn Fragen bleiben, dann immer her damit ;)


:hy:
 
@Wissle
Deine Änderungsvorschläge haben auch bei mir funktioniert!
(getestet bei Kashya)
Nur der gewohnte Klang wird nicht abgespielt...?

MfG
 
Dazu musst du eine weiter Funktion anhängen. Wie diese Aussieht, kannst du bei Akaras Questcode schauen.
 
@Dav92
Ich habe keine Ahnung davon wie man das macht.
CE beschränkt sich bei mir bisher auf das Auffinden von bekannten Offsets und das Ändern der Hex-Werte.

MfG
 
:hy:

Meinst du den Sound der z.B. bei einem Levelup anzeigt, dass man neue Punkte erhalten hat?
Soweit ich weiß, kommt der bei Akara gar nicht vor, da müsste man bei Tyrael oder dem Skillbuch von Radament schauen (oder halt beim Levelup).

:hy:
 
@Wissle
Stimmt. Es fiel mir auch gerade auf, dass der bei Akara auch nicht abgespielt wird.
Wie macht man es nun denn, dass dieser "Level-up-Sound / +Skill-Point-Sound" bei Akara und den beiden Söldnerinnen bei der Quest-Belohnung abgespielt wird?

MfG
 
Zurück
Oben