CLEO Help Draw text on 0.3.7-R4

CLEO related

habinabi

Active member
Joined
Nov 10, 2019
Messages
51
Reaction score
2
Location
Czech Republic
Hi, I'm having trouble displaying draw text on 0.3.7-R4 when I turn on gta right off, on 0.3.7-R1 it was functioning normally, probably an error in offsets. Please help

PHP:
03F0: enable_text_draw 1
033F: set_text_draw_letter_size 0.2 1.0
081C: draw_text_outline 1 RGBA 0 0 0 255
060D: draw_text_shadow 1 rgba 0 0 0 200
0340: set_text_draw_RGBA 206 0 206 255
0349: set_text_draw_font 3
0AA8: call_function_method 6946896 struct 12694336 num_params 1 pop 0 'MTIME3' 19@
0AA5: call 7439872 num_params 2 pop 2 19@ "Show:_ON"
033E: set_draw_text_position 300.0 5.0 GXT 'MTIME3'  // ~s~Come back between 9:00 and 17:00.
 

Parazitas

God
Staff member
Joined
Jan 2, 2017
Messages
3,315
Solutions
7
Reaction score
937
Location
Lithuania
If this doesn't work for you..., try use samp textdraws...

0.3.7 R4 - v1
0.3.7 R4 - v2
 

Parazitas

God
Staff member
Joined
Jan 2, 2017
Messages
3,315
Solutions
7
Reaction score
937
Location
Lithuania
Hi, I'm having trouble displaying draw text on 0.3.7-R4 when I turn on gta right off, on 0.3.7-R1 it was functioning normally, probably an error in offsets. Please help

PHP:
03F0: enable_text_draw 1
033F: set_text_draw_letter_size 0.2 1.0
081C: draw_text_outline 1 RGBA 0 0 0 255
060D: draw_text_shadow 1 rgba 0 0 0 200
0340: set_text_draw_RGBA 206 0 206 255
0349: set_text_draw_font 3
0AA8: call_function_method 6946896 struct 12694336 num_params 1 pop 0 'MTIME3' 19@
0AA5: call 7439872 num_params 2 pop 2 19@ "Show:_ON"
033E: set_draw_text_position 300.0 5.0 GXT 'MTIME3'  // ~s~Come back between 9:00 and 17:00.
According your source.., please see below example:
PHP:
{$CLEO .cs}

0000:

REPEAT
IF 8AA2: $NOT_USED = "samp.dll"
THEN 0A93: end_custom_thread
END
WAIT 1500
UNTIL 0AA2: $NOT_USED = "samp.dll"

WHILE TRUE
WAIT 0

IF 0256:   player $PLAYER_CHAR defined
THEN
    0AC8: 0@ = allocate_memory_size 1024
    0AD3: 0@ = format "Show:_ON" 
    0AB1: @CreateTextdraw 4 ID 1000 Text 0@ XY 300.0 5.0
    0AB1: @SetTextdrawLetter 4 ID 1000 Size 0.2 1.0 color 0xFFCE00CE
    0AB1: @SetTextdrawOutline 3 ID 1000 Outline 1 Color 0xFF000000
    0AB1: @SetTextdrawShadow 3 ID 1000 Shadow 1 Color 0xC8000000
    0AB1: @SetTextdrawStyle 2 ID 1000 Style 3
END

END

