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

#saniwe

глаза пофикси
218
107
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я вот так отключал чат, попробуй..

Блокировка
CLEO:
0AF7: samp 0@ = get_base
0@ += 0x5D8A5
0C11: memset destination 0@ value 0x90 size 0x5

Разблокировка
Код:
0AC6: 1@ = label @restore offset
0C10: memcpy destination 0@ source 1@ size 0x5

Код:
:restore
hex
E8 36 7F 00 00
end
 
  • Нравится
Реакции: deleted-user-224036

#saniwe

глаза пофикси
218
107
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

shinoa

Известный
297
206
Как сделать проверку на получение урона? Чтоб после получения урона прыгало на нужный лабел
 

клешь рояль

Известный
1,255
550
CLEO:
{$CLEO}
0000:

0AC6: 0@ = label @Buffer offset
0BE3: raknet setup_incoming_rpc_hook @iRPC
0BDE: pause_thread 0

:iRPC // 0@ 1@ 2@
0BE5: raknet 1@ = get_hook_param {PARAM_PACKETID}1
IF 0039:   1@ == {RPC_ClientMessage}93
THEN 0AB1: call_scm_func @doHookFunc params 3 | {Type1}{BS_TYPE_INT}3 {Type2}{BS_TYPE_INT}3 {Array}0@ | {dwColor}1@ {dwStrLen}2@ |
END

IF 0039:   1@ == {RPC_Chat}101
THEN 0AB1: call_scm_func @doHookFunc params 3 | {Type1}{BS_TYPE_SHORT}2 {Type2}{BS_TYPE_BYTE}0 {Array}0@ | {PlayerID}1@ {byteTextLen}2@ |
END
0BE0: raknet hook_ret TRUE

:doHookFunc
0BE5: raknet 25@ = get_hook_param {PARAM_BITSTREAM}0
0BF2: raknet 26@ = bit_stream 25@ get_read_offset
0BE9: raknet bit_stream 25@ reset_read_pointer

0BE7: raknet 27@ = bit_stream_read 25@ type 0@ // 1
0BE7: raknet 28@ = bit_stream_read 25@ type 1@ // 2
0BE8: raknet bit_stream 25@ read_array 2@ size 28@ // 3
0C1E: array 2@ element 28@ el_size 1 = 0x0
if
0C18: 0 = strstr string1 2@ string2 "[РАЗДАЧА ДОНАТ-РУБЛИ]: Напишите первым"
then
// ставится таймер на 2 секунды
if
0C18: 0 = strstr string1 2@ string2 "[РАЗДАЧА ДОНАТ-РУБЛИ]: Игрок Vasia_Pupkin"  // если в период 2-х секунд появился сообщение что какой либо игрок поймал то его банит
then
// тут получаю его id
wait 1
say "/ban %d 30 ahk" 3@
end

0BED: raknet bit_stream 25@ set_read_offset 26@
0AB2: _ret 2 | {Param1}27@ {Param2}28@ |

:Buffer // 256 + 1
HEX
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00
END

// By DarkP1xel
Как мне поставить таймер? на 31 строке
Как получить ник из 33 строки?
Заранее спасибо кто ответит
 

AquaMod

