ItsMods
[Tutorial] Draw Vectors Lines Using Engine - Printable Version

+- ItsMods (https://www.itsmods.com)
+-- Forum: Archive (https://www.itsmods.com/Forum-Archive.html)
+--- Forum: Archive (https://www.itsmods.com/Forum-Archive--64.html)
+--- Thread: [Tutorial] Draw Vectors Lines Using Engine (/Thread-Tutorial-Draw-Vectors-Lines-Using-Engine.html)



Draw Vectors Lines Using Engine - d0h! - 01-31-2011

PHP Code:
void (*Get_Draw_Vector_Line)(const vec3_t start, const vec3_t end, const vec3_t Mins, int noIdea ) = (void (__cdecl *)(const vec3_t , const vec3_t , const vec3_t , int ))0x402A50;

PHP Code:
void (*Set_Draw_Vector_Line)(const vec3_t start, const vec3_t Mins, const vec3_t Maxs, int noIdea, const vec3_t VecTorSize, int Unknow2, int unknow3 ) = (void (__cdecl *)( const vec3_t , const vec3_t , const vec3_t , int , const vec3_t , int , int ))0x6B19F0;

exemplar how to use

PHP Code:
TraceSettings->Mask = get_bullet_penetration_table( 0 )->Mask; vec3_t Start; vec3_t Maxs; Get_Draw_Vector_Line( Start, End, vec3_origin, 0 ); Set_Draw_Vector_Line( Start, vec3_origin, Maxs, 0, vec3_origin, 0, 0 ); Set_Draw_Vector_Line( End, vec3_origin, Maxs, 0, vec3_origin, 0, 0 ); Set_Weapon_CL_Trace(CTrace, Start, vec3_origin, Maxs, End, cent->ClientNum, 0x800000 + 1024, TraceSettings );

but also check the isVisible Code

corrected

PHP Code:
void (*Draw2D_Debug_Line)(const vec3_t start, const vec3_t end, vec4_t Color, bool dontDrawTruhWalls ) = (void (__cdecl *)(const vec3_t , const vec3_t , vec4_t , bool ))0x402A50; void (*Draw3D_Debug_Line)(const vec3_t start, const vec3_t BoxSize, const vec3_t VecTorSize , int noIdea, vec4_t color, bool dontDrawTruhWalls, int PredictEffect ) = (void (__cdecl *)( const vec3_t , const vec3_t , const vec3_t , int , vec4_t , bool , int ))0x6B19F0;

Just made 3D box as well

[Image: blaql.jpg]

asm

Draw2D_Debug_Line

PHP Code:
.text:00402A50 sub_402A50 proc near ; CODE XREF: sub_477DF0+B0p .text:00402A50 ; sub_477DF0:loc_477F38p ... .text:00402A50 .text:00402A50 arg_0 = dword ptr 4 .text:00402A50 arg_4 = dword ptr 8 .text:00402A50 arg_8 = dword ptr 0Ch .text:00402A50 arg_C = dword ptr 10h .text:00402A50 .text:00402A50 mov eax, [esp+arg_C] .text:00402A54 mov ecx, [esp+arg_8] .text:00402A58 mov edx, [esp+arg_4] .text:00402A5C push 0 .text:00402A5E push eax .text:00402A5F mov eax, [esp+8+arg_0] .text:00402A63 push ecx .text:00402A64 push edx .text:00402A65 push eax .text:00402A66 call sub_4D4880 .text:00402A6B add esp, 14h .text:00402A6E retn .text:00402A6E sub_402A50 endp .text:00402A6E

Draw3D_Debug_Line

PHP Code:
.text:006B19F0 .text:006B19F0 ; =============== S U B R O U T I N E ======================================= .text:006B19F0 .text:006B19F0 .text:006B19F0 sub_6B19F0 proc near ; CODE XREF: .text:0040CDF7p .text:006B19F0 ; .text:0049308Fp ... .text:006B19F0 .text:006B19F0 var_74 = dword ptr -74h .text:006B19F0 var_70 = dword ptr -70h .text:006B19F0 var_6C = dword ptr -6Ch .text:006B19F0 var_68 = dword ptr -68h .text:006B19F0 var_64 = dword ptr -64h .text:006B19F0 var_60 = byte ptr -60h .text:006B19F0 var_5C = byte ptr -5Ch .text:006B19F0 arg_0 = dword ptr 4 .text:006B19F0 arg_4 = dword ptr 8 .text:006B19F0 arg_8 = dword ptr 0Ch .text:006B19F0 arg_C = dword ptr 10h .text:006B19F0 arg_10 = dword ptr 14h .text:006B19F0 arg_14 = dword ptr 18h .text:006B19F0 arg_18 = dword ptr 1Ch .text:006B19F0 .text:006B19F0 sub esp, 74h .text:006B19F3 movss xmm0, [esp+74h+arg_C] .text:006B19FC mulss xmm0, ds:dword_A2F1E4 .text:006B1A04 push ebx .text:006B1A05 push ebp .text:006B1A06 push esi .text:006B1A07 lea eax, [esp+80h+var_74] .text:006B1A0B lea ecx, [esp+80h+var_70] .text:006B1A0F push edi .text:006B1A10 mov [esp+84h+var_68], eax .text:006B1A14 mov [esp+84h+var_6C], ecx .text:006B1A18 movss [esp+84h+var_64], xmm0 .text:006B1A1E push eax .text:006B1A1F push ecx .text:006B1A20 fld [esp+8Ch+var_64] .text:006B1A24 fsincos .text:006B1A26 mov ecx, [esp+8Ch+var_68] .text:006B1A2A mov eax, [esp+8Ch+var_6C] .text:006B1A2E fstp dword ptr [ecx] .text:006B1A30 fstp dword ptr [eax] .text:006B1A32 pop ecx .text:006B1A33 pop eax .text:006B1A34 mov eax, [esp+84h+arg_0] .text:006B1A3B movss xmm0, dword ptr [eax+8] .text:006B1A40 movss xmm5, dword ptr [eax] .text:006B1A44 movss xmm6, dword ptr [eax+4] .text:006B1A49 mov esi, [esp+84h+arg_8] .text:006B1A50 mov edi, [esp+84h+arg_4] .text:006B1A57 movss xmm3, [esp+84h+var_74] .text:006B1A5D movss xmm4, [esp+84h+var_70] .text:006B1A63 lea eax, [esp+84h+var_5C] .text:006B1A67 xor ecx, ecx .text:006B1A69 movss [esp+84h+var_64], xmm0 .text:006B1A6F mov edx, eax .text:006B1A71 .text:006B1A71 loc_6B1A71: ; CODE XREF: sub_6B19F0+122j .text:006B1A71 test cl, 1 .text:006B1A74 jz short loc_6B1A7C .text:006B1A76 movss xmm0, dword ptr [esi] .text:006B1A7A jmp short loc_6B1A80 .text:006B1A7C ; --------------------------------------------------------------------------- .text:006B1A7C .text:006B1A7C loc_6B1A7C: ; CODE XREF: sub_6B19F0+84j .text:006B1A7C movss xmm0, dword ptr [edi] .text:006B1A80 .text:006B1A80 loc_6B1A80: ; CODE XREF: sub_6B19F0+8Aj .text:006B1A80 movss dword ptr [edx-4], xmm0 .text:006B1A85 test cl, 2 .text:006B1A88 jz short loc_6B1A91 .text:006B1A8A movss xmm0, dword ptr [esi+4] .text:006B1A8F jmp short loc_6B1A96 .text:006B1A91 ; --------------------------------------------------------------------------- .text:006B1A91 .text:006B1A91 loc_6B1A91: ; CODE XREF: sub_6B19F0+98j .text:006B1A91 movss xmm0, dword ptr [edi+4] .text:006B1A96 .text:006B1A96 loc_6B1A96: ; CODE XREF: sub_6B19F0+9Fj .text:006B1A96 movss dword ptr [edx], xmm0 .text:006B1A9A test cl, 4 .text:006B1A9D jz short loc_6B1AA6 .text:006B1A9F movss xmm0, dword ptr [esi+8] .text:006B1AA4 jmp short loc_6B1AAB .text:006B1AA6 ; --------------------------------------------------------------------------- .text:006B1AA6 .text:006B1AA6 loc_6B1AA6: ; CODE XREF: sub_6B19F0+ADj .text:006B1AA6 movss xmm0, dword ptr [edi+8] .text:006B1AAB .text:006B1AAB loc_6B1AAB: ; CODE XREF: sub_6B19F0+B4j .text:006B1AAB movss dword ptr [edx+4], xmm0 .text:006B1AB0 movss xmm0, dword ptr [eax-4] .text:006B1AB5 movss xmm1, dword ptr [eax] .text:006B1AB9 movaps xmm2, xmm0 .text:006B1ABC mulss xmm0, xmm4 .text:006B1AC0 movaps xmm7, xmm1 .text:006B1AC3 mulss xmm1, xmm3 .text:006B1AC7 addss xmm0, xmm1 .text:006B1ACB movss dword ptr [eax], xmm0 .text:006B1ACF mulss xmm2, xmm3 .text:006B1AD3 mulss xmm7, xmm4 .text:006B1AD7 subss xmm2, xmm7 .text:006B1ADB movss dword ptr [eax-4], xmm2 .text:006B1AE0 movaps xmm0, xmm2 .text:006B1AE3 addss xmm0, xmm5 .text:006B1AE7 movss dword ptr [eax-4], xmm0 .text:006B1AEC movss xmm0, dword ptr [eax] .text:006B1AF0 addss xmm0, xmm6 .text:006B1AF4 movss dword ptr [eax], xmm0 .text:006B1AF8 movss xmm0, dword ptr [eax+4] .text:006B1AFD addss xmm0, [esp+84h+var_64] .text:006B1B03 movss dword ptr [eax+4], xmm0 .text:006B1B08 inc ecx .text:006B1B09 add edx, 0Ch .text:006B1B0C add eax, 0Ch .text:006B1B0F cmp ecx, 8 .text:006B1B12 jb loc_6B1A71 .text:006B1B18 mov edi, [esp+84h+arg_18] .text:006B1B1F mov ebx, [esp+84h+arg_14] .text:006B1B26 mov ebp, [esp+84h+arg_10] .text:006B1B2D xor esi, esi .text:006B1B2F nop .text:006B1B30 .text:006B1B30 loc_6B1B30: ; CODE XREF: sub_6B19F0+16Dj .text:006B1B30 mov eax, ds:dword_AB726C[esi] .text:006B1B36 push edi .text:006B1B37 lea edx, [eax+eax*2] .text:006B1B3A push ebx .text:006B1B3B lea eax, [esp+edx*4+8Ch+var_60] .text:006B1B3F push ebp .text:006B1B40 push eax .text:006B1B41 mov eax, ds:dword_AB7268[esi] .text:006B1B47 lea ecx, [eax+eax*2] .text:006B1B4A lea edx, [esp+ecx*4+94h+var_60] .text:006B1B4E push edx .text:006B1B4F call sub_4D4880 .text:006B1B54 add esi, 8 .text:006B1B57 add esp, 14h .text:006B1B5A cmp esi, 60h .text:006B1B5D jb short loc_6B1B30 .text:006B1B5F pop edi .text:006B1B60 pop esi .text:006B1B61 pop ebp .text:006B1B62 pop ebx .text:006B1B63 add esp, 74h .text:006B1B66 retn .text:006B1B66 sub_6B19F0 endp

edit:

easy reverence to find it in any cod

PHP Code:
bool __cdecl sub_7FCA20() { return (dword_33F0E34 || (dword_33F0E2C = 2048, dword_33F0E4C = 4096, dword_33F0E3C = 4096, sub_711FD0((int)&dword_33F0E34, 0x16000u, (int)"Client Debug Lines"), sub_711FD0((int)&dword_33F0E38, 0x2000u, (int)"Client Debug Lines"), dword_33F0E30 = 0, sub_711FD0((int)&dword_33F0E54, 0x2C000u, (int)"Client Debug Lines"), sub_711FD0((int)&dword_33F0E58, 0x4000u, (int)"Client Debug Lines"), dword_33F0E50 = 0, sub_711FD0((int)&dword_33F0E44, 0x2C000u, (int)"Client Debug Lines"), dword_33F0E40 = 0, dword_33F0E34)) && dword_33F0E38 && dword_33F0E54 && dword_33F0E58 && dword_33F0E44; }

Client Debug Lines calls in the functions above

[Image: shot0156q.jpg]

Credits:
King-OrgY


RE: Draw Vectors Lines Using Engine - Eekhoorn - 01-31-2011

woah goodjob d0h!