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

SXN7R

Известный
286
83
Помогите с мои говнокодом, крашит когда захожу на сервер.
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
0AC8: 4@ = allocate_memory_size 256
0BE3: raknet setup_incoming_rpc_hook @Noname_28

:Noname_17
0001: wait 0 ms
0002: jump @Noname_17

:Noname_28
0BE5: raknet 0@ = get_hook_param 0
0BE5: raknet 1@ = get_hook_param 1
00D6: if
0039:   1@ == 93
004D: jump_if_false @Noname_233
0BE7: raknet 2@ = bit_stream_read 0@ type 3
0BE7: raknet 3@ = bit_stream_read 0@ type 3
0C11: memset destination 4@ value 0 size 256
0BE8: raknet bit_stream 0@ read_array 4@ size 3@
0C0F: array 4@ element 3@ = 0
0B2B: samp 10@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 11@ = get_player_nickname 10@
0AD3: 12@ = format " %s принимает дозу наркотиков" 11@ 
00D6: if
0C18: 5@ = strstr string1 4@ string2 12@
004D: jump_if_false @Noname_233
0AF9: samp say_msg "/time"
0AF9: samp say_msg "?"
 

:Noname_233
0BE0: raknet hook_ret 1
 

D3.Pheonix

🎹
Модератор
2,817
1,598
Помогите с мои говнокодом, крашит когда захожу на сервер.
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
0AC8: 4@ = allocate_memory_size 256
0BE3: raknet setup_incoming_rpc_hook @Noname_28

:Noname_17
0001: wait 0 ms
0002: jump @Noname_17

:Noname_28
0BE5: raknet 0@ = get_hook_param 0
0BE5: raknet 1@ = get_hook_param 1
00D6: if
0039:   1@ == 93
004D: jump_if_false @Noname_233
0BE7: raknet 2@ = bit_stream_read 0@ type 3
0BE7: raknet 3@ = bit_stream_read 0@ type 3
0C11: memset destination 4@ value 0 size 256
0BE8: raknet bit_stream 0@ read_array 4@ size 3@
0C0F: array 4@ element 3@ = 0
0B2B: samp 10@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 11@ = get_player_nickname 10@
0AD3: 12@ = format " %s принимает дозу наркотиков" 11@
00D6: if
0C18: 5@ = strstr string1 4@ string2 12@
004D: jump_if_false @Noname_233
0AF9: samp say_msg "/time"
0AF9: samp say_msg "?"


:Noname_233
0BE0: raknet hook_ret 1
Ты не выделил память для 12@
 
  • Нравится
Реакции: SXN7R

ollydbg

Известный
163
113
what if i allocate memory to a variable in a loop and forget to free it
example:
while true
wait 0
alloc 20 @ 128
end

game performance will be affected?
 

MAHEKEH

Известный
1,990
494
как правильно вывести иды игроков в определенном транспорте?
там что то типо того должно выходить

Код:
....

0B20: samp 1@ = actor_handle_by_samp_player_id 3@
if or
00DD:   actor 1@ driving_car_with_model #FURA1 // условно фура дальнобойщика - модель машины или её ид
00DD:   actor 1@ driving_car_with_model #FURA2
00DD:   actor 1@ driving_car_with_model #FURA3
then
0AF8: samp add_message_to_chat "Найден Дальнобойщик с Идом 999" color -1 3@ // чат / текстдрав / рендер... там уже мб разберусь куда выводить
 

Lobber

Известный
178
57
как правильно вывести иды игроков в определенном транспорте?
там что то типо того должно выходить
Я полагаю так. Сначала получить авто из зоны, допустим опкодом 0AE2: $car = random_vehicle_near_point..., затем проверить ее модель через
0137: car 0@ model == #FURA1, если есть совпадение, получить водителя опкодом 046C:@ = car @ driver, затем через SF получить его id. ОТносительно пассажиров, есть такая тема как 0432: 18@ = get_actor_handle_from_car $TEMPVAR_ACTOR_CAR passenger_seat 0, для получения количества сидений юзай
01EA: 60@ = car 59@ max_passengers, там простым счетчиком чекать все места. Если вернет -1, значит там никого нема. Также может вернуть FFFFFF, так что не забудь выделить память. Ну и после удачного поиска, т.е не -1, получить ид пассажира как водителя. Могу ошибаться, но этот метод работал в моем скрипте исправно
 

Fizzy

Потрачен
34
12
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Первый раз попробовал написать клео по старым видео урокам Даркпикселя.
Вот моя проблема:
При попытке компиляции пишет: "Неизвестная команда @1."
Вот код:

{$CLEO}
0000:

:1
wait 0
if
0AB0: 0AB0: is_key_pressed 49
if @1
0ACD: show_text_highpriority "Fizzy Very GOOD!" time 5000
jump @1
 

bottom_text

Известный
675
318
Первый раз попробовал написать клео по старым видео урокам Даркпикселя.
Вот моя проблема:
При попытке компиляции пишет: "Неизвестная команда @1."
Вот код:

