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

hnnssy

Известный
Друг
2,684
2,748
не хочет пиликать

а вот так реагирует на все чаты (мне надо только IC чат) 2@ ==RPC_ScrClientMessage



пока сделал вот так:
Код:
{$CLEO}
{$INCLUDE SF}
0001: wait 0 ms
while not SAMP.Available()
wait 400
end

0AC8: 1@ = allocate_memory_size 144
0AC8: 2@ = allocate_memory_size 32
0AAC: 11@ = load_audiostream "CLEO\sounds\1.mp3"
0ABC: set_audiostream 11@ volume 1.0

repeat
wait 707
until $707 > 15 //SF > 5.2.*

0BE3: raknet setup_incoming_rpc_hook @in_rpc // подготавливаем хук
0BDE: pause_thread 0 // Бесконечный цикл нам не нужен, поэтому просто поставим скрипт на "паузу". Хуки, вызовы команды и т.п. будут работать в это время
:in_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID // Получаем ИД RPC
wait 0
if       
    0@ == RPC_ScrClientMessage // сверяем с необходимым ИДом
then
    0B75: samp get_chat_string 99 text_to 1@ prefix_to 2@ color_to 3@ prefix_color_to 0

if and
0C18: 0 = strstr string1 1@ string2 "- "
0C18: 0 = strstr string1 1@ string2 "("
0C18: 0 = strstr string1 1@ string2 ")"
0C18: 0 = strstr string1 1@ string2 "["
0C18: 0 = strstr string1 1@ string2 "]"
    then
0ACC: show_text_lowpriority "MESSAGE" time 1000  

0AAD: set_mp3 11@ perform_action 1
       
   end
end
0BE0: raknet hook_ret true // принимаем RPC, false - не принимать
но это не правильно
Конечно неправильно. Зачем ты получаешь строку через 0B75, если есть хук? Тем более ты её пытаешься получить до того, как она появляется в чате.
 

unInstance

Новичок
Проверенный
311
222
Можете дать пример, как проверить наличие новой версии скрипта online(без скачивания чего либо) используя WinAPI(ну или без него). И как можно через CLEO удалить файл .ini(к примеру)?
 

san0

Известный
Друг
411
267

Art4D

Новичок
87
13
Можно ли как то узнать айди диалога, если он не показывается из-за нопа ShowPlayerDialog ?
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Можете дать пример, как проверить наличие новой версии скрипта online(без скачивания чего либо) используя WinAPI(ну или без него). И как можно через CLEO удалить файл .ini(к примеру)?
Юзай интернетРеадФайл.
 
  • Нравится
Реакции: unInstance

unInstance

Новичок
Проверенный
311
222
А если я сделаю так...
CLEO:
alloc 0@ = 28
alloc 0@ = 43
Тогда в переменной будет выделено 28 или 43 байта? Или 71?
 

unInstance

Новичок
Проверенный
311
222
Можно подробнее описать, зачем этот опкод - 0AF7: samp 0@ = get_base
И как можно вычеслить нужный адрес памяти? Где взять готовые?
 

Evgeniy13

Новичок
40
1
Уже несколько дней ломаю, как получить ID всех игроков, которые находятся в 50 метрах от меня... Есть такая возможность? Как это можно сделать?
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
0AE1: 6@ = random_actor_near_point 0@ 1@ 2@ in_radius 3@ find_next 4@ pass_deads 5@
Он в сампе не работает.
Уже несколько дней ломаю, как получить ID всех игроков, которые находятся в 50 метрах от меня... Есть такая возможность? Как это можно сделать?
Перебором и добавлением их в массив.