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

hnnssy

Известный
Друг
2,684
2,748
Каким образом можно получить значение, которое постоянно изменяется? Например я взял из диалога текст:

Статистика персонажа:
Ник: Vasya_Pupkin
Уровень: 25

Хочу получить только: "Vasya_Pupkin"
При этом убрав "Ник:" и "Уровень: 25"
Перепробовал множество опкодов, не получалось получить просто: "Vasya_Pupkin". Обычно получалось убрать "Статистика персонажа:". А всё что ниже остается.
Запиши этот текст в текстовый файл, дальше считывай построчно, ну и когда считаешь строку с "Ник: Vasya_Pupkin" просто += 5, получишь только Вася_Пупкин.
 
  • Нравится
Реакции: Desdra

Максим11132

Новичок
3
0
Ребята, помогите сделать скрипт для автовыдачи. Например вам пишут наказания в адм. и вы сразу выдаёте и в конце ник от кого выдано
 

Art4D

Новичок
87
13
Есть ли проверка подключен ли $PLAYER_ACTOR к серверу? 0B23 показывает отключен(
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Есть ли проверка подключен ли $PLAYER_ACTOR к серверу? 0B23 показывает отключен(
Нет. И какой смысл вообще от этого?

Ну подключение к серверу это же по части сампа. Можно получить свой ID по хендлу и проверять через 0B23:
CLEO:
0B2B: samp 2@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B23:  samp is_player_connected 2@
Не будет работать.
 

woksonal

Известный
Проверенный
268
154
Как сканировать чат на наличие сообщения "Server closed the connection." (от сервера).
CLEO:
0AC8: 2@ = allocate_memory_size 256
0AC8: 3@ = allocate_memory_size 64
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to -1
free 2@
free 3@
if or
0C18: 5@ = strstr string1 2@ string2 "Сервер закрыл соединение."
0C18: 6@ = strstr string1 2@ string2 "Server closed the connection."
then
// дальше сам
или можно через getChatEntryText
 

hnnssy

Известный
Друг
2,684
2,748
CLEO:
0AC8: 2@ = allocate_memory_size 256
0AC8: 3@ = allocate_memory_size 64
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to -1
free 2@
free 3@
if or
0C18: 5@ = strstr string1 2@ string2 "Сервер закрыл соединение."
0C18: 6@ = strstr string1 2@ string2 "Server closed the connection."
then
// дальше сам
или можно через getChatEntryText
освобождать память нужно после сравнения
 

woksonal

Известный
Проверенный
268
154
Как отключить "выталкивающую силу" из воды? Как она расчитывается в гта или это константа? Не инфы, не адреса нашел. Пытался похимичить с гравитацией, вроде че то получается, однако управлять персом стает труднее.
 

Mr_GeniusZ

Новичок
1
0
В каких случаях используется директива {$INCLUDE SF}?

Из справки Sanny Builder:

"$INCLUDE

Эта директива позволяет подключать внешние текстовые файлы к исходнику. Когда компилятор находит указанную директиву, он открывает файл по адресу, переданному в качестве параметра директивы и продолжает компиляцию того кода, который записан во внешнем файле. Когда компилятор достигает конца данного файла, он возвращается обратно в предыдущий файл.

Синтаксис:

{$INCLUDE file_path}
или

{$I file_path}
Например,

{$I loadwav.txt}
или

{$I C:\dev\getarrayindex.txt}
Если в имени файла указан относительный путь, компилятор ищет файлы в следующем порядке:

1. папка, где находится файл, содержащий данную директиву*
2. Sanny Builder\data\<game>
3. корневая папка Sanny Builder
4. корневая папка игры

Если ни в одной из указанных папок не содержится такой файл, компилятор сообщит об ошибке.

Вы можете использовать данную директиву неограниченное число раз. Вкладываемые файлы могут также содержать в себе данную директиву.

*Начиная с версии v3.1.1 это стало строгим правилом. Все пути, которые указаны в директиве $INCLUDE, явлются относительными по отношению к текущему обрабатываемому файлу."
 

luckyFOX

Ушёл.
328
477
Из справки Sanny Builder:

"$INCLUDE

Эта директива позволяет подключать внешние текстовые файлы к исходнику. Когда компилятор находит указанную директиву, он открывает файл по адресу, переданному в качестве параметра директивы и продолжает компиляцию того кода, который записан во внешнем файле. Когда компилятор достигает конца данного файла, он возвращается обратно в предыдущий файл.

Синтаксис:

{$INCLUDE file_path}
или

{$I file_path}
Например,

{$I loadwav.txt}
или

{$I C:\dev\getarrayindex.txt}
Если в имени файла указан относительный путь, компилятор ищет файлы в следующем порядке:

1. папка, где находится файл, содержащий данную директиву*
2. Sanny Builder\data\<game>
3. корневая папка Sanny Builder
4. корневая папка игры

Если ни в одной из указанных папок не содержится такой файл, компилятор сообщит об ошибке.

Вы можете использовать данную директиву неограниченное число раз. Вкладываемые файлы могут также содержать в себе данную директиву.

*Начиная с версии v3.1.1 это стало строгим правилом. Все пути, которые указаны в директиве $INCLUDE, явлются относительными по отношению к текущему обрабатываемому файлу."

Можно по подробнее? Можете навести пример?