You are not logged in.
Pages: 1
Дизайн бы получше, и отличная база выйдет.
Хотелось бы увидеть подсветку контант, а то иногда сливается с опкодами

{
    START NEW THREAD WITHOUT INTERRUPTING MAIN THREAD
    0AB1: call_scm_func @RUN_CLEO_MOD 1 AT LINE @CLEO
   by Deji
}
 
:RUN_CLEO_MOD
0A9F: 32@ = current_thread_pointer
000A: 32@ += 0x10
0A8D: 32@ = read_memory 32@ size 4 virtual_protect 0
0062: 32@ -= 0@
0AA7: call_function 0x464C20 num_params 1 pop 1 32@ 33@
005A: 32@ += 0@
000A: 33@ += 0x10
0A8C: write_memory 33@ size 4 value 32@ virtual_protect 0
000A: 33@ += 0x2C
for 32@ = 0 to 30
    0A8C: write_memory 33@ size 4 value 1@(32@,30i) virtual_protect 0
    000A: 33@ += 4
end
0AB2: ret 0Example by opcode
{$CLEO .cs}
0000:
0662: NOP "#########################"
0662: NOP "___Made by Opcode.eXe___"  { BASIC THREAD }
0662: NOP "Www.Youtube.Com/OpcodeXe"
0662: NOP "#########################"
 
0AB1: call_scm_func @RUN_CLEO_MOD 1 AT LINE @CLEO
 
 
WHILE TRUE
    wait 0
    if
    0AB0: 49 // X
    then
        0AD1: show_formatted_text_highpriority "CLEO THREAD_1 IS RUNNING! %d" time 1 33@
    end
END
 
 
:CLEO
0000:
WHILE TRUE
    wait 0
    if
    0AB0: 50 // X
    then
        0AD1: show_formatted_text_highpriority "CLEO THREAD_2 IS RUNNING! %d" time 1 33@
    end
END
 
 
:RUN_CLEO
0A9F: 32@ = current_thread_pointer
000A: 32@ += 0x10
0A8D: 32@ = read_memory 32@ size 4 virtual_protect 0
0062: 32@ -= 0@
0AA7: call_function 0x464C20 num_params 1 pop 1 32@ 33@
005A: 32@ += 0@
000A: 33@ += 0x10
0A8C: write_memory 33@ size 4 value 32@ virtual_protect 0
000A: 33@ += 0x2C
for 32@ = 0 to 30
    0A8C: write_memory 33@ size 4 value 1@(32@,30i) virtual_protect 0
    000A: 33@ += 4
end
0AB2: ret 0
					Поставить погоду такую
//0AB1: @DRAW_LINE 9 POS 10.0 10.0 _TO_ 200.0 310.0 RGBA 255 0 0 255 THICKNESS 1.0
:DRAW_LINE
0087: 11@ = 2@ // (float)
0087: 12@ = 3@ // (float)
0509: 10@ = distance_between_XY 0@ 1@ and_XY 2@ 3@
10@ -= 37.0 {REMOVE STRANGE OFFSET AT END}
0063: 2@ -= 0@ // (float) 
0063: 3@ -= 1@ // (float) 
0604: get_Z_angle_for_point 2@ 3@  store_to 9@
9@ += 84.0
005B: 0@ += 11@
0@ /= 2.0    {MITTE} // get center pos
005B: 1@ += 12@
1@ /= 2.0
03F0: enable_text_draw 1
074B: draw_texture 666 position 0@ 1@ scale 10@ 8@ angle 9@ color 4@ 5@ 6@ 7@
0AB2: 0
					Как получить все содержимое файла в переменную?
У меня вмещает только 30 аргументов. Если аргументов больше 30, то:
Access violation at address 004C59FC in module 'sanny.exe'. Write of address 0056FB4D.
Видел скрипт, который подставлял значения в hex. 
Вот например:
hex "Example" 20 "%d" 00 end
Вот сам скрипт
{$CLEO .cs}
 
0000:
0AA2: 31@ = load_library "kernel32.dll" // IF and SET
0AA4: 30@ = get_proc_address "GetModuleHandleA" library 31@ // IF and SET
0AA7: call_function 30@ num_params 1 pop 0 "samp.dll" 0@
 
 
0A8E: 2@ = 0@ + 0x212AC4
0A8D: 1@ = read_memory 2@ size 4 virtual_protect 1
 
