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

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
CLEO:
{$CLEO}
0000: NOP

repeat
    wait 0
until samp.Available
0B34: samp register_client_command "tp_kyriatnik" to_label @tp
0BDE: pause_thread 0

:tp
Actor.PutAt($PLAYER_ACTOR, 2487.47, -1668.67,13.3438)
samp.CmdRet()
 

_JeT_

Новичок
24
0
Есть у кого CLEO что-то вроде WH, только через текстуры и на расстоянии видны просто ID, без ников?
 

Kristyan

Известный
165
16
Короче хочу взят команду " /accept repair 92 " с чата и после нажатие клавише F3 срабатывало команда которое взял " /accept repair 92 " , но нечего не случается. Номер в команде это ID.


ne4XgVl.png

PHP:
{$CLEO}
0001: wait 0 ms
while not SAMP.Available()
    wait 400
end
wait 2000
if
key_down 114
then
0AC8: 0@ = allocate_memory_size 256
0AD3: 0@ = format " repair 512 "
0AC8: 1@ = allocate_memory_size 24
0AA5: call 0x8220AD num_params 4 pop 4 params 2@v 1@ "%s %d" 0@
// 2@ - id
// 1@ - nick
// 0@ - string
0AF9: samp say_msg "/accept %s %d" 1@ 2@
0AC9: free_allocated_memory 0@
0AC9: free_allocated_memory 1@
end
0A93: end_custom_thread
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как креативно намекнуть ему, что он забыл ебнуть цикл?
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
клео скрипты не работают вроде даже когда ты в меню игры но да ладно

CLEO:
0B2B: samp 1@ = get_player_id_by_actor_handle $player_actor
0B5C:  samp is_player 1@ paused
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я так и не понял что ты хочешь, если ты хочешь считать команду с чата
то где собсна опкод получения строки чата? да и странно ты как-то сканируешь короче пипец все не так
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите почему игнорируется HEX
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end
0B34: "тест" @cmd
0BDE: pause_thread 0

:cmd
0AC6: 3@ label @Hex
call @scm 2 1024 1 | 4@
format 4@ "Привет%cПока" 10
0B3B: samp show_dialog id 17 caption "Test" text 4@ button_1 "Ок" button_2 "" style 0
free 4@
Samp.CmdRet()

:scm
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
ret 1 2@

:Hex
hex
" " A
" " A
" " A
"Телепорт 1" A
"Телепорт 2" A
"Телепорт 3" 00
end

А этот скрипт работает
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_2
0001: wait 400 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B34: samp register_client_command "fskill" to_label @Noname_35
0BDE: pause_thread 0

:Noname_35
0B2B: samp 2@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 1@ = get_player_nickname 2@
0AC6: 3@ = label @Noname_219 offset
0AB1: call_scm_func @Noname_185 2 1024 1 4@ 
0AD3: 4@ = format "{c66163}Навык стрельбы игрока: %s[%d]%s" 1@ 2@ 3@ 
0B3B: samp show_dialog id 17 caption "{b5aaad}Статистика" text 4@ button_1 "{b5b6b5}Ок" button_2 "" style 0
0AC9: free_allocated_memory 4@
0B43: samp cmd_ret

:Noname_185
005A: 0@ += 1@ // (int)
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
0AB2: ret 1 2@

:Noname_219
hex
0A 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 0A 7B 66 66 66 66 66
66 7D 50 69 73 74 6F 6C 3A 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 7B 31 30 66
37 34 32 7D 30 2F 31 30 30 25 0A 7B 66 66 66 66
66 66 7D 44 65 73 65 72 74 20 45 61 67 6C 65 3A
20 20 20 20 20 20 20 20 20 20 7B 31 30 66 37 34
32 7D 30 2F 31 30 30 25 0A 7B 66 66 66 66 66 66
7D 53 68 6F 74 47 75 6E 3A 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 7B 31 30 66 37 34 32
7D 30 2F 31 30 30 25 0A 7B 66 66 66 66 66 66 7D
4D 50 35 3A 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 7B 31 30 66 37 34 32 7D
30 2F 31 30 30 25 0A 7B 66 66 66 66 66 66 7D 41
4B 34 37 3A 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 7B 31 30 66 37 34 32 7D 30
2F 31 30 30 25 0A 7B 66 66 66 66 66 66 7D 4D 34
41 31 3A 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 7B 31 30 66 37 34 32 7D 30 2F 31
30 30 25 0A 7B 66 66 66 66 66 66 7D 53 6E 69 70
65 72 3A 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 7B 31 30 66 37 34 32 7D 30 2F 31
30 30 25 0A 7B 66 66 66 66 66 66 7D 53 49 4C 45
4E 43 45 44 3A 20 20 20 20 20 20 20 20 20 20 20
20 20 7B 31 30 66 37 34 32 7D 30 2F 31 30 30 25
0A 7B 66 66 66 66 66 66 7D 55 5A 49 3A 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 7B 31 30 66 37 34 32 7D 30 2F 31 30 30 25 00
48 45 00
end
 
