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

R_OSB

Новичок
14
0
Код:
//-------------MAIN---------------
{$CLEO .cs}
03A4: name_thread 'Auto'
0000: NOP

:Noname_2
not SAMP.Available()
else_jump @Noname_23
wait 200
jump @Noname_2
:Noname_23
  0AF8: samp add_message_to_chat ">{FF4444} ================================== {FFFFFF}<" 16777215   
  0AF8: samp add_message_to_chat ">{800080} Auto Drugs {FFFFFF}" 13172736        
  0AF8: samp add_message_to_chat ">{FF4444} ================================== {FFFFFF}<" 16777215     
  03A4: name_thread 'Auto'
  :Auto_1
  wait 0
  0@ = Actor.Health($PLAYER_ACTOR)

  if and
  not 0@ >=80
  not 0@ <=1
  then
  0ab0:49
  else_jump @active
  wait 0
  0AF9: samp say_msg "/usedrugs" 
  jump @Auto_1

:active
if
0ab0:49
jf @Auto_1

:no_active
wait 0
if
0ab0:50
jf @no_active
jump @Auto_1
end
Уже кидал вроде как, хуями не кидайтесь сам шарю что дурачек :(
 

hnnssy

Известный
Друг
2,684
2,754
я бы помог, вот только говнокод разбирать не охота
 

581174

Новичок
16
6
:Noname_2
not SAMP.Available()
else_jump @Noname_23
Тут отсутствует условие, иначе тут не нужен samp.available и else_jump
if and
not 0@ >=80
not 0@ <=1
then
0ab0:49
else_jump @Active
wait 0
0AF9: samp say_msg "/usedrugs"
jump @Auto_1
Не уверен, но по-моему тут нужен end. Вроде он даже после джампа требуется
:active
if
0ab0:49
jf @Auto_1

:no_active
wait 0
if
0ab0:50
jf @no_active
jump @Auto_1
end
Это актив/деактив на две разные кнопки?
Не знаю как тебе, но я вижу это не очень удобным способом.
Как смотришь на ксор активацию ? (через логический переключатель)
CLEO:
wait 0
   if 0ab0:key_pressed 0x58
   then
  0b12: 29@ = 29@ xor 1
  0af8: "%d" -1 29@
     while 0ab0:key_pressed 0x58
       wait 0
     end
   end
Вот как тут например. При нажатии кнопки активируется скрипт и в чат выводится состояние переключателя. Выключается так же нажатием. Зажатие не нарушает работу, стоит цикл для избежания таких случаев
 

zhas

Новичок
10
0
Люди помогите. Я не понимаю когда открываешь файл и считываешь его биты в переменную, ее можно затем использовать как стринговою, я понимаю что она содержит биты. Вот код: при запуске выбрасывается исключение, а иногда GTA-перестает отвечать:
CLEO:
{$CLEO}
    gosub @OnOff
:OnOff
wait 0
if 0AB0: 80
jf @OnOff
jump @start

:pause
wait 2000
jump @OnOff



:start
wait 0

0A99: chdir 1
0A9A: 0@ = openfile "SAMP\chatlog.txt" mode "r"
0A99: chdir 0
0A9C: 1@ = file 0@ size
0AC8: 2@ = allocate_memory_size 1@
0A9D: readfile 0@ size 1@ to 2@
0A9B: closefile 0@  

if 0C18: 3@ = strstr string1 2@ string2 '{FFFFFF}SA-MP'
then
0AF9: "Работает"
else
0AF9: "Жаль"
end

0AC9: free_allocated_memory 2@
jump @pause
 

R_OSB

Новичок
14
0
Тут отсутствует условие, иначе тут не нужен samp.available и else_jump

Не уверен, но по-моему тут нужен end. Вроде он даже после джампа требуется

Это актив/деактив на две разные кнопки?
Не знаю как тебе, но я вижу это не очень удобным способом.
Как смотришь на ксор активацию ? (через логический переключатель)
CLEO:
wait 0
   if 0ab0:key_pressed 0x58
   then
  0b12: 29@ = 29@ xor 1
  0af8: "%d" -1 29@
     while 0ab0:key_pressed 0x58
       wait 0
     end
   end
Вот как тут например. При нажатии кнопки активируется скрипт и в чат выводится состояние переключателя. Выключается так же нажатием. Зажатие не нарушает работу, стоит цикл для избежания таких случаев
Суть то в чем, сам скрип работает я сделал. Активируется он при достижение опр. кол.ва здоровья автоматически.
Меня просто две вещи интересуют. У меня выдает 6 строк этой команды, а я бы хотел чтобы одну допустимую, ты мне говорил про задержки сервера, хотя это как то звучит странно и да проще будет показать, чем я буду тут чушь нести http://imgur.com/a/0Tr4D
 

k1sher

Известный
201
4
Извините, подскажите пожалуйста почему может не работать.. Вместо id, lvl, ping пишет просто "D"
Код:
{$CLEO .cs}

0000: NOP 

repeat
wait 0
until samp.Available()
0B6D: render 0@ = create_font "Segoe UI" height 11 flags 5

repeat
wait 0
if
0B21:     samp is_chat_opened 
then
0BAF: samp 6@ = get_input_info_ptr
0C0C: 6@ = struct 6@ offset {pDXUTEditBox}0x8 size 4
0C0C: 10@ = struct 6@ offset {dwPosChatInput1}0x8 size 4 // X
0C0C: 11@ = struct 6@ offset {dwPosChatInput2}0xC size 4 // Y
000A: 11@ += 70 
0B2B: samp 2@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 4@ = get_player_nickname 2@
0B2A: samp 7@ = get_player_ping 2@
0B65: samp 5@ = player 2@ score 
0AC8: 1@ = allocate_memory_size 260 
0AD3: 1@ = format "Ваш ID: {00ff00}%d {ffffff}| Ваш ЛВЛ: {ff8000}%d {ffffff}| Ваш Пинг: {800080}%d {ffffff}| Ваш Ник:" 2@ 5@ 7@  
0B6F: render font 0@ draw_text 1@ pos 10@ 11@ color -1
0B6F: render font 0@ draw_text 4@ pos 485 11@ color -1 
0AC9: free_allocated_memory 1@  
end
until false
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Instant crash... help[
code]
{$CLEO}
{$INCLUDE SF}

0001: wait 0 ms
0662: "by legend2360"
0662: "Radio Beta"

while not SAMP.Available()
wait 400
end

0F02: 0@ = bass_streamcreateurl url "radiotst.com/live.m3u" offset 0 flags 0 include_http true
if 0@ <> 0
then
0F0B: bass_channel_setattribute stream 0@ attribute 2 value 0.5
0F03: bass_channelplay stream 0@ restart false
0F02: 5 @ = bass_streamcreateurl URL - ul "radiotst.com/live.m3u" compensate 2 steaguri @ 3 @ 4 @ include_http
0F03: bass_channelplay flux repornire 5 @ 2 @
end

0BDE: pause_thread 0


0F00: bass_init device 1@ freq 2@ flags 3@
0F01: 6@ = bass_streamcreatefile from_mem 1@ file 2@ offset 3@ length 4@ flags 5@
0F02: 5@ = bass_streamcreateurl url 1@ offset 2@ flags 3@ include_http 4@
0F03: bass_channelplay stream 1@ restart 2@
0F04: bass_channelpause 1@
0F05: bass_channelstop 1@
0F06: bass_streamfree 1@
0F07: 1@ = bass_geterror
0F08: bass_free
0F09: bass_setvolume 1@
0F0A: 1@ = bass_getvolume
0F0B: bass_channel_setattribute stream 1@ attrib 2@ value 3@
0F0C: 3@ = bass_channel_getattribute stream 1@ attrib 2@
Try with only one stream.
 

N1ghT

Известный
79
8
Как сделать, что бы скрипт сам выбирал строку? Например: У меня команда /zd
При вводе данной команды в чат пишет одно из заготовленных сообщений рандомно.
Пишу /zd в - чат должно написать "Здарова", либо "Привет", либо "Здравствуй".
 
Последнее редактирование:

Perojek)0