Известный
32
1
Здравствуйте, я переделывал 1 коордмастер что-бы командой /evotp "название сохраненных координат в ini " переносило на нужную точку
...Вообщем у меня вроде получилось переделать клео но теперь оно не до конца работает.
Суть клео: При написании команды /evotp "название сохр.координат в ini" меня переносит на нужные координаты с нужным название при этом написав в чате:
"[START] TELEPORT..." после этого меня переносит НО когда я первый раз прописываю команду /evotp 1 то меня несет в рандомную сторону а не на сохраненные под номером 1 координаты НО если повторить эту команду /evotp 1 клео остановится и в чат напишет "[OFF] TELEPORT..." после чего еще раз прописав эту же команду /evotp 1 меня несет на нужные координаты однако когда приносит в чате не появляется оповещение о том что клео завершило работу "[OFF] TELEPORT..." то есть у меня не работает остановка клео, я как бы могу бегать и т.п. но клео остановилось не до конца и из-за этого когда после первой удачно телепортации полететь в другое сохраненное место /evotp 2 в чате напишет "[START] TELEPORT..." после чего меня опять понесет в рандомную стороно после чего нужно опять прописать эту команду и потом опять что-бы попасть в нужное место...
Вообщем как-то так! ( Когда я прибываю на место "[START] TELEPORT..." и после еще раз куда либо лечу повторяется "[START] TELEPORT..." хотя должно быть: "[START] TELEPORT..." после того как прилетел "[OFF] TELEPORT..."
Надеюсь что понятно все объяснил и вы сможете мне помочь!
А если конкретнее то мне нужно сделать так что-бы клео полность завершало работу после успешного прибытия на точку назначения и что-бы сразу после этого можно было бы лететь на другие коорды.
Вообщем спрашиваю что я сделал не так и почему клео не полность завершается после успешного телепорта...
Код:
CLEO:
<
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 
0662: printstring "bladee" 

:Noname_12
0001: wait 100 ms 
0AFA:  is_samp_available 
004D: jump_if_false @Noname_12 
0006: 20@ = 0 
0B34: samp register_client_command "evotp" to_label @Noname_805 
0006: 20@ = 0 

:Noname_53
0001: wait 0 ms 
00D6: if 
0039:   20@ == 1 
004D: jump_if_false @Noname_191 
04ED: load_animation "FALL_FALL" 
0208: 13@ = random_float_in_ranges 15.0 23.0 
0605: actor $PLAYER_ACTOR perform_animation "FALL_FALL" IFP "PED" framedelta 5.0 loop 1 lockX 1 lockY 1 lockF 1 time 3000 
04C4: store_coords_to 0@ 1@ 2@ from_actor $PLAYER_ACTOR with_offset 0.0 13@ 0.0 
0001: wait 40 ms 
0AB1: call_scm_func @Noname_744 3 0@ 1@ 2@  

:Noname_191
00A0: store_actor $PLAYER_ACTOR position_to 3@ 4@ 5@ 
0AB6: store_target_marker_coords_to 7@ 8@ 9@ // IF and SET 
0509: 6@ = distance_between_XY 3@ 4@ and_XY 7@ 8@ 
00D6: if and
8031:   not  6@ >= 15.0 
0039:   20@ == 1 
004D: jump_if_false @Noname_340 
02CE: 10@ = ground_z_at 7@ 8@ 999.0 
00A0: store_actor $PLAYER_ACTOR position_to 27@ 28@ 29@ 
0063: 23@ -= 10@ // (float) 
0ACF: show_formatted_styled_text "%f" time 2000 style 1 23@  
0AB1: call_scm_func @Noname_744 3 7@ 8@ 23@  
0006: 20@ = 2 

:Noname_340
00D6: if
0B35: samp 14@ = get_last_command_params 
00D6: if 
0AD4: 12@ = scan_string 14@ format "%s" 14@v  
00D6: if and
0AF2: 7@ = get_float_from_ini_file "cleo\xyz.ini" section 14@v key "X" 
0AF2: 8@ = get_float_from_ini_file "cleo\xyz.ini" section 14@v key "Y" 
0AF2: 9@ = get_float_from_ini_file "cleo\xyz.ini" section 14@v key "Z"  
0002: jump @Noname_628  

/*:Noname_502
0AF3: write_float 0.0 to_ini_file "cleo\xyz.ini" section "Settings" key "X" 
0AF3: write_float 0.0 to_ini_file "cleo\xyz.ini" section "Settings" key "Y" 
0AF3: write_float 0.0 to_ini_file "cleo\xyz.ini" section "Settings" key "Z"   */ 

:Noname_628
00D6: if and
801C:   not  23@ > 10@ // (int) 
0039:   20@ == 2 
004D: jump_if_false @Noname_682 
000B: 29@ += 0.5 
00A1: put_actor $PLAYER_ACTOR at 27@ 28@ 29@ 
0001: wait 50 ms 

:Noname_682
00D6: if and
001C:   29@ > 10@ // (int) 
0039:   20@ == 2 
004D: jump_if_false @Noname_737 
0007: 10@ = 0.0 
0968: actor $PLAYER_ACTOR stop_mouth 
04D7: set_actor $PLAYER_ACTOR locked 0 
0006: 20@ = 0 

:Noname_737
0002: jump @Noname_53 

:Noname_744
0A96: 25@ = actor $PLAYER_ACTOR struct 
0C0C: 26@ = struct 25@ offset 20 size 4 
0C0D: struct 26@ offset 48 size 4 = 0@ 
0C0D: struct 26@ offset 52 size 4 = 1@ 
0C0D: struct 26@ offset 56 size 4 = 2@ 
0AB2: ret 0 

:Noname_805
0001: wait 0 ms 
0B12: 20@ = 20@ XOR 1 
00D6: if 
0039:   20@ == 1 
004D: jump_if_false @Noname_1090 
04D7: set_actor $PLAYER_ACTOR locked 1 
0AF8: samp add_message_to_chat "[START] TELEPORT..." color -1  
00A0: store_actor $PLAYER_ACTOR position_to 15@ 16@ 17@ 
000F: 17@ -= 3.0 
0AB1: call_scm_func @Noname_744 3 15@ 16@ 17@  
000F: 17@ -= 3.0 
0AB1: call_scm_func @Noname_744 3 15@ 16@ 17@  
000F: 17@ -= 3.0 
0AB1: call_scm_func @Noname_744 3 15@ 16@ 17@  
000F: 17@ -= 3.0 
0AB1: call_scm_func @Noname_744 3 15@ 16@ 17@  
000F: 17@ -= 3.0 
0AB1: call_scm_func @Noname_744 3 15@ 16@ 17@  
0007: 17@ = 0.0 
0063: 7@ -= 3@ // (float) 
0063: 8@ -= 4@ // (float) 
0604: get_Z_angle_for_point 7@ 8@ store_to 11@ 
0173: set_actor $PLAYER_ACTOR Z_angle_to 11@ 
0173: set_actor $PLAYER_ACTOR Z_angle_to 11@ 
02EB: restore_camera_with_jumpcut 
0002: jump @Noname_1113 

:Noname_1090
0AF8: samp add_message_to_chat "[OFF] TELEPORT..." color -1  

:Noname_1113
0B43: samp cmd_ret 

>
 
D

deleted-user-224036

Гость
В каких случаях нужно использовать end_thread, а в каких end_custom_thread?
 

#saniwe

глаза пофикси
218
107
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В каких случаях нужно использовать end_thread, а в каких end_custom_thread?

"Никогда не используйте опкод 004E в CLEO скриптах. CLEO скрипты работают независимо от оригинальных скриптов main.scm, поэтому этот опкод нарушит работу игры. Используйте опкод 0A93, если вам нужно остановить CLEO скрипт. При этом, никогда не используйте 0A93 в CLEO миссиях, вместо него используйте 004E чтобы остановить CLEO миссию"
 
  • Нравится
Реакции: deleted-user-224036

хуесос)