Последнее редактирование:

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ты 3@ не форматируешь в диалог
 
  • Нравится
Реакции: romanblinov2013 и LaRossa

T1cKz

Известный
595
245
Как дамажить объект от игрока? Типа я стреляю - по нему попадания идут(что-то типа тира)
 

_JeT_

Новичок
24
0
В чём может быть проблема, сделал CLEO всё хорошо, но через минут 30-40 игры FPS начинает до 30-40 падать, именно с этим CLEO.
(В СLEO много диалоговых окон и текста)
 
1,417
1,037
Как дамажить объект от игрока? Типа я стреляю - по нему попадания идут(что-то типа тира)
узнавай координаты объекта и отправляй на эти координаты выстрел через буллет дату

В чём может быть проблема, сделал CLEO всё хорошо, но через минут 30-40 игры FPS начинает до 30-40 падать, именно с этим CLEO.
(В СLEO много диалоговых окон и текста)
кидай код.
 

Kotovasya

Участник
85
13
CLEO:
{$CLEO}
0000:
if not 29@ = Samp.Base()
then 0A93: end_custom_thread
end
repeat
    wait 400
until Samp.Available()
wait 1250
0BE3: raknet setup_incoming_rpc_hook @zaxvat
0BE3: raknet setup_incoming_rpc_hook @proval
0B6D: render 30@ = create_font "Arial" height 18 flags 13
alloc 4@ 64
WHILE TRUE
wait 0
    if 10@ == 1
    then
     5@ = 60
     6@ = 9
     0C74: 1@ = create_timer_interval 1000 on_label @sec
     0C74: 2@ = create_timer_interval 60000 on_label @min
        repeat
            wait 0
            0AD3: 4@ = format " Осталось: %d:%d " 6@ 5@
            0B6F: render font 30@ draw_text 4@ pos 170 170 color 0xFFFFFFFF
            if and
             5@ > -1
             6@ > -1
            then
             28@ = true  
            end
        until 28@ == true
    end
END
                    
:min
6@ -= 1
Samp.CmdRet()
:sec
5@ -= 1
if and
 5@ == 0
 6@ > -1
then
 5@ +=60
end
Samp.CmdRet()
:zaxvat
0BE5: raknet 0@ = get_hook_param 1
00D6: if
0039:   0@ == 93
then
    0BE5: raknet 1@ = get_hook_param 0
    0BEB: raknet bit_stream 1@ ignore_bits 32
    0BE7: raknet 2@ = bit_stream_read 1@ type 3
    0BE8: raknet bit_stream 1@ read_array 3@ size 2@
    0C1E: array 3@ element 2@ el_size 1 = 0
  
    if or
        0C18: 2@ = strstr string1 3@ string2 "Тра тра"
        0C18: 2@ = strstr string1 3@ string2 "тру тру"
    then
        10@ = 1
    end
end
0BE0: raknet hook_ret 1
:proval
0BE5: raknet 0@ = get_hook_param 1
00D6: if
0039:   0@ == 93
then
    0BE5: raknet 1@ = get_hook_param 0
    0BEB: raknet bit_stream 1@ ignore_bits 32
    0BE7: raknet 2@ = bit_stream_read 1@ type 3
    0BE8: raknet bit_stream 1@ read_array 3@ size 2@
    0C1E: array 3@ element 2@ el_size 1 = 0
  
    if
        0C18: 2@ = strstr string1 3@ string2 "фак"
    then
        10@ = 0
    end
end
0BE0: raknet hook_ret 1

1. Игра крашится при заходе
2. Нельзя как-то более адекватной сделать проверку с несколькими условиями в циклах?
3. По теории хук можно сделать один?
 
  • Нравится
Реакции: ShadowBroker
1,417
1,037
CLEO:
{$CLEO}
0000:
if not 29@ = Samp.Base()
then 0A93: end_custom_thread
end
repeat
    wait 400
until Samp.Available()
wait 1250
0BE3: raknet setup_incoming_rpc_hook @zaxvat
0BE3: raknet setup_incoming_rpc_hook @proval
0B6D: render 30@ = create_font "Arial" height 18 flags 13
alloc 4@ 64
WHILE TRUE
wait 0
    if 10@ == 1
    then
     5@ = 60
     6@ = 9
     0C74: 1@ = create_timer_interval 1000 on_label @sec
     0C74: 2@ = create_timer_interval 60000 on_label @min
        repeat
            wait 0
            0AD3: 4@ = format " Осталось: %d:%d " 6@ 5@
            0B6F: render font 30@ draw_text 4@ pos 170 170 color 0xFFFFFFFF
            if and
             5@ > -1
             6@ > -1
            then
             28@ = true  
            end
        until 28@ == true
    end
