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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
вообще не едет.Стоит и всё.
Звук то проигрывается?
Поставь проверку... ну как проверка, сообщение в чат, в котором будет указана ось X, Y и Z чекпоинта и по необходимости, тип.
Код:
0AF8: samp add_message_to_chat "X: %.2f Y: %.2f Z: %.2f Type: %d" color 0xFF61BB 0@ 1@ 2@ 3@
 

Stas07

Известный
Проверенный
262
98
{$CLEO .cs}
//-------------MAIN---------------
if not 0@ = SAMP.Base()
then
end_thread
end
repeat
wait 400
until 0afa: struct
:NONAME_32
wait 0
if and
Player.Defined($PLAYER_CHAR)
Actor.Driving($PLAYER_ACTOR)
84A7: not actor $PLAYER_ACTOR driving_boat
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
0ADC: test_cheat "ac"
jf @NONAME_32
9@ = Actor.Car($PLAYER_ACTOR)
if
Car.Defined(9@)
else_jump @NONAME_32
wait 0
018C: play_sound 1058 at 0.0 0.0 0.0
0AB1: @SearchCP 0 0@ 1@ 2@ 3@
02CE: 11@ = ground_z_at 0@ 1@ 2@
Car.SetDriverBehaviour(9@, Nowhere)
00AE: set_car 9@ traffic_behaviour_to 2
0423: set_car 9@ improved_handling_to 2.0 // (float)
03AB: unknown_car 9@ flag 1
Car.DriveTo(9@, 0@, 1@, 11@)
0A8E: 10@ = 0 + 50
Car.SetMaxSpeed(9@, 10@)
jump @NONAME_32
:SearchCP
// 0AB1: @SearchCP 0 0@ 1@ 2@ 3@
var
0@ : float
1@ : float
2@ : float
3@ : int
4@ : int
5@ : int
6@ : int
end

3@ = -1
4@ = 0

4@ += 0xC7F158
0A8E: 5@ = 4@ + 4
0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0

if
6@ <> 0
then
0A8E: 5@ = 4@ + 16
0A8D: 0@ = read_memory 5@ size 4 virtual_protect 0 // X

0A8E: 5@ = 4@ + 20
0A8D: 1@ = read_memory 5@ size 4 virtual_protect 0 // Y

0A8E: 5@ = 4@ + 24
0A8D: 2@ = read_memory 5@ size 4 virtual_protect 0 // Z

0A8D: 3@ = read_memory 4@ size 1 virtual_protect 0 // Type
{
0 - Öèëèíäð ñî ñòðåëêîé
1 - Öèëèíäð ñ ôèíàëüíûì ôëàæêîì
2 - Öèëèíäð
3 - Êîëüöî
4 - Êîëüöî
5 - Êîëüöî
6 - Êîëüöî
7 - Êîëüöî
8 - Êîëüöî
}
end
0AB2: ret 4 0@ 1@ 2@ 3@
Вроде всё исправил всё равно стоит.
 

Stas07

Известный
Проверенный
262
98
Код:
{$CLEO .cs}
 
//-------------MAIN---------------
if not 0@ = SAMP.Base()
then
end_thread
end
 
repeat
wait 400
until 0afa: struct
 
:NONAME_32
wait 0
if and
  Player.Defined($PLAYER_CHAR)
  Actor.Driving($PLAYER_ACTOR)
84A7:  not actor $PLAYER_ACTOR driving_boat
84C8:  not actor $PLAYER_ACTOR driving_flying_vehicle
0ADC:  test_cheat "ac"
jf @NONAME_32
9@ = Actor.Car($PLAYER_ACTOR)
if
  Car.Defined(9@)
else_jump @NONAME_32
wait 0
018C: play_sound 1058 at 0.0 0.0 0.0
0AB1: @SearchCP 0 0@ 1@ 2@ 3@
0AF8: samp add_message_to_chat "X: %.2f Y: %.2f Z: %.2f Type: %d" color 0xFF61BB 0@ 1@ 2@ 3@
02CE: 11@ = ground_z_at 0@ 1@ 2@
Car.SetDriverBehaviour(9@, Nowhere)
00AE: set_car 9@ traffic_behaviour_to 2
0423: set_car 9@ improved_handling_to 2.0 // (float)
03AB: unknown_car 9@ flag 1
Car.DriveTo(9@, 0@, 1@, 11@)
0A8E: 10@ = 0 + 50
Car.SetMaxSpeed(9@, 10@)
jump @NONAME_32
 
