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

San6ka

Новичок
45
12
Прибавь к указателю на строку смещение до нужного символа.
Ух, ты! Заработало! Спасибо!

Но у меня теперь назрел ещё один вопрос. Мне нужно ( например ) от 5 символа до конца строки взять содержимое строки, чтобы это сделать мне надо заранее узнать длину этой строки, дальше же вычесть 5 и это будет оставшаяся часть строки? так?
 

BlackKnigga

Известный
BH Team
922
445
Ух, ты! Заработало! Спасибо!

Но у меня теперь назрел ещё один вопрос. Мне нужно ( например ) от 5 символа до конца строки взять содержимое строки, чтобы это сделать мне надо заранее узнать длину этой строки, дальше же вычесть 5 и это будет оставшаяся часть строки? так?
Да, длинна оставшейся части от пятого символа до конца.
 
  • Нравится
Реакции: San6ka

San6ka

Новичок
45
12
Есть строка "Очередная проверка. Один, два, три, четыре, пять, шесть, семь, восемь, девять, десять, одиннадцать, двенадцать."
Я её делю на две ( так, как посоветовал BlacKnigga ) с помощью memcpy и вывожу в лог. Там в неё ИНОГДА добавляются лишние символы. Это утечка памяти или что? Как бороться с этим?
 

BlackKnigga

Известный
BH Team
922
445
Есть строка "Очередная проверка. Один, два, три, четыре, пять, шесть, семь, восемь, девять, десять, одиннадцать, двенадцать."
Я её делю на две ( так, как посоветовал BlacKnigga ) с помощью memcpy и вывожу в лог. Там в неё ИНОГДА добавляются лишние символы. Это утечка памяти или что? Как бороться с этим?
Присоеденяй ноль к концу строки
 

p1cador

cerf
Проверенный
220
359
Не "0" а "\0".
Добавлять в место, после которого появляются лишние символы
 

DrBenito

Новичок
21
2
Не могу сменить активацию выдает ошибку
{$CLEO .cs}
gosub @KEY_SCAN
:KEY_SCAN
wait 0
if and
0AB0: key_pressed 8
Actor.Driving($PLAYER_ACTOR)
jf @KEY_SCAN
wait 100
1@ = actor.CurrentCar($PLAYER_ACTOR)
car.SetImmunities(1@,1,1,1,1,1)
07DA: set_car 1@ rotation_velocity_XYZ 0.0 1.5 0.0 through_center_of_body
jump @KEY_SCAN
 

San6ka

Новичок
45
12
Не "0" а "\0".
Добавлять в место, после которого появляются лишние символы
её добавлять форматированием в строку со спецификатором %s ? Или как-то иначе?

Входная строка:"Очередная проверка. Один, два, три, четыре, пять, шесть, семь, восемь, девять, десять, одиннадцать, двенадцать."

Не получается. На выводе это:
Код:
Очередная проверка. Один, два, три, четыре, пять, шесть, семь, восемь, девять, дИ\0
есять, одиннадцать, двенадцать.
 
Последнее редактирование:

BlackKnigga

Известный
BH Team
922
445
её добавлять форматированием в строку со спецификатором %s ? Или как-то иначе?

Входная строка:"Очередная проверка. Один, два, три, четыре, пять, шесть, семь, восемь, девять, десять, одиннадцать, двенадцать."

Не получается. На выводе это:
Код:
Очередная проверка. Один, два, три, четыре, пять, шесть, семь, восемь, девять, дИ\0
есять, одиннадцать, двенадцать.
Смещаешь указатель первой части строки на ее длину и по полученному адресу мемсетишь ноль.
 
  • Нравится
Реакции: San6ka

Coghweel

Новичок
76
0
CLEO:
{FFFFCC}Этот гараж занят.
{FFFFFF}Владелец: {00A329}Jon_Rif
{FFFFFF}Дней оплачено: {7E57FF}24


{FFDB70}Информация: {FFFFFF}Гаражи предназначены только для тех, кто арендует комнаты в частных домах или не имеет дома

Есть такой текст в переменной 10@. Как из всего этого записать в другую переменную только число 24?

Этим опкодом не получается т.к. в нем есть ограничение в символах:

0AD4: 4@ = scan_string 0@v format "%d + %d = %d" 5@ 6@ 7@ //IF and SET

А в этот не знаю как впихнуть несколько строк:

0AA5: call 0x8220AD num_params 3 pop 3 params 13@v "{FFFFFF}Дней оплачено: {7E57FF}%d" 7@
 
Последнее редактирование:

BlackKnigga

Известный
BH Team
922
445
CLEO:
{FFFFCC}Этот гараж занят.
{FFFFFF}Владелец: {00A329}Jon_Rif
{FFFFFF}Дней оплачено: {7E57FF}24


{FFDB70}Информация: {FFFFFF}Гаражи предназначены только для тех, кто арендует комнаты в частных домах или не имеет дома

Есть такой текст в переменной 10@. Как из всего этого записать в другую переменную только число 24?

Этим опкодом не получается т.к. в нем есть ограничение в символах:

0AD4: 4@ = scan_string 0@v format "%d + %d = %d" 5@ 6@ 7@ //IF and SET

А в этот не знаю как впихнуть несколько строк:

0AA5: call 0x8220AD num_params 3 pop 3 params 13@v "{FFFFFF}Дней оплачено: {7E57FF}%d" 7@
CLEO:
0C18: 11@ = strstr string1 10@ string2 "Дней оплачено: "
0AA5: call 0x8220AD num_params 3 pop 3 params 12@v "Дней оплачено: %d" 11@  //sscanf(11@, "Дней оплачено: %d", 12@v);

В 12@ искомое число
 
  • Нравится
Реакции: Coghweel