Известный
263
64
CLEO:
{$CLEO}
0000:

0AC6: 0@ = label @Buffer offset
0BE3: raknet setup_incoming_rpc_hook @iRPC
0BDE: pause_thread 0

:iRPC // 0@ 1@ 2@
0BE5: raknet 1@ = get_hook_param {PARAM_PACKETID}1
IF 0039:   1@ == {RPC_ClientMessage}93
THEN 0AB1: call_scm_func @doHookFunc params 3 | {Type1}{BS_TYPE_INT}3 {Type2}{BS_TYPE_INT}3 {Array}0@ | {dwColor}1@ {dwStrLen}2@ |
END

IF 0039:   1@ == {RPC_Chat}101
THEN 0AB1: call_scm_func @doHookFunc params 3 | {Type1}{BS_TYPE_SHORT}2 {Type2}{BS_TYPE_BYTE}0 {Array}0@ | {PlayerID}1@ {byteTextLen}2@ |
END
0BE0: raknet hook_ret TRUE

:doHookFunc
0BE5: raknet 25@ = get_hook_param {PARAM_BITSTREAM}0
0BF2: raknet 26@ = bit_stream 25@ get_read_offset
0BE9: raknet bit_stream 25@ reset_read_pointer

0BE7: raknet 27@ = bit_stream_read 25@ type 0@ // 1
0BE7: raknet 28@ = bit_stream_read 25@ type 1@ // 2
0BE8: raknet bit_stream 25@ read_array 2@ size 28@ // 3
0C1E: array 2@ element 28@ el_size 1 = 0x0
if
0C18: 0 = strstr string1 2@ string2 "[РАЗДАЧА ДОНАТ-РУБЛИ]: Напишите первым"
then
// ставится таймер на 2 секунды
if
0C18: 0 = strstr string1 2@ string2 "[РАЗДАЧА ДОНАТ-РУБЛИ]: Игрок Vasia_Pupkin"  // если в период 2-х секунд появился сообщение что какой либо игрок поймал то его банит
then
// тут получаю его id
wait 1
say "/ban %d 30 ahk" 3@
end

