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

Royan_Millans

Известный
145
182
Есть ник Name_Surname
Каким образом можно убрать это - "_", через sscanf уже пробовал, не рубит
 

Buhani4

Новичок
26
0
Крашит при создании иника


CLEO:
if
8AAB:   file_exists "CLEO\healme.ini"
then
0AF1: write_int 18 to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF5: write_string "/healme" to_ini_file "cleo\config.ini" section "CMD" key "CMD"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
else
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
end

:skey
wait 0
0B35: samp 1@ = get_last_command_params
0AD4: 13@ = scan_string 1@ format "%d" 3@
0AF1: write_int 3@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
samp.CmdRet()

:scmd
0B35: samp 5@ = get_last_command_params
0AD4: 14@ = scan_string 5@ format "%d" 6@
0AF1: write_int 6@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
samp.CmdRet()

Именно часть со строкой, :scmd. :skey работает
В инике не создается строка с командой.
И кроме изменения кода моего, указывайте пожалуйста в чем ошибка, желательно с небольшим пояснением, чтобы понять.
 
Последнее редактирование модератором:

D[a]Ni

Участник
63
3
Крашит при создании иника


CLEO:
if
8AAB:   file_exists "CLEO\healme.ini"
then
0AF1: write_int 18 to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF5: write_string "/healme" to_ini_file "cleo\config.ini" section "CMD" key "CMD"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
else
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
end

:skey
wait 0
0B35: samp 1@ = get_last_command_params
0AD4: 13@ = scan_string 1@ format "%d" 3@
0AF1: write_int 3@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
samp.CmdRet()

:scmd
0B35: samp 5@ = get_last_command_params
0AD4: 14@ = scan_string 5@ format "%d" 6@
0AF1: write_int 6@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
samp.CmdRet()

Именно часть со строкой, :scmd. :skey работает
В инике не создается строка с командой.
И кроме изменения кода моего, указывайте пожалуйста в чем ошибка, желательно с небольшим пояснением, чтобы понять.
Тебе точно нужен int_ini формат для считывания команды или текста? есть же считывание string_ini

Ещё может не хватать памяти 4@v можешь даже попробывать
0AC8: 4@ = allocate_memory_size 260
 

tlwsn

Известный
537
85
ку
чо этот код делает?
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
wait 7000
thread 'ABELMADRONA'
wait 0
0AAA: 0@ = thread 'ABEL_MADRONA' pointer
if
  0@ == 0
else_jump @ABELMADRONA_612
wait 0
1@ = Audiostream.Load("AUDIO\NATURE\SNOWFALLING.WAV")
2@ = Audiostream.Load("AUDIO\NATURE\SNOWFALLING.WAV")

:ABELMADRONA_128
wait 0
077E: get_active_interior_to 6@
if
  6@ == 0
else_jump @ABELMADRONA_591
if
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2191.172 -303.7759 radius 25.0 25.0
else_jump @ABELMADRONA_200
jump @ABELMADRONA_566

:ABELMADRONA_200
wait 0
00BF: 3@ = current_time_hours, 4@ = current_time_minutes
if and
  3@ > 5
   not 3@ > 20
else_jump @ABELMADRONA_356
1@ = Audiostream.State(5@)
if
   not 5@ == 1
else_jump @ABELMADRONA_128
077E: get_active_interior_to 6@
wait 0
if
  6@ == 0
else_jump @ABELMADRONA_128
2@ = Audiostream.State(5@)
if
   not 5@ == 1
else_jump @ABELMADRONA_552

:ABELMADRONA_316
1@ = Audiostream.State(5@)
if
  5@ == 1
Audiostream.PerformAction(2@, STOP)
Audiostream.PerformAction(1@, RESUME)
jump @ABELMADRONA_356

:ABELMADRONA_356
wait 0
if
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2191.172 -303.7759 radius 25.0 25.0
else_jump @ABELMADRONA_405
jump @ABELMADRONA_566

