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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Чето короче не проверил и подумал, что все будет оки, но на практике оказалось, что нихуя не работает. (Постоянно пишет, что двигается)
Вот фулл код, я мб че не добавил?
Проверь сначала на $PLAYER_ACTOR
 

Enjoy

Новичок
Проверенный
164
11
Тхэнкью, посаны, что откликнулись. Проблема была в том, что юзал не тот адрес.(хотя один от другого описанием ничем не отличается)
Вот код, проверяет и с ног и в машине.
Код:
{$CLEO .cs}

Thread "Test"

while not SAMP.Available()
wait 300
end

0B34: samp register_client_command "check" to_label @cmd

0BDE: pause_thread 0

:cmd
0B35: samp 0@ = get_last_command_params
0AD4: 1@ = scan_string 0@ format "%d" 2@
if 1@ > 0
then
    0B20: samp 3@ = actor_handle_by_samp_player_id 2@
    if Actor.Driving(3@)
    then
        03C0: 6@ = actor 3@ car 
        0A97: 7@ = car 6@ struct
        7@ += 0x49C
        0A8D: 8@ = read_memory 7@ size 4 virtual_protect 0
        if 8@ == 0
        then
            0AF8: samp add_message_to_chat "Igrok stoit" color -1
        else
            0AF8: samp add_message_to_chat "Igrok dvigaetsya" color -1
        end  
    else
        0A96: 4@ = actor 3@ struct
        4@ += 0x534
        0A8D: 5@ = read_memory 4@ size 4 virtual_protect 0
        if 5@ == 1
        then
            0AF8: samp add_message_to_chat "Igrok stoit" color -1
        else
            0AF8: samp add_message_to_chat "Igrok dvigaetsya" color -1
        end
    end
end
SAMP.CmdRet()
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Тхэнкью, посаны, что откликнулись. Проблема была в том, что юзал не тот адрес.(хотя один от другого описанием ничем не отличается)
Вот код, проверяет и с ног и в машине.
Отличаются)
Код:
0x534 = 1332 
0x15C = 348
 
  • Нравится
Реакции: Enjoy

DarkExorcist

Новичок
77
3
Как найти координаты на метр вперед, относительно координат актера.(имею ввиду на один метр в ту сторону, в которую смотри актер(ну по углу поворота)).
 

Enjoy

Новичок
Проверенный
164
11
Как объекты юзать, трудно дается очень запотел.
Постоянно при спавне я начинаю бегать в скине сиджея и все мелькает.
Код:
while true
wait 0
Model.Load(ID)
if Model.Available(ID)
then
    0@ = Object.Create(ID, x, y, z)
    // И т.д.
end
 

san0

Известный
Друг
411
267
Как объекты юзать, трудно дается очень запотел.
Постоянно при спавне я начинаю бегать в скине сиджея и все мелькает.
Код:
while true
wait 0
Model.Load(ID)
if Model.Available(ID)
then
    0@ = Object.Create(ID, x, y, z)
    // И т.д.
end
Код:
Model.Load(ID)
while not Model.Available(ID)
    wait 0
end
Object.Create(params)
Model.Destroy(ID)
 

san0

Известный
Друг
411
267
Чет нихуя, я какой-то косорукий.
Код:
Model.Load(11089)

while not Model.Available(11089)
wait 0
end

0B50: samp 1@ = object_handle_by_id 11089
Object.Create(1@, 11089, -1966.96, 120.58, 30.69)
Model.Destroy(11089)
Код:
{$CLEO}
{$NOSOURCE}

0000:

const
    str = 1@
    oID = 2@
    x = 3@
    y = 4@
    z = 5@
    hHandle = 6@
    NULL = 0x0
end

0B34: samp register_client_command "obj" to_label @cmd

0BDE: pause_thread 0

