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

Dark_Knight

Me, me and me.
Друг
4,065
2,079
1. Не нужно никакой проверки. При вводе команды скрипт сразу переходит на метку команды. В конце команты обязателен samp.cmdret
2. Тему сампфанкс почитай. Там описание всего этого есть.
3. Через проверку.
Код:
if 0AB0: key_pressed 0x30
then
    if samp.ToggleCursor(true)
    then samp.ToggleCursor(false)
    else samp.ToggleCursor(true)
    end
    while 0AB0: key_pressed 0x30
    wait 0
    end
end
 
  • Нравится
Реакции: san0

san0

Известный
Друг
411
267
По поводу 1 вопроса тгда?
Почему создает диалог и прыгает на метку , даже когда я не вводил команду?


0AF8: samp add_message_to_chat "[Testing dialog]: {EEEEEE}Введите {61269E}/tdialog{EEEEEE}, чтобы начать пользоваться скриптом." color 0x61269E
0B34: samp register_client_command "tdialog" to_label @lesson_1

:lesson_1
wait 0
Dialog.Create(29@, "Test Dialog")
Dialog.AddEditBox(29@, 1, "Enter you message", 0, 0 170, 50)
Dialog.AddButton(29@,4@,"Send RPC", 0, 57, 150, 40 )
0B5A: get_screen_resolution 0@ 28@
28@ /= 2
28@ -= 40
0B84: samp dialog 29@ set_pos_XY 0 28@ size 200 300
0B86: samp dialog 29@ set_visible true
0B43: samp cmd_ret
jump @lesson_3
 

san0

Известный
Друг
411
267
Вот код
PHP:
{$CLEO .cs}
 
if
    8AF7: get_samp_base_to 5@
then
    0A93: end_custom_thread
end
repeat
    wait 400
until 0AFA: is_samp_structures_available
0AF8: samp add_message_to_chat "[Testing dialog]: {EEEEEE}Введите {61269E}/tdialog{EEEEEE}, чтобы начать пользоваться скриптом." color 0x61269E
0B34: samp register_client_command "tdialog" to_label @lesson_1
 
:lesson_1
wait 0
Dialog.Create(29@, "Test Dialog")
Dialog.AddEditBox(29@, 1, "Enter your password", 0, 0 170, 50)
Dialog.AddButton(29@,4@,"Send RPC", 0, 57, 150, 40 )
0B5A: get_screen_resolution 0@ 28@
28@ /= 2
28@ -= 40
0B84: samp dialog 29@ set_pos_XY 0 28@ size 200 300
0B86: samp dialog 29@ set_visible true
0B43: samp cmd_ret
jump @lesson_3
 
:lesson_3
10@ = Samp.GetSAMPPlayerIDByActorHandle($Player_Actor)
0AC8: 11@ = allocate_memory_size 128
0B36: samp 11@ = get_player_nickname 10@
0AF8: samp add_message_to_chat "[Testing dialog]: {EEEEEE}Ваш id - {E59400}%d , а никнейм - {61269E}%s{EEEEEE}, поздравляю." color 0x61269E 10@ 11@
 
:lesson_2
if 0AB0: key_pressed 49
then
    if samp.ToggleCursor(true)
    then samp.ToggleCursor(false)
    else samp.ToggleCursor(true)
    end
    while 0AB0: key_pressed 49
    wait 0
    end
end
 

Dark_Knight

Me, me and me.
Друг
4,065
2,079
1. Немного не правильно создаешь диалог. Тебе нужно его создавать только 1 раз.
2. Скрипт у тебя не зацикленый и будет крашить.
3. Не правильно выходишь с команды, точнее там jump не нужен.
4. Вот ты выделил память под ник, но после использования не очистил её. 0ac9 используй для очистки.
Код:
{$CLEO}
{$NOSOURCE}
 
if
not 29@ = samp.Base()
then
end_thread
else
    while not samp.Available()
    wait 0
    end
end
 
0B34: samp register_client_command "tdialog" to_label @lesson_1
0b34: "nickid" @lesson_3
 
while true
wait 0
if 0AB0: key_pressed 49
then
    if samp.ToggleCursor(true)
    then samp.ToggleCursor(false)
    else samp.ToggleCursor(true)
    end
    while 0AB0: key_pressed 49
    wait 0
    end
end
end
 