//0AB1: call_scm_func @CDXUTDialog__AddSlider 10 struct 1@ samp_base 0@ id 0x80 x 32 y 320 width 512 height 16 min 0 max 100000 value 100
 
0AC6: 10@ = label @labelTEXTFormat offset
0AC6: 3@ = label @callback offset
0A8E: 2@ = 3@ + 12
0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1
 
0A8E: 2@ = 0@ + 0x212A24 //_cSampChatInfo
0A8D: 10@ = read_memory 2@ size 4 virtual_protect 1 //_cSampChatInfo
0A8E: 2@ = 3@ + 18
0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1
 
0A8E: 10@ = 0@ + 0x79680 //_cSampChatInfo
0A8E: 2@ = 3@ + 24
0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1
 
0AC6: 3@ = label @jmp offset
0A8E: 2@ = 3@ + 1
0A8E: 10@ = 0@ + 0xAD7D0 //_cSampChatInfo
0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1
 
0AC6: 3@ = label @callback offset
0A8E: 2@ = 0@ + 0x94940 // int __stdcall CDXUTDialog__SetCallback(int pCallback, int pUserContext)
0AA6: call_method 2@ struct 1@ num_params 2 pop 0 params 0 3@
 
0A93: end_custom_thread
 
:callback
hex
{00} 60                                          //PUSHA                                     
{10} 8B4424 18                                  //MOV EAX, [ESP+18]                                 
{14} 50                                          //PUSH EAX         
{14} 8B4424 18                                  //MOV EAX, [ESP+18]                                 
{18} 50                                          //PUSH EAX                                 
{18} B8 11111111                                //MOV EAX, 11111111h  format                     
{18} 50                                          //PUSH EAX                                       
{1C} B8 11111111                                //MOV EAX, 11111111h  cSampChatInfo
{1C} 50                                          //PUSH EAX                                   
{20} B8 11111111                                //MOV EAX, 11111111h  func addDebugMessage
{20} FFD0                                        //CALL EAX
{20} 83C4 10                                    //ADD ESP, 10h
{10} 61                                          //POPA
end
 
:jmp
hex
{10} B8 11111111                                //MOV EAX, 11111111h  AD7D0 CallbackDialogChat
{10} FFE0                                        //JMP EAX
end
 
 
:labelTEXTFormat
hex
"ControlID:" 20 "0x%.8x" 20202020 "Event:" 20 "0x%.4x" 00
end
 
//example
//0AB1: call_scm_func @CDXUTDialog__AddSlider 10 struct 1@ samp_base 0@ id 0x44 x 240 y 32 width 400 height 16 min 0 max 100 value 50
:CDXUTDialog__AddSlider
//A0D30 CDXUTDialog__AddSlider(int ID, int x, int y, int width, int height, int min, int max, int value, char isDefault, int ppCreated)
0A8E: 20@ = 1@ + 0xA0D30
0AA6: call_method 20@ struct 0@ parmas 10 pop 0 ppCreated 0 isDefault 0 value 9@ max 8@ min 7@ height 6@ width 5@ y 4@ x 3@ id 2@
0AB2: ret 0Можно ли это сделать без ассемблерных вставок и как это сделать?
То есть необходимо подставить цифры в теле hex под %d
Аудиострим работает в сампе. Доказательство тому скрипт pein_chubasu
Не плохо было бы сделать подсветку констант, а то они сливаются с текстом опкода.
Сделайте, пожалуйста, чтобы исходники скриптов можно было сохранять в отдельную папку, а то папка cleo засоряется.
{$CLEO} 
wait 0 
0000: 
//Инициализация 
if 
0AA2: 0@ = load_library "User32.dll" // IF and SET 
jf @error_load_user32 
if 
0AA4: 1@ = get_proc_address "keybd_event" library 0@ // IF and SET 
jf @error_proc_keybd_event 
//Главный цикл 
:key 
wait 1000 
0AA5: call 1@ num_params 4 pop 0 0 0 0 0x57 
0AA5: call 1@ num_params 4 pop 0 0 0x02 0 0x57 
jump @key 
//Блок обработки ошибок 
:error_proc_keybd_event 
0AA3: free_library 0@ 
:error_load_user32 
0A93: end_custom_threadby MogAika
Можете убрать в следующей версии комментарии, которые берутся в { }, потому что они даже в стринге берутся в комментарий. Например: 1@ = "{FFFFF}text"
Pages: 1