:ABELMADRONA_405
00BF: 3@ = current_time_hours, 4@ = current_time_minutes
if or
   not 3@ > 5
  3@ > 20
else_jump @ABELMADRONA_128
2@ = Audiostream.State(5@)
if
   not 5@ == 1
else_jump @ABELMADRONA_128
077E: get_active_interior_to 6@
wait 0
if
  6@ == 0
else_jump @ABELMADRONA_591
1@ = Audiostream.State(5@)
if
  5@ == 1
else_jump @ABELMADRONA_538

:ABELMADRONA_517
Audiostream.PerformAction(1@, STOP)
Audiostream.PerformAction(2@, RESUME)
jump @ABELMADRONA_128

:ABELMADRONA_538
Audiostream.PerformAction(1@, PAUSE)
jump @ABELMADRONA_517

:ABELMADRONA_552
Audiostream.PerformAction(2@, PAUSE)
jump @ABELMADRONA_316

:ABELMADRONA_566
wait 0
Audiostream.PerformAction(1@, PAUSE)
Audiostream.PerformAction(2@, PAUSE)
jump @ABELMADRONA_128

:ABELMADRONA_591
Audiostream.PerformAction(1@, PAUSE)
Audiostream.PerformAction(2@, PAUSE)
jump @ABELMADRONA_128

:ABELMADRONA_612
0A93: end_custom_thread
 

хуесос)

Известный
263
63
ку
чо этот код делает?
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
wait 7000
thread 'ABELMADRONA'
wait 0
0AAA: 0@ = thread 'ABEL_MADRONA' pointer
if
  0@ == 0
else_jump @ABELMADRONA_612
wait 0
1@ = Audiostream.Load("AUDIO\NATURE\SNOWFALLING.WAV")
2@ = Audiostream.Load("AUDIO\NATURE\SNOWFALLING.WAV")

:ABELMADRONA_128
wait 0
077E: get_active_interior_to 6@
if
  6@ == 0
else_jump @ABELMADRONA_591
if
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2191.172 -303.7759 radius 25.0 25.0
else_jump @ABELMADRONA_200
jump @ABELMADRONA_566

:ABELMADRONA_200
wait 0
00BF: 3@ = current_time_hours, 4@ = current_time_minutes
if and
  3@ > 5
   not 3@ > 20
else_jump @ABELMADRONA_356
1@ = Audiostream.State(5@)
if
   not 5@ == 1
else_jump @ABELMADRONA_128
077E: get_active_interior_to 6@
wait 0
if
  6@ == 0
else_jump @ABELMADRONA_128
2@ = Audiostream.State(5@)
if
   not 5@ == 1
else_jump @ABELMADRONA_552

:ABELMADRONA_316
1@ = Audiostream.State(5@)
if
  5@ == 1
Audiostream.PerformAction(2@, STOP)
Audiostream.PerformAction(1@, RESUME)
jump @ABELMADRONA_356

:ABELMADRONA_356
wait 0
if
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2191.172 -303.7759 radius 25.0 25.0
else_jump @ABELMADRONA_405
jump @ABELMADRONA_566

:ABELMADRONA_405
00BF: 3@ = current_time_hours, 4@ = current_time_minutes
if or
   not 3@ > 5
  3@ > 20
else_jump @ABELMADRONA_128
2@ = Audiostream.State(5@)
if
   not 5@ == 1
else_jump @ABELMADRONA_128
077E: get_active_interior_to 6@
wait 0
if
  6@ == 0
else_jump @ABELMADRONA_591
1@ = Audiostream.State(5@)
if
  5@ == 1
else_jump @ABELMADRONA_538

:ABELMADRONA_517
Audiostream.PerformAction(1@, STOP)
Audiostream.PerformAction(2@, RESUME)
jump @ABELMADRONA_128

:ABELMADRONA_538
Audiostream.PerformAction(1@, PAUSE)
jump @ABELMADRONA_517

