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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Ну так как в чате мне запретили спрашивать про скриптинг...
Спрошу тут. Есть опкод которым выгружаются модели.
Ну и вопрос такой: Если я выгружаю модель из памяти то от куда игра знает что нужно рендерить ?
Спроси у разработчиков движка. Нам эти вопросы неподвластны.

Есть идеи как сделать функцию получения координат точки, на которую навели курсором?Нечто подобное выбору точки телепортации в собейте (по нажатию средней кнопки мыши)
0B8F: convert_screen_coords 1@ 2@ depth 3@ to_world_3d 4@ 5@ 6@
1@, 2@ - координаты курсора мыши
 

MrAntow

Новичок
59
16
Спасибо, осталось узнать метод получения координат мыши

И за что отвечает 3@?Глубина какая-то?
 

Jack_Savage

Участник
150
17
Каким образом можно получить id или название анимации в cleo (а точней в main.scm)?
Без использования SF и библиотеки CLEO.
Не используя проверку на включенную анимацию.
(Та которая вернет true если указанная анимация включена)
Может я не прав... Но проверять в cleo все анимации которые может использовать игрок будет мягко говоря долго.
PS: Не надо говорить иди в погугли. Гуглю уже 3 или 4й день.
В гугле только опкод SF находил и куча инфы как это в pawno сделать
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,983

Jack_Savage

Участник
150
17
так чем он не подходит?
что ты пишешь?
Какой любопытный))
Пишу бомжа (кхм толпу бомжей) которые должны повторять действия игрока.
Игрок пригнул и все стадо бомжей прыгнуло.
Игрок пошел вперед и они пошли такой же анимкой.
Может есть способ синхронизировать... Но мне бы еще хотелось делать типу рандома. 1 бомж может и не прыгать а 2й может и не повторить анимку хотьбы.

И это должно работать бы в одиночке.
Так то можно было бы твоим способом найти оффсет и просто узнавать значение из памяти но если я все правильно понял в одиночке нет структуры sLocalPlayer (как то так... точно не помню)
 
Последнее редактирование:

MrAntow

Новичок
59
16
Как бы подружить 0B5E: get_cursor_pos 1@ 2@ и 0B8F: convert_screen_coords 1@ 2@ depth 3@ to_world_3d 5@ 6@ 7@? Работая последовательно выдаёт неверные значния ( точка, указанная курсором впереди персонажа судя по координатам 5@ 6@ 7@ оказывается сзади)
 

hnnssy

Известный
Друг
2,684
2,762
Как бы подружить 0B5E: get_cursor_pos 1@ 2@ и 0B8F: convert_screen_coords 1@ 2@ depth 3@ to_world_3d 5@ 6@ 7@? Работая последовательно выдаёт неверные значния ( точка, указанная курсором впереди персонажа судя по координатам 5@ 6@ 7@ оказывается сзади)
код давай свой
 

MrAntow

Новичок
59
16
:test
wait 0
if 0ADC: test_cheat "zx"
then
// if not 0@ == 228
// then
// 0@ = 228
// end
0B5D: samp toggle_cursor 1
wait 1000
0B5E: get_cursor_pos 1@ 2@
0B8F: convert_screen_coords 1@ 2@ depth 3 to_world_3d 5@ 6@ 7@
06D5: 10@ = create_racing_checkpoint_at 5@ 6@ 7@ point_to 5@ 6@ 7@ type 1 radius 2.0
0B5D: samp toggle_cursor 0
wait 1000
06D6: disable_racing_checkpoint 10@
end
jump @TEST
 

hnnssy

Известный
Друг
2,684
2,762
:test
wait 0
if 0ADC: test_cheat "zx"
then
// if not 0@ == 228
// then
// 0@ = 228
// end
0B5D: samp toggle_cursor 1
wait 1000
0B5E: get_cursor_pos 1@ 2@
0B8F: convert_screen_coords 1@ 2@ depth 3 to_world_3d 5@ 6@ 7@
06D5: 10@ = create_racing_checkpoint_at 5@ 6@ 7@ point_to 5@ 6@ 7@ type 1 radius 2.0
0B5D: samp toggle_cursor 0
wait 1000
06D6: disable_racing_checkpoint 10@
end
jump @TEST
https://www.blast.hk/wiki/opcodes:0b8f
а теперь идём сюда и смотрим на входящие параметры
 

#ripper

Новичок
17
0
CLEO:
{$CLEO .cs}
{$INCLUDE SF}
0000:

:reg
wait 2000
alloc 10@ 128

while true
wait 0
if 00DF:   actor $PLAYER_ACTOR driving
then
    for 29@ = 0 to 1000
        0B20: samp 3@ = actor_handle_by_samp_player_id 29@
        03C0: 2@ = actor $PLAYER_ACTOR car
        if 051C:   car 2@ damaged_by_actor 3@
        then
            0B2C: samp 4@ = get_vehicle_id_by_car_handle 2@
            054E: clear_actor 3@ damage
            054F: clear_car 2@ damage
            0468: clear_car 2@ last_weapon_damage
            //
            format 10@ "vehID:%d, ammount:%d, playerID:%d" 4@ 9@ 29@
            0AF8: samp add_message_to_chat 10@ color 0xFFFFFF
        end
    end
