ПолезностиИсключительно для полезных тем из других разделов. Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.
procedure MoveTo(x,y,z,x1,y1,z1:single); stdcall;
asm
push z1
push y1
push x1
push z
push y
push x
mov ecx, nh
call UNetworkHandler_MoveBackwardToLocation
end;
все работает, только пакет на движение отправляется без последнего Dworda который указывает с клавы был сделан ввод или с мыши, на оффе это вроде прокатывает а на фришках банят.
Привожу код оригинальной ф-и с Иды, если чем-то поможет, я в ассемблере как в английском - половину понимаю, но сказать не могу
@UNetworkHandler_MoveBackwardToLocation:= GetProcAddress(hModule,'?MTL@UNetworkHandler@@UAEXPAVAActor@@VFVector@@10HHH@Z');
procedure MoveTo(x,y,z,x1,y1,z1: single); stdcall;
var ms: integer;
begin
ms:=0;
asm
push ms
push ms
push ms
push ms
push z1
push y1
push x1
push z
push y
push x
push ms
mov ecx, nh
call UNetworkHandler_MoveBackwardToLocation
end;
end;
если не сложно подскажи какие ф-и л2 использует для взятия в таргет, юза скила и атаки?
Добавлено через 14 минут
public: virtual void __thiscall UNetworkHandler::RequestMagicSkillUse(class L2ParamStack &)
public: virtual void __thiscall UNetworkHandler::RequestActionUse(class L2ParamStack &)
; int __stdcall UNetworkHandler__RequestAttack(int, float, float, float) что-то из этого? если да где взять - L2ParamStack &?
Последний раз редактировалось vahes, 10.10.2011 в 19:36.
Причина: Добавлено сообщение
Создавать и использовать через эти функции:
AdrL2StackCreate:=adrProc('core.dll','??0L2ParamSt ack@@QAE@H@Z');
AdrL2StackClear :=adrProc('core.dll','?Clear@L2ParamStack@@QAEXXZ' );
AdrL2StackPushBack:=adrProc('core.dll','?PushBack@ L2ParamStack@@QAEHPA_W@Z');
AdrL2StackTop :=adrProc('core.dll','?Top@L2ParamStack@@QAE_JXZ') ; //
AdrL2StackFree :=adrProc('core.dll','??1L2ParamStack@@QAE@XZ');
@UNetworkHandler_MoveBackwardToLocation:= GetProcAddress(hModule,'?MTL@UNetworkHandler@@UAEXPAVAActor@@VFVector@@10HHH@Z');
procedure MoveTo(x,y,z,x1,y1,z1: single); stdcall;
var ms: integer;
begin
ms:=0;
asm
push ms
push ms
push ms
push ms
push z1
push y1
push x1
push z
push y
push x
push ms
mov ecx, nh
call UNetworkHandler_MoveBackwardToLocation
end;
end;