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

san0

Известный
Друг
411
267
Ребят, как отключить , скажем так ноп , disable weapon data.
Включить так
Код:
0B2D: write_module_memory "samp.dll" offset 0x5660 value 0xC3 size 1
0xC3 - значит,как я понял, size 1
А вот с выключение полная запара, что ж такое >:o
Пробовал 0B2E: получать и его 0AD4 сосканировать, но что-то не выходит.
 

DubStep_

Известный
292
52
Ребят, как отключить , скажем так ноп , disable weapon data.
Включить так
Код:
0B2D: write_module_memory "samp.dll" offset 0x5660 value 0xC3 size 1
0xC3 - значит,как я понял, size 1
А вот с выключение полная запара, что ж такое >:o
Пробовал 0B2E: получать и его 0AD4 сосканировать, но что-то не выходит.

Мой способ:

PHP:
/* on nop */
SAMP.ReadSAMPMemory(6@, adr, 2)
SAMP.WriteSAMPMemory(adr, 50064, 2)
/* off nop */
SAMP.WriteSAMPMemory(adr, 6@, 2)
 
  • Нравится
Реакции: san0

san0

Известный
Друг
411
267
Мой способ:

PHP:
/* on nop */
SAMP.ReadSAMPMemory(6@, adr, 2)
SAMP.WriteSAMPMemory(adr, 50064, 2)
/* off nop */
SAMP.WriteSAMPMemory(adr, 6@, 2)

За SAMP.WriteSAMPMemory(0x5660, 12@, 1) оказываться
0B2D: write_module_memory "samp.dll" offset 0x5660 value 12@ size 1
отличаются.
Вообщем, пасиб большой :don-t_mention:
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Код:
0@ = SAMP.Base()
0C0C: 1@ = struct 0@ offset 0x5660 size 1
 
0C0D: struct 0@ offset 0x5660 size 1 = 0xC3 // On
0C0D: struct 0@ offset 0x5660 size 1 = 1@ // Off

Код:
0B2E: 1@ = read_samp_memory offset 0x5660 size 1
 
0B2D: write_samp_memory offset 0x5660 value 0xC3 size 1 // On
0B2D: write_samp_memory offset 0x5660 value 1@ size 1 // Off

Код:
0@ = SAMP.Base()
0@ += 0x5660 // Offset
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 1
 
0A8C: write_memory 0@ size 1 value 0xC3 virtual_protect 1 // On
0A8C: write_memory 0@ size 1 value 1@ virtual_protect 1 // Off

И наконец, вообще без использования SAMPFUNCS:
Код:
0ab1: call @GetSampBase 0 retr_base_to 0@
0@ += 0x5660 // Offset
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 1
 
0A8C: write_memory 0@ size 1 value 0xC3 virtual_protect 1 // On
0A8C: write_memory 0@ size 1 value 1@ virtual_protect 1 // Off
 
// Эту функцию в конец кода, можно в самый низ.
:GetSampBase
0AA2: 0@ = load_library "kernel32.dll"
0AA4: 1@ = get_proc_address "GetModuleHandleA" library 0@
0AA7: call_function 1@ num_params 1 pop 0 "samp.dll" 2@
0ab2: ret 1 2@

0xC3 - size = 1
0xC390 - size = 2
0x120011 - size = 3
0x09010225 - size = 4
т.е. 1 символ(двухзначный или как ещё сказать...) равен одному байту.
 
  • Нравится
Реакции: san0

san0

Известный
Друг
411
267
Код:
0@ = SAMP.Base()
0C0C: 1@ = struct 0@ offset 0x5660 size 1
 
0C0D: struct 0@ offset 0x5660 size 1 = 0xC3 // On
0C0D: struct 0@ offset 0x5660 size 1 = 1@ // Off

Код:
0B2E: 1@ = read_samp_memory offset 0x5660 size 1
 
0B2D: write_samp_memory offset 0x5660 value 0xC3 size 1 // On
0B2D: write_samp_memory offset 0x5660 value 1@ size 1 // Off

Код:
0@ = SAMP.Base()
0@ += 0x5660 // Offset
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 1
 
0A8C: write_memory 0@ size 1 value 0xC3 virtual_protect 1 // On
0A8C: write_memory 0@ size 1 value 1@ virtual_protect 1 // Off

И наконец, вообще без использования SAMPFUNCS:
Код:
0ab1: call @GetSampBase 0 retr_base_to 0@
0@ += 0x5660 // Offset
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 1
 
0A8C: write_memory 0@ size 1 value 0xC3 virtual_protect 1 // On
0A8C: write_memory 0@ size 1 value 1@ virtual_protect 1 // Off
 
// Эту функцию в конец кода, можно в самый низ.
:GetSampBase
0AA2: 0@ = load_library "kernel32.dll"
0AA4: 1@ = get_proc_address "GetModuleHandleA" library 0@
0AA7: call_function 1@ num_params 1 pop 0 "samp.dll" 2@
0ab2: ret 1 2@

0xC3 - size = 1
0xC390 - size = 2
0x120011 - size = 3
0x09010225 - size = 4
т.е. 1 символ(двухзначный или как ещё сказать...) равен одному байту.