:SearchCP
// 0AB1: @SearchCP 0 0@ 1@ 2@ 3@
var
    0@ : float
    1@ : float
    2@ : float
    3@ : int
    4@ : int
    5@ : int
    6@ : int
end
 
3@ = -1
4@ = 0
 
4@ += 0xC7F158
0A8E: 5@ = 4@ + 4
0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0
 
if
    6@ <> 0
then
    0A8E: 5@ = 4@ + 16
    0A8D: 0@ = read_memory 5@ size 4 virtual_protect 0 // X
 
    0A8E: 5@ = 4@ + 20
    0A8D: 1@ = read_memory 5@ size 4 virtual_protect 0 // Y
 
    0A8E: 5@ = 4@ + 24
    0A8D: 2@ = read_memory 5@ size 4 virtual_protect 0 // Z
 
    0A8D: 3@ = read_memory 4@ size 1 virtual_protect 0 // Type
    {
        0 - Öèëèíäð ñî ñòðåëêîé
        1 - Öèëèíäð ñ ôèíàëüíûì ôëàæêîì
        2 - Öèëèíäð
        3 - Êîëüöî
        4 - Êîëüöî
        5 - Êîëüöî
        6 - Êîëüöî
        7 - Êîëüöî
        8 - Êîëüöî
    }
end
0AB2: ret 4 0@ 1@ 2@ 3@
почему ?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Код:
{$CLEO .cs}
 
//-------------MAIN---------------
if not 0@ = SAMP.Base()
then
end_thread
end
 
repeat
wait 400
until 0afa: struct
 
:NONAME_32
wait 0
if and
  Player.Defined($PLAYER_CHAR)
  Actor.Driving($PLAYER_ACTOR)
84A7:  not actor $PLAYER_ACTOR driving_boat
84C8:  not actor $PLAYER_ACTOR driving_flying_vehicle
0ADC:  test_cheat "ac"
jf @NONAME_32
9@ = Actor.Car($PLAYER_ACTOR)
if
  Car.Defined(9@)
else_jump @NONAME_32
wait 0
018C: play_sound 1058 at 0.0 0.0 0.0
0AB1: @SearchCP 0 0@ 1@ 2@ 3@
0AF8: samp add_message_to_chat "X: %.2f Y: %.2f Z: %.2f Type: %d" color 0xFF61BB 0@ 1@ 2@ 3@
02CE: 11@ = ground_z_at 0@ 1@ 2@
Car.SetDriverBehaviour(9@, Nowhere)
00AE: set_car 9@ traffic_behaviour_to 2
0423: set_car 9@ improved_handling_to 2.0 // (float)
03AB: unknown_car 9@ flag 1
Car.DriveTo(9@, 0@, 1@, 11@)
0A8E: 10@ = 0 + 50
Car.SetMaxSpeed(9@, 10@)
jump @NONAME_32
 
:SearchCP
// 0AB1: @SearchCP 0 0@ 1@ 2@ 3@
var
    0@ : float
    1@ : float
    2@ : float
    3@ : int
    4@ : int
    5@ : int
    6@ : int
end
 
3@ = -1
4@ = 0
 
4@ += 0xC7F158
0A8E: 5@ = 4@ + 4
0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0
 
if
    6@ <> 0
then
    0A8E: 5@ = 4@ + 16
    0A8D: 0@ = read_memory 5@ size 4 virtual_protect 0 // X
 
    0A8E: 5@ = 4@ + 20
    0A8D: 1@ = read_memory 5@ size 4 virtual_protect 0 // Y
 
    0A8E: 5@ = 4@ + 24
    0A8D: 2@ = read_memory 5@ size 4 virtual_protect 0 // Z
 
    0A8D: 3@ = read_memory 4@ size 1 virtual_protect 0 // Type
    {
        0 - Öèëèíäð ñî ñòðåëêîé
        1 - Öèëèíäð ñ ôèíàëüíûì ôëàæêîì
        2 - Öèëèíäð
        3 - Êîëüöî
        4 - Êîëüöî
        5 - Êîëüöî
        6 - Êîëüöî
        7 - Êîëüöî
        8 - Êîëüöî
    }
end
0AB2: ret 4 0@ 1@ 2@ 3@
почему ?
Вот рабочий:
Код:
{$CLEO}
 
0000:
 
if
    8AF7: get_samp_base_to 33@
then
    0A93: end_custom_thread
end
repeat
    wait 400
until 0AFA: is_samp_structures_available
 
:1
wait 0
if and
    Actor.Driving($PLAYER_ACTOR)
    84A7: not actor $PLAYER_ACTOR driving_boat
    84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
    0ADC: test_cheat "ac"
jf @1
 
4@ = Actor.Car($PLAYER_ACTOR)
046C: 5@ = car 4@ driver
0AB1: @SearchCP 0 0@ 1@ 2@ 3@
if and
    Car.Defined(4@)
    5@ <> -1
    003C: $PLAYER_ACTOR == 5@
jf @1
 
0AF8: samp add_message_to_chat "%.2f %.2f %.2f %d" color 0xFF61BB 0@ 1@ 2@ 3@
018C: play_sound 1058 at 0.0 0.0 0.0
02CE: 2@ = ground_z_at 0@ 1@ 999.0
Car.SetDriverBehaviour(4@, 1)
00AE: set_car 4@ traffic_behaviour_to 2
0423: set_car 4@ improved_handling_to 2.0 // (float)
03AB: unknown_car 4@ flag 1
Car.DriveTo(4@, 0@, 1@, 2@)
Car.SetMaxSpeed(4@, 50)
 
wait 250
repeat
    wait 0
    if
        gosub @chk_off
    jf @1
until 00EE: actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 10.0 10.0 in_car
 
jump @1
 
:chk_off
wait 0
if or
    0ADC: test_cheat "ac"
    not Actor.Driving($PLAYER_ACTOR)
then
    059A: return_false
else
    0485: return_true
end
return
 
// ----------------
 
:SearchCP
// 0AB1: @SearchCP 0 0@ 1@ 2@ 3@
var
    0@ : float
    1@ : float
    2@ : float
    3@ : int
    4@ : int
    5@ : int
    6@ : int
end
 
3@ = -1
4@ = 0
 
4@ += 0xC7F158
0A8E: 5@ = 4@ + 4
0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0
 
if
    6@ <> 0
then
    0A8E: 5@ = 4@ + 16
    0A8D: 0@ = read_memory 5@ size 4 virtual_protect 0 // X
 
    0A8E: 5@ = 4@ + 20
    0A8D: 1@ = read_memory 5@ size 4 virtual_protect 0 // Y
 
    0A8E: 5@ = 4@ + 24
    0A8D: 2@ = read_memory 5@ size 4 virtual_protect 0 // Z
 
    0A8D: 3@ = read_memory 4@ size 1 virtual_protect 0 // Type
end
0AB2: ret 4 0@ 1@ 2@ 3@

Только одно "но": он не едит :D только колеса поварачивается. Думаю найдешь способ ;)
 
  • Нравится
Реакции: Stas07

Stas07

Известный
Проверенный
262
98
Вот рабочий:
Код:
{$CLEO}
 
0000:
 
if
    8AF7: get_samp_base_to 33@
then
    0A93: end_custom_thread
end
repeat
    wait 400
until 0AFA: is_samp_structures_available
 
:1
wait 0
if and
    Actor.Driving($PLAYER_ACTOR)
    84A7: not actor $PLAYER_ACTOR driving_boat
    84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
    0ADC: test_cheat "ac"
jf @1
 
4@ = Actor.Car($PLAYER_ACTOR)
046C: 5@ = car 4@ driver
0AB1: @SearchCP 0 0@ 1@ 2@ 3@
if and
    Car.Defined(4@)
    5@ <> -1
    003C: $PLAYER_ACTOR == 5@
