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

Vadim.dll

Известный
168
81
Если полностью переменную, то так, если текст и данные из переменной то как ниже показано:
Код:
0AF9: samp say_msg "%s" 3@
Ну вот смотри, у маеня например в 3@ записано "Тест", и мне надо, чтобы в sau_msg вводилось именно это, без лишних каракуль перед ней
 

Woofing Giraffe

Активный
402
49
Ну вот смотри, у маеня например в 3@ записано "Тест", и мне надо, чтобы в sau_msg вводилось именно это, без лишних каракуль перед ней
Код:
0AC8: 0@ = allocate_memory_size 1@
// Это где-то в начале скрипта ставишь, 0@ - Сама переменная, 1@ - Кол-во символов текста.
Потом записываешь данные в переменную
и после этого
Код:
0AF9: samp say_msg "%s" 0@
А вообще, если сам не разберешься, скинь весь код.
 

Vadim.dll

Известный
168
81
Код:
0AC8: 0@ = allocate_memory_size 1@
// Это где-то в начале скрипта ставишь, 0@ - Сама переменная, 1@ - Кол-во символов текста.
Потом записываешь данные в переменную
и после этого
Код:
0AF9: samp say_msg "%s" 0@
А вообще, если сам не разберешься, скинь весь код.

То есть под каждую букву надо выделять определенное кол-ва памяти, если это так, тогда спасибо
 

Vadim.dll

Известный
168
81
Возникла еще одна проблема..
Код:
:floodstart
wait 0
if 0AB0: 81  
jf @floodstart
repeat
wait 0@
0AF9: samp say_msg 2@
until 8AB0: 81                  
0B43: samp cmd_ret
При исполнени кода игра зависает, почему? Может быть нельзя возвращать команду после цыклов? Подскажите
 

Niko

Известный
Проверенный
230
271
Возникла еще одна проблема..
Код:
:floodstart
wait 0
if 0AB0: 81 
jf @floodstart
repeat
wait 0@
0AF9: samp say_msg 2@
until 8AB0: 81                 
0B43: samp cmd_ret
При исполнени кода игра зависает, почему? Может быть нельзя возвращать команду после цыклов? Подскажите
В потоках нельзя использовать циклы
 

Woofing Giraffe

Активный
402
49
Возникла еще одна проблема..
Код:
:floodstart
wait 0
if 0AB0: 81 
jf @floodstart
repeat
wait 0@
0AF9: samp say_msg 2@
until 8AB0: 81                 
0B43: samp cmd_ret
При исполнени кода игра зависает, почему? Может быть нельзя возвращать команду после цыклов? Подскажите
Скинь описание того что должен делать скрипт
 

Vadim.dll

Известный
168
81
Делаю свой первый полезный скрипт, зажимной флудер в чат...
Код:
{$CLEO}
0000:

:start
wait 0
0AFA:  is_samp_available
jf @start
chatmsg "--------------" 0xA05A5A
chatmsg "Настройки /fls" 0x44C175
chatmsg "Активация    Q" 0x44C175
chatmsg "--------------" 0xA05A5A

:com

0B34: samp register_client_command "fls" to_label @floodsett
0B34: samp register_client_command "fl" to_label @floodstart
0BDE: pause_thread 0


:floodsett
wait 0
  SAMP.IsCommandTyped(3@)
   0AC8: 5@ = allocate_memory_size 2@ 
      if  
      0AD4: 4@ = scan_string 3@ format "%s %d" 2@ 0@
      jf @error      
      chatmsg "Запись данных удачна, нажмите Q для начала" 0x44C175          
        0B43: samp cmd_ret

:floodstart
wait 0
if 0AB0: 81  
jf @floodstart
repeat
wait 0@
0AF9: samp say_msg 2@
until 8AB0: 81                  
0B43: samp cmd_ret

:error
wait 0
chatmsg "Неверно введены данные" 0xA05A5A
0AC9: free_allocated_memory 5@
0B43: samp cmd_ret
jump @com
 

Woofing Giraffe

Активный
402
49
Делаю свой первый полезный скрипт, зажимной флудер в чат...
Код:
{$CLEO}
0000:

:start
wait 0
0AFA:  is_samp_available
jf @start
chatmsg "--------------" 0xA05A5A
chatmsg "Настройки /fls" 0x44C175
chatmsg "Активация    Q" 0x44C175
chatmsg "--------------" 0xA05A5A

:com

0B34: samp register_client_command "fls" to_label @floodsett
0B34: samp register_client_command "fl" to_label @floodstart
0BDE: pause_thread 0


:floodsett
wait 0
  SAMP.IsCommandTyped(3@)
   0AC8: 5@ = allocate_memory_size 2@
      if 
      0AD4: 4@ = scan_string 3@ format "%s %d" 2@ 0@
      jf @error     
      chatmsg "Запись данных удачна, нажмите Q для начала" 0x44C175         
        0B43: samp cmd_ret

:floodstart
wait 0
if 0AB0: 81 
jf @floodstart
repeat
wait 0@
0AF9: samp say_msg 2@
until 8AB0: 81                 
0B43: samp cmd_ret

:error
wait 0
chatmsg "Неверно введены данные" 0xA05A5A
0AC9: free_allocated_memory 5@
0B43: samp cmd_ret
jump @com
Если я правильно тебя понял, то вот:
Код:
{$CLEO}
0000:

:start
wait 0
0AFA:  is_samp_available
jf @start
chatmsg "--------------" 0xA05A5A
chatmsg "Настройки /fls" 0x44C175
chatmsg "Активация    Q" 0x44C175
chatmsg "--------------" 0xA05A5A                  
0B34: samp register_client_command "fls" to_label @floodsett

while true
    wait 0
    if and
    0AB0: 81
    0@ > 0 // Если он что-то ввёл после команды и нажал кнопку
    then  
        0AF9: samp say_msg "%s" 2@v
        wait 0@
    end
end


:floodsett
SAMP.IsCommandTyped(3@)
if 0AD4: 4@ = scan_string 3@ format "%s%d" 2@v 0@ // Текст и задержка
then      
    chatmsg "Запись данных удачна, нажмите Q для начала" 0x44C175 
else
    chatmsg "Неверно введены данные" 0xA05A5A
end    
0B43: samp cmd_ret
К сожалению опкод 0AD4 не может сканировать большое кол-во символов, поэтому строка будет мелкая, либо будет крашить.
 

Vadim.dll

Известный
168
81
Если я правильно тебя понял, то вот:
Код:
{$CLEO}
0000:

:start
wait 0
0AFA:  is_samp_available
jf @start
chatmsg "--------------" 0xA05A5A
chatmsg "Настройки /fls" 0x44C175
chatmsg "Активация    Q" 0x44C175
chatmsg "--------------" 0xA05A5A                 
0B34: samp register_client_command "fls" to_label @floodsett

while true
    wait 0
    if and
    0AB0: 81
    0@ > 0 // Если он что-то ввёл после команды и нажал кнопку
    then 
        0AF9: samp say_msg "%s" 2@v
        wait 0@
    end
end


:floodsett
SAMP.IsCommandTyped(3@)
if 0AD4: 4@ = scan_string 3@ format "%s%d" 2@v 0@ // Текст и задержка
then     
    chatmsg "Запись данных удачна, нажмите Q для начала" 0x44C175
else
    chatmsg "Неверно введены данные" 0xA05A5A
end   
0B43: samp cmd_ret
К сожалению опкод 0AD4 не может сканировать большое кол-во символов, поэтому строка будет мелкая, либо будет крашить.

Все оказалось намного проще.. Чем я думал... Спасибо, буду тренироваться