0BED: raknet bit_stream 25@ set_read_offset 26@
0AB2: _ret 2 | {Param1}27@ {Param2}28@ |

:Buffer // 256 + 1
HEX
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00
END

// By DarkP1xel
Как мне поставить таймер? на 31 строке
Как получить ник из 33 строки?
Заранее спасибо кто ответит

CLEO:
0C18: 0 = strstr string1 2@ string2 "[РАЗДАЧА ДОНАТ-РУБЛИ]: Игрок %s" 29@ // под 29 переменную ввидели память.
//насчёт ника в id хз смотрел поиск не находил
 
  • Нравится
Реакции: клешь рояль

utmpL

Активный
309
65
помогите пожалуйста,я настолько тупой, что не могу сообразить, как сделать деактивацию
вообщем, например я запустил скрипт, он начинает бежать, но его блять не остановить,пока он не прибежит.
короче, если 13@ == false, тогда он нахуй останавливается и больше никуда не бежит, до дальнейшего включения
CLEO:
{$CLEO .cs}
0000:

repeat
wait 111
until samp.Available()

0B34: samp register_client_command "mycmd" to_label @1

repeat
wait 0

if 13@ == true
then

    repeat
    wait 0

    CALL @CharGoto 4 1768.8 -1934.9 16.6 true
    CALL @CharGoto 4 1760.6 -1934.9 16.6 true


    until false

end
until false


:1
0B12: 13@ = 13@ XOR 1
if 13@ == true
then
0AF8: samp add_message_to_chat "1" color -1
else
0AF8: samp add_message_to_chat "0" color -1
end
samp.CmdRet()



:CharGoto
repeat
   wait 0
   00A0: store_actor $PLAYER_ACTOR position_to 4@ 5@ 2@
   0063: 0@ -= 4@
   0063: 1@ -= 5@
   0604: get_Z_angle_for_point 0@ 1@ store_to 2@
   005B: 0@ += 4@
   005B: 1@ += 5@
   2@ *= 0.01745
   0A96: 4@ = actor $PLAYER_ACTOR struct
   4@ += 0x558
   0A8C: write_memory 4@ size 4 value 2@ virtual_protect 0
   0373: set_camera_directly_behind_player
   if
       3@ == false
   then
       4@ = 0xB73458
       4@ += 0x20
       0A8C: write_memory 4@ size 1 value 0 virtual_protect 0
       4@ = 0xB73458
       4@ += 0x3
       0A8C: write_memory 4@ size 1 value 255 virtual_protect 0
   else
       4@ = 0xB73458
       4@ += 0x20
       0A8C: write_memory 4@ size 1 value 255 virtual_protect 0
       4@ = 0xB73458
       4@ += 0x3
       0A8C: write_memory 4@ size 1 value 255 virtual_protect 0
   end
until 00ED: actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 0.4 0.4 on_foot
0AB2: ret 0