感謝mood回答.先發3個CALL給你們參考看看.3/18正式版通過.(DELPHI7.0)
因為工作時間繁忙.有研究CALL的可以補充其他CALL
function KeysCall(p: PGetKeysCallParam):DWORD; Stdcall; //快捷鍵 CALL
var
KeyNum:cardinal;
address:Pointer;
begin
address:=Pointer($6A0CF0);
KeyNum := p^.EDX;
asm
pushad
mov ecx,dword ptr ds:[$8C02A4]
mov ecx,dword ptr ds:[ecx+$170]
push 1
mov esi, KeyNum
push esi
call address
popad
end;
result:=0;
end;
procedure TForm1.Button2Click(Sender: TObject);
var CallParam:TGetKeysCallParam;
begin
callparam.EDX := 0; //F1-F12(0-B) 1-0(C-15)
funin(@KeysCall,@CallParam,SizeOf(CallParam));
end;
//------------------------------------------------------------------------
procedure GBuyCALL; //精靈幣買藥CALL
var address1,address2:pointer;
begin
address1:=pointer($69B680);
address2:=pointer($65F710);
asm
pushad
mov eax, dword ptr [$8C02A4]
mov esi, dword ptr [eax+$178]
push 0 //商店物品格子數
push 0
mov ecx, esi
call address1
push 3
mov ecx, dword ptr [$8C02A0]
push $20
add eax, $0E4
push eax
push 2
call address2
popad
end;
end;
procedure NBuyCALL; //金幣買藥CALL
var address1,address2:pointer;
begin
address1:=pointer($69B680);
address2:=pointer($65F710);
asm
pushad
mov eax, dword ptr [$8C02A4]
mov esi, dword ptr [eax+$178]
push 0 //商店物品格子數
push 0
mov ecx, esi
call address1
push 0
mov ecx, dword ptr [$8C02A0]
push $21
add eax, $0E4
push eax
push 2
call address2
popad
end;
end;
//---------------------------------------------------------------------------
procedure SellItemCALL; //賣物品CALL
var address1,address2:pointer;
begin
address1:=pointer($585A60);
asm
pushad
push 0 //背包格子位置
push 1
call address1
popad
end;
end;
[ 本帖最後由 hyta0422 於 2009-3-21 16:18 編輯 ] |