:ABELMADRONA_552
Audiostream.PerformAction(2@, PAUSE)
jump @ABELMADRONA_316

:ABELMADRONA_566
wait 0
Audiostream.PerformAction(1@, PAUSE)
Audiostream.PerformAction(2@, PAUSE)
jump @ABELMADRONA_128

:ABELMADRONA_591
Audiostream.PerformAction(1@, PAUSE)
Audiostream.PerformAction(2@, PAUSE)
jump @ABELMADRONA_128

:ABELMADRONA_612
0A93: end_custom_thread
создает звуки падания снега.
 

Buhani4

Новичок
26
0
Код:
f
8AAB:   file_exists "CLEO\healme.ini"
then
0AF1: write_int 18 to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF5: write_string "/healme" to_ini_file "cleo\healme.ini" section "CMD" key "CMD"
0AF4: 4@v = read_string_from_ini_file "cleo\healme.ini" section "CMD" key "CMD"
else
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
end

:skey
wait 0
0B35: samp 1@ = get_last_command_params
0AD4: 13@ = scan_string 1@ format "%d" 3@
0AF1: write_int 3@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
samp.CmdRet()

:scmd
0B35: samp 5@ = get_last_command_params
0AD4: 14@ = scan_string 5@ format "%d" 6@
0AF1: write_int 6@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\healme.ini" section "CMD" key "CMD"
samp.CmdRet()

Не создается строка с командой /healme в .ini файле, как сделать, чтобы в .ini файл можно было через команду записать команду, вывести ее в переменную и использовать эту переменную с командой, например, в
0AF9: samp say_msg 4@v (4@v - стринговая переменная со строкой)
 

хуесос)

Известный
263
63
Код:
f
8AAB:   file_exists "CLEO\healme.ini"
then
0AF1: write_int 18 to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF5: write_string "/healme" to_ini_file "cleo\healme.ini" section "CMD" key "CMD"
0AF4: 4@v = read_string_from_ini_file "cleo\healme.ini" section "CMD" key "CMD"
else
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
end

:skey
wait 0
0B35: samp 1@ = get_last_command_params
0AD4: 13@ = scan_string 1@ format "%d" 3@
0AF1: write_int 3@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
samp.CmdRet()

:scmd
0B35: samp 5@ = get_last_command_params
0AD4: 14@ = scan_string 5@ format "%d" 6@
0AF1: write_int 6@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\healme.ini" section "CMD" key "CMD"
samp.CmdRet()

Не создается строка с командой /healme в .ini файле, как сделать, чтобы в .ini файл можно было через команду записать команду, вывести ее в переменную и использовать эту переменную с командой, например, в
0AF9: samp say_msg 4@v (4@v - стринговая переменная со строкой)
На 0af9: ибоже say "%s" 4@v
Насколько я знаю, вы ини нельзя записывать /, а просто строку.
Ну и это не проблема, а делаем так.
Say "/%s" 4@v
Если будет хуйню выписывать и т.д, выдели память alloc и free
Думаю умеешь этим пользваться
 

Buhani4

Новичок
26
0
На 0af9: ибоже say "%s" 4@v
Насколько я знаю, вы ини нельзя записывать /, а просто строку.
Ну и это не проблема, а делаем так.
Say "/%s" 4@v
Если будет хуйню выписывать и т.д, выдели память alloc и free
Думаю умеешь этим пользваться

Крашит при заходе, когда создается первый раз иник, а после, когда иник уже создан, заходит нормально. Не создается строка с кмд в инике.

Код:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

wait 4000
chatmsg "Ñêðèïò [Êëåî Àïòå÷êà] çàãðóæåí..." 0xFF0000
chatmsg "Àêòèâàöèÿ: ALT" 0xFF0000
chatmsg "Àêòèâàöèÿ/äåàêòèâàöèÿ ñáèâà àíèìàöèè àïòå÷êè: /sac" 0xFF0000
chatmsg "Àâòîð: Buhanka" 0xFF0000
chatmsg "Êîíòàêòû: vk.com/buhankazonovsky" 0xFF0000


