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

Избранный

Новичок
198
30

  1. Скопировать всё, что до первого слова и вставить это в новый буфер;
    Вставить новое слово в буфер;
    Скопировать остальную часть и вставить в тот буфер, где находится почти вся замененная строка.
слушай, какими опкодами все это делать? про скопировать все до первого слова, я через этот опкод получил указатель 0C16: 2@ = strtok string1 2@ string2 1@ и как мне его использовать?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,453
слушай, какими опкодами все это делать? про скопировать все до первого слова, я через этот опкод получил указатель 0C16: 2@ = strtok string1 2@ string2 1@ и как мне его использовать?
Код:
0@ = "Номинация происходит в данном кабинете"
1@ = strlen("происходит")
2@ = strstr(0@, "происходит")
3@ = 0@ - 2@ // Размер строки до "происходит"

4@ = new buffer[4096] // Ex
strncpy(4@, 0@, 3@) // Копируем в новый буфер первые 3@ символа из 0@ в 4@
strcpy(4@, "проходит") // -> "Номинация проходит"
2@ += 1@ // Вычисляем оставшуюся часть строки
5@ = strlen(2@) // и её размер
strncpy(4@, 2@, 5@) // Копируем в новый буфер
// 4@ - edited string = "Номинация проходит в данном кабинете"
Примерно так.
 
  • Нравится
Реакции: Избранный

АндрейЧотак

Известный
80
10
Вопрос такой: возьмём папку cleo в ней есть скрипт 1.cs и есть скрипт который находится по адресу cleo\project\sc\2.cs, скрипты запускаются только в том случае если они находятся в папке клео и не в какой больше другой директории. Так вот, как мне запустить скрипт 2.cs с помощью скрипта 1.cs. Пытался так - 0A92: create_custom_thread "cleo\project\sc\2.cs" крашит!
 

AWRage

Активный
642
141
Как сделать, чтобы при вводе команды, мой автомобиль был нацелен на автомобиль, ID которого указан в команде.
Не получается чет.
CLEO:
:1
0B35: 0@ = get_last_command_params
0C1A: 0@ = atoi 0@

0AFF: 1@ = car_handle_by_samp_vehicle_id 0@
0407: store_coords_to 2@ 3@ 4@ from_car 1@ with_offset 0.0 0.0 0.0
0604: get_Z_angle_for_point 2@ 3@ store_to 4@
03C0: 5@ = actor $PLAYER_ACTOR car
0175: set_car 5@ Z_angle_to 4@
cmdret
 

san0

Известный
Друг
411
267
Вопрос такой: возьмём папку cleo в ней есть скрипт 1.cs и есть скрипт который находится по адресу cleo\project\sc\2.cs, скрипты запускаются только в том случае если они находятся в папке клео и не в какой больше другой директории. Так вот, как мне запустить скрипт 2.cs с помощью скрипта 1.cs. Пытался так - 0A92: create_custom_thread "cleo\project\sc\2.cs" крашит!
0A92: create_custom_thread "\project\sc\2.cs"
 

hnnssy

Известный
Друг
2,684
2,748
Как сделать команду с текстовыми параметрами? Например, вместо /cmd 1 я ввожу /cmd one, и чтоб оно заработало.
if 0@ == "one" - не работает.

Или если так нереально, то как присвоить переменной стринговое значение? 1@ = "one" тоже не пашет. Хелп :)
if 0C18: 2@ = strstr string1 0@ string2 "one"

0AD3: 0@ = format "one"
 
  • Нравится
Реакции: Сэнд

AWRage

Активный
642
141
Как сделать проверку на то, что мой игрок целится на чей-то скин?
Этот опкод не подходит, так работает с задержкой.
Код:
0AD2: $actor = player $PLAYER_CHAR targeted_actor //IF and SET
 

Dark_Knight

Me, me and me.
Друг
4,064
2,078
Нормально все работает он. Это у тебя уже код задержки имеет.
 

AWRage

Активный
642
141
Нормально все работает он. Это у тебя уже код задержки имеет.
Когда я навожу на игрока, то он срабатывает, а когда отвожу прицел от игрока в сторону, то он ещё на протяжении 2-3 секунд работает, а не моментально пропадает.
 

Избранный

Новичок
198
30
Код:
0@ = "Номинация происходит в данном кабинете"
1@ = strlen("происходит")
2@ = strstr(0@, "происходит")
3@ = 0@ - 2@ // Размер строки до "происходит"

4@ = new buffer[4096] // Ex
strncpy(4@, 0@, 3@) // Копируем в новый буфер первые 3@ символа из 0@ в 4@
strcpy(4@, "проходит") // -> "Номинация проходит"
2@ += 1@ // Вычисляем оставшуюся часть строки
5@ = strlen(2@) // и её размер
strncpy(4@, 2@, 5@) // Копируем в новый буфер
// 4@ - edited string = "Номинация проходит в данном кабинете"
Примерно так.

вот вроде скомпилировал, но почему-то кидает только 2 варнинга в чат, что не так?)
Код:
{$CLEO}
0000:
0AC8: 0@ = allocate_memory_size 256
0AC8: 2@ = allocate_memory_size 256
0AC8: 3@ = allocate_memory_size 256
0AC8: 6@ = allocate_memory_size 256

:1
wait 1000
0AD3: 0@ = format "Номинация происходит в данном кабинете"
0C17: 1@ = strlen "происходит"
0C18: 2@ = strstr string1 0@ string2 "происходит"
0085: 6@ = 0@
0062: 6@ -= 2@
0085: 3@ = 6@ // 3@ = 0@ - 2@ // Размер строки до "происходит"
0AC8: 4@ = allocate_memory_size 512 // буффер
0C24: strncpy destination 4@ source 0@ size 3@ // Копируем в новый буфер первые 3@ символа из 0@ в 4@
0C13: strcpy destination 4@ source "проходит" // -> "Номинация проходит"
005a: 2@ += 1@ // Вычисляем оставшуюся часть строки
0C17: 5@ = strlen 2@ // и её размер
0C24: strncpy destination 4@ source 2@ size 5@
0AF8: samp add_message_to_chat "%s" color 0xFFFF00 4@ // 4@ - edited string = "Номинация проходит в данном кабинете"
0A93: end_custom_thread