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

Xample

Новичок
89
1
поцаны, я правильно написал? будет работать?
Код:
0B34: samp register_client_command "weather" to_label @cmd
while true
wait 0
end

:cmd
wait 0
if
20@==22
then
01b6: set_weather 22
20@=1
else
20@+=1
01b6: set_weather 20@
end
SAMP.CmdRet

протестил. всё норм
 
Последнее редактирование:

Bogach

Активный
558
27
В локальных диалогах есть такой стиль:
C++:
0AC6: 0@ = label @text offset
0B3B: samp show_dialog id 2 caption "Шестой диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_TABLIST_HEADERS
0A93: end_custom_thread
:text
hex
    "Место назначнения\tРасстояние\tСтоимость\tПримерное время поездки\n"
    "Лос-Сантос\t1,8 км.\t100$\t2:57\n"
    "Сан-Фиерро\t5,8 км.\t250$\t5:25\n"
    "Лас-Вентурас\t4,8 км.\t175$\t4:32\n"
    "Другой пункт\tX км.\tY$\tZ\n"
    "Кудыкины горы\t9999 км.\tunlim$\t144000:22\n"
    "Остаться здесь\0"
end
Могу ли я вместо текста:
C++:
"Лос-Сантос\t1,8 км.\t100$\t2:57\n"
сделать как - то так:
C++:
"1@\t2@\t3@\t4@\n"
В этих переменных будут содержаться данные полученные из ini файла.
 

Избранный

Новичок
198
30
В локальных диалогах есть такой стиль:
C++:
0AC6: 0@ = label @text offset
0B3B: samp show_dialog id 2 caption "Шестой диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_TABLIST_HEADERS
0A93: end_custom_thread
:text
hex
    "Место назначнения\tРасстояние\tСтоимость\tПримерное время поездки\n"
    "Лос-Сантос\t1,8 км.\t100$\t2:57\n"
    "Сан-Фиерро\t5,8 км.\t250$\t5:25\n"
    "Лас-Вентурас\t4,8 км.\t175$\t4:32\n"
    "Другой пункт\tX км.\tY$\tZ\n"
    "Кудыкины горы\t9999 км.\tunlim$\t144000:22\n"
    "Остаться здесь\0"
end
Могу ли я вместо текста:
C++:
"Лос-Сантос\t1,8 км.\t100$\t2:57\n"
сделать как - то так:
C++:
"1@\t2@\t3@\t4@\n"
В этих переменных будут содержаться данные полученные из ini файла.
C++:
"%d\t%d\t%d\t%d\n" 1@ 2@ 3@ 4@
%d - целые числа %s - строка %f - дробные

от меня вопрос
почему не кликается мышка?
вот так делаю и нихуя
0C72: set_virtual_key 1 down true
wait 50
0C72: set_virtual_key 1 down false
 
Последнее редактирование:

hnnssy

Известный
Друг
2,684
2,760
1. Ребят, скажите пожалуйста, для записи и чтения с .txt файлов используются те же опкоды , что и для .ini или есть для этого какие - то другие опкоды ?
2. Как я понял, .ini файлы дополняются этим опкодом:
C++:
0AD8: write_string_to_file $hFile from 0@v //IF and SET
Содержание .ini файлов такое:

C++:
[Main]
Parametr=Value
(Ну как - то так :trollface:)
Как можно дополнять .ini файл по такой же схеме? например:

C++:
[Main1]
Paramtr=Value
[Main2]
Parametr=Value
Конечно самому можно в .ini файле прописать как надо, а потом сделать считывание, а если не выходя из игры?
Ну я надеюсь достаточно понятно обьяснил.
По поводу дополнения ини файлов:
есть опкоды считывания, а есть опкоды и записи в ини файлы
при записи если нет указанной ячейки или ключа, то скрипт допишет их
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,979
CLEO:
{$CLEO}
0000:

CONST
MOUSEEVENTF_ABSOLUTE = 0x8000
MOUSEEVENTF_LEFTDOWN = 0x0002
MOUSEEVENTF_LEFTUP = 0x0004
MOUSEEVENTF_MIDDLEDOWN = 0x0020
MOUSEEVENTF_MIDDLEUP = 0x0040
MOUSEEVENTF_MOVE = 0x0001
MOUSEEVENTF_RIGHTDOWN = 0x0008
MOUSEEVENTF_RIGHTUP = 0x0010
MOUSEEVENTF_WHEEL = 0x0800
MOUSEEVENTF_XDOWN = 0x0080
MOUSEEVENTF_XUP = 0x0100
MOUSEEVENTF_WHEEL = 0x0800
MOUSEEVENTF_HWHEEL = 0x01000
NULL = 0
END

WHILE TRUE
0001: 0
    IF 0ADC:   test_cheat "1"
    THEN 0AB1: /* [SP/MP] */ call_scm_func @SCM_mouse_event params 5 | dwFlags MOUSEEVENTF_LEFTDOWN dx NULL dy NULL dwData NULL dwExtraInfo NULL ||
    END
END

