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

Xample

Новичок
89
1
а как из скрипта вызвать команду? 0AF9: samp say_msg "/time" не хочет работать
 

Xample

Новичок
89
1
Бросай весь код сюда.
Код:
{$CLEO}
0000:

wait 0
0B34: samp register_client_command "shahtaon" to_label @shahtaon
0B34: samp register_client_command "shahtaoff" to_label @shahtaoff
wait 5000
chatmsg "{FF0000}>{483D8B}=============================={FF0000}<" 6908265
chatmsg "{FF0000}>{483D8B}Áîò øàõò¸ð: {8470FF}Çàãðóæåí{FF0000}<" 6908265
chatmsg "{FF0000}>{483D8B}Сервер: {8470FF}server{FF0000}<" 6908265 
chatmsg "{FF0000}>{483D8B}Àâòîð: {8470FF}Shtebon{FF0000}<" 6908265
chatmsg "{FF0000}>{483D8B}{8470FF}/shahtaon /shahtaoff{FF0000}<" 6908265
chatmsg "{FF0000}>{483D8B}=============================={FF0000}<" 6908265

:testonoff             //проверка вкл бот или выкл
wait 0
if
  1@ == 1
else_jump @testonoff     //проверка вкл бот или выкл






:POINT1        //промежуточная координата
wait 0
if
  1@ == 1
jf @shahtaoff
0AB3: var 740 = 3
05D3: AS_actor $PLAYER_ACTOR goto_point 585.501 857.967 -43.0016 mode 6 time 5000 ms
if
00EC: actor $PLAYER_ACTOR 0 near_point 585.501 857.967 radius 3.0 3.0
else_jump @POINT1
jump @POINT2      //промежуточная координата




:POINT2            //координаты найденного пикапа
if
  1@ == 1
jf @shahtaoff
Actor.StorePos($PLAYER_ACTOR, 3@, 4@, 5@)
0DB4: 6@ = nearset marker to position x 3@ y 4@ radius 100.0 //IF AND SET
wait 100
0DB3:  marker 6@ position to x 7@ y 8@ z 9@ //IF AND SET
0AB3: var 740 = 3
05D3: AS_actor $PLAYER_ACTOR goto_point 7@ 8@ 9@ mode 6 time 3000 ms // versionA
if
00EC: actor $PLAYER_ACTOR 0 near_point 7@ 8@ radius 3.0 3.0
else_jump @POINT2       //координаты найденного пикапа
wait 1500
jump @testonoff






:shahtaon       //вкл бота
1@ = 1
0ACC: show_text_lowpriority "BOT Shahta ~g~ON" time 1000
018C: play_sound 1052 at 0.0 0.0 0.0
SAMP.CmdRet


:shahtaoff         //выкл бота
1@ = 0  
0ACC: show_text_lowpriority "BOT Shahta ~g~OFF" time 1000
0AB3: var 740 = 0
0687: clear_actor $PLAYER_ACTOR task
018C: play_sound 1052 at 0.0 0.0 0.0
SAMP.CmdRet
goto @testonoff
Код:
{$CLEO}
0000:
wait 1000
0AC8: 0@ = allocate_memory_size 144
0AC8: 1@ = allocate_memory_size 32
while true
wait 0
0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 2@ prefix_color_to 0
// кол-во строк в чате - 100, начиная 0 => номер последней 99
if or
   // 2@ == 0xff5030ff // цвет, шестнадцатеричная система счисления, формат: RRGGBBAA
    0C18: 0 = strstr string1 0@ string2 "тойте" 
    0C18: 0 = strstr string1 0@ string2 "новитесь" 
    0C18: 0 = strstr string1 0@ string2 "ут?" 
then
    wait 2000
    0AF9: samp say_msg "/shahtaoff"
    wait 2000
    0AF9: samp say_msg "Что?"
    wait 2000
        0AF9: samp say_msg "÷что надо?"
    wait 10000
    0AF9: samp say_msg "/shahtaon"
       
end
end
 

DubStep_

Известный
292
52
Юзай глобальную переменную, чтобы скрипты так сказать "общались" между собой. Написал бы пример, но я с телефона

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

DubStep_

Известный
292
52
Ну хотя есть опкод который вставляет в строку чата текст, потом можно enter нажать и все. Через эмуляцию.. ищи кароч опкод с ключевым словом chat set
 

Xample

Новичок
89
1
0af9: работает только с серверными командами, остальные он игнорит
okay.png
придется делать запуск бота на клавиши и эмулировать нажатия тогда, или можно както обьеденить эти 2 скрипта? чтоб они не влияли друг на друга, а то у всех задержки в циклах
 

hnnssy

Известный
Друг
2,684
2,749
okay.png
придется делать запуск бота на клавиши и эмулировать нажатия тогда, или можно както обьеденить эти 2 скрипта? чтоб они не влияли друг на друга, а то у всех задержки в циклах
А почему бы тебе не сделать проверку чата сразу в боте? Если же такой вариант не катит, делай активацию бота по значению какой-нибудь глобальной переменной, либо в своём скрипте для проверки чата мути такую хрень:
Код:
0B79: samp set_chat_input_enabled 1
0B76: samp set_chat_input_text "/shahtaoff"
0AB1: call @keyPress 2 key 13 time 1
...
:keyPress
// 0@ - key, 1@ - time
// Example: 0AB1: call @keyPress 2 key 0@ time 1@
if 0AA2: 2@ = load_library "User32.dll"
then
  if 0AA4: 2@ = get_proc_address "keybd_event" library 2@
  then
  0AA5: call 2@ num_params 4 pop 0 0 0 0 0@
  wait 1@
  0AA5: call 2@ num_params 4 pop 0 0 0x02 0 0@
  end
end
0AB2: ret 0
Но это уже какая-то порнография.
 

Xample

Новичок
89
1
А почему бы тебе не сделать проверку чата сразу в боте? Если же такой вариант не катит, делай активацию бота по значению какой-нибудь глобальной переменной, либо в своём скрипте для проверки чата мути такую хрень:
Код:
0B79: samp set_chat_input_enabled 1
0B76: samp set_chat_input_text "/shahtaoff"
0AB1: call @keyPress 2 key 13 time 1
...
:keyPress
// 0@ - key, 1@ - time
// Example: 0AB1: call @keyPress 2 key 0@ time 1@
if 0AA2: 2@ = load_library "User32.dll"
then
  if 0AA4: 2@ = get_proc_address "keybd_event" library 2@
  then
  0AA5: call 2@ num_params 4 pop 0 0 0 0 0@
  wait 1@
  0AA5: call 2@ num_params 4 pop 0 0 0x02 0 0@
  end
end
0AB2: ret 0
Но это уже какая-то порнография.

пробовал эмуляцию клавиш через User32.dll не вышло на семёрке

можно я думаю зделать так бот запускать 0ADC: test_cheat "bbon" а во втором скрипте эмуляция этих клавиш ну или проще запуск бота по гарячим клавишам и также эмуляция их
 
Последнее редактирование: