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

fiendshadow

3LFhocV726q7pKWWky2vv3W38Dm9sGJV86
Проверенный
455
121
SAMP.IsCommandTyped(0@)
0AD4: 29@ = scan_string 0@ format "%d" 0@
say "/f Âíèìàíèå! Òðåíèðîâêà â %d! Ñêðèíþ îíëàéí" 0@
SAMP.CmdRet
Что тут не так? вместо %d просто капсом буква D пишется в чат
Я чего то не понял или в клео какая-то поебота. Ты приравниваешь скан к 29@ и к 0@ ? В scan_string используют вроде "%s"
P.S. Регистр > Как есть.
 
Последнее редактирование:

Woofing Giraffe

Активный
402
49
Не в этом дело, вместо моего значения которое я пишу в игре просто пишется в чат D
Код:
{$CLEO}
0000:

:1
wait 0
    SAMP.Available()
jf @1
0B34: "test" @cmd

while true
    wait 0
end

:cmd
SAMP.IsCommandTyped(0@)
0AD4: 29@ = scan_string 0@ format "%d" 0@
chatmsg "%d" -1 0@
SAMP.CmdRet
Полностью работает. У тебя скорее всего регистр букв не правильный. Сервис - настройки - форматирование - регистр букв - как есть. Перезапусти SB и всё.
 

N1ghT

Известный
79
8
Внатуре, просто скрипт делал на старой винде, а тут поставил SB и не пашет
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,959
Народ, никто не напомнит как делать сравнения в .cs, чтобы скрипт срабатывал, например, лишь когда у игрока хп <25?
PHP:
{$CLEO}
{$NOSOURCE}
0000:

:1
wait 0
0ADC:   test_cheat "1"
jf @1
0226: 0@ = actor $PLAYER_ACTOR health
if and
0019:   0@ > 25 // Если хп больше 25.
8019:   not 0@ > 25 // Если хп не больше 25.
jf @1
...
jump @1
 
  • Нравится
Реакции: ishi

Vadim.dll

Известный
168
80
Ребят! Подскажите опкод, проверяющий анимацию игрока в сампе, ID анимации
 

Vadim.dll

Известный
168
80
А нет, уже нашел, теперь есть ли способ узнать название анимации по Id'у в сампе
есть ид 949, незнаю как называется анимация
 
Последнее редактирование:

Woofing Giraffe

Активный
402
49
А не объяснишь как она работает?
0B58: samp get_animation_name_to 2@ file_to 3@ by_id 1@
Код:
{$CLEO}
0000:

:1
wait 0
    Samp.Available()
jf @1
0B34: "aa" @cmd
alloc 2@ 64
alloc 3@ 64

while true
    wait 0
end

:cmd
0B58: samp get_animation_name_to 2@ file_to 3@ by_id 949
chatmsg "Имя: %s. Файл: %s. ID: 949" -256 2@ 3@
cmdret
Маленький пример.
 

OtherWeather

Новичок
39
2
Как на примере этого кода сделать проверку на то, является ли игрок законником или нет? То есть, если рядом стоит бандит и законник, то обыскивало бы только бандита.

PHP:
{$CLEO .cs}
THREAD "AUTOFRISK"

:START
wait 0
if 
0AB0:   key_pressed 97
jf @START
if
0AB1: call @get_id_nearest_player 0 retr_to fdist 0@ sid 1@
jf @START
0AF9: "/frisk %d" 1@
wait 100
0C72: set_virtual_key 0x7A down true
wait 100
0C72: set_virtual_key 0x7A down false
wait 1000
jump @START

:get_id_nearest_player
// FOR ALL PEDS
3@ = 1000.0 // Max. distance
4@ = 0xFFFFFF // Nearest player handle / id
0A8D: 0@ = read_memory 0xB74490 size 4 virtual_protect 0
0@ += 4
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
for 1@ = 0 to 35584 step 0x100
    0A8D: 2@ = read_memory 0@ size 1 virtual_protect 0
    0@++
    if and
        2@ >= 0x00
        2@ < 0x80
    then
        005A: 2@ += 1@
        if or
            003C: $PLAYER_ACTOR == 2@ // LOCAL_PLAYER == REMOTE_PLAYER
            856D: NOT actor 2@ defined // REMOTE PLAYER IS NOT DEFINED
        then continue
        end
    
        0AB1: call @distanceBetweenActor 1 remote_player_handle 2@ retr_dist_to 5@
        if 0025: 3@ > 5@ // Max. dist > cur.
        then
            0087: 3@ = 5@ // Max. dist = cur.
            0085: 4@ = 2@ // Save remote player handle
        end
    end
end
if 4@ = SAMP.GetSAMPPlayerIDByActorHandle(4@)
then
    0485:  return_true
else
    059A:  return_false
end
0AB2: ret 2 3@ 4@
:distanceBetweenActor
Actor.StorePos(0@, 1@, 2@, 3@)
Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@)
050A: 7@ = distance_between_XYZ 4@ 5@ 6@ and_XYZ 1@ 2@ 3@
0AB2: ret 1 7@