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

D[a]Ni

Участник
63
3
Здорова,народ столкнулся с проблемой ,хочу что бы при смерти персонажа воспроизводился звук вот код:
CLEO:
{$CLEO .cs}

0000: NOP

:NONAME_2
wait 0
if and
05BE: AS_actor $PLAYER_ACTOR die
0@ = Audiostream.Load("CLEO\MP3_2\2.MP3")
jf @NONAME_2
wait 0
Audiostream.PerformAction(0@, PLAY)
wait 8000
Audiostream.PerformAction(0@, STOP)
Audiostream.Release(0@)
jump @NONAME_2
добавь проверку в конце что игрок жив, проще же будет. И что не так у тебя именно
 

Skokk

Новичок
10
0
Народ подскажите опкод ,который при запуске сампа пишет в чат ,кто сделал скрипт например Reconnect by Niko
 

D[a]Ni

Участник
63
3
Как можно получить номер телефона? ибо если строка длинная, он не реагирует
CLEO:
repeat
wait 0
until 0AFA:

0BE3: raknet setup_incoming_rpc_hook @hook


WHILE TRUE
wait 0
IF and
0AB0:   key_pressed 88
not 9@ == 0
8B21: not is_chat_opened
8B4C: not is_dialog_active -1
then
alloc 10@ 256
format 10@ "/f %d " 9@
0B79: samp set_chat_input_enabled true
0B76: samp set_chat_input_text 10@
free 10@
wait 150
end
END




:hook
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID

if
1@ == RPC_SCRCLIENTMESSAGE
then
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT
    0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT
    0AC8: 4@ = allocate_memory_size 256
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@
    0C0D: struct 4@ offset 3@ size 1 = 0
    if and
    0C29: 5@ = strstr string1 4@ string2 "Объявление:"
    0C29: 5@ = strstr string1 4@ string2 "Отправитель:"
    then
    free 9@
    alloc 6@ 256
    0AD4: 6@ = scan_string 4@ format "Объявление: %s | Отправил: %s [т.%d]" 7@ 8@ 9@
    0AC9: free_allocated_memory 6@
    end
    0AC9: free_allocated_memory 4@
end
0BE0: raknet hook_ret true
CLEO:
 0AC8: 7@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 64
0AC8: 9@ = allocate_memory_size 64                             
0AA5: call 0x8220AD num_params 5 pop 5 params 9@ 8@ 7@ "Объявление: %s | Отправил: %s [т.%s]" 4@
и по идеи в 9@ будет твой номер
 
Последнее редактирование модератором:

Shovel

Известный
45
9
Такой вопрос. Каким опкодом записать что-то вроде "10@ = 0@ + 0.5" Просто нужно в переменную записать переменная + любое число.
 

woksonal

Известный
Проверенный
268
154
Такой вопрос. Каким опкодом записать что-то вроде "10@ = 0@ + 0.5" Просто нужно в переменную записать переменная + любое число.
для целых чисел
CLEO:
0085: 10@ = 0@ // (int)
0058: 10@ += 123 // (int)

для чисел с плавающей точкой
CLEO:
0087: 10@ = 0@ // (float)
0059: 10@ += 0.5 // (float)

или можно сделать так

для целых чисел
CLEO:
var
10@:int
0@:int
end

10@ = 0@
10@ += 123

для чисел с плавающей точкой
CLEO:
var
10@:float
0@:float
end

10@ = 0@
10@ += 0.5

и в следующий раз читай справку в саннибюлдере(F12)
 
  • Нравится
Реакции: Shovel

Freym

Известный
487
203
Здравствуйте, хочу спросить, как сделать скан своего id в табе и потом преобразование в %d
 

astap_

Известный
Всефорумный модератор
626
596
Здравствуйте, хочу спросить, как сделать скан своего id в табе и потом преобразование в %d
CLEO:
0B2B: samp 0@ = get_player_id_by_actor_handle $PLAYER_ACTOR
format 1@ = "%d" 0@ // в данном случае эта строка не имеет смысла, сделано для наглядности.
 

MrCold

