So, ich hab das vor ewiger zeit mal ausprobiert und bin genau wie jetzt kläglich gescheitert.
In meinem Guild Wars Verzeichnis habe ich diese dlls:
-d3d9.dll, d3dx9_27.dll, gpcomms.dll und die GPHook.dll
Dieses paket von Mikoweb.eu halt.
Dann habe ich noch dieses Script:
Code:
$dll = DllOpen("gpcomms.dll")
Func TextWriteLine($dll, $text, $ObjectNumber = 1, $PosX = 15, $PosY = 15, $SizeX = 600, $SizeY = 300, $TextColor = 0x9CFF00, $TextTrans = 455, $BlackBackground = 0, $FontSize = 18, $TextBold = 1)
If $TextTrans > 255 Then $TextTrans = 255
If $TextTrans < 0 Then $TextTrans = 0
$colorges = $TextColor + $TextTrans * 0x01000000
If $dll = -1 Then
SetError(1)
Return (-1)
EndIf
$return = DllCall($dll, "Int", "GPSL_SetTextLineData", "Int", $ObjectNumber, "ushort", $PosX, "ushort", $PosY, "Str", $text, "Int", $colorges, "Int", $BlackBackground, "Int", $FontSize, "Int", $TextBold, "Int", 1)
If @error > 0 Or $return = 0 Then
SetError(1)
Return (-1)
EndIf
$return = DllCall($dll, "Int", "GPSL_ShowText", "Int", $ObjectNumber, "Int", 1)
If @error > 0 Or $return = 0 Then
SetError(1)
Return (-1)
EndIf
EndFunc ;==>TextWriteLine
Func NewPicture($PathToFile, $ShowIt, $PosX, $PosY)
$return = DllCall($dll, "Int", "GPPIC_LoadNewPicture", "Str", $PathToFile)
If @error > 0 Or $return = 0 Then
SetError(1)
Return (-1)
EndIf
$return = DllCall($dll, "Int", "GPPIC_ShowPicturePos", "Str", $ShowIt, "ushort", $PosX, "ushort", $PosY)
If @error > 0 Or $return = 0 Then
SetError(1)
Return (-1)
EndIf
EndFunc ;==>NewPicture
TextWriteLine($dll, "Test")
So, ich starte Guildwars und führe dann das Script aus. Nichts passiert.:p
Ich denke ich muss die gpcomms.dll noch manuell injizieren oder? Mit was mache ich das denn am besten, oder liegt der Fehler wo anders?