0@ = false

0B34: samp register_client_command "sac" to_label @sbiv

0B34: samp register_client_command "skey" to_label @skey

0B34: samp register_client_command "scmd" to_label @scmd


if
8AAB:   file_exists "CLEO\healme.ini"
then
0AC8: 16@ = allocate_memory_size 260
0AF1: write_int 18 to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF5: write_string "healme" to_ini_file "cleo\healme.ini" section "CMD" key "CMD"
0AF4: 4@v = read_string_from_ini_file "cleo\healme.ini" section "CMD" key "CMD"
0AC9: free_allocated_memory 16@
else
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF4: 4@v = read_string_from_ini_file "cleo\config.ini" section "CMD" key "CMD"
end

while true
wait 0
        if
        key_down 2@
        then
            if
            0@ == true
            then
            say "/%s" 4@v
            wait 500
            05C4: AS_actor $PLAYER_ACTOR hands_up 1 ms
            else
            say "/%s" 4@v
            wait 500
        end
    end
end

                                                                          
:sbiv
if
0@ == true
then
0@ = false
printf "Deactivated" 1000
else
0@ = true
printf "Activated" 1000
end
samp.CmdRet()

:skey
wait 0
0B35: samp 1@ = get_last_command_params
0AD4: 13@ = scan_string 1@ format "%d" 3@
0AF1: write_int 3@ to_ini_file "cleo\healme.ini" section "KEY" key "KEY"
0AF0: 2@ = get_int_from_ini_file "cleo\healme.ini" section "KEY" key "KEY"
samp.CmdRet()

:scmd
0B35: samp 5@ = get_last_command_params
0AD4: 14@ = scan_string 5@ format "%d" 6@
0AF1: write_int 6@ to_ini_file "cleo\healme.ini" section "CMD" key "CMD"
0AF4: 4@v = read_string_from_ini_file "cleo\healme.ini" section "CMD" key "CMD"
samp.CmdRet()
 

KOng

Новичок
1
0
Всем привет!
Как сделать CLEO с автокомандой, что бы она автоматически выполняла действие с близстоящим игроком к примеру: "/givegun [id] eagle" и задать ей активацию к примеру "key_pressed 50"
И как добавить несколько таких команд в одно клео, что бы они не конфликтовали между собой, за ранее спасибо.
Если скинете урок на эту тему, буду в двойне благодарен!
 

D3.Pheonix

🎹
Модератор
2,816
1,597
Всем привет!
Как сделать CLEO с автокомандой, что бы она автоматически выполняла действие с близстоящим игроком к примеру: "/givegun [id] eagle" и задать ей активацию к примеру "key_pressed 50"
И как добавить несколько таких команд в одно клео, что бы они не конфликтовали между собой, за ранее спасибо.
Если скинете урок на эту тему, буду в двойне благодарен!
CLEO:
{$CLEO}
0000:

repeat
wait 0
until Samp.Available()

while true
wait 0
    if and
    0C89:  key_just_pressed 50
    0256:   player $PLAYER_CHAR defined
    then
    0B12: 31@ = 31@ XOR 1
    end

    if and
    31@ == 1
    0256:   player $PLAYER_CHAR defined
    then
        for 0@ = 0 to 1001
        0B20: samp 1@ = actor_handle_by_samp_player_id 0@
            if
            056D:   actor 1@ defined
            then
            00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
            00A0: store_actor 1@ position_to 5@ 6@ 7@
            050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
                if
                8@ <= 10.0 // Расстояние между тобой и игроком (равно/меньше чем...)
                then
                say "/givegun %d eagle" 0@
                wait 500 // если есть анти флуд
                // твой код
                end
            end
        end
    end