Известный
205
3
Как сделать, что бы скрипт сам выбирал строку? Например: У меня команда /zd
При вводе данной команды в чат пишет одно из заготовленных сообщений рандомно.
Пишу /zd в - чат должно написать "Здарова", либо "Привет", либо "Здравствуй".
Регистрируешь команду(0B34), получаешь рандомное число(0209) и выводишь нужное сообщение(0AF9)

Как можно свернуть игру?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Как можно свернуть игру?
CLEO:
{$CLEO}

0000:

0A8D: 0@ = read_memory 0xC17054 size 4 virtual_protect 0 // pointer to HWND
while 0@ == 0
    wait 1000
    0A8D: 0@ = read_memory 0xC17054 size 4 virtual_protect 0 // pointer to HWND
end

0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 // HWND
while 0@ == 0
    wait 1000
    0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 // HWND
end

0C71: 1@ = get_module "user32.dll" proc "ShowWindow" address
if 1@ == 0
then 0A93: end_custom_thread
end

while true
    wait 0
    if 0C89:  key_just_pressed 72 // H
    then
        0AA5: call 1@ num_params 2 pop 0 nCmdShow 6 HWND 0@
    end
end
 
  • Нравится
Реакции: Perojek)0

N1ghT

Известный
79
8
Куда здесь присобачить проверку на "подключен ли игрок"?
Код:
while true
wait 0
    if and
    30@ == 1
    then 
        say {text} "/f %s[%d] - Занят мной" 2@ 1@
        wait 1000
        say {text} "/id %d" 1@
        wait 1000
        say {text} "/pm %d Выезжаю, не вставайте в афк. Буду через 2 минуты." 1@
        30@ = 0
    end
 

k1sher

Известный
201
4
А вот такой вопрос как сделать клео вот такое? :)
Пишу я в игре например "/chs [id]" а он мне в игре пишет Такой-то человек - и причина его чс
Имелся бы .ini файл в котором была бы указано. Например -
kalash23=неоднократный дм
haggys=оскорбление