:SCM_mouse_event // 0AB1: /* [SP/MP] */ call_scm_func @SCM_mouse_event params 5 | dwFlags 0@ dx 1@ dy 2@ dwData 3@ dwExtraInfo 4@ ||
0AA2: 25@ = load_library "User32.DLL"
0AA4: 26@ = get_proc_address "mouse_event" library 25@
0AA5: call 26@ num_params 5 pop 0 | dwExtraInfo 4@ dwData 3@ dy 2@ dx 1@ dwFlags 0@ ||
0AA3: free_library 25@
0AB2: ret 0 ||
 
  • Нравится
Реакции: Избранный

Избранный

Новичок
198
30
CLEO:
{$CLEO}
0000:

CONST
MOUSEEVENTF_ABSOLUTE = 0x8000
MOUSEEVENTF_LEFTDOWN = 0x0002
MOUSEEVENTF_LEFTUP = 0x0004
MOUSEEVENTF_MIDDLEDOWN = 0x0020
MOUSEEVENTF_MIDDLEUP = 0x0040
MOUSEEVENTF_MOVE = 0x0001
MOUSEEVENTF_RIGHTDOWN = 0x0008
MOUSEEVENTF_RIGHTUP = 0x0010
MOUSEEVENTF_WHEEL = 0x0800
MOUSEEVENTF_XDOWN = 0x0080
MOUSEEVENTF_XUP = 0x0100
MOUSEEVENTF_WHEEL = 0x0800
MOUSEEVENTF_HWHEEL = 0x01000
NULL = 0
END

WHILE TRUE
0001: 0
    IF 0ADC:   test_cheat "1"
    THEN 0AB1: /* [SP/MP] */ call_scm_func @SCM_mouse_event params 5 | dwFlags MOUSEEVENTF_LEFTDOWN dx NULL dy NULL dwData NULL dwExtraInfo NULL ||
    END
END

:SCM_mouse_event // 0AB1: /* [SP/MP] */ call_scm_func @SCM_mouse_event params 5 | dwFlags 0@ dx 1@ dy 2@ dwData 3@ dwExtraInfo 4@ ||
0AA2: 25@ = load_library "User32.DLL"
0AA4: 26@ = get_proc_address "mouse_event" library 25@
0AA5: call 26@ num_params 5 pop 0 | dwExtraInfo 4@ dwData 3@ dy 2@ dx 1@ dwFlags 0@ ||
0AA3: free_library 25@
0AB2: ret 0 ||
спасибо, правда я уже сам сделал) да и странно почему через keybd_event не работает клик мышки, а через эту функцию норм
 

Dark_Knight

Me, me and me.
Друг
4,078
2,094
Вообще надо юзать SendInput. Эти 2 функции считаються устаревшими.
 

Избранный

Новичок
198
30
пацаны не могу понять почеиу ид пассажира не записывается? пишет "-1"
Код:
:10
wait 0
if and
0AB0:   key_pressed 17
0AB0:   key_pressed 53
jf @1
7@ = Actor.CurrentCar($PLAYER_ACTOR)
0A97: 0@ = car 7@ struct
0@ += 0x464 //указатель на пассажира на переднем месте
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
0B2B: samp 12@ = get_player_id_by_actor_handle 1@
0AF8: samp add_message_to_chat "%d" color 0xFFFF00 12@
jump @1
бля я 3 года назад делал похожее клео, за 5 минут сделал без всякой помощи, потупел выходит.
 

ackman31

Новичок
35
0
Есть ли проверка на введение параметров в команде?например нужно вписать ид и если он не вписан писало бы в чат подсказку типо: Используйте /arrest [id]
 

Избранный

Новичок
198
30
Есть ли проверка на введение параметров в команде?например нужно вписать ид и если он не вписан писало бы в чат подсказку типо: Используйте /arrest [id]
0B35: samp 1@ = get_last_command_params
if
1@ == 0
then
"используйте /arrest id"
 

ackman31

Новичок
35
0
0B35: samp 1@ = get_last_command_params
if
1@ == 0
then
"используйте /arrest id"
cпасибо

пишу команду и ничего не происходит
Код:
{$CLEO}
0000:

wait 0 
chatmsg "{ADFF2F}Cleo fake arrest for ARP by {0000FF}ackman31 успешно загружено"

0B34: "farrest" @fArrest 
0BDE: pause_thread 0

:fArrest
0B35: samp 0@ = get_last_command_params
if
0@ == 0
then
chatmsg "[Подсказка}: Используйте /farrest [Звание] [Ваш ник] [Ник преступника] [Время ареста]" 0xADFF2F
if
0@ == 1
then 
alloc 1@ 128
alloc 2@ 128
alloc 3@ 128
0AA5: call 0x8220AD num_params 7 pop 7 params 5@v 4@v 1@ 2@ 3@ "%s %s %s %i:%i" 0@
0AF8: "%s %s передает преступника %s в полицейский участок" color 0x00B2EE 3@ 2@ 1@
0AF8: "%s был доставлен в тюрьму для отбытия наказания" color 0xFFFFFF 1@
0AF8: "Время заключения:: %i:%i" color 0x32CD32 4@ 5@
0AC9: free_allocated_memory 1@
0AC9: free_allocated_memory 2@
end
end
cmdret
 
Последнее редактирование модератором:

Избранный

Новичок
198
30
попробуй так
:fArrest
if
not 0B35: samp 0@ = get_last_command_params
then
chatmsg "[Подсказка}: Используйте /farrest [Звание] [Ваш ник] [Ник преступника] [Время ареста]"
 
Последнее редактирование: