Alloc 3@ 124
If 0B3C: 555 1@ 2@ 3@
Then
If 1@ == 1
Then
If not 3@ == 0
Then
Chatmsg "чё-то адекватное в буфере" -1
Else
Chatmsg "введите че-то адекватное в буфер"
End
End
Free 3@
end
У меня в буфер всегда записывается нечто подобное: ™ѓpяѓ, причём с каждым перезапуском скрипта разные сообщения, при этом они ещё могут и меняться, в зависимости от ранее введённых данных. Если выделить достаточно памяти, то запиештся просто символ "Д", но опять же он в процессе работы скрипта может поменятьсяCLEO:Alloc 3@ 124 If 0B3C: 555 1@ 2@ 3@ Then If 1@ == 1 Then If not 3@ == 0 Then Chatmsg "чё-то адекватное в буфере" -1 Else Chatmsg "введите че-то адекватное в буфер" End End Free 3@ end
{$CLEO}
0000:
while true
wait 0
if
0ADC: test_cheat "9"
then
0B3B: samp show_dialog id 555 caption "Тест" text "Тест" button_1 "Ввести" button_2 "Закрыть" style 1
alloc 1@ 256
while 0B4C: samp is_dialog_active 555
wait 0
if
0B3C: samp is_dialog_responded id 555 button 0 list_item 0 input_text 1@
then
log "%s %i" 1@ 1@
if
8039: 1@ == 0
then
chatmsg "Что-то есть" -1
else
chatmsg "Пусто" -1
end
end
end
free 1@
end
end
У меня в буфер всегда записывается нечто подобное: ™ѓpяѓ, причём с каждым перезапуском скрипта разные сообщения, при этом они ещё могут и меняться, в зависимости от ранее введённых данных. Если выделить достаточно памяти, то запиештся просто символ "Д", но опять же он в процессе работы скрипта может поменяться
CLEO:{$CLEO} 0000: while true wait 0 if 0ADC: test_cheat "9" then 0B3B: samp show_dialog id 555 caption "Тест" text "Тест" button_1 "Ввести" button_2 "Закрыть" style 1 alloc 1@ 256 while 0B4C: samp is_dialog_active 555 wait 0 if 0B3C: samp is_dialog_responded id 555 button 0 list_item 0 input_text 1@ then log "%s %i" 1@ 1@ if 8039: 1@ == 0 then chatmsg "Что-то есть" -1 else chatmsg "Пусто" -1 end end end free 1@ end end
Log "%s %i" 1@ 1@
Никак, я поставил эту проверку, потому что ты сам сравниваешь переменную, в которой должна быть строка, с числомКак ты хранишь строку и десятичное число в одной переменной?CLEO:Log "%s %i" 1@ 1@
Log - не проверкаНикак, я поставил эту проверку, потому что ты сам сравниваешь переменную, в которой должна быть строка, с числом
Я в курсе, проверка в смысле, чтоб самому в консоли посмотреть, что там творитсяLog - не проверка
Я в курсе, проверка в смысле, чтоб самому в консоли посмотреть, что там творится
{$CLEO}
0000:
while true
wait 0
if
0ADC: test_cheat "9"
then
0B3B: samp show_dialog id 555 caption "Test" text "Please input some text" button_1 "input" button_2 "cancel" style 1
alloc 1@ 256
while 0B4C: samp is_dialog_active 555
wait 0
if
0B3C: samp is_dialog_responded id 555 button 0 list_item 0 input_text 1@
then
if 8C18: not 2@ = strstr string1 1@ string2 " "
then
chatmsg "Some text inputed" -1
log "%s" 1@
else
chatmsg "Empty" -1
end
end
end
free 1@
end
end
:HookRPC
0BE5: raknet 2@ = get_hook_param PARAM_PACKETID
if
2@ == RPC_SCRSHOWDIALOG
then
if
27@ == 255
then
if
28@ > 4
then
27@ = 0
29@ = 0
end
end
if
29@ == 1
then
if
33@ > 10000
then
29@ = 0
end
alloc 5@ 257
0C11: memset destination 5@ value 0 size 257
0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT //id
0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE //style
0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE //title len
0BE8: raknet bit_stream 1@ read_array 5@ size 4@ //title
if and
0C14: strcmp string1 5@ string2 "Ñêëàä îðóæèÿ"
3@ == DIALOG_STYLE_LIST
then
if
28@ == 8
then
28@ = 0
27@ = 255
end
1@ = BitStream.New()
BitStream.Write(1@, 2@, BS_TYPE_SHORT, 2) //id
BitStream.Write(1@, DIALOG_STYLE_LIST, BS_TYPE_BYTE, 1) //style
BitStream.Write(1@, 28@, BS_TYPE_SHORT, 1) //listbox number
0B8A: raknet send_rpc RPC_DIALOGRESPONSE bit_stream 1@
BitStream.Delete(1@)
free 5@
28@ ++
33@ = 0
0BE0: raknet hook_ret 0
end
end
end
0BE0: raknet hook_ret 1
между хукАМИ, но хук один, окКак мне сделать задержку между хуками 1000 милисек
CLEO::HookRPC 0BE5: raknet 2@ = get_hook_param PARAM_PACKETID if 2@ == RPC_SCRSHOWDIALOG then if 27@ == 255 then if 28@ > 4 then 27@ = 0 29@ = 0 end end if 29@ == 1 then if 33@ > 10000 then 29@ = 0 end alloc 5@ 257 0C11: memset destination 5@ value 0 size 257 0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT //id 0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE //style 0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE //title len 0BE8: raknet bit_stream 1@ read_array 5@ size 4@ //title if and 0C14: strcmp string1 5@ string2 "Ñêëàä îðóæèÿ" 3@ == DIALOG_STYLE_LIST then if 28@ == 8 then 28@ = 0 27@ = 255 end 1@ = BitStream.New() BitStream.Write(1@, 2@, BS_TYPE_SHORT, 2) //id BitStream.Write(1@, DIALOG_STYLE_LIST, BS_TYPE_BYTE, 1) //style BitStream.Write(1@, 28@, BS_TYPE_SHORT, 1) //listbox number 0B8A: raknet send_rpc RPC_DIALOGRESPONSE bit_stream 1@ BitStream.Delete(1@) free 5@ 28@ ++ 33@ = 0 0BE0: raknet hook_ret 0 end end end 0BE0: raknet hook_ret 1
потому что нет паузы потока, это явно не код даркпикселяПочему при создании текстдрава игра начинает мерцать? (код из видео даркпикселя)Посмотреть вложение 37305
Почему игра начинает мерцать?
CLEO:{$CLEO} 0000: :main wait 5000 0AF8: samp add_message_to_chat "TEST" color 0xffffff
Как сделать так, чтобы при прописывании команды раз в 10 секунд отправлялось сообщение до тех пор, пока команда не будет прописана заново?
{$cleo}
0000:
Repeat
Wait 0
Until 0afa:
0b34: "flood" @my_cmd
While true
Wait 0
If 0@ == 1
Then
Say "okey"
Wait 10000
End
End
:my_CMD
If 0@ == 1
Then
0@ == 0
Chatmsg "deactivated flood" -1
Else
0@ == 1
Chatmsg "activated flood" -1
End
Cmdret
if orКак после /ans ещё добавить две командыCLEO:jf @NONAME_581 alloc 3@ 512 0BE5: raknet 1@ = get_hook_param 0 2@ = BitStream.Read(1@, 3) BitStream.ReadArray(1@, 3@, 2@) 0C1E: array 3@ element 2@ el_size 1 = 0 if 0C29: 4@ = stristr string1 3@ string2 "/ans"
и будет одинаково реагировать на разные команды, спс, удалисьif or
if .. "/ans"Как после /ans ещё добавить две командыCLEO:jf @NONAME_581 alloc 3@ 512 0BE5: raknet 1@ = get_hook_param 0 2@ = BitStream.Read(1@, 3) BitStream.ReadArray(1@, 3@, 2@) 0C1E: array 3@ element 2@ el_size 1 = 0 if 0C29: 4@ = stristr string1 3@ string2 "/ans"