Вопросы по CLEO-скриптингу

Xample

Новичок
89
1
подскажите как упростить?
Код:
:testonoff2            
wait 0
if
key_down 13
jf @testonoff2
wait 1000

0209: 1@ = random_int 0 4

:00
wait 0
if
1@ == 0
jf @11
0ACC: show_text_lowpriority "0" time 500
jump @testonoff2

:11
wait 0
if
1@ == 1
jf @22
0ACC: show_text_lowpriority "1" time 500
jump @testonoff2

:22
wait 0
if
1@ == 2
jf @33
0ACC: show_text_lowpriority "2" time 500
jump @testonoff2

:33
wait 0
if
1@ == 3
jf @00
0ACC: show_text_lowpriority "3" time 500
jump @testonoff2
 

kennex

Известный
69
25
подскажите как упростить?
CLEO:
if key_down 13
then
0209: 1@ = random_int 0 4
if
1@ == 0
then
0ACC: show_text_lowpriority "0" time 500
end
if
1@ == 1
then
0ACC: show_text_lowpriority "1" time 500
end
if
1@ == 2
then
0ACC: show_text_lowpriority "2" time 500
end
if
1@ == 3
then
0ACC: show_text_lowpriority "3" time 500
end
end
Или
CLEO:
if key_down 13
then
0209: 1@ = random_int 0 4
printf "%d" 1337 1@
end
 
Последнее редактирование:

Gabriel__

Известный
Проверенный
411
182
Как получить координаты красного круга ? (Если что хочу сделать бота)
 

Gabriel__

Известный
Проверенный
411
182
Можно подробнее описать, зачем этот опкод - 0AF7: samp 0@ = get_base
И как можно вычеслить нужный адрес памяти? Где взять готовые?
Этот опкод получает главный указатель на структуры сампа. Этот адрес врегда разный. ОС сама подбирает наиболее подходящий во избежание фрагментации ОЗУ. Если ты запустил сингл опкод выдаст число 0. Для чтения/записи в память сампа используют опкоды 0B2E 0B2D они сами вычисляют указатель прибавляют offset и записывают в память.
 

Gabriel__

Известный
Проверенный
411
182
Использовал такой код, вылезает куча варнингов.
Код:
{$CLEO}
0000:

:1
wait 0
if
0ADC:   test_cheat "m"
jf @1
print "1" 1000
for 13@ = 0 to 31
    if
    0AB1: @GetMarkerPosition 1 13@ 14@ 15@ 16@
    then
    Actor.PutAt($PLAYER_ACTOR,14@,15@,16@)
    jump @1
    end
end
jump @1

:GetMarkerPosition
0@ += 0x1A
0A8D: 4@ = read_memory 0@ size 1 virtual_protect 0 // ACTIVE
    if and
    8043:   1@ == 0.0
    8043:   2@ == 0.0
    8043:   1@ == 1099.551025
    8043:   2@ == 1601.496948
    8043:   1@ == 2695.624023
    8043:   2@ == -1704.687988
    4@ == 1
    then
    0485:  return_true
    else
    059A:  return_false
    end
0AB2: ret 3 1@ 2@ 3@
 

fonarik

Известный
206
3
Как получить отправленный текст? или проверить введена ли серверная команда? А то чутка подзабыл клео
 

hnnssy

Известный
Друг
2,684
2,750
Как получить координаты красного круга ? (Если что хочу сделать бота)
CLEO:
:getmarkerpos
// call @getmarkerpos 0 5@ 6@ 7@
8AF7: get_samp_base_to 0@
0@ += 0x21A10C
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 1
0085: 1@ = 0@
1@ += 0x24
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 1
if 1@ == 0
then                                 
ret 0
else
0085: 2@ = 0@
0085: 3@ = 0@
0085: 4@ = 0@
2@ += 0xC
3@ += 0x10
4@ += 0x14
0A8D: 2@ = read_memory 2@ size 4 virtual_protect 1
0A8D: 3@ = read_memory 3@ size 4 virtual_protect 1
0A8D: 4@ = read_memory 4@ size 4 virtual_protect 1
end
ret 3 2@ 3@ 4@
 
  • Нравится
Реакции: Gabriel__