Batya2281337
Новичок
- 4
- 6
Фигня получается.Добавь проверку на одинаковость строк
:Noname_2
wait 0
if
0AB0: key_pressed 90
else_jump @Noname_2
:Noname_21
wait 0
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x718
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
if
1@ == 2
else_jump @Noname_89
0A8C: write_memory 1@ size 1 value 3 virtual_protect 0
jump @Noname_2
:Noname_89
wait 0
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x718
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
if
1@ == 3
else_jump @Noname_21
0A8C: write_memory 1@ size 1 value 2 virtual_protect 0
jump @Noname_2
{$CLEO}
if
not 29@ = samp.Base()
then
end_thread
end
repeat
wait 100
until samp.Available()
0B34: samp register_client_command "timelocal" to_label @GetTime
while true
wait 0
end
:GetTime
call @GetSystemTime 0 3@ 4@ 5@ 6@ 7@ 8@ 9@ 10@
message "%d %d %d %d %d %d %d %d" 0x000FFF 3@ 4@ 5@ 6@ 7@ 8@ 9@ 20@
samp.CmdRet()
:GetSystemTime
0AA2: 0@ = load_library "Cleo\kernel32.dll"
0AA4: 1@ = get_proc_address "GetSystemTime" library 0@
0AC8: 2@ = alloc mem 32
call 1@ params 1 pop 0 2@
0A8D: 3@ = read mem 2@ size 2 vp 1
2@ += 2
0A8D: 4@ = read mem 2@ size 2 vp 1
2@ += 2
0A8D: 5@ = read mem 2@ size 2 vp 1
2@ += 2
0A8D: 6@ = read mem 2@ size 2 vp 1
2@ += 2
0A8D: 7@ = read mem 2@ size 2 vp 1
2@ += 2
0A8D: 8@ = read mem 2@ size 2 vp 1
2@ += 2
0A8D: 9@ = read mem 2@ size 2 vp 1
2@ += 2
0A8D: 10@ = read mem 2@ size 2 vp 1
2@ -= 30
0AC9: free mem 2@
ret 8 3@ 4@ 5@ 6@ 7@ 8@ 9@ 10@
Как сделать функцию смены слота оружия? ну суперган из собейта короч. (просто суперган из соба Гонщика в машине не работает, поэтому хочу свой сделать в клео)
вот что получилось сделать только, но оно как ни странно не работает, помогите плиз:
Код::Noname_2 wait 0 if 0AB0: key_pressed 90 else_jump @Noname_2 :Noname_21 wait 0 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 0x718 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 if 1@ == 2 else_jump @Noname_89 0A8C: write_memory 1@ size 1 value 3 virtual_protect 0 jump @Noname_2 :Noname_89 wait 0 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 0x718 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 if 1@ == 3 else_jump @Noname_21 0A8C: write_memory 1@ size 1 value 2 virtual_protect 0 jump @Noname_2
01B9: set_actor 2@ armed_weapon_to 0
Зачем тебе велосипед? Есть суперган на клео
Есть опкод на смену оружияКод:01B9: set_actor 2@ armed_weapon_to 0
Как сделать функцию смены слота оружия? ну суперган из собейта короч. (просто суперган из соба Гонщика в машине не работает, поэтому хочу свой сделать в клео)
вот что получилось сделать только, но оно как ни странно не работает, помогите плиз:
Код::Noname_2 wait 0 if 0AB0: key_pressed 90 else_jump @Noname_2 :Noname_21 wait 0 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 0x718 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 if 1@ == 2 else_jump @Noname_89 0A8C: write_memory 1@ size 1 value 3 virtual_protect 0 jump @Noname_2 :Noname_89 wait 0 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 0x718 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 if 1@ == 3 else_jump @Noname_21 0A8C: write_memory 1@ size 1 value 2 virtual_protect 0 jump @Noname_2
{$CLEO}
0000: NOP
Thread "Buldozer"
var
0@ : integer
1@ : integer
30@ : integer
31@ : integer
32@ : integer
end
:start
wait 0
if and
0AB0: key_precced 105 // np 9
0AB0: key_precced 104 // np 8
jf @start
:Buldozer1
wait 0
Actor.StorePos($PLAYER_ACTOR, 10@, 11@, 12@) // Находит позицию игрока и записывает в 0, 1, 2
30@ = 5000.0 // Далность нахождения маркера
31@ = -1 // Номер блока ближайшего маркера
for 0@ = 0 to 32
1@ = 0@
1@ *= 56
1@ += 0xC7F158
0A8E: 2@ = 1@ + 16 // Нахождение X координаты
0A8D: 20@ = read_memory 2@ size 4 virtual_protect 0
0A8E: 2@ = 1@ + 20 // Нахождение Y координаты
0A8D: 21@ = read_memory 2@ size 4 virtual_protect 0
0A8E: 2@ = 1@ + 24 // Нахождение Z координаты
0A8D: 22@ = read_memory 2@ size 4 virtual_protect 0
0509: 32@ = distance_between_XY 10@ 11@ and_XY 20@ 21@
0A8E: 2@ = 1@ + 4
0A8D: 8@ = read_memory 2@ size 4 virtual_protect 0
if and
32@ < 30@
8@ <> 0
then
30@ = 32@
31@ = 0@
end
:End
wait 0
if
31@ <> -1
jf @End
1@ = 31@
1@ *= 56
1@ += 0xC7F158
0A8E: 2@ = 1@ + 16 // Нахождение X координаты
0A8D: 20@ = read_memory 2@ size 4 virtual_protect 0
0A8E: 2@ = 1@ + 20 // Нахождение Y координаты
0A8D: 21@ = read_memory 2@ size 4 virtual_protect 0
0A8E: 2@ = 1@ + 24 // Нахождение Z координаты
0A8D: 22@ = read_memory 2@ size 4 virtual_protect 0
22@ -= 2.0
:Buldozer2
wait 0
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
jump @Buldozer3
:Buldozer3
wait 0
if and
0AB0: key_precced 105 // np 9
0AB0: key_precced 104 // np 8
jf @Buldozer3
jump @Buldozer1
CPed +0x718 = [byte] Current weapon slot
- CPed +0x4F4 = [dword] Текущее оружие (RpClump)
сделал через этот адрес, не робит что-то, видимо надо еще добавлять чето
- CPed +0x4F4 = [dword] Текущее оружие (RpClump)
{$CLEO}
0000:
while true
wait 0
if
0AB0: key_pressed 90
then
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x740
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
0AD1: show_formatted_text_highpriority "ID1: %d" time 2000 0x00ff00 1@
wait 500
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x4F4
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
0AD1: show_formatted_text_highpriority "ID2: %d" time 2000 0x00ff00 1@
wait 500
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x718
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
0AD1: show_formatted_text_highpriority "ID3: %d" time 2000 0x00ff00 1@
end
end
endКод:{$CLEO} 0000: while true wait 0 if 0AB0: key_pressed 90 then 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 0x740 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 0AD1: show_formatted_text_highpriority "ID1: %d" time 2000 0x00ff00 1@ wait 500 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 0x4F4 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 0AD1: show_formatted_text_highpriority "ID2: %d" time 2000 0x00ff00 1@ wait 500 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 0x718 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 [CODE]0AD1: show_formatted_text_highpriority "ID3: %d" time 2000 1@ //Ошибка - 0AD1: show_formatted_text_highpriority "ID3: %d" time 2000 0x00ff00 1@
end[/code]
Выводит одно и то же число, во всех трех случаях, вне зависимости от оружия - бред...
0AD1: show_formatted_text_highpriority "ID3: %d" time 2000 1@
//Ошибка: 0AD1: show_formatted_text_highpriority "ID3: %d" time 2000 0x00ff00 1@
Логично, ведь правильно:
Код:0AD1: show_formatted_text_highpriority "ID3: %d" time 2000 1@ //Ошибка: 0AD1: show_formatted_text_highpriority "ID3: %d" time 2000 0x00ff00 1@