Активный
364
118
Можете пожалуйста помочь, я не понимаю, как работает эта функция, можете с помощью коментариев все строки пояснить:
CLEO:
:Label0002C9
00D6: if
0039:   21@ == 1
004D: jump_if_false @Label0003AB
0BE5: raknet 14@ = get_hook_param 1
00D6: if
0039:   14@ == 115
004D: jump_if_false @Label0003AB
0BE5: raknet 15@ = get_hook_param 0
0BE7: raknet 16@ = bit_stream_read 15@ type 1
0BE7: raknet 17@ = bit_stream_read 15@ type 2
0BE7: raknet 18@ = bit_stream_read 15@ type 3
0BE7: raknet 19@ = bit_stream_read 15@ type 3
0BE7: raknet 20@ = bit_stream_read 15@ type 3
00D6: if and
0039:   16@ == 0
0039:   19@ == 0
0B23:  samp is_player_connected 17@
004D: jump_if_false @Label0003AB
00D6: if
8B5C:   not samp is_player 17@ paused
004D: jump_if_false @Label0003AB
0BCB: samp send_give_damage playerid 17@ damage 6.6 weapon 0 bodypart 20@
0AD0: show_formatted_text_lowpriority "~b~Damage: %d" time 1000 17@
0BE0: raknet hook_ret 0
 

D3.Pheonix

🎹
Модератор
2,814
1,593
Можете пожалуйста помочь, я не понимаю, как работает эта функция, можете с помощью коментариев все строки пояснить:
CLEO:
:Label0002C9
00D6: if
0039:   21@ == 1
004D: jump_if_false @Label0003AB
0BE5: raknet 14@ = get_hook_param 1
00D6: if
0039:   14@ == 115
004D: jump_if_false @Label0003AB
0BE5: raknet 15@ = get_hook_param 0
0BE7: raknet 16@ = bit_stream_read 15@ type 1
0BE7: raknet 17@ = bit_stream_read 15@ type 2
0BE7: raknet 18@ = bit_stream_read 15@ type 3
0BE7: raknet 19@ = bit_stream_read 15@ type 3
0BE7: raknet 20@ = bit_stream_read 15@ type 3
00D6: if and
0039:   16@ == 0
0039:   19@ == 0
0B23:  samp is_player_connected 17@
004D: jump_if_false @Label0003AB
00D6: if
8B5C:   not samp is_player 17@ paused
004D: jump_if_false @Label0003AB
0BCB: samp send_give_damage playerid 17@ damage 6.6 weapon 0 bodypart 20@
0AD0: show_formatted_text_lowpriority "~b~Damage: %d" time 1000 17@
0BE0: raknet hook_ret 0
Почитай и всё поймешь сразу
https://blast.hk/wiki/samp:rpc_givetakedamage#функции
https://blast.hk/wiki/opcodes:0bcc


народ подскажите опкод для проверки на хп 0
CLEO:
0226: 0@ = actor $PLAYER_ACTOR health
if
0@ == 0
CLEO:
if
0118:   actor $PLAYER_ACTOR dead
 

donbasser1488

Новичок
1
0
Как сделать так чтобы при нажатии или удерживании клавиши, скрипт сработал всего один раз в конечном цикле, и повторно можно было активировать звук только при новом нажатии клавиши так же один раз? Например: я нажимаю на Num 0 чтобы проиграть звук, но он проигрывается много раз. И чтобы он проигрался всего 1 раз надо постараться как можно быстрее отпустить кнопку.
 

AXE_CAMERON

Участник
66
0
Как сделать так чтобы при нажатии или удерживании клавиши, скрипт сработал всего один раз в конечном цикле, и повторно можно было активировать звук только при новом нажатии клавиши так же один раз? Например: я нажимаю на Num 0 чтобы проиграть звук, но он проигрывается много раз. И чтобы он проигрался всего 1 раз надо постараться как можно быстрее отпустить кнопку.
0C89: key_just_pressed 0x32 юзай
 

The Spark

Известный
653
670
Как сделать кнопку по типу "Обратная связь". Как стеллер, но отправлять мне нужно его вопрос
 

Bananious

Известный
238
17
У меня есть бот, он нормально работает, останавливается когда персонаж устал и когда он полностью отдохнет продолжает работу. Мне нужно чтобы он не ждал когда он полностью отдохнет а когда будет 40% он продолжил работу. Есть ли опкод который будет читать текстдрав?
u5m6FWc.png