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

cover

Известный
Проверенный
245
268
Хочу сделать прикольное клео. Мне нужно чтоб при вводе команды открывался диалог, в который надо ввести новый ник... Так вот, как считать ник с диалога и потом записать его сюда 0B29: samp set_local_name "player" ?
Код:
{$CLEO .cs}
0000:

repeat
wait 0
until 0AFA:  is_samp_available

while true
wait 0
    if and
    0ab0: 52
    0ab0: 53 
    then
    0AC8: 9@ = allocate_memory_size 128
     SAMP.ShowDialog(65, "Сhange name.", "Введите новое имя:", "Ввести", "Закрыть", 1)
     repeat
     wait 0
     until SAMP.DialogRespond(65, 1@, 0, 9@) 
        if
        1@ == 1
        then
            if
            not 9@ == 0
            then
            {
            Сюда вставляешь функцию смена ника. То что ты ввел в строку диалога записывается в переменную 9 (9@)
            }
            end
        end
    end
    0AC9: free_allocated_memory 9@
end
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Как сделать проверку пустая ли машина
Код:
:VehicleIsFree
// call @VehicleIsFree 2 car 0@ check_driverseat 1@
if 056E: car 0@ defined
then
    01EA: 2@ = car 0@ max_passengers
    0085: 3@ = 2@ // need free seats
    5@ = 0 // count free seats
    if 1@ == true
    then 
        3@++
       
        046C: 6@ = car 0@ driver
        if 6@ == -1
        then 5@++
        end
    end
             
    for 4@ = 0 to 2@ step 1
        if 0431:   car 0@ passenger_seat_free 4@
        then 5@++
        end
    end
   
    if 003B: 3@ == 5@
    then
        0485:  return_true
        0AB2: ret 0
    end  
end

059A:  return_false
0AB2: ret 0

Код:
if 0AB1: call @VehicleIsFree 2 car 0@ check_driverseat true
then
    0AF8: chat "Car is free" -1
end

Не тестил
 
  • Нравится
Реакции: seregazm1

Xample

Новичок
89
1
подскажите опкод сброс анимации? 0687: clear_actor $PLAYER_ACTOR task не помогает
 

v1teka

Новичок
7
0
Добрый день.
Создаю скрипт, который при нажатии на кнопку читал последнее сообщение в чате и снова писал его.
Вот этот код не работает:
Код:
{$CLEO .cs}
gosub @KEY_SCAN                   
:KEY_SCAN                               
wait 0                             
if 0AB0:   key_pressed 187         
jf @KEY_SCAN                       
wait 100                
  2@ = 99
  0B75: samp get_chat_string 2@ text_to 3@ prefix_to 4@ color_to 5@ prefix_color_to 6@
  0AF9: samp say_msg 3@
wait 2000
jump @KEY_SCAN

Подскажите, пожалуйста, в чём проблема?
P.S. Работает SAMPFUNCS v.3.1.2 и CLEO v.4.3
 

cover

Известный
Проверенный
245
268
Добрый день.
Создаю скрипт, который при нажатии на кнопку читал последнее сообщение в чате и снова писал его.
Вот этот код не работает:
Код:
{$CLEO .cs}
gosub @KEY_SCAN                 
:KEY_SCAN                             
wait 0                           
if 0AB0:   key_pressed 187       
jf @KEY_SCAN                     
wait 100              
  2@ = 99
  0B75: samp get_chat_string 2@ text_to 3@ prefix_to 4@ color_to 5@ prefix_color_to 6@
  0AF9: samp say_msg 3@
wait 2000
jump @KEY_SCAN

Подскажите, пожалуйста, в чём проблема?
P.S. Работает SAMPFUNCS v.3.1.2 и CLEO v.4.3

Код:
{$CLEO .cs}
0000:

repeat
wait 300
until 0AFA:  is_samp_available

0AC8: allocate_memory_size 1@ 128
while true
wait 0
    if 0ab0: 52
    then
    0B75: samp get_chat_string 99 text_to 1@ prefix_to 2@ color_to 3@ prefix_color_to 4@ 
    0AF9: samp say_msg 1@
    wait 100
    end
end

Вроде СФ выше надо
 
  • Нравится
Реакции: v1teka

ioncik

Известный
2
0
Как найти Опкод? Ну например я скачал дескриптовый клео. Но когда я пытаюсь отредактировать этот клео появляется ошибка:
Неизвестный опкод 7544 по адресу 401.
Но в моде нету ни номера 7544 и 401. Незнаю как решить проблему.
Если поставить Ignore_Uknown то всё работает(cleo можно пересмотреть).
Я взял клео Get_Kiler
Код с Ignore_Uknown:
Код:
// 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
0662: printstring "by legend2360"
0662: printstring "BlastHack - Cheating is art"

:Noname_50
wait 400
   SAMP.Available
else_jump @Noname_50

:Noname_64
wait 0
if
   Actor.Dead($PLAYER_ACTOR)
