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
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
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