end
end
при стрельбе в транспорт playerID(29@) выдает 0, при ударе т/c с т/с playerID(29@) отображается корректно
подскажите как исправить чтоб при стрельбе в т/c 29@ выдавал корректно ид
 

BlackKnigga

Известный
BH Team
922
446
CLEO:
{$CLEO .cs}
{$INCLUDE SF}
0000:

:reg
wait 2000
alloc 10@ 128

while true
wait 0
if 00DF:   actor $PLAYER_ACTOR driving
then
    for 29@ = 0 to 1000
        0B20: samp 3@ = actor_handle_by_samp_player_id 29@
        03C0: 2@ = actor $PLAYER_ACTOR car
        if 051C:   car 2@ damaged_by_actor 3@
        then
            0B2C: samp 4@ = get_vehicle_id_by_car_handle 2@
            054E: clear_actor 3@ damage
            054F: clear_car 2@ damage
            0468: clear_car 2@ last_weapon_damage
            //
            format 10@ "vehID:%d, ammount:%d, playerID:%d" 4@ 9@ 29@
            0AF8: samp add_message_to_chat 10@ color 0xFFFFFF
        end
    end
end
end
при стрельбе в транспорт playerID(29@) выдает 0, при ударе т/c с т/с playerID(29@) отображается корректно
подскажите как исправить чтоб при стрельбе в т/c 29@ выдавал корректно ид
А где проверка на существование игрока с нужным идом? Ты поди берешь хендл игрока, которого нет в стриме или который вовсе не подключен.
 

#ripper

Новичок
17
0
CLEO:
{$CLEO .cs}
{$INCLUDE SF}
0000:

:reg
wait 2000
alloc 10@ 128

while true
wait 0
if 00DF:   actor $PLAYER_ACTOR driving
then
    for 29@ = 0 to 1000
    if 0B23:  samp is_player_connected 29@
    then
    0B20: samp 3@ = actor_handle_by_samp_player_id 29@
    if 056D:   actor 3@ defined
    then
        03C0: 2@ = actor $PLAYER_ACTOR car
        if 051C:   car 2@ damaged_by_actor 3@
        then
            0B2C: samp 4@ = get_vehicle_id_by_car_handle 2@
            054E: clear_actor 3@ damage
            054F: clear_car 2@ damage
            0468: clear_car 2@ last_weapon_damage
            format 10@ "vehID:%d, ammount:%d, playerID:%d" 4@ 9@ 29@
            0AF8: samp add_message_to_chat 10@ color 0xFFFFFF
        end
    end
    end
    end
end
end
ничего не поменялось

CLEO:
{$CLEO .cs}
{$INCLUDE SF}
0000:

:reg
wait 2000
alloc 10@ 128

while true
wait 0
if 00DF:   actor $PLAYER_ACTOR driving
then
    for 29@ = 0 to 1000
        if 0B23:  samp is_player_connected 29@
        then
            0B20: samp 3@ = actor_handle_by_samp_player_id 29@
            if 056D:   actor 3@ defined
            then
                03C0: 2@ = actor $PLAYER_ACTOR car
                if 051C:   car 2@ damaged_by_actor 3@
                then
                    0B2C: samp 4@ = get_vehicle_id_by_car_handle 2@
                    054E: clear_actor 3@ damage
                    054F: clear_car 2@ damage
                    0468: clear_car 2@ last_weapon_damage
                    format 10@ "vehID:%d, ammount:%d, playerID:%d" 4@ 9@ 29@
                    0AF8: samp add_message_to_chat 10@ color 0xFFFFFF
                    break        
                else continue
                end
            else continue
            end
        else continue
        end
    end
end
end
разобрался. рабочий код
 
Последнее редактирование модератором:

hnnssy

Известный
Друг
2,684
2,762
CLEO:
{$CLEO .cs}
{$INCLUDE SF}
0000:

:reg
wait 2000
alloc 10@ 128

while true
wait 0
if 00DF:   actor $PLAYER_ACTOR driving
then
    for 29@ = 0 to 1000
        if 0B23:  samp is_player_connected 29@
        then
            0B20: samp 3@ = actor_handle_by_samp_player_id 29@
            if 056D:   actor 3@ defined
            then
                03C0: 2@ = actor $PLAYER_ACTOR car
                if 051C:   car 2@ damaged_by_actor 3@
                then
                    0B2C: samp 4@ = get_vehicle_id_by_car_handle 2@
                    054E: clear_actor 3@ damage
                    054F: clear_car 2@ damage
                    0468: clear_car 2@ last_weapon_damage
                    format 10@ "vehID:%d, ammount:%d, playerID:%d" 4@ 9@ 29@
                    0AF8: samp add_message_to_chat 10@ color 0xFFFFFF
                    break       
                else continue
                end
            else continue
            end
        else continue
        end
    end
end
end
разобрался. рабочий код
эт самое
else не обязательно указывать в условиях
 

SDstudio

Известный
13
0
При делении получается бесконечная десятичная дробь, как убрать остаток, оставив только целое число в переменной. Иначе слетает весь формат (переменная вставлена в текст)?
А заодно, как установить длину строки при GXT форматировании?
Заранее благодарен.