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

1,417
1,029
Всем привет. Скинули мне скрипт под названием "Автоответчик", каждый раз когда я заменю там хоть одну букву, даже ту которую будет искать в чате, скрипт сразу слетает и пишет "Загружен" капсом. В чём проблема? Ниже будет код. Заранее спасибо за помощь :)
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end
0af8: "Загружен" -1
0BE3: raknet setup_incoming_rpc_hook @hook

while true
    wait 0
    if not 6@ == 0
        then
    
        if 6@ == 1
            then       
            wait 1200
            say "/d Передайте мой номер похитителям "79-39-29"."
        end
    
        if 6@ == 2
            then
            wait 1200
            say "/r Агенты, строй в гараже"
        end
    
        if 6@ == 3
            then
            wait 1200
            say "Братан, мы знакомы?"
        end
    
        6@ = 0
    end   
end 

:hook
0BE5: raknet 0@ = get_hook_param 0
0BE5: raknet 1@ = get_hook_param 1
if 1@ == 93
    then
    0BE7: raknet 2@ = bit_stream_read 0@ type 3
    0BE7: raknet 3@ = bit_stream_read 0@ type 3
    alloc 4@ 257
    0C11: memset destination 4@ value 0 size 257
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@

    if 0C18: 0 = strstr string1 4@ string2 "Нажал на красную кнопку"
        then
        say "/r Принял"
        6@ = 1
    end

    if 0C18: 0 = strstr string1 4@ string2 "Передайте мой номер похитителям"
        then
        6@ = 2
    end

    if 0C18: 0 = strstr string1 4@ string2 "Привет"
        then
        say "Привет"
        6@ = 3
    end
            
    free 4@
end
0BE0: raknet hook_ret 1
tutorials:sb-case.png
 
Последнее редактирование модератором:

Kristyan

Известный
165
16
Привет здесь замутил такой скрипт по маркеру (checkpoint), но проблема состоит что текст производится только один раз, после повторной пробе в тот же координаты..
CLEO:
{$CLEO}
0000:


repeat
    wait 0
until SAMP.Available()

31@ = 0


WHILE TRUE
wait 0
if
call @is_cp_active_LS 0
then
 if
  31@ == 0
 then
    31@ = 1
    call @get_cp_pos_LS 0 0@ 1@ 2@ 
 if and
        0@ ==  1554.532104
        1@ ==  -1675.580688
        2@ ==  16.195313
 then
    018C: play_sound 1052 at 0.0 0.0 0.0
    chatmsg "text1" -1
else
  if
    31@ == 1
  then 
    31@ = 2
  if and
  0@ ==  2287.257813
  1@ ==  2431.447998 
  2@ ==  10.820302
then
    018C: play_sound 1052 at 0.0 0.0 0.0
    chatmsg "text2" -1   
else
    if
   31@ == 2
   then
 if and
    0@ ==  -1605.046143
    1@ ==  711.501038
    2@ ==  13.867177
 then
   018C: play_sound 1052 at 0.0 0.0 0.0
    chatmsg "text3" -1

     
   
                end
            end
        end
    end
end
end
end
end


:is_cp_active_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x24
0A8D: 1@ = readMem 1@ sz 4 vp 0
IF 1@ == TRUE
THEN 0485:  return_true
ELSE 059A:  return_false
END
0AA3: freelib 0@
0AB2: ret 0

:get_cp_pos_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0xC
0A8D: 2@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 3@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 4@ = readMem 1@ sz 4 vp 0
0AA3: freelib 0@
0AB2: ret 3 2@ 3@ 4@
 

erferfreer

Известный
12
2
Ребята, есть ли аналог функции 0A25: set_camera_on_players_X_angle 0@ Z_angle 1@, только что бы она перемещала камеру не по осям X и Z, а по Y и Z. Нужно для закрепления прицела на голове в аиме.
если есть другой способ это сделать то скиньте пожалуйста
 
Последнее редактирование:

ruby

Известный
56
33
CLEO:
{$CLEO}
0000:

repeat
wait 150
until samp.Available()

while true
wait 0
    if and
    0ADC:   test_cheat "GUN"
    player.Defined($PLAYER_ACTOR)
    then
    chatmsg "Начинаю работу..." -1
        FOR 0@ = 0 TO 1000 [step = 0]
        wait 0
            if 0B23:  samp is_player_connected 0@
            then
            0B20: samp 1@ = actor_handle_by_samp_player_id 0@
            00A0: store_actor 1@ position_to 2@ 3@ 4@
            00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
            050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
                if 8035: not  8@ >= 5.0
                then
                say "/sellgun deagle 35 250 %d" 0@
                wait 1000
                end
            end
        end
    end
end
объясните такому дурачку как я в чем тут ошибка?
по идее должен всем кто в дистанции 5 метров от меня продавать дигл, но в итоге игра фризится
 
1,417
1,029
CLEO:
{$CLEO}
0000:

repeat
wait 150
until samp.Available()

while true
wait 0
    if and
    0ADC:   test_cheat "GUN"
    player.Defined($PLAYER_ACTOR)
    then
    chatmsg "Начинаю работу..." -1
        FOR 0@ = 0 TO 1000 [step = 0]
        wait 0
            if 0B23:  samp is_player_connected 0@
            then
            0B20: samp 1@ = actor_handle_by_samp_player_id 0@
            00A0: store_actor 1@ position_to 2@ 3@ 4@
            00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
            050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
                if 8035: not  8@ >= 5.0
                then
                say "/sellgun deagle 35 250 %d" 0@
                wait 1000
                end
            end
        end
    end
end
объясните такому дурачку как я в чем тут ошибка?
по идее должен всем кто в дистанции 5 метров от меня продавать дигл, но в итоге игра фризится
CLEO:
if 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
then
....
 
  • Нравится
Реакции: user116675

Vlad_Barmin

Новичок
5
0
Подскажите пожалуйста с клео. А как например зделать при входе в игру текст как например aim by slonoBoyko или там чит?
 

erferfreer

Известный
12
2
Скиньте пожалуйста функцию которая будет перемещать камеру по оси Y. Нужно для аима что бы прицел зацикливался на голове
 
Последнее редактирование:

Salvatore_Ferrari

Известный
427
239
@ruby
wait 0 в цикле for не нужен вроде как.
Должно работать, не чекал
CLEO:
{$CLEO}

1337: true

while not samp.available()
    wait 420
end

while true
wait 0

if and
    0ADC:   test_cheat "GUN"
    056D:   actor $PLAYER_ACTOR defined
then
    Actor.StorePos($PLAYER_ACTOR, 7@, 8@, 9@)
    for 0@ = 0 to 1004 [STEP = 1] /* MaxPlayers */
        if 1@ = SAMP.GetActorHandleByPlayerID(0@)
        then
            Actor.StorePos(1@, 2@, 3@, 4@)
            050A: 5@ = distance_between_XYZ 7@ 8@ 9@ and_XYZ 2@ 3@ 4@
            if not 5@ > 5.0
            then
                say "/sellgun deagle 35 250 %d" 0@
                wait 1000
            end
        end
    end
end

end
Скажите челу которому учит СLEO зачем ставить 5 end в конце?