{$CLEO}
0000:

:1
wait 0
if
0AB0: 0AB0: is_key_pressed 49
if @1
0ACD: show_text_highpriority "Fizzy Very GOOD!" time 5000
jump @1

Вместо второго if должно стоять jf, также ты два раза написал опкод 0AB0
CLEO:
{$CLEO}
0000:

:1
wait 0

if

0AB0: is_key_pressed 49 

jf @1

0ACD: show_text_highpriority "Fizzy Very GOOD!" time 5000

jump @1

Держи исправленный, проверяй. upd: Проверил в игре, работает.
 
  • Нравится
Реакции: Fizzy

Fizzy

Потрачен
34
12
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вместо второго if должно стоять jf, также ты два раза написал опкод 0AB0
CLEO:
{$CLEO}
0000:

:1
wait 0

if

0AB0: is_key_pressed 49

jf @1

0ACD: show_text_highpriority "Fizzy Very GOOD!" time 5000

jump @1

Держи исправленный, проверяй. upd: Проверил в игре, работает.
[/QUOTE

Спасибо тебе))
 

thx killa

Известный
15
8
Первый раз попробовал написать клео по старым видео урокам Даркпикселя.
Вот моя проблема:
При попытке компиляции пишет: "Неизвестная команда @1."
Вот код:

{$CLEO}
0000:

:1
wait 0
if
0AB0: 0AB0: is_key_pressed 49
if @1
0ACD: show_text_highpriority "Fizzy Very GOOD!" time 5000
jump @1
Попытаюсь тебе объяснить так:
CLEO:
{$CLEO} // Формат скрипта
0000: // Нулевой опкод от краша.

:1 // Лабел
wait 0 // Нулевая задержка
if // Если (Усливие. Например если выполнено то-то, то-то)
0AB0: is_key_pressed 49 // Нажата клавиша 49
jf @1 // Если не выполнено условие (В твоём случае если не нажата клавиша), то прыгаем на лабел с названием "1", Если все условия выполнены верно, то продолжаем.
0ACD: show_text_highpriority "Fizzy Very GOOD!" time 5000 //  Выводим на экран текст с задержкой 5 сек.
jump @1 // Возвращаемся на лабел с названием "1"

У тебя в коде ошибка, так как два параметра if (если), но после каждого параметра if должно идти то, что будет если параметр if не выполнен, то есть после каждого if должно идти jf (jump_if_false). Надеюсь тебе было полезно.
 
  • Нравится
Реакции: Fizzy

Lobber

Известный
178
57
Есть ли метод, как получить хп человека, которого я целю из снайперского прицела? SF, не SF, вообще не принципиально
 

Kaktyc007

Известный
166
11
вообщем, почти сделал скрипт, но чутка не получается.
суть, я пишу команду /find [число]
и начинаю поиск этого числа в чате с помощью
Код:
0B75: samp get_chat_string 99 text_to 0@ prefix_to 0 color_to 0 prefix_color_to 0
if
0C29: 1@ = string1 0@ string2 "%s" 20@ //20@ - это 0B35: samp 20@ = get_last_command_params
но у меня не срабатывает условие поиска этого числа, в чем проблема?
 

bottom_text

Известный
675
318
вообщем, почти сделал скрипт, но чутка не получается.
суть, я пишу команду /find [число]
и начинаю поиск этого числа в чате с помощью
Код:
0B75: samp get_chat_string 99 text_to 0@ prefix_to 0 color_to 0 prefix_color_to 0
if
0C29: 1@ = string1 0@ string2 "%s" 20@ //20@ - это 0B35: samp 20@ = get_last_command_params
но у меня не срабатывает условие поиска этого числа, в чем проблема?
У 0C29: три параметра, в твоём случае 1@, 0@ и то, что в кавычках. 20@ не задействуется
 

Kaktyc007

Известный
166
11
У 0C29: три параметра, в твоём случае 1@, 0@ и то, что в кавычках. 20@ не задействуется
а как мне найти в чате число, которое я написал после команды?
объясню по подробнее, делаю МПшку, загадываю число и пишу команду /find [число], мне летят смс и кто угадает мое загаданное число побеждает в МП. Выключение телефона и вывод ника победителя после условия сделал, но не могу сделать рабочее условие
 

Lobber

Известный
178
57
Мне нужно получить здоровье игрока (не меня) через его структуру. Что может быть не так в моем коде?
CLEO:
//////////////////////////////
0AB1: @GET_TARGET_ACTOR 0 0@
    if
    056D:  actor 0@ defined
    then
    0B2B: samp 1@ = get_player_id_by_actor_handle 0@
    0AC8: 2@ = allocate_memory_size 68
    0B24: samp 2@ = get_player_struct_ptr 1@
    0C0C: 3@ = struct 2@ offset 34 size 1 //hp
    
    01E4: show_text_1number_lowpriority GXT 'NUMBER' number 3@ time 200 flag 1  // ~1~
    wait 200
    03D5: remove_text 'NUMBER'