else_jump @Noname_249
if
call @Noname_256 1 $PLAYER_ACTOR 1@
else_jump @Noname_249
if and
056D:   actor 1@ defined
051A:   actor $PLAYER_ACTOR damaged_by_actor 1@
else_jump @Noname_249
0470: 2@ = actor 1@ current_weapon
call @Noname_368 1 2@ 2@
3@ = SAMP.GetSAMPPlayerIDByActorHandle(1@)
4@ = SAMP.GetPlayerNickname(3@)
chatmsg "Вас убил {EAEAEA}%s[%d]{FF9933} из {EAEAEA}%s" 16750899 4@ 3@ 2@
054E: clear_actor $PLAYER_ACTOR damage
0467: clear_actor $PLAYER_ACTOR last_weapon_damage

:Noname_249
jump @Noname_64

:Noname_256
0A96: 1@ = actor 0@ struct
1@ += 1892
0A8D: 0@ = read_memory 1@ size 4 virtual_protect 0
if
  0@ > 0
else_jump @Noname_361
0A8D: 8@ = read_memory 12010640 size 4 virtual_protect 0
0AA8: call_function_method 4473552 struct 8@ num_params 1 pop 0 0@ 1@ 
if
056D:   actor 1@ defined
else_jump @Noname_361
ret 1 1@

:Noname_361
ret 1 -1

:Noname_368
0AC6: 1@ = label @Noname_401 offset
0@ *= 19
005A: 1@ += 0@ // (int)
ret 1 1@

:Noname_401
hex
44 75 6B 65 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 42 72 61 73 73 20 4B 6E 75 63 6B 6C 65
end
0073: // (float)
0000: NOP
hex
00 47 6F 6C 66 20 43 6C 75 62 00 00 00 00 00 00
00 00 00 00 4E 69 74 65 20 53 74 69 63 6B 00 00
00 00 00 00 00 00 00 4B 6E 69 66 65 00 00 00 00
00 00 00 00 00 00 00 00 00 00 42 61 73 65 62 61
6C 6C 00 00 00 00 00 00 00 00 00 00 00 53 68 6F
76 65
end
006C: // $ *= @ (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 50 6F 6F 6C 20 43 75
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 4B 61 74 61 6E
end
0061: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 43 68 61 69 6E 73 61
end
0077: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 44 69 6C 64 6F 00 00 00 00 00 00 00 00 00 00
00 00 00 00 44 69 6C 64
end
006F: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
44 69 6C 64
end
006F: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
44 69 6C 64
end
006F: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
46 6C 6F 77 65 72
end
0073: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
43 61 6E 65 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 47 72 65 6E 61 64 65 00 00 00 00 00 00
00 00 00 00 00 00 54 65 61 72 20 47 61 73 00 00
00 00 00 00 00 00 00 00 00 4D 6F 6C 6F 74 6F 76
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 50 69 73 74 6F
end
006C: // $ *= @ (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 53 69 6C 65 6E 63 65
end
0072: // (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 44 65 61 67 6C
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 53 68 6F 74 67 75 6E 00 00 00 00 00 00 00 00
00 00 00 00 53 61 77 6E 4F 66
end
0066: // (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
53 70 61 73 31 32 00 00 00 00 00 00 00 00 00 00
00 00 00 54 65 63
end
0039:    // Note: the incorrect math opcode was used here
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 4D 50 35 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 41 4B 34 37 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 4D
end
0034:   // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 4D 61 63 31 30 00 00 00 00 00 00 00 00 00 00
00 00 00 00 52 69 66 6C
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
53 6E 69 70 65 72 00 00 00 00 00 00 00 00 00 00
00 00 00 52 6F 63 6B 65 74 20 4C 61 75 6E 63 68
65 72 00 00 00 00 48 53 20 52 6F 63 6B 65 74 20
4C 61 75 6E 63 68 65 72 00 46 6C 61 6D 65 74 68
72 6F 77 65
end
0072: // (int)
0000: NOP
0000: NOP
hex
00 4D 69 6E 69 67 75 6E 00 00 00 00 00 00 00 00
00 00 43 34 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 44 65 74 6F 6E 61 74 6F 72 00 00
00 00 00 00 00 00 00 00 53 70 72 61
end
0079: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
46 69 72 65 20 45 78 74 69 6E 67 75 69 73 68 65
end
0072: // (int)
hex
43 61 6D 65 72 61 00 00 00 00 00 00 00 00 00 00
00 00 00 4E 69 67 68 74 76 69 73 69 6F 6E 00 00
00 00 00 00 00 00 49 6E 66 72 61 72 65 64 20 56
69 73 69 6F
end
006E: // (int)
0000: NOP
hex
50 61 72 61 63 68 75 74
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
 

1Kr1K1

Новичок
6
0
Как найти Опкод? Ну например я скачал дескриптовый клео. Но когда я пытаюсь отредактировать этот клео появляется ошибка:
Неизвестный опкод 7544 по адресу 401.
Но в моде нету ни номера 7544 и 401. Незнаю как решить проблему.
Если поставить Ignore_Uknown то всё работает(cleo можно пересмотреть).
Я взял клео Get_Kiler
Код с Ignore_Uknown:
Код:
// 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
0662: printstring "by legend2360"
0662: printstring "BlastHack - Cheating is art"