:cmd
0B35: samp str = get_last_command_params
if 0AD4: str = scan_string str format "%d" oID
then
    if hHandle > 0
    then
        Object.Destroy(hHandle)
        0C11: memset destination hHandle value NULL size 0x4
        hHandle = 0
        0AF8: samp add_message_to_chat "<dest>Destroy" color -1
    else 
        Model.Load(oID)
        if 8248: not model oID available
        then
            0AF8: samp add_message_to_chat "<model>Problem" color -1
            jump @return
        end
        04C4: store_coords_to x y z from_actor $PLAYER_ACTOR with_offset 0.0 0.0 1.0
        Object.Create(hHandle, oID, x, y, z)
        Model.Destroy(oID)
        0AF8: samp add_message_to_chat "<create> Params: oID %d hHandle %d XYZ %f %f %f" color -1 oID hHandle x y z
    end
else
    0AF8: samp add_message_to_chat "<cmd>Problem" color -1
end
jump @return

:return
0B43: samp cmd_ret

sa-mp-000.png
 

Enjoy

Новичок
Проверенный
164
11
Код:
{$CLEO}
{$NOSOURCE}

0000:

const
    str = 1@
    oID = 2@
    x = 3@
    y = 4@
    z = 5@
    hHandle = 6@
    NULL = 0x0
end

0B34: samp register_client_command "obj" to_label @cmd

0BDE: pause_thread 0

:cmd
0B35: samp str = get_last_command_params
if 0AD4: str = scan_string str format "%d" oID
then
    if hHandle > 0
    then
        Object.Destroy(hHandle)
        0C11: memset destination hHandle value NULL size 0x4
        hHandle = 0
        0AF8: samp add_message_to_chat "<dest>Destroy" color -1
    else
        Model.Load(oID)
        if 8248: not model oID available
        then
            0AF8: samp add_message_to_chat "<model>Problem" color -1
            jump @return
        end
        04C4: store_coords_to x y z from_actor $PLAYER_ACTOR with_offset 0.0 0.0 1.0
        Object.Create(hHandle, oID, x, y, z)
        Model.Destroy(oID)
        0AF8: samp add_message_to_chat "<create> Params: oID %d hHandle %d XYZ %f %f %f" color -1 oID hHandle x y z
    end
else
    0AF8: samp add_message_to_chat "<cmd>Problem" color -1
end
jump @return

:return
0B43: samp cmd_ret

sa-mp-000.png

Одно дело сидеть и радоваться, что все работает, а другое - понять.
Ну короч, спросить хотел какую роль играет опкод 0C11 и зачем юзать адреса?
Я прост глянул примерчики, так там все было на уровне:
- загрузил в буфер объект
- проверил существует ли он
- создал объект на координатах
 

hnnssy

Известный
Друг
2,684
2,746
Одно дело сидеть и радоваться, что все работает, а другое - понять.
Ну короч, спросить хотел какую роль играет опкод 0C11 и зачем юзать адреса?
Я прост глянул примерчики, так там все было на уровне:
- загрузил в буфер объект
- проверил существует ли он
- создал объект на координатах
0C11 заполняет участок памяти определенным значением, обычно после выделения памяти используется для заполнения её нулями.
 
  • Нравится
Реакции: Enjoy

iAmerican

Известный
Друг
615
257
Можно ли как то сделать в скрипте выгрузку этого же скрипта по команде? Или определенных тхреадов
 
Последнее редактирование:

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,958
Ребят чёт голова болит не могу сообразить, что тут не так:

PHP:
0AC8: 14@ = allocate_memory_size 512 
0AC8: 28@ = allocate_memory_size 512 
0AD3: 14@ = format "CLEO\iTz_XG4M3R\XProjectByiTz_XG4M3R.INI"  
0AD3: 28@ = format "https:%c/www.dropbox.com/s/7bhdkbikrjp06nu/XProjectByiTz_XG4M3R.INI?dl=1" 47
0AB1: call_scm_func @ByiTz_XG4M3R_46819 2 14@ 28@

PHP:
:ByiTz_XG4M3R_46819
0001: wait 0 ms
0AA2: 6@ = load_library "Urlmon.DLL"
0AA4: 15@ = get_proc_address "URLDownloadToFileA" library 6@
0AA7: call_function 15@ num_params 5 pop 0 0 0 14@ 28@ 0 21@
0AA3: free_library 6@
0AB2: ret 0

Выдаёт:

PHP:
Warning(s007): Exception 0xC0000005 at 0x6DEAE278
Warning(s007): Exception 0xC0000005 at 0x0
 
Последнее редактирование: