CLEO Help Perform action on TXD

CLEO related
Status
Not open for further replies.

KamikazeSripterul

Well-known member
Joined
Jun 30, 2019
Messages
353
Reaction score
23
If you have a txd that you must press on, what is an opcode or a snippet to do this?
 

SpnKO

Member
Joined
Mar 17, 2014
Messages
17
Reaction score
3
You must first find the textdraw, you can do it with two methods:

1) Set up a 'for' loop between 1 to 2304 and scan the model by whatever you know about it

Code:
 for 1@ = 0 to 2304
if 0C5D: samp textdraw 1@ is_exists
then
0C59: samp textdraw 0@ get_model 1@ rotation 2@ 3@ 4@ zoom 5@ veh_color 6@ 7@ // (example)
then add an if to check if matches any of the criteria you're looking for, and if yes then do whatever you want with it.

another way is to overtake the incoming RPC using this code:

Code:
0BE3: raknet setup_incoming_rpc_hook @textdraw

:textdraw
0BE5: raknet 10@ = get_hook_param PARAM_PACKETID
if
10@ == RPC_SCRSHOWTEXTDRAW
then
0BE5: raknet 11@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 14@ = bit_stream_read 11@ type BS_TYPE_SHORT // UINT16 wTextDrawID
0BE7: raknet 15@ = bit_stream_read 11@ type BS_TYPE_BYTE // UINT8 Flags
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fLetterWidth
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fLetterHeight
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_INT // UINT32 dwLetterColor
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fLineWidth
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fLineHeight
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_INT // UINT32 dwBoxColor
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_BYTE // UINT8 Shadow
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_BYTE // UINT8 Outline
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_INT // UINT32 dwBackgroundColor
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_BYTE // UINT8 Style
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_BYTE // UINT8 Selectable
0BE7: raknet 20@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fX
0BE7: raknet 21@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fY
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_SHORT // UINT16 wModelID
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fRotX
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fRotY
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fRotZ
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_FLOAT // float fZoom
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_SHORT // UINT16 wColor1
0BE7: raknet 0@ = bit_stream_read 11@ type BS_TYPE_SHORT // UINT16 wColor2
0BE7: raknet 12@ = bit_stream_read 11@ type BS_TYPE_SHORT // WORD szTextLen
0AC8: 13@ = allocate_memory_size 256
0BE8: raknet bit_stream 11@ read_array 13@ size 12@
0C1E: array 13@ element 12@ el_size 1 = 0

change 0@ to whatever you want to use and make if checks to see if it matches what you want

good luck.
 
Status
Not open for further replies.
Top