:lesson_1
wait 0
Dialog.Create(29@, "Test Dialog")
Dialog.AddEditBox(29@, 1, "Enter your password", 0, 0 170, 50)
Dialog.AddButton(29@,4@,"Send RPC", 0, 57, 150, 40 )
0B5A: get_screen_resolution 0@ 28@
28@ /= 2
28@ -= 40
0B84: samp dialog 29@ set_pos_XY 0 28@ size 200 300
0B86: samp dialog 29@ set_visible true
samp.CmdRet()
 
:lesson_3
10@ = Samp.GetSAMPPlayerIDByActorHandle($Player_Actor)
0AC8: 11@ = allocate_memory_size 128
0B36: samp 11@ = get_player_nickname 10@
0AF8: samp add_message_to_chat "[Testing dialog]: {EEEEEE}Âàø id - {E59400}%d , à íèêíåéì - {61269E}%s{EEEEEE}, ïîçäðàâëÿþ." color 0x61269E 10@ 11@
0ac9: 11@
samp.CmdRet()
 
  • Нравится
Реакции: san0

san0

Известный
Друг
411
267
Спасибо большое. Последний вопрос, пожалуй. Если мне всеравно надо прыгнуть на метку (( jump @lesson_3)) , то как использовать в метке где команда (( :lesson_1 )) ?.
 

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Код:
0B34: samp register_client_command "tdialog" to_label @lesson_1
0b34: "nickid" @lesson_3
Не внимателен ты.
 

san0

Известный
Друг
411
267
Есть неболшой вопросик. В частности, вот код
PHP:
        0AC8: 21@ = allocate_memory_size 128
        0AD3: 21@ = format "0x%s" 19@v
        0AF8: samp add_message_to_chat "%s" color 0x61269E 3@
        0ac9: 3@
        0ac9: 21@
Выходит что
21@ - 0x13E6D8 - цвет сообщения, котрое надо вывести
3@ - сообщение, которое надо вывести в чат.
Вопрос, как мне использовать опкод 0aF8, чтоб я мог в color вставить форматирование или переменную
Т.Е

Код:
0AF8: samp add_message_to_chat "Сообщение (( %s ))" color  цвет сообщения((21 @ )) параметры для форматирования ((3@))
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Есть неболшой вопросик. В частности, вот код
PHP:
        0AC8: 21@ = allocate_memory_size 128
        0AD3: 21@ = format "0x%s" 19@v
        0AF8: samp add_message_to_chat "%s" color 0x61269E 3@
        0ac9: 3@
        0ac9: 21@
Выходит что
21@ - 0x13E6D8 - цвет сообщения, котрое надо вывести
3@ - сообщение, которое надо вывести в чат.
Вопрос, как мне использовать опкод 0aF8, чтоб я мог в color вставить форматирование или переменную
Т.Е

Код:
0AF8: samp add_message_to_chat "Сообщение (( %s ))" color  цвет сообщения((21 @ )) параметры для форматирования ((3@))

Код:
21@ = 0x13E6D8
0AC8: 3@ 32
0AD3: 3@ "lalka"
0AF8: samp add_message_to_chat "Сообщение (( %s ))" color 21@ | 3@
0ac9: 3@
 

san0

Известный
Друг
411
267
Код:
21@ = 0x13E6D8
0AC8: 3@ 32
0AD3: 3@ "lalka"
0AF8: samp add_message_to_chat "Сообщение (( %s ))" color 21@ | 3@
0ac9: 3@

К сожалению,не работает, выводит рандомные цвета.
PHP:
        0AC8: 3@ = allocate_memory_size 128
        0B89: samp dialog 29@ get_control 1 text_to 3
        0AF4: 19@v = read_string_from_ini_file "CLEO\ini\fake.ini" section "General" key "Color"
        0AC8: 21@ = allocate_memory_size 128
        0AD3: 21@ = format "0x%s" 19@v
        0AF8: samp add_message_to_chat " %s color %s - строка " color 21@ | 21@ 3@
        0ac9: 3@
        0ac9: 21@
Даже скрин сделал
http://screeny.ru/52f79245806b79ac3d022dd8
:boss:
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
К сожалению,не работает, выводит рандомные цвета.
PHP:
        0AC8: 3@ = allocate_memory_size 128
        0B89: samp dialog 29@ get_control 1 text_to 3
        0AF4: 19@v = read_string_from_ini_file "CLEO\ini\fake.ini" section "General" key "Color"
        0AC8: 21@ = allocate_memory_size 128
        0AD3: 21@ = format "0x%s" 19@v
        0AF8: samp add_message_to_chat " %s color %s - строка " color 21@ | 21@ 3@
        0ac9: 3@
        0ac9: 21@
