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

RedBoxWhite

Известный
337
27
код тогда в студию
CLEO:
{$CLEO}
0000:
wait 2000

while not SAMP.Available()
    wait 400
end

while not Player.Defined($PLAYER_ACTOR)
    wait 100
end

//0B6D: render 30@ = create_font "Arial black" height 9 flags 4

while true
wait 0
for 0@ = 0 to 999
    if 0B23:  samp is_player_connected 0@
    then
        0B36: samp 1@ = get_player_nickname 0@
        if 0C21: stricmp string1 1@ string2 "Carmen_Ferrari"
        then
        //0AD3: 3@v = format "%s [%i]" 1@ 0@
        log "1"
        wait 1000
        //0C48: samp textdraw 1 create "s" pos 20 250
        end
    end
end
end
 

kuleer221

Новичок
8
0
Так я давно на канале научил всех писать как на метках так и на конструкциях.
Нееее, мне надо если к примеру вот одно окно, запустился скрипт, потом открывается окно и там уже тот же скрипт продолжает работу , или открывается второй клео скрипт а тот первый не открывается.
 

azdsfbzxv

Новичок
73
6
CLEO:
{$CLEO}
0000:
wait 2000

while not SAMP.Available()
    wait 400
end

while not Player.Defined($PLAYER_ACTOR)
    wait 100
end

//0B6D: render 30@ = create_font "Arial black" height 9 flags 4

while true
wait 0
for 0@ = 0 to 999
    if 0B23:  samp is_player_connected 0@
    then
        0B36: samp 1@ = get_player_nickname 0@
        if 0C21: stricmp string1 1@ string2 "Carmen_Ferrari"
        then
        //0AD3: 3@v = format "%s [%i]" 1@ 0@
        log "1"
        wait 1000
        //0C48: samp textdraw 1 create "s" pos 20 250
        end
    end
end
end
Переделал. Работает. Позицию на экране сам настроишь как тебе нужно
CLEO:
{$CLEO}
0000:
0AC8: 8@ = allocate_memory_size 64

wait 2000

while not SAMP.Available()
    wait 400
end

0B6D: render 9@ = create_font "Arial black" height 9 flags 4

while not Player.Defined($PLAYER_ACTOR)
    wait 100
end

while true
wait 0
for 0@ = 0 to 999
    if 0B23:  samp is_player_connected 0@
    then
    0B36: samp 1@ = get_player_nickname 0@
        if 0C18: 6@ = strstr string1 1@ string2 "Carmen_Ferrari"
        then
        0AD3: 8@ = format "%s [%d]" 6@ 0@
        0B6F: render font 9@ draw_text 8@ pos 20 250 color -1
        end
    end
end
end
Нееее, мне надо если к примеру вот одно окно, запустился скрипт, потом открывается окно и там уже тот же скрипт продолжает работу , или открывается второй клео скрипт а тот первый не открывается.
Тебе диалог нужен что ли? Типа открывается окно. Выбираешь пункт и так далее окна открываются
 
Последнее редактирование:
  • Нравится
Реакции: RedBoxWhite

RedBoxWhite

Известный
337
27
Переделал. Работает. Позицию на экране сам настроишь как тебе нужно
CLEO:
{$CLEO}
0000:
0AC8: 8@ = allocate_memory_size 64

wait 2000

while not SAMP.Available()
    wait 400
end

0B6D: render 9@ = create_font "Arial black" height 9 flags 4

while not Player.Defined($PLAYER_ACTOR)
    wait 100
end

while true
wait 0
for 0@ = 0 to 999
    if 0B23:  samp is_player_connected 0@
    then
    0B36: samp 1@ = get_player_nickname 0@
        if 0C18: 6@ = strstr string1 1@ string2 "Carmen_Ferrari"
        then
        0AD3: 8@ = format "%s [%d]" 6@ 0@
        0B6F: render font 9@ draw_text 8@ pos 20 250 color -1
        end
    end