:CreateTextdraw
{
    0.3.7 R4 - v2
    0AC8: 0@ = allocate_memory_size 1024
    0AD3: 0@ = format "Textdraw.." 
    0AB1: @CreateTextdraw 4 ID 1000 Text 0@ XY 300.0 5.0
}
IF 0AA2: 31@ = "samp.dll"
THEN
    0AC8: 30@ = allocate_memory_size 66
    0A8C: write_memory 30@ size 2 value 18 virtual_protect 1
    30@ += 0x1
    0A8C: write_memory 30@ size 4 value 0.25 virtual_protect 1 // fLetterWidth
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 1.0 virtual_protect 1 // fLetterHeight
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 0xFFFFFFFF virtual_protect 1 // letterColor
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 0.0 virtual_protect 1 // fBoxWidth
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 0.0 virtual_protect 1 // fBoxHeight
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 0xFF000000 virtual_protect 1 // boxColor
    30@ += 0x4
    0A8C: write_memory 30@ size 1 value 0 virtual_protect 1 // nShadow
    30@ += 0x1
    0A8C: write_memory 30@ size 1 value 0 virtual_protect 1 // bOutline
    30@ += 0x1
    0A8C: write_memory 30@ size 4 value 0xFF000000 virtual_protect 1 // m_backgroundColor
    30@ += 0x4
    0A8C: write_memory 30@ size 1 value 1 virtual_protect 1 // m_nStyle
    30@ += 0x1
    0A8C: write_memory 30@ size 1 value 0 virtual_protect 1 // unknown
    30@ += 0x1
    0A8C: write_memory 30@ size 4 value 2@ virtual_protect 1 // m_fX
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 3@ virtual_protect 1 // m_fY
    30@ += 0x4
    0A8C: write_memory 30@ size 2 value 0 virtual_protect 1 // m_nModel
    30@ += 0x2
    0A8C: write_memory 30@ size 4 value 0.0 virtual_protect 1 // m_rotationX
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 0.0 virtual_protect 1 // m_rotationY
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 0.0 virtual_protect 1 // m_rotationZ
    30@ += 0x4
    0A8C: write_memory 30@ size 4 value 0.0 virtual_protect 1 // m_fZoom
    30@ += 0x4
    0A8C: write_memory 30@ size 2 value 0xFF virtual_protect 1 // m_aColor[0]
    30@ += 0x2
    0A8C: write_memory 30@ size 2 value 0xFF virtual_protect 1 // m_aColor[1]
    30@ -= 61 // go back to the original pointer.

    0A8E: 29@ = 31@ + 0x26EA0C // SAMP_INFO_OFFSET
    0A8D: 29@ readMem 29@ sz 4 vp 0
    29@ += 0x3DE // SAMP_PPOOLS_OFFSET
    0A8D: 29@ readMem 29@ sz 4 vp 0
    29@ += 0x1C // SAMP_PPOOL_TEXTDRAW_OFFSET
    0A8D: 29@ readMem 29@ sz 4 vp 0

    0A8E: 28@ = 31@ + 0x1E910 //SAMP_CREATE_TEXTDRAW_OFFSET
    0AA6: call_method 28@ struct 29@ num_params 3 pop 0 Text 1@ pTransmit 30@ ID 0@  _retVal 6@
END
0AB2: 0

:SetTextdrawLetter
{
    0.3.7 R4 - v2
    0AB1: @SetTextdrawLetter 4 ID 1000 Size 0.25 1.0 color 0xFF00FF00
}
IF 0AA2: 31@ = "samp.dll"
THEN
    31@ += 0x26EA0C // SAMP_INFO_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x3DE // SAMP_PPOOLS_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x1C // SAMP_PPOOL_TEXTDRAW_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    0@ *= 0x4 // TEXTDRAW_ID * 4
    005A: 31@ += 0@
    0A8D: 30@ readMem 31@ sz 4 vp 0
    IF 30@ == TRUE
    THEN
        31@ += 0x2400  // SAMP_TEXTDRAW_STRUCT_OFFSET
        0A8D: 31@ readMem 31@ sz 4 vp 0
        IF 31@ > 0
        THEN
            0A8E: 29@ = 31@ + 0x963 // SAMP_TEXTDRAW_LETTER_WIDTH_OFFSET
            0A8C: writeMem 29@ sz 4 vl 1@ vp 0
            0A8E: 28@ = 31@ + 0x967 // SAMP_TEXTDRAW_LETTER_HEIGHT_OFFSET
            0A8C: writeMem 28@ sz 4 vl 2@ vp 0
            0A8E: 27@ = 31@ + 0x96B // SAMP_TEXTDRAW_LETTER_COLOR_OFFSET
            0A8C: writeMem 27@ sz 4 vl 3@ vp 0
        END
    END
