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

#Feed#

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

В каком смысле не визуальным?
Создание каров что ли?
Типо, что-бы был виден всем, не только мне.
Заходил на сервер, спрашивал игроков, меняется ли цвет? - отвечали нет.
Как сделать что бы все видели?
 
Последнее редактирование модератором:

Dexide

Новичок
45
1
у ded fedot`a скачай тюнинг скрипт, там есть функции такие
 
Последнее редактирование модератором:

Lord

Новичок
236
42
Приветствую. Нужна помощь. Есть код, но он работает не так, как нужно было бы.

Сам код:
CLEO:
{$CLEO .cs}
0000: NOP
03A4: name_thread "newpll"
:Label000008
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @Label000008
0B34: samp register_client_command "/autopl" to_label @Label000137
0AC8: 0@ = allocate_memory_size 144
0AC8: 1@ = allocate_memory_size 144
0006: $223 = 0

:Label0000A4
0001: wait 0 ms
0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 0 prefix_color_to 0
0AD3: 1@ = format "["
00D6: if and
0039:   $223 == 1
0C29: 0 = stristr string1 0@ string2 "отыграл(а) на сервере"
0C18: 2@ = strstr string1 0@ string2 "["
004D: jump_if_false @Label00012C
0AD4: 3@ = scan_string 2@ format "[%d] отыграл(а) на сервере" 9@
00D6: if
0039:   3@ == 1
004D: jump_if_false @Label00012C
0AF9: samp say_msg "/hh %d [message]" 9@
0001: wait 1000 ms
:Label00012C
0002: jump @Label0000A4
0BDE: pause_thread 0
:Label000137
00D6: if
0039:   $223 == 0
004D: jump_if_false @Label00015D
0006: $223 = 1
chatmsg "ON" color 0x33AA33
0002: jump @Label00016A
:Label00015D
0006: $223 = 0
chatmsg "OFF" color 0xFF6347
:Label00016A
0B43: samp cmd_ret

upload_2017-12-13_14-28-24.png


[14:28:13] Игроки 0 уровня:
[14:28:13] Lednik_Pihc[39] отыграл(а) на сервере 2 час(а).
[14:28:13] MeTa1uk0.[43] отыграл(а) на сервере 1 час(а).
[14:28:13] Kostya..[90] отыграл(а) на сервере 1 час(а).
[14:28:13] Shirayuki[93] отыграл(а) на сервере 1 час(а).
[14:28:13] Yan_Go[113] отыграл(а) на сервере 0 час(а).
[14:28:13] Parkallies[123] отыграл(а) на сервере 0 час(а).
[14:28:13] .qEza[125] отыграл(а) на сервере 0 час(а).

Как он работает сейчас:
  1. Активируешь скрипт
  2. Вводишь команду вызова желтого текста (Новички сервера)
  3. Скрипт отправляет сообщение последнему игроку в списке
Как нужно мне:

  1. Активируешь скрипт
  2. Вводишь команду вызова желтого текста (Новички сервера)
  3. Скрипт отправляет каждому из этого списка нужно мне сообщение.
Что нужно добавить или исправить?
 

Вложения

  • hh.cs
    18.5 KB · Просмотры: 7
Последнее редактирование модератором:

kawa operand

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

Lord

Новичок
236
42
Как я понял, ты вводишь серверную команду, после чего моментально показываются игроки.
Так как ты сканируешь 99 строку, будет браться последний игрок в списке, следовательно, тебе нужно создать массив и в хуке добавления сообщения в чат заполнять его, после чего в основном потоке рассылать игрокам сообщение с нужной задержкой.
Я понял о чём ты, но не знаю как сделать так это. Хуки это вообще не моё. Можешь исправить?
 

Swaggy

Новичок
5
0
Работает все.

CLEO:
{$CLEO}
0000: NOP
repeat
    wait 0
until samp.Available()
0AC8: 2@ = allocate_memory_size 260
0C11: memset destination 2@ value 0x0 size 260
while true
    wait 0
    0B75: samp get_chat_string 98 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
    if 0C18: 0@ = 2@ "(( Остаток:"
    then
        0AD4: 6@ = scan_string 2@ format "(( Остаток: %d грамм))" 7@
        0AF8: samp add_message_to_chat "Строка сканирована. Всего значений: %d | число: %d" color 4@ 6@ 7@
    end
    0C11: memset destination 2@ value 0x0 size 260
    if 0ADC:   test_cheat "2"
    then
        0AF8: samp add_message_to_chat "(( Остаток: 123 грамм))" color 0xffffff
        0AF8: samp add_message_to_chat "lmao" color 0xffffff
    end
end
не работает на evolve и samp-rp.
нули выдает.
 

Вложения

  • 123.png
    123.png
    15.1 KB · Просмотры: 267

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не работает на evolve и samp-rp.
нули выдает.
там строчка начинается с пробела
Я понял о чём ты, но не знаю как сделать так это. Хуки это вообще не моё. Можешь исправить?
Тут не исправлять нужно, а весь код переписывать
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите почему скрипт не записывать ID в текстовый документ. А "-" записывает...

CLEO:
call @SetID 0 |

:SetID
alloc 0@ 64   
if 0B3C: samp is_dialog_responded id 758 button 0 list_item 0 input_text 0@ // ID íàïàðíèêà
    then 
    if and
    0AD4: 0@ = scan_string 0@ format "%d" 1@
    0B23: samp is_player_connected 1@     
        then  
        0AF5: write_string 1@ to_ini_file "CLEO\FakePD.ini" section "Settings" key "ID"
        free 0@
        ret 0
    end
    0AF5: write_string "-" to_ini_file "CLEO\FakePD.ini" section "Settings" key "ID"
    free 0@
    ret 0
end 
free 0@
ret 0
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Мб потому что ты перезаписываешь текст, т.е записал ты сначала текст диалога, а потом бац и записываешь "-" вместо текста, либо что-то с закрытием диалога
Вроде так должно работать
CLEO:
call @SetID 0 |
:SetID
ALLOC 0@ 64
IF  0B3C: samp is_dialog_responded id 758 button 0 list_item 0 input_text 0@ // ID iaia?ieea
THEN
    IF AND
        0AD4: 0@ = scan_string 0@ format "%d" 1@
        0B23: samp is_player_connected 1@  
    THEN
        0AF5: write_string 1@ to_ini_file "CLEO\FakePD.ini" section "Settings" key "ID"
    END
ELSE
    0AF5: write_string "-" to_ini_file "CLEO\FakePD.ini" section "Settings" key "ID"
END
FREE 0@
RET 0
Не. Я записывал не тем опкодом
 

romanblinov2013

RB_PRO
Проверенный
212
196
Есть ли возможность проверить локальный диалог на наличие определённого цвета?

Искомый цвет - 0x00CC00
 

Вложения

  • sa-mp-072.png
    sa-mp-072.png
    371.5 KB · Просмотры: 503
  • Нравится
Реакции: kawa operand

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
За цвет точно сказать не могу, но ты можешь искать надпись "Вы выиграли"
CLEO:
0C18: 2@ = strstr string1 0@ string2 1@
 

Kristyan

Известный
165
16
What here is wrong, on sampfuncs 5.3.3 isn't getting the RED color, but on older it's work, i have seen on update log that something with color was changed, and i dunno what's up?

const
COLOR=0xFFE3336D
end

20@ = SAMP.GetPlayerColor(0@)
if 20@ == COLOR
 
Последнее редактирование:

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как сделать что бы после say скрипт прыгал на 1 ret 0.
CLEO:
if 0@ == 6
    then
    if 00DF: actor $PLAYER_ACTOR driving
        then    
        if 0B23:  samp is_player_connected 3@
            then
            say: "%s %s[%d]: [%s] Нахожусь в патруле города | Жетон напарника: %d" 2731586 1@ 5@ 4@ 2@ 3@
            ret 0
           
            end
            say: "%s %s[%d]: [%s] Нахожусь в патруле города | Жетон напарника: Нет " 2731586 1@ 5@ 4@ 2@
            ret 0
           
            end
        if 0B23:  samp is_player_connected 3@
            then
            say: " %s %s[%d]: [%s] Нахожусь в пешим патруле города | Жетон напарника: %d" 2731586 1@ 5@ 4@ 2@ 3@
            ret 0
           
            end
            say: " %s %s[%d]: [%s] Нахожусь в пешим патруле города | Жетон напарника: Нет" 2731586 1@ 5@ 4@            
            end
            ret 0
 
  • Нравится
Реакции: Vlad Horii

Lord

Новичок
236
42
Проверка по табу, поставил ограничение до 16 score (уровней/очков), но оно не работает и отправляет всем игрокам сообщение.
И зависает после ввода команды.
Как исправить?

CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0AFA:  is_samp_available

0AC8: 0@ = allocate_memory_size 251

0B34: samp register_client_command "hhs" to_label @newbie
while true
wait 0
end


:newbie
for 1@ = 0 to 250 step 1
    0C0F: array 0@ element 1@ = -1
end
for 2@ = 0 to 250 step 1
   if 0B23:  samp is_player_connected 2@
   then
        0B65: samp 3@ = player 2@ score
        if and
        4@ > -1
        4@ < 16
        then
            0C0F: array 0@ element 2@ = 2@
        end
   end
end
for 2@ = 0 to 250 step 1
    0C0E: 4@ = array 0@ element 2@
    if 4@ >= 0
        then
        say "/s %d [text]" 4@
        wait 50
    end
end
0b43: cmdret
0AC9: free_allocated_memory 0@
 
Последнее редактирование: