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

Mustang228

Известный
62
15
@san0, а если так?
CLEO:
while true
wait 0
if 10@ == 1
then
0AC8: 0@ = allocate_memory_size 260
0A8D: 0@ = read_memory 0xBAAEC9 size 260 virtual_protect 1
if 0C18: 2@ = strstr string1 0@ string2 "Press N"
then
0B56: set_game_key 10 state 0x80
wait 60
0B56: set_game_key 10 state 0x0

else if 0C18: 2@ = strstr string1 0@ string2 "Press Y"
then
0B56: set_game_key 11 state 0x80
wait 60
0B56: set_game_key 11 state 0x0
end
end

0ac9: 0@
end
end
Только не работает, мб из за этого адреса 0xBAAEC9, т.к взял со старого скрипта, но за что отвечает этот адрес?
 
Последнее редактирование:

san0

Известный
Друг
411
267
@san0, а если так?
CLEO:
while true
wait 0
if 10@ == 1
then
0AC8: 0@ = allocate_memory_size 260
0A8D: 0@ = read_memory 0xBAAEC9 size 260 virtual_protect 1
if 0C18: 2@ = strstr string1 0@ string2 "Press N"
then
0B56: set_game_key 10 state 0x80
wait 60
0B56: set_game_key 10 state 0x0

else if 0C18: 2@ = strstr string1 0@ string2 "Press Y"
then
0B56: set_game_key 11 state 0x80
wait 60
0B56: set_game_key 11 state 0x0
end
end

0ac9: 0@
end
end
Только не работает, мб из за этого адреса 0xBAAEC9, т.к взял со старого скрипта, но за что отвечает этот адрес?
http://www.cplusplus.com/forum/beginner/57510/
что-то да подойдет
 

Goldfish

Известный
106
22
нужно сравнить совпадает ли n'ный 1 угол с углом 2 с запасом +\- 20 например

на уме очень геморный способ, как сделать эту проверку проще?
 

Goldfish

Известный
106
22
сегодня на уме, завтра ноухау :cool:

-20 < 1 угол - 2 угол < 20
Если правильно понял.
да, но допустим первый угол у нас 2.00, второй 358.05 и по сути они близки, но в скрипе придется делать уйму условий , на сколько себе я представляю это

мб есь где скм функа готовая или что-то в этом роде?)
 
Последнее редактирование модератором:

fonarik

Известный
206
3
Чет не получается хукнуть диалог,кто поможет показать пример?
 

Goldfish

Известный
106
22
хуяси, случайно родил эту функу несколько минут назад :crazy:
Код:
0AB1: call_scm_func @CheckAngle 3 first_angle 3@ second_angle 2@ degree 40.0 return_bool 4@

:CheckAngle
0063: 0@ -= 2@
0@ < 0.0
jf @CA_1
0@ *= -1.0

:CA_1
0025:   1@ > 0@
jf @CA_not

2@ *= 2.0
005B: 0@ += 2@
0@ > 360.0
jf @CA_2
0@ -= 360.0

:CA_2
8025: not  1@ > 0@
jf @CA_not
4@ = 1
jump @CA_ret

:CA_not
4@ = 0

:CA_ret
0AB2: ret 1 4@

во блин, а раньше я костылил и сравнивал градусы по 4рем сторонам координат :jokingly:
крч можно кинуть в сборник снипетов

вот кстати рабочее демо
Код:
{$CLEO }
Actor.PutAt($player_actor,1519.8344, -2648.0139, 13.5469)

0376: 1@ = create_random_actor_at 1523.1256 -2647.8982 13.5469
0172: 3@ = actor 1@ Z_angle
while true
    wait 0
    0172: 2@ = actor $player_actor Z_angle
    0AB1: call_scm_func @CheckAngle 3 first_angle 3@ second_angle 2@ degree 40.0 return_bool 4@
    if 4@ == 1
    then
        0AD1: show_formatted_text_highpriority "true" time 2000 2@
    else
        0AD1: show_formatted_text_highpriority "false" time 2000 2@
    end
    0172: 3@ = actor 1@ Z_angle
    3@ += 0.5
    Actor.Angle(1@) = 3@
end

:CheckAngle
0063: 0@ -= 2@
0@ < 0.0
jf @CA_1
0@ *= -1.0

:CA_1
0025:   1@ > 0@
jf @CA_not

2@ *= 2.0
005B: 0@ += 2@
0@ > 360.0
jf @CA_2
0@ -= 360.0

:CA_2
8025: not  1@ > 0@
jf @CA_not
4@ = 1
jump @CA_ret

:CA_not
4@ = 0

:CA_ret
0AB2: ret 1 4@

:)
 

VADE

Новичок
36
1
Как получить id определенного игрока и записать его в переменную? Напишите опкод или скиньте где все по подробнее описано!
 

Mustang228

Известный
62
15
@san0, не реагирует на текстдрав.
CLEO:
{$CLEO}
{$INCLUDE SF}


if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end


0B34: samp register_client_command "ap" to_label @press


while true
wait 0
if 10@ == 1
then
0AC8: 0@ = allocate_memory_size 260
0A8D: 0@ = read_memory 0xBAAEC9 size 260 virtual_protect 1
if 0C18: 2@ = strstr string1 0@ string2 "Press N"
then
0B56: set_game_key 10 state 0x80
wait 60
0B56: set_game_key 10 state 0x0

else if 0C18: 2@ = strstr string1 0@ string2 "Press Y"
then
0B56: set_game_key 11 state 0x80
wait 60
0B56: set_game_key 11 state 0x0
end
end

0ac9: 0@
end
end

 

:press
0B12: 10@ = 10@ XOR 1
if 10@ == 1
then chatmsg  "on" 0xe9c69a
else chatmsg  "off" 0xe9c69a
end
Samp.CmdRet()
 
Последнее редактирование:

Vovich

HOT
Проверенный
717
197
@san0, не реагирует на текстдрав.
CLEO:
{$CLEO}
{$INCLUDE SF}


if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end


0B34: samp register_client_command "ap" to_label @press


while true
wait 0
if 10@ == 1
then
0AC8: 0@ = allocate_memory_size 260
0A8D: 0@ = read_memory 0xBAAEC9 size 260 virtual_protect 1
if 0C18: 2@ = strstr string1 0@ string2 "Press N"
then
0B56: set_game_key 10 state 0x80
wait 60
0B56: set_game_key 10 state 0x0

else if 0C18: 2@ = strstr string1 0@ string2 "Press Y"
then
0B56: set_game_key 11 state 0x80
wait 60
0B56: set_game_key 11 state 0x0
end
end

0ac9: 0@
end
end



:press
0B12: 10@ = 10@ XOR 1
if 10@ == 1
then chatmsg  "on" 0xe9c69a
else chatmsg  "off" 0xe9c69a
end
Samp.CmdRet()
Потому что это не текстдрав, а GameTextForPlayer