end
end

Тебе диалог нужен что ли? Типа открывается окно. Выбираешь пункт и так далее окна открываются
Спасибо) Но вот как сделать, чтобы несколько админов чекал? +крашит, если админ отключается.
 
Последнее редактирование:

azdsfbzxv

Новичок
73
6
Спасибо) Но вот как сделать, чтобы несколько админов чекал? +крашит, если админ отключается.
Список надо создать и с него считывать.
А то что крашит не знаю даже. Может позже кто подскажет.
А если без текстового файла. Допустим мало админов, то можно несколько проверок и несколько выводов на экран. Вторую координату Y прибавь и чуть нижу будет писать второй ник. Но это уже говнокод походу будет
 
Последнее редактирование:

Dark_Knight

Me, me and me.
Друг
4,067
2,080
Так ты же в 8 байтовую строку записываешь значения, которые могут занимать больше, чем в 8 байтов. И если ты уже записал значение именно в 3@v, то и передавать надо 3@v
 

Trashmas

Новичок
40
0
Код:
{$CLEO .cs}

0000: NOP

repeat
wait 0
until SAMP.Available()

alloc 99@ 256
alloc 25@ 64
alloc 26@ 64
alloc 27@ 64

repeat
wait 0

0B75: samp get_chat_string 99 text_to 99@ prefix_to 25@ color_to 26@ prefix_color_to 27@
until 0C18: 60@ = strstr string1 99@ string2 "Добро пожаловать"

free 99@
free 25@
free 26@
free 27@

"тело скрипта"

Неправильно работает опкод 0B75, либо запускает скрипт правильно после того как нашел нужную фразу, либо сразу после запуска сампа.
 
Последнее редактирование:

azdsfbzxv

Новичок
73
6
Код:
{$CLEO .cs}

0000: NOP

repeat
wait 0
until SAMP.Available()

alloc 99@ 256
alloc 25@ 64
alloc 26@ 64
alloc 27@ 64

repeat
wait 0

0B75: samp get_chat_string 99 text_to 99@ prefix_to 25@ color_to 26@ prefix_color_to 27@
until 0C18: 60@ = strstr string1 99@ string2 "Добро пожаловать"

free 99@
free 25@
free 26@
free 27@

"тело скрипта"

Неправильно работает опкод 0B75, либо запускает скрипт правильно после того как нашел нужную фразу, либо сразу после запуска сампа.
99@, 60@ не используй такие переменные. Используй от 0@ до 31@. 30@ и 31@ тоже старайся не использовать.
И память освобождай в самом конце.
Для цвета не используй выделение памяти. Ненужно. Переменные 26@ и 27@
CLEO:
{$CLEO .cs}

0000: NOP
0AC8: 1@ = allocate_memory_size 64
0AC8: 2@ = allocate_memory_size 64

0001: wait 0 ms

while not SAMP.Available()
    wait 400
end

while true
wait 0
0B75: samp get_chat_string 99 text_to 1@ prefix_to 2@ color_to 3@ prefix_color_to 4@
if 5@ = strstr string1 1@ string2 "Добро пожаловать"
...
end
end
 
Последнее редактирование:

ArtyomG

Известный
21
0
Возможно ли как-то эмулировать нажатие двух клавиш одновременно?
 

iTz_WEEZY

Известный
298
85
Возможно ли как-то эмулировать нажатие двух клавиш одновременно?
CLEO:
while true
    0C72: set_virtual_key 0x0D down true
     0C72: set_virtual_key 0x20 down true
    wait 50
     0C72: set_virtual_key 0x0D down false
    0C72: set_virtual_key 0x20 down false
    wait 2000
end
true - Нажимает
false - Отпускает
Значение клавиши можно найти в справке SB
 

Trashmas

Новичок
40
0
Как прочитать свой ID в сампе? (записать его в переменную)
Нужно что бы узнать свой ник опкодом 0B36

И еще кое-что, что такое Хендел? (handle)