{$CLEO}
0000:
thread 'astap'
{default text pos}
2@ = 500
3@ = 500
while not SAMP.Available()
wait 0
end
0b34: 'cmd' @cmd
0@ = Render.CreateFont("Comic Sans MS", 11, 4)
0B6B: render 6@ = font 0@ draw_text "some text" length {длина текста}
0B6C: render 7@ = font 0@ draw_height {высота текста}
while true
wait 0
0a8e: 8@ = 2@ + 6@ {левый верхний угол текста}
0a8e: 9@ = 3@ + 7@ {правый нижний угол текста}
Render.DrawText(0@, "some text", 2@, 3@, 0xFFFF00FF)
if 1@ == true // 1@ - moving
then
0B5D: samp toggle_cursor 1@
if call @isCursorHere 6 2@ 3@ | 8@ 9@ | 6@ 7@ {если навелись курсором на нарисованный текст}
then
if key_down 0x01 {и если кликнули по нему левой кнопкой мыши}
then
while key_down 0x01 {пока зажата левая кнопка мыши - ничего не делаем}
wait 0
end
while not key_down 0x01 {пока левая кнопка не будет нажата снова - передвигаем текст}
wait 0
0B5E: get_cursor_pos 12@ 13@
0085: 2@ = 12@
0085: 3@ = 13@
Render.DrawText(0@, "some text", 2@, 3@, 0xFFFF00FF) {чтобы не говнокодить, можно вынести рендер в отдельный поток}
end
while key_down 0x01 {костылим ещё разок, чтобы не было проблем}
wait 0
end
end
end
end
end
:cmd
0B12: 1@ = 1@ XOR 1
chatmsg "toggled" -1
cmdret
:isCursorHere
0B5E: get_cursor_pos 6@ 7@
0085: 8@ = 6@
0085: 9@ = 7@
0062: 8@ -= 0@
0062: 9@ -= 1@
if and
001D: 6@ > 0@
001D: 7@ > 1@
then
005A: 0@ += 2@
005A: 1@ += 3@
if and
001D: 0@ > 6@
001D: 1@ > 7@
801D: 8@ < 4@
801D: 9@ < 5@
then
0485: return_true
else
059A: return_false
end
0062: 0@ -= 2@
0062: 1@ -= 3@
else
059A: return_false
end
0AB2: ret 0