[SNIPPET] DRAW_LINE

:hellno: But that line will be strange when its moving  :eek:key:

Code:
//0AB1: @DRAW_LINE 9 POS 10.0 10.0 _TO_ 200.0 310.0 RGBA 255 0 0 255 THICKNESS 1.0
:DRAW_LINE
0087: 11@ = 2@ // (float)
0087: 12@ = 3@ // (float)
0509: 10@ = distance_between_XY 0@ 1@ and_XY 2@ 3@
10@ -= 37.0 {REMOVE STRANGE OFFSET AT END}
0063: 2@ -= 0@ // (float) 
0063: 3@ -= 1@ // (float) 
0604: get_Z_angle_for_point 2@ 3@  store_to 9@
9@ += 84.0
005B: 0@ += 11@
0@ /= 2.0    {MITTE} // get center pos
005B: 1@ += 12@
1@ /= 2.0
03F0: enable_text_draw 1
074B: draw_texture 666 position 0@ 1@ scale 10@ 8@ angle 9@ color 4@ 5@ 6@ 7@
0AB2: 0
 

Parazitas

God
Joined
Jan 2, 2017
Messages
3,116
Solutions
5
Reaction score
881
Location
Lithuania
I just combine your code and old other code , so now working good.
Without sampfuncs.

PHP:
:DRAW_LINE
//0AB1: call_scm_func @DRAW_LINE 9 POS 7@ 8@ _TO_ 9@ 10@ THICKNESS 2.0 RGBA 255 0 0 255
0509: 9@ = distance_between_XY 0@ 1@ and_XY 2@ 3@
0063: 2@ -= 0@
0063: 3@ -= 1@
0604: get_Z_angle_for_point 2@ 3@ store_to 10@
10@ += 90.0
0017: 2@ /= 2.0
0017: 3@ /= 2.0
005B: 0@ += 2@
005B: 1@ += 3@
03F0: enable_text_draw 1
074B: draw_texture 666 position 0@ 1@ scale 9@ 4@ angle 10@ color_RGBA 5@ 6@ 7@ 8@
0AB2: ret 0

@Opcode.eXe
 
Last edited:

Parazitas

God
Joined
Jan 2, 2017
Messages
3,116
Solutions
5
Reaction score
881
Location
Lithuania
By @ajom
Working without sampfuncs.

PHP:
:DrawLinein3DWorld // 0AB1: @DrawLinein3DWorld 11 _FromXYZ 0@ 1@ 2@ _ToXYZ 3@ 4@ 5@ _Thickness 6@ _Red 7@ _Green 8@ _Blue 9@ _Alpha 10@

0AA5: call 0x70CE30 num_params 6 pop 6 bFarClip 0 bNearClip 0 pMultY 14@v pMultX 13@v pScreen 28@v pCoords 0@v // Convert GlobalXYZ To WindowScreenXY
0AA5: call 0x70CE30 num_params 6 pop 6 bFarClip 0 bNearClip 0 pMultY 18@v pMultX 17@v pScreen 30@v pCoords 3@v // Convert GlobalXYZ To WindowScreenXY
// tilt angle = atan2((y2-y1)/(x1-x2))
0087: 25@ = 30@
0063: 25@ -= 28@
0087: 24@ = 31@
0063: 24@ -= 29@
0604: get_Z_angle_for_point 25@ 24@ store_to 24@
24@ += 90.0

0AB1: @WorldXYZtoGameScreenXY 3 _from3Dcoord_XYZ 0@ 1@ 2@ _toscreencoord_XY 28@ 29@
0AB1: @WorldXYZtoGameScreenXY 3 _from3Dcoord_XYZ 3@ 4@ 5@ _toscreencoord_XY 30@ 31@

// mean vector x
0087: 27@ = 30@
005B: 27@ += 28@
27@ /= 2.0

// mean vector y
0087: 26@ = 31@
005B: 26@ += 29@
26@ /= 2.0

0509: 25@ = distance_between_XY 30@ 31@ and_XY 28@ 29@ // line length

074B: draw_texture 666 position 27@ 26@ scale 25@ 6@ angle 24@ color_RGBA 7@ 8@ 9@ 10@
0AB2: ret 0

:WorldXYZtoGameScreenXY
0AA5: call 0x70CE30 num_params 6 pop 6 bFarClip 0 bNearClip 0 pMultY 6@v pMultX 5@v pScreen 3@v pCoords 0@v // Convert WorldXYZ To WindowScreenXY

0A8D: 11@ = read_memory 0xC17044 size 4 virtual_protect 0 // full screen X
0093: 11@ = integer 11@ to_float
0A8D: 12@ = read_memory 0x859520 size 4 virtual_protect 0 // screen X scale
006B: 11@ *= 12@
0073: 3@ /= 11@

0A8D: 11@ = read_memory 0xC17048 size 4 virtual_protect 0 // full screen Y
0093: 11@ = integer 11@ to_float
0A8D: 12@ = read_memory 0x859524 size 4 virtual_protect 0 // screen Y scale
006B: 11@ *= 12@
0073: 4@ /= 11@

0AB2: ret 2 3@ 4@
 
Last edited:
Top