jf @1
 
0AF8: samp add_message_to_chat "%.2f %.2f %.2f %d" color 0xFF61BB 0@ 1@ 2@ 3@
018C: play_sound 1058 at 0.0 0.0 0.0
02CE: 2@ = ground_z_at 0@ 1@ 999.0
Car.SetDriverBehaviour(4@, 1)
00AE: set_car 4@ traffic_behaviour_to 2
0423: set_car 4@ improved_handling_to 2.0 // (float)
03AB: unknown_car 4@ flag 1
Car.DriveTo(4@, 0@, 1@, 2@)
Car.SetMaxSpeed(4@, 50)
 
wait 250
repeat
    wait 0
    if
        gosub @chk_off
    jf @1
until 00EE: actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 10.0 10.0 in_car
 
jump @1
 
:chk_off
wait 0
if or
    0ADC: test_cheat "ac"
    not Actor.Driving($PLAYER_ACTOR)
then
    059A: return_false
else
    0485: return_true
end
return
 
// ----------------
 
:SearchCP
// 0AB1: @SearchCP 0 0@ 1@ 2@ 3@
var
    0@ : float
    1@ : float
    2@ : float
    3@ : int
    4@ : int
    5@ : int
    6@ : int
end
 
3@ = -1
4@ = 0
 
4@ += 0xC7F158
0A8E: 5@ = 4@ + 4
0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0
 
if
    6@ <> 0
then
    0A8E: 5@ = 4@ + 16
    0A8D: 0@ = read_memory 5@ size 4 virtual_protect 0 // X
 
    0A8E: 5@ = 4@ + 20
    0A8D: 1@ = read_memory 5@ size 4 virtual_protect 0 // Y
 
    0A8E: 5@ = 4@ + 24
    0A8D: 2@ = read_memory 5@ size 4 virtual_protect 0 // Z
 
    0A8D: 3@ = read_memory 4@ size 1 virtual_protect 0 // Type
end
0AB2: ret 4 0@ 1@ 2@ 3@

Только одно "но": он не едит :D только колеса поварачивается. Думаю найдешь способ ;)

Уже нашол почему не едет flag car.
Всё большое спасибо.
 

Thomas_Johnson

Известный
Проверенный
183
21
Как тогда нужно сравнивать, чтобы действие продолжалось, если актёр, который находится в переменной, теряет хп?
Код:
{$CLEO .cs}
var
0@:int
1@:int
end
if
not 29@ = samp.Base()
then
0A93: end_custom_thread
end
repeat
wait 400
until samp.Available()
0AF8: samp add_message_to_chat "Колокольчик" color 0xFF0000
 
while true
wait 0
if
0AD2: 29@ = player $PLAYER_CHAR targeted_actor
then
0@ = Actor.Health(29@)
repeat
wait 0
1@ = Actor.Health(29@)
until 0@ > 1@
018C: play_sound 1141 at 0.0 0.0 0.0
end
end
Выход из цикла сделай сам
 
  • Нравится
Реакции: hnnssy

Избранный

Новичок
198
30
Как тогда нужно сравнивать, чтобы действие продолжалось, если актёр, который находится в переменной, теряет хп?

надо в отдельную переменную выводить и с ней сравнивать, а не как ты делаешь
Код:
:1
wait 0
gosub @3
2@ = 1@
:2
gosub @3
if
2@ > 1@
jf @2
018C: play_sound 1052 at 0.0 0.0 0.0
jump @1
:3
if
0AD2: 0@ = player $PLAYER_CHAR targeted_actor //IF and SET
jf @3
0B25: samp 1@ = get_player_health_from_actor_handle 0@
return
 
  • Нравится
Реакции: hnnssy

Thomas_Johnson

Известный
Проверенный
183
21
Код:
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
if
0AE1: 9@ = random_actor_near_point 0@ 1@ 2@ in_radius 1488.0 find_next 0 pass_deads 1 //IF and SET
Всегда возвращает false, в чем проблема?