END
0AB2: 0

:SetTextdrawOutline
{
    0.3.7 R4 - v2
    0AB1: @SetTextdrawOutline 3 ID 1000 Outline 2 Color 0xFF00FF00
}
IF 0AA2: 31@ = "samp.dll"
THEN
    31@ += 0x26EA0C // SAMP_INFO_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x3DE // SAMP_PPOOLS_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x1C // SAMP_PPOOL_TEXTDRAW_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    0@ *= 0x4 // TEXTDRAW_ID * 4
    005A: 31@ += 0@
    0A8D: 30@ readMem 31@ sz 4 vp 0
    IF 30@ == TRUE
    THEN
        31@ += 0x2400  // SAMP_TEXTDRAW_STRUCT_OFFSET
        0A8D: 31@ readMem 31@ sz 4 vp 0
        IF 31@ > 0
        THEN
            0A8E: 29@ = 31@ + 0x984 // SAMP_TEXTDRAW_OUTLINE_OFFSET
            0A8C: writeMem 29@ sz 1 vl 1@ vp 0
            0A8E: 28@ = 31@ + 0x97F // SAMP_TEXTDRAW_OUTLINE_COLOR_OFFSET
            0A8C: writeMem 28@ sz 4 vl 2@ vp 0
        END
    END
END
0AB2: 0

:SetTextdrawShadow
{
    0.3.7 R4 - v2
    0AB1: @SetTextdrawShadow 3 ID 1000 Shadow 1 Color 0xFF00FF00
}
IF 0AA2: 31@ = "samp.dll"
THEN
    31@ += 0x26EA0C // SAMP_INFO_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x3DE // SAMP_PPOOLS_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x1C // SAMP_PPOOL_TEXTDRAW_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    0@ *= 0x4 // TEXTDRAW_ID * 4
    005A: 31@ += 0@
    0A8D: 30@ readMem 31@ sz 4 vp 0
    IF 30@ == TRUE
    THEN
        31@ += 0x2400  // SAMP_TEXTDRAW_STRUCT_OFFSET
        0A8D: 31@ readMem 31@ sz 4 vp 0
        IF 31@ > 0
        THEN
            0A8E: 29@ = 31@ + 0x983 // SAMP_TEXTDRAW_SHADOW_OFFSET
            0A8C: writeMem 29@ sz 1 vl 1@ vp 0
            0A8E: 28@ = 31@ + 0x97F // SAMP_TEXTDRAW_SHADOW_COLOR_OFFSET
            0A8C: writeMem 28@ sz 4 vl 2@ vp 0
        END
    END
END
0AB2: 0

:SetTextdrawStyle
{
    0.3.7 R4 - v2
    0AB1: @SetTextdrawStyle 2 ID 1000 Style 1
    Styles:
    1---4 - txd fonts (client)
    5 - model
    Other types may crash or not display.
}
IF 0AA2: 31@ = "samp.dll"
THEN
    31@ += 0x26EA0C // SAMP_INFO_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x3DE // SAMP_PPOOLS_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x1C // SAMP_PPOOL_TEXTDRAW_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    0@ *= 0x4 // TEXTDRAW_ID * 4
    005A: 31@ += 0@
    0A8D: 30@ readMem 31@ sz 4 vp 0
    IF 30@ == TRUE
    THEN
        31@ += 0x2400  // SAMP_TEXTDRAW_STRUCT_OFFSET
        0A8D: 31@ readMem 31@ sz 4 vp 0
        IF 31@ > 0
        THEN
            0A8E: 29@ = 31@ + 0x987 // SAMP_TEXTDRAW_STYLE_OFFSET
            0A8C: writeMem 29@ sz 1 vl 1@ vp 0
        END
    END
END
0AB2: 0
 
Top