Очень твой способ без сапфунс интересный. Репу не могу пока ставить, спасибо
 

fonarik

Известный
206
3
Ребят,как добавить к кнопке действие в новых диалогах?Прошу пример кода,например тп на кнопку и хп
 

Sergeevich

Новичок
30
1
Код:
// This file was decompiled using sascm.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
 
//-------------MAIN---------------
0000: NOP
 
:NONAME_2
wait 0
  Actor.Driving($PLAYER_ACTOR)
else_jump @NONAME_2
 
:NONAME_19
0@ = Actor.CurrentCar($PLAYER_ACTOR)
053F: set_car 0@ tires_vulnerability 0
else_jump @NONAME_19
jump @NONAME_2
Нужно к этому CLEO добавить активацию и дезактивацию. И чтобы на экране писал Cheat - ON, Cheat - OFF
 

Lightkiller

Известный
Всефорумный модератор
557
397
Sergeevich, используй опкод
0ACD: show_text_highpriority "~w~Cheat ~g~ ON" time 1000
0ACD: show_text_highpriority "~w~Cheat ~r~OFF" time 1000
 

DubStep_

Известный
292
52
Включить\Выключить: F2
PHP:
{$CLEO .cs}
0000: NOP
 
:NONAME_2
wait 0
if and
0ab0: 113 // f2
  Actor.Driving($PLAYER_ACTOR)
else_jump @NONAME_2
0ACD: show_text_highpriority "~w~Cheat ~g~ ON" time 1000
jump @NONAME_4
 
:NONAME_4
wait 5
if
8ab0: 113// f2
jf @NONAME_4
jump @NONAME_12
 
:NONAME_12
wait 0
if and
8ab0: 113 // f2
actor.Driving($PLAYER_ACTOR)
jf @NONAME_28
0@ = Actor.CurrentCar($PLAYER_ACTOR)
053F: set_car 0@ tires_vulnerability 0
jump @NONAME_12
 
:NONAME_28
0ACD: show_text_highpriority "~w~Cheat ~r~OFF" time 1000
jump @NONAME_2
 

SR_team

like pancake
BH Team
4,720
6,369
Код:
// struct stAimData ( size = 31 )
//BYTE byteCamMode; +0
//float vecAimf1[3]; +1
//float vecAimPos[3]; +13
//float fAimZ; +25
//BYTE byteCamExtZoom : 6; +29
//BYTE bUnk; +30
Как правильно использовать?

PHP:
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
3@ = SAMP.GetPlayerStruct(3@)
3@ += 24
0AC8: 4@ = allocate_memory_size 31
0C10: memcpy destination 4@ source 3@ size 31
0C0D: struct 4@ offset 13 size 4 = 0@
0C0D: struct 4@ offset 17 size 4 = 1@
0C0D: struct 4@ offset 21 size 4 = 2@
0B3D: raknet 5@ = new_bit_stream
0B40: raknet bit_stream 5@ write PACKET_AIM_SYNC type BS_TYPE_BYTE size 1
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 31
0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0
0B3E: raknet delete_bit_stream 5@
0AC9: free_allocated_memory 4@
 

fonarik

Известный
206
3
Ребят,как добавить к кнопке действие в новых диалогах?Прошу пример кода,например тп на кнопку и хп
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Ребят,как добавить к кнопке действие в новых диалогах?Прошу пример кода,например тп на кнопку и хп


Код:
/* Dialog.Create(1@ "tst")
Dialog.SetRECT(1@ 100 250 100 250)
Dialog.AddButton(1@ 1 "Teleport" 0 0 64 25)
Dialog.AddButton(1@ 2 "HP" 0 30 64 25) */
 
while true
    wait 0
    if 0B81: samp dialog 1@ pop_event_to 2@ control_id_to 3@
    then
        if 2@ == 0x101 // Button clicked
        then
            if 3@ == 1 // Control id
            then Actor.PutAt($PLAYER_ACTOR 0.0 0.0 0.0)
            end
           
            if 3@ == 2
            then Actor.Health($PLAYER_ACTOR) = 100
            end
        end
    end
end
 

Арахис

Новичок
16
0
Здравствуйте :D
Я хочу спросить...
У меня вот крч клео есть:) клео починка на кнопку 45 (Insert) , но я хочу сделать так, чтобы вводить команду , а не кнопку нажимать. команду, например /arepair .
Помогите пожалуйста :3
Вот код
Код:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
 
{$VERSION 3.1.0027}
{$CLEO .cs}
 
//-------------MAIN---------------
wait 0
 
:NONAME_4
wait 0
if
  Player.Defined($PLAYER_CHAR)
else_jump @NONAME_101
if and
  Actor.Driving($PLAYER_ACTOR)
0AB0:  key_pressed 45
else_jump @NONAME_101
03C0: 1@ = actor $PLAYER_ACTOR car
0731: set_car 1@ y_angle_to 0
wait 500
Car.Health(1@) = 877
wait 1000
if
0185:  car 1@ health >= 999
else_jump @NONAME_101
0A30: repair_car 1@
 
:NONAME_101
jump @NONAME_4