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

Kp0Nk

Известный
58
5
Не подскажите любезные почему скрипт сразу начинает работать?А если ввести команды то рашит. Или подскажите пожалуйста опкод чтобы вместо ввода,можно считать считать фразу от НПС.
CLEO:
:k
wait 0
if or
0B34: samp register_client_command "tload" to_label @t
0B34: samp register_client_command "tunload" to_label @t
jf @k
0006: 0@ = 60
0006: 1@ = 2
 

fiendshadow

3LFhocV726q7pKWWky2vv3W38Dm9sGJV86
Проверенный
455
122
Не подскажите любезные почему скрипт сразу начинает работать?А если ввести команды то рашит. Или подскажите пожалуйста опкод чтобы вместо ввода,можно считать считать фразу от НПС.
CLEO:
:k
wait 0
if or
0B34: samp register_client_command "tload" to_label @t
0B34: samp register_client_command "tunload" to_label @t
jf @k
0006: 0@ = 60
0006: 1@ = 2
регистрация команд идет в голову скрипта, а не в метку
а-ля
CLEO:
КЛЕО . КС
РЕГАЙ КАМАНДА АДЫН @ЛАХ
КАМАНДА ДВА РЕГ @УУ
код
 

Kp0Nk

Известный
58
5
пиздец, не получается никак структизировать этот скрипт.


Вся суть в установке прыжков и меток. Обратись по новой и скинь код полностью.Скажи, что ты хочешь и на какие метки сделать переходы. Я не понимаю просто вопроса, ты хочешь, чтоб прыгало на метку 6 с какого условия. Короч, скинь код.

Добрового времени суток,суть в чем запихнул НР персонажа и броню ,в НР авто.Он работает ,но мерцает,я так понял что нужно сделать один главный код,а от него плисать на броню и НР авто.Он перестал мерцать,но показывает только НР персонажа,и НР кара,и то когда выходишь он показывает набор цифр. Кароче я забил и оставил отдельно 2 скрипта. Скрипт остался только с мерцанием,но рабочий.
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

:NONAME_26
wait 0
if
   Player.Defined($PLAYER_CHAR)
jf @NONAME_510
if
   Actor.Driving($PLAYER_ACTOR)
jf @NONAME_510
10@ = Actor.CurrentCar($PLAYER_ACTOR)
0@ = Car.Health(10@)
03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.4 0.9
0340: set_text_draw_RGBA 255 255 0 255 
081C: draw_text_outline 1 RGBA 0 0 0 255
045A: draw_text_1number 631.0 55.0 GXT 'NUMBER' number 0@  // ~1~
0093: 0@ = integer 0@ to_float
0@ -= 250.0
if
   not 0@ >= 0.0
jf @NONAME_194
0@ = 0.0

:NONAME_194
if
  0@ >= 750.0
jf @NONAME_225
0@ = 749.9

:NONAME_225
0087: 3@ = 0@ // (float)
3@ /= 750.0
3@ *= 58.0
0087: 2@ = 3@ // (float)
2@ /= 2.0
2@ += 547.6
0@ /= 2.941176
0092: 7@ = float 0@ to_integer
if
  7@ > 127
jf @NONAME_354
8@ = 255
7@ -= 127
7@ *= -2
7@ += 255
jump @NONAME_377

:NONAME_354
0085: 8@ = 7@ // (int)
8@ *= 2
7@ = 255 

:NONAME_377
0085: 5@ = 7@ // (int)
0085: 6@ = 8@ // (int)
5@ *= 0.5
6@ *= 0.5
03F0: enable_text_draw 1
038E: draw_box_position 576.6 60.0 size 62.0 8.0 RGBA 0 0 0 255
038E: draw_box_position 576.6 60.0 size 58.0 5.1 RGBA 5@ 6@ 0 255
038E: draw_box_position 2@ 60.0 size 3@ 5.0 RGBA 7@ 8@ 0 255

:NONAME_510
jump @NONAME_6

:NONAME_6
wait 0
0@ = Actor.Health($PLAYER_ACTOR)
03F0: enable_text_draw 1
03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.4 0.9
0340: set_text_draw_RGBA 255 0 0 255
081C: draw_text_outline 1 RGBA 0 0 0 55
045A: draw_text_1number 631.0 65.7 GXT 'NUMBER' number 0@  // ~1~
04DD: 1@ = actor $PLAYER_ACTOR armour
if
  1@ >= 2
jump @NONAME_115
jump @NONAME_6

:NONAME_115
03F0: enable_text_draw 1
03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.4 0.9
0340: set_text_draw_RGBA 255 255 255 255
081C: draw_text_outline 1 RGBA 0 0 0 55
045A: draw_text_1number 631.0 44.3 GXT 'NUMBER' number 1@  // ~1~
jump @NONAME_26
 