Даже скрин сделал
http://screeny.ru/52f79245806b79ac3d022dd8
:boss:


Код:
0AC8: 3@ = allocate_memory_size 128
0B89: samp dialog 29@ get_control 1 text_to 3@
0AF4: 19@v = read_string_from_ini_file "CLEO\ini\fake.ini" section "General" key "Color"
0AD4: 29@ = scan_string 19@v format "%X" 21@
0AF8: samp add_message_to_chat " 0x%6X color %s - строка" color 21@ | 21@ 3@
0ac9: 3@
 
  • Нравится
Реакции: san0

Opcode.eXe

Известный
84
112
Hello.

How do i DeleteUrlCacheEntryA ?

Код:
0AA2: 9@ = load_library "wininet.dll" // IF and SET
0AA4: 10@ = get_proc_address "DeleteUrlCacheEntryA" library 9@ // IF and SET
0AA7: call_function 10@ num_params 1 pop 0 "CLEO\Chat.log" 3@
0AF8: samp add_message_to_chat "CHAT-ERROR: (0x%X)" color 0xFFFFFF 3@
                         
0AA7: call_function 2@ num_params 5 pop 0 0 0 "CLEO\Chat.log" "http:\\ugbase.eu/NChat/readop.php" 0 3@ // ??????? ???? ??????????? ?????? ???, ????????? ??? ??????
if 3@==1
then
0A9A: 4@ = openfile "CLEO\Chat.log" mode "rt" // IF and SET
0AC8: 5@ = allocate_memory_size 260
 
  6@ = 0
    WHILE 8AD6:  end_of_file 4@ reached
    wait 0
        6@ += 1
        0AD7: read_string_from_file 4@ to 5@ size 260 // IF and SET
        0AF8: samp add_message_to_chat "%s" color 0xFF61BB 5@
    END
0AC9: free_allocated_memory 5@     
end
0A9B: closefile 4@
( He download same file all time )
 

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Код:
0ad3: DownloadFile = "https:%c%cdl.dropboxusercontent.com/s/rh4ldlfhvx7vpie/draw.cs" 47 47 
0ad3: LocalFile = "cleo\ki\draw.cs"
call @URLDownloadToFile 2 LocalFile DownloadFile 2@
call @DeleteUrlCacheEntryA 1 DownloadFile
 
:URLDownloadToFile
0AA2: 10@ = load_library "Urlmon.dll" // IF and SET
0AA4: 11@ = get_proc_address "URLDownloadToFileA" 10@
0AA7: address 11@ params 5 pop 0 /*params*/ 0 0 0@ 1@ 0 /*ret*/ 12@
ret 1 12@
 
:DeleteUrlCacheEntryA
0AA2: 30@ = load_library "wininet.dll" 
0AA4: 29@ = get_proc_address "DeleteUrlCacheEntryA" library 30@
0AA5: call 29@ num_params 1 pop 0 0@
ret 0
 

TheMonstercat

Известный
75
11
Hey when i try to use @GetLocalTime it says : Incorrect Directive @ ret 8 3@ 4@ 5@ 6@ 7@ 8@ 9@ 10@

Код:
:GetLocalTime
{
Params:
In: None
Out: wYear 3@ wMonth 4@ wDayOfWeek 5@ wDay 6@ wHour 7@ wMinute 8@ wSeconds 9@ wMiliseconds 10@
Example:
0AB1: Call @GetLocalTime 0 wYear 3@ wMonth 4@ wDayOfWeek 5@ wDay 6@ wHour 7@ wMinute 8@ wSeconds 9@ wMiliseconds 10@
}
0AA2: 0@ = load_library "kernel32.dll"
0AA4: 1@ = get_proc_address "GetLocalTime" library 0@
0AC8: 2@ = alloc mem 32
0AA5: call 1@ params 1 pop 0 2@
0A8D: 3@ = read mem 2@ size 2 vp 0
2@ += 2
0A8D: 4@ = read mem 2@ size 2 vp 0
2@ += 2
0A8D: 5@ = read mem 2@ size 2 vp 0
2@ += 2
0A8D: 6@ = read mem 2@ size 2 vp 0
2@ += 2
0A8D: 7@ = read mem 2@ size 2 vp 0
2@ += 2
0A8D: 8@ = read mem 2@ size 2 vp 0
2@ += 2
0A8D: 9@ = read mem 2@ size 2 vp 0
2@ += 2
0A8D: 10@ = read mem 2@ size 2 vp 0
2@ -= 30
ret 8 3@ 4@ 5@ 6@ 7@ 8@ 9@ 10@