END
                    
:min
6@ -= 1
Samp.CmdRet()
:sec
5@ -= 1
if and
 5@ == 0
 6@ > -1
then
 5@ +=60
end
Samp.CmdRet()
:zaxvat
0BE5: raknet 0@ = get_hook_param 1
00D6: if
0039:   0@ == 93
then
    0BE5: raknet 1@ = get_hook_param 0
    0BEB: raknet bit_stream 1@ ignore_bits 32
    0BE7: raknet 2@ = bit_stream_read 1@ type 3
    0BE8: raknet bit_stream 1@ read_array 3@ size 2@
    0C1E: array 3@ element 2@ el_size 1 = 0
  
    if or
        0C18: 2@ = strstr string1 3@ string2 "Тра тра"
        0C18: 2@ = strstr string1 3@ string2 "тру тру"
    then
        10@ = 1
    end
end
0BE0: raknet hook_ret 1
:proval
0BE5: raknet 0@ = get_hook_param 1
00D6: if
0039:   0@ == 93
then
    0BE5: raknet 1@ = get_hook_param 0
    0BEB: raknet bit_stream 1@ ignore_bits 32
    0BE7: raknet 2@ = bit_stream_read 1@ type 3
    0BE8: raknet bit_stream 1@ read_array 3@ size 2@
    0C1E: array 3@ element 2@ el_size 1 = 0
  
    if
        0C18: 2@ = strstr string1 3@ string2 "фак"
    then
        10@ = 0
    end
end
0BE0: raknet hook_ret 1

1. Игра крашится при заходе
2. Нельзя как-то более адекватной сделать проверку с несколькими условиями в циклах?
это действительно провал.
не обязательно регистрировать несколько инкаминг хуков, можно делать проверку на название(ид) рпц в одном хуке. Зачем тебе проверка на минуты? -1 секунда будет только в том случае, если таймер закончит работу. Вопрос - Вопросы по CLEO-скриптингу(https://blast.hk/threads/13410/page-334#post-167192) вот пример рендера + таймера
 

Kotovasya

Участник
85
13
это действительно провал.
не обязательно регистрировать несколько инкаминг хуков, можно делать проверку на название(ид) рпц в одном хуке. Зачем тебе проверка на минуты? -1 секунда будет только в том случае, если таймер закончит работу. Вопрос - Вопросы по CLEO-скриптингу(https://blast.hk/threads/13410/page-334#post-167192) вот пример рендера + таймера
CLEO:
{$CLEO}
0000:
if not 29@ = Samp.Base()
then 0A93: end_custom_thread
end
repeat
    wait 400
until Samp.Available()
wait 1250
0BE3: raknet setup_incoming_rpc_hook @stroka
0B6D: render 30@ = create_font "Arial" height 18 flags 13
alloc 4@ 128
WHILE TRUE
wait 0
    if 10@ == 1
    then
     5@ = 60
     6@ = 9
     0C74: 1@ = create_timer_interval 1000 on_label @sec
        repeat
            wait 0
            0AD3: 4@ = format " Осталось: %d:%d " 6@ 5@
            0B6F: render font 30@ draw_text 4@ pos 170 170 color 0xFFFFFFFF
        until 5@ > -1
    end
END
                    
:sec
5@ -= 1
if and
 5@ == 0
 6@ > -1
then
 5@ +=60
 6@ -= 1
end
Samp.CmdRet()

:stroka
0BE5: raknet 0@ = get_hook_param 1
00D6: if
0039:   0@ == 93
then
    0BE5: raknet 1@ = get_hook_param 0
    0BEB: raknet bit_stream 1@ ignore_bits 32
    0BE7: raknet 2@ = bit_stream_read 1@ type 3
    0BE8: raknet bit_stream 1@ read_array 3@ size 2@
    0C1E: array 3@ element 2@ el_size 1 = 0
  
    if or
        0C18: 2@ = strstr string1 3@ string2 "текст1"
        0C18: 2@ = strstr string1 3@ string2 "текст2"
    then
        10@ = 1
    end
    if
        0C18: 2@ = strstr string1 3@ string2 "текст3"
    then
        10@ = 0
    end
end
0BE0: raknet hook_ret 1

Так если я правильно понял. Таймер на минуты еще только убрал. Но крашит все равно