Kp0Nk

Известный
58
5
регистрация команд идет в голову скрипта, а не в метку
а-ля
Не подскажите,что что не работает? Вожу команду,а действий ноль
CLEO:
{$CLEO .cs}
0000:
repeat
    wait 0
until Samp.Available()
0B34: samp register_client_command "tload" to_label @t
0B34: samp register_client_command "tunload" to_label @t
0006: 0@ = 60
0006: 1@ = 2

While true
wait 0
    if
    30@ == true
    then
            000E: 0@ -= 1
            0AD1: show_formatted_text_highpriority "%d:%d" time 1000 1@ 0@ 
            wait 1000 ms
            if
            0039:   0@ == 0
            jump @t
            0006: 0@ = 60
            000E: 1@ -= 1
            if
            0039:   1@ == -1
    end 
end

:t
if
30@ == true
Samp.CmdRet
 
Последнее редактирование:

01EG

Известный
Проверенный
629
354
Не подскажите,что что не работает? Вожу команду,а действий ноль
CLEO:
{$CLEO .cs}
0000:
repeat
    wait 0
until Samp.Available()
30@ = 0
0B34: samp register_client_command "tload" to_label @t
0B34: samp register_client_command "tunload" to_label @t
0006: 0@ = 60
0006: 1@ = 2

While true
wait 0
    if
    30@ == 1
    then
            000E: 0@ -= 1
            0AD1: show_formatted_text_highpriority "%d:%d" time 1000 1@ 0@
            wait 1000 ms
            if
            0039:   0@ == 0
            jump @t
            0006: 0@ = 60
            000E: 1@ -= 1
            if
            0039:   1@ == -1
    end
end

:t
if
30@ == true
Samp.CmdRet

Что за хуйню ты пишешь, не устал ? Старайся делать на конкретных примерах, хотя кому как удобно. Ладно, ничо.
Постараюсь разъяснить кое какие моменты. Сам много ошибался и сейчас ошибаюсь.
1) Скрипт у тебя даже не начинается.
CLEO:
:t
if 30@ == true \\ а если блядь не равно тру, то что будет делать - нихуя, значит нужно, чтоб параметр менялся. Вообще не советую использовать true\false юзать 0 и 1
2) Если бы и начинался, то крашился на прыжке на метку с концовкой cmd.ret
CLEO:
          0039:   0@ == 0
            jump @t \\ это блядь еще что ? Куда ты собрался прыгать ? На метку которая заканчивает кмд ретом ? Это хуйня. Нужно gosub делать на метки и там проверять тело скрипта.
            0006: 0@ = 60
            000E: 1@ -= 1
 
  • Нравится
Реакции: Kp0Nk

byebye

Участник
45
6
Что за хуйню ты пишешь, не устал ? Старайся делать на конкретных примерах, хотя кому как удобно. Ладно, ничо.
Постараюсь разъяснить кое какие моменты. Сам много ошибался и сейчас ошибаюсь.
1) Скрипт у тебя даже не начинается.
CLEO:
:t
if 30@ == true \\ а если блядь не равно тру, то что будет делать - нихуя, значит нужно, чтоб параметр менялся. Вообще не советую использовать true\false юзать 0 и 1
2) Если бы и начинался, то крашился на прыжке на метку с концовкой cmd.ret
CLEO:
          0039:   0@ == 0
            jump @t \\ это блядь еще что ? Куда ты собрался прыгать ? На метку которая заканчивает кмд ретом ? Это хуйня. Нужно gosub делать на метки и там проверять тело скрипта.
            0006: 0@ = 60
            000E: 1@ -= 1
Мою проблемку решить не сможешь? Она чуть выше. Тру кодеры спят навреное, а узнать че не так охото сейчас)
 

Zoxan_Twist

Новичок
126
29
Не подскажите,что что не работает? Вожу команду,а действий ноль
Ты опять пытаешься создать таймер?
Я же написал тебе что вот здесь твоя тема и полностью рабочий скрипт.
https://www.blast.hk/threads/11610/
Можешь отталкиваясь от того что я написал уже изменять.
А то что ты написал просто набор знаков и условий. Оно не будет работать.
 
  • Нравится
Реакции: Kp0Nk

Zoxan_Twist

Новичок
126
29
Мою проблемку решить не сможешь? Она чуть выше. Тру кодеры спят навреное, а узнать че не так охото сейчас)
Проверил я твой скрипт. Запускал в вот таком виде
Код:
{$CLEO .cs}

if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end

while not SAMP.Available()
    wait 100
end