:Noname_50
wait 400
   SAMP.Available
else_jump @Noname_50

:Noname_64
wait 0
if
   Actor.Dead($PLAYER_ACTOR)
else_jump @Noname_249
if
call @Noname_256 1 $PLAYER_ACTOR 1@
else_jump @Noname_249
if and
056D:   actor 1@ defined
051A:   actor $PLAYER_ACTOR damaged_by_actor 1@
else_jump @Noname_249
0470: 2@ = actor 1@ current_weapon
call @Noname_368 1 2@ 2@
3@ = SAMP.GetSAMPPlayerIDByActorHandle(1@)
4@ = SAMP.GetPlayerNickname(3@)
chatmsg "Вас убил {EAEAEA}%s[%d]{FF9933} из {EAEAEA}%s" 16750899 4@ 3@ 2@
054E: clear_actor $PLAYER_ACTOR damage
0467: clear_actor $PLAYER_ACTOR last_weapon_damage

:Noname_249
jump @Noname_64

:Noname_256
0A96: 1@ = actor 0@ struct
1@ += 1892
0A8D: 0@ = read_memory 1@ size 4 virtual_protect 0
if
  0@ > 0
else_jump @Noname_361
0A8D: 8@ = read_memory 12010640 size 4 virtual_protect 0
0AA8: call_function_method 4473552 struct 8@ num_params 1 pop 0 0@ 1@
if
056D:   actor 1@ defined
else_jump @Noname_361
ret 1 1@

:Noname_361
ret 1 -1

:Noname_368
0AC6: 1@ = label @Noname_401 offset
0@ *= 19
005A: 1@ += 0@ // (int)
ret 1 1@

:Noname_401
hex
44 75 6B 65 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 42 72 61 73 73 20 4B 6E 75 63 6B 6C 65
end
0073: // (float)
0000: NOP
hex
00 47 6F 6C 66 20 43 6C 75 62 00 00 00 00 00 00
00 00 00 00 4E 69 74 65 20 53 74 69 63 6B 00 00
00 00 00 00 00 00 00 4B 6E 69 66 65 00 00 00 00
00 00 00 00 00 00 00 00 00 00 42 61 73 65 62 61
6C 6C 00 00 00 00 00 00 00 00 00 00 00 53 68 6F
76 65
end
006C: // $ *= @ (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 50 6F 6F 6C 20 43 75
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 4B 61 74 61 6E
end
0061: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 43 68 61 69 6E 73 61
end
0077: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 44 69 6C 64 6F 00 00 00 00 00 00 00 00 00 00
00 00 00 00 44 69 6C 64
end
006F: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
44 69 6C 64
end
006F: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
44 69 6C 64
end
006F: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
46 6C 6F 77 65 72
end
0073: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
43 61 6E 65 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 47 72 65 6E 61 64 65 00 00 00 00 00 00
00 00 00 00 00 00 54 65 61 72 20 47 61 73 00 00
00 00 00 00 00 00 00 00 00 4D 6F 6C 6F 74 6F 76
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 50 69 73 74 6F
end
006C: // $ *= @ (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 53 69 6C 65 6E 63 65
end
0072: // (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 44 65 61 67 6C
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 53 68 6F 74 67 75 6E 00 00 00 00 00 00 00 00
00 00 00 00 53 61 77 6E 4F 66
end
0066: // (int)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
53 70 61 73 31 32 00 00 00 00 00 00 00 00 00 00
00 00 00 54 65 63
end
0039:    // Note: the incorrect math opcode was used here
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 4D 50 35 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 41 4B 34 37 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 4D
end
0034:   // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00 4D 61 63 31 30 00 00 00 00 00 00 00 00 00 00
00 00 00 00 52 69 66 6C
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
53 6E 69 70 65 72 00 00 00 00 00 00 00 00 00 00
00 00 00 52 6F 63 6B 65 74 20 4C 61 75 6E 63 68
65 72 00 00 00 00 48 53 20 52 6F 63 6B 65 74 20
4C 61 75 6E 63 68 65 72 00 46 6C 61 6D 65 74 68
72 6F 77 65
end
0072: // (int)
0000: NOP
0000: NOP
hex
00 4D 69 6E 69 67 75 6E 00 00 00 00 00 00 00 00
00 00 43 34 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 44 65 74 6F 6E 61 74 6F 72 00 00
00 00 00 00 00 00 00 00 53 70 72 61
end
0079: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
46 69 72 65 20 45 78 74 69 6E 67 75 69 73 68 65
end
0072: // (int)
hex
43 61 6D 65 72 61 00 00 00 00 00 00 00 00 00 00
00 00 00 4E 69 67 68 74 76 69 73 69 6F 6E 00 00
00 00 00 00 00 00 49 6E 66 72 61 72 65 64 20 56
69 73 69 6F
end
006E: // (int)
0000: NOP
hex
50 61 72 61 63 68 75 74
end
0065: // (float)
0000: NOP
0000: NOP
0000: NOP
0000: NOP
Данный скрипт закриптован(зашифрован) ты его никак не вскроешь, не зная исходника.
И... если ты не понял, то таких опкодов не существует.