1

Тема: Как получить адрес d3d9.drawindexedprimitive.

Привет. Пожалуйста, поймите, что я использую переводчик, чтобы оставить сообщение.

d3d := Direct3DCreate9(D3D_SDK_VERSION := 32) 
VarSetCapacity(D3DPRESENT_PARAMETERS, 48+2*A_PtrSize, 0) 
NumPut(1, D3DPRESENT_PARAMETERS, 0)   ; BackBufferWidth
NumPut(1, D3DPRESENT_PARAMETERS, 4)   ; BackBufferHeight
NumPut(1, D3DPRESENT_PARAMETERS, 24)   ; D3DSWAPEFFECT_DISCARD
NumPut(1, D3DPRESENT_PARAMETERS, 24+2*A_PtrSize)   ; Windowed
IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT := 0, D3DDEVTYPE_HAL := 1, 0, D3DCREATE_HARDWARE_VERTEXPROCESSING := 0x00000040, &D3DPRESENT_PARAMETERS, device)
EndScene := NumGet(NumGet(device+0)+42*A_PtrSize) 

Мне удалось получить адрес EndScene, используя приведенный выше код.
Теперь мне нужен адрес drawindexedprimitive.
Это относится к 82-му индексу, поэтому >> EndScene: = NumGet (NumGet (device + 0) + 42 * A_PtrSize), << где я установил 42 на 82, но он не возвращает правильный адрес. Как мне получить адрес drawindexedprimitive?

2

Re: Как получить адрес d3d9.drawindexedprimitive.

У меня все перехватывает.

drawindexedprimitive_Hook(device, D3DPRIMITIVETYPE, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount)
{
   Critical
   DllCall(pOriginal_drawindexedprimitive, "ptr", device, "uint", D3DPRIMITIVETYPE, "int", BaseVertexIndex, "uint", MinVertexIndex, "uint", NumVertices, "uint", startIndex, "uint", primCount)
   return
}

3 (изменено: nullmdn, 2021-10-21 10:23:27)

Re: Как получить адрес d3d9.drawindexedprimitive.

Malcev пишет:

У меня все перехватывает.

drawindexedprimitive_Hook(device, D3DPRIMITIVETYPE, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount)
{
   Critical
   DllCall(pOriginal_drawindexedprimitive, "ptr", device, "uint", D3DPRIMITIVETYPE, "int", BaseVertexIndex, "uint", MinVertexIndex, "uint", NumVertices, "uint", startIndex, "uint", primCount)
   return
}

Спасибо за ответ. Я заменил функцию возврата вашим ответом. Работает нормально.

Эээ ... так я могу задать более глубокий вопрос? Я пытаюсь сделать san andreas wallhack с помощью minhook. Есть много материалов по cpp, но я не знаю, как делать cpp, поэтому я собираюсь попробовать сделать свой собственный с помощью ahk в целях собственной жадности и обучения.

Теперь вы можете подключить функции "EndScene", "drawindexedprimitive"
Подскажите, пожалуйста, как сделать так, чтобы персонаж видел сквозь стену?

4

Re: Как получить адрес d3d9.drawindexedprimitive.

Не знаю.
Подобным не занимался.