while true
    wait 0
    if and
        0AD2: 1@ = player $PLAYER_CHAR targeted_actor
        0AB0:   key_pressed 90 // Z
    then
        0AF9: samp say_msg "/me достал тазер"
        wait 1100
        0B2B: samp 0@ = get_player_id_by_actor_handle 1@
        0AF9: samp say_msg "/tazer %d" 0@
        wait 300
    end
end
И все работало отлично. Возможно не в этой части ошибка.
 

Garrus

Известный
159
20
Ребят, у меня есть вопросик. Пишу чат-логгер, но столкнулся с проблемой. Почему-то в файл записывается не последняя строка чата, а предпоследняя. В чем проблема?
Код имеет вид:
...
0BE3: raknet setup_incoming_rpc_hook @RPC_Chat
...

while true
...
end

:RPC_Chat
0BE5: raknet 23@ = get_hook_param 1
if or
23@ == 101
23@ == 93
then
0A9A: 24@ = openfile "cleo\log.txt" mode "a"
0AC8: 25@ = allocate_memory_size 128
0C11: memset destination 25@ value 0x0 size 128
0B75: samp get_chat_string 99 text_to 25@ prefix_to 0 color_to 0 prefix_color_to 0
0AD9: write_formatted_text "%s%c" in_file 24@ 25@ 0xA
0AC9: free_allocated_memory 25@
0A9B: closefile 24@
end
0BE0: raknet hook_ret true
 

byebye

Участник
45
6
Проверил я твой скрипт. Запускал в вот таком виде
Код:
{$CLEO .cs}

if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end

while not SAMP.Available()
    wait 100
end

while true
    wait 0
    if and
        0AD2: 1@ = player $PLAYER_CHAR targeted_actor
        0AB0:   key_pressed 90 // Z
    then
        0AF9: samp say_msg "/me достал тазер"
        wait 1100
        0B2B: samp 0@ = get_player_id_by_actor_handle 1@
        0AF9: samp say_msg "/tazer %d" 0@
        wait 300
    end
end
И все работало отлично. Возможно не в этой части ошибка.
Ниче не понимаю.. Оставил точно такой же кусок и все равно не работает. Подбегаю беру игрока на "прицел", появляется над ним треугольник этот зеленый, нажимаю Z, но все равно ничего не происходит... Почему??
Я уже все остальные клео выкинул из папки. В чем проблема может быть? Надеюсь вы мне поможете:(
 
Последнее редактирование:

hnnssy

Известный
Друг
2,684
2,762
Ниче не понимаю.. Оставил точно такой же кусок и все равно не работает. Подбегаю беру игрока на "прицел", появляется над ним треугольник этот зеленый, нажимаю Z, но все равно ничего не происходит... Почему??
Я уже все остальные клео выкинул из папки. В чем проблема может быть? Надеюсь вы мне поможете:(
Настройки регистра в компиляторе смотрел?
 

hnnssy

Известный
Друг
2,684
2,762
Ребят, у меня есть вопросик. Пишу чат-логгер, но столкнулся с проблемой. Почему-то в файл записывается не последняя строка чата, а предпоследняя. В чем проблема?
Код имеет вид:
...
0BE3: raknet setup_incoming_rpc_hook @RPC_Chat
...

while true
...
end

:RPC_Chat
0BE5: raknet 23@ = get_hook_param 1
if or
23@ == 101
23@ == 93
then
0A9A: 24@ = openfile "cleo\log.txt" mode "a"
0AC8: 25@ = allocate_memory_size 128
0C11: memset destination 25@ value 0x0 size 128
0B75: samp get_chat_string 99 text_to 25@ prefix_to 0 color_to 0 prefix_color_to 0
0AD9: write_formatted_text "%s%c" in_file 24@ 25@ 0xA
0AC9: free_allocated_memory 25@
0A9B: closefile 24@
end
0BE0: raknet hook_ret true
Потому что ты получаешь последнюю строку чата до того, как рпц обработается клиентом. Считывай текст с него сразу, а не через гет_чат_стринг
 
  • Нравится
Реакции: Garrus

Mikha Mikhin

Новичок
131
4
CLEO:
wait 10
    if
    0AB0: key_pressed 0x12
    Actor.Driving($Player_Actor)
    then
        03C0: 317@ = actor $PLAYER_ACTOR car
        02E3: 318@ = car 317@ speed
        0093: 318@ = integer 318@ to_float
        chatmsg "Speed %f" 318@
        var
        319@ : Float
        318@ : Float
        end
        if and
        318@ > 0.000000
        318@ < 1115000000.000000
        then
        319@ = 318@
        318@ /= 1000.000000
        318@ += 319@
        04BA: set_car 317@ speed_to 318@
        chatmsg "Speed after %f" 318@
        end
        jump @check
    end
Всё равно не работает.

HEEEEEEEEEEEEELP!!
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,982
Когда научишься использовать нормальные переменные, помогу.