end
Вместо 050A: можно еще так:
CLEO:
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
if
00FE:   actor 1@ sphere 0 in_sphere 2@ 3@ 4@ radius {X}15.0 {Y}15.0 {Z}15.0 // Расчет через радиус
then
// ....
 
  • Нравится
Реакции: KOng

The Spark

Известный
653
672
регистрацию шрифта ставь ПЕРЕД регистрацией команды. а так работает, не хани.
кста активация стоит на двоечку, а не на единичку
CLEO:
{$CLEO}
0000:
thread "astap"

alloc 0@ 128
format 0@ = "gaga228gaga123gagaga45"

while true
    wait 0
    if 0ab0: 50 // pressed 2
    then
        alloc 10@ 128
        0AC7: 3@ = var 2@ offset
        0AC7: 4@ = var 1@ offset
        0AC7: 6@ = var 5@ offset      
        0AA5: call 0x8220AD num_params 5 pop 5 params | outcoming: 3@ 4@ 6@ | incoming: "gaga%igaga%igagaga%i" 0@
        0AD3: 10@ = format "%i %i %i" 5@ 1@ 2@
        chatmsg 10@ -1
        free 10@
    end
end
Памагитэ, как взять со строки число ты меня научил, можно научить меня брать с "~w~Arizona-rp.com~n~185.169.134" вот это "Arizona-rp.com 185.169.134" позязя
 

Huntley2008

Новичок
4
0
Здравствуйте!
Я только вчера начал изучать CLEO, и уже вижу много преимуществ для создания миссий по сравнению с DYOM.
Пока я только пробую писать всякие скриптики(что-бы освоиться в скриптинге).
Возник вопрос - Как сделать так, что-бы актёр перепрыгнул через низкий или высокий забор?
К примеру я заставил актёра подбежать к стене с помощью опкода - 05D3: AS_actor 1@ goto_point 1346.6108 -619.2377 109.1328 mode 7 time 5000 ms
Как мне заставить его прыгнуть/перепрыгнуть через стену?


И вопрос №2
Я создаю машину с помощью -
CLEO:
:MyCars
wait 100
0AB0:   key_pressed 49
jf @MyCars
03C5: create_random_car_for_carpark 1338.5071 -629.9763 109.1349 z_angle 89.6383

А потом пытаюсь заставить актёра сесть в машину -
CLEO:
05CB: AS_actor 1@  enter_car @MyCars as_driver 1000 ms
Но он не садится...Скажите пожалуйста что не так)
 

хуесос)

Известный
263
63
Здравствуйте!
Я только вчера начал изучать CLEO, и уже вижу много преимуществ для создания миссий по сравнению с DYOM.
Пока я только пробую писать всякие скриптики(что-бы освоиться в скриптинге).
Возник вопрос - Как сделать так, что-бы актёр перепрыгнул через низкий или высокий забор?
К примеру я заставил актёра подбежать к стене с помощью опкода - 05D3: AS_actor 1@ goto_point 1346.6108 -619.2377 109.1328 mode 7 time 5000 ms
Как мне заставить его прыгнуть/перепрыгнуть через стену?


вопрос №2
Я создаю машину с помощью -
CLEO:
:MyCars
wait 100
0AB0:   key_pressed 49
jf @MyCars
03C5: create_random_car_for_carpark 1338.5071 -629.9763 109.1349 z_angle 89.6383

А потом пытаюсь заставить актёра сесть в машину -
CLEO:
05CB: AS_actor 1@  enter_car @MyCars as_driver 1000 ms
Но он не садится...Скажите пожалуйста что не так)
Отвечу на вопрос N2.
вы 03C5: вместо переменной 1@ ставишь кого хочешь заставить войти вы кар. к примеру $PLAYER_ACTOR (CJ). А потом, ты поставил название на лабел вы котором ты создал кар, это не правильно, там надо оставить HENDL кара. Vehicle handle (Integer) (INT).
 
  • Нравится
Реакции: Huntley2008