#26 12-01-2011 01:16

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Универсальные поворотники [CLEO4/SA/REL]

@Den_spb - отлично, мне в управлении даже ничего менять не пришлось, работает и так.
вот код для клео 3 - http://pastebin.com/h2Cz0YeH
Я как понимаю, баг, когда корона просвечивает через машину
2557627ee1ba45d038685e8d702fdd3f.jpeg 
зависит от короны и его не исправить?

Offline

#27 12-01-2011 01:31

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

и его не исправить?

Не знаю.

Offline

#28 12-01-2011 14:57

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Универсальные поворотники [CLEO4/SA/REL]

Den_spb wrote:

+ Теперь поворотники продолжают мигать, если игрок вышел из машины - но до тех пор, пока он не сядет в другую машину.

Ура!

Offline

#29 12-01-2011 21:39

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

странно, что просвечивает...не Вайс м не III, вроде)


GIMS developer

Offline

#30 12-01-2011 23:38

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Универсальные поворотники [CLEO4/SA/REL]

Мб надо поиграть с параметрами процедуры? Или проверять на obstacles между игроком и короной и убирать ее самому?

Offline

#31 13-01-2011 00:14

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

Мб надо поиграть с параметрами процедуры?

Скорей всего, дело не в параметрах. Короны фар машин не просвечивают благодаря тому, что их радиус меняется от нуля до максимального значения - в зависимости от текущего расположения камеры относительно машины.

Или проверять на obstacles между игроком и короной

Да, можно попробовать и такой вариант в случае чего.

Last edited by Den_spb (13-01-2011 00:15)

Offline

#32 13-01-2011 12:18

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

эм...а нафига размер то менять??сделай, как стопари и свет в игре - просто корона, мб две-три на одном месте(для яркости) и всё


GIMS developer

Offline

#33 14-01-2011 03:44

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

эм...а нафига размер то менять?

Я имею ввиду отображение игрой корон фар машины (поступать аналогично с поворотниками не предлагаю).

сделай, как стопари и свет в игре - просто корона, мб две-три на одном месте(для яркости) и всё

Так и сделано на данный момент. Просто корона, по 2 штуки в каждой точке. Возможно, всё так и оставлю - ведь корона просвечивает не через всю машину, а только через поверхность, с которой пересекается.

Last edited by Den_spb (14-01-2011 03:45)

Offline

#34 23-01-2011 06:29

Ford
Registered: 23-01-2011
Posts: 4

Re: Универсальные поворотники [CLEO4/SA/REL]

Обновите пожалуста cleo3-совместимый код до версии 1.1, а то у меня библиотека CLEO4 не работает.

Offline

#35 23-01-2011 13:33

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Универсальные поворотники [CLEO4/SA/REL]

@Ford - выше посты то читай, http://pastebin.com/h2Cz0YeH

Offline

#36 23-01-2011 14:02

Ford
Registered: 23-01-2011
Posts: 4

Re: Универсальные поворотники [CLEO4/SA/REL]

Sergey81 я не знаю как ты, но вот это http://pastebin.com/h2Cz0YeH и версия 1.1 для cleo4 различаюся как день и ночь, и мягко говоря вот это http://pastebin.com/h2Cz0YeH - бред, у меня стажа скоро будет 9 лет за рулем, в том числе и профессионально, и на скольких авто я ездил, что Российских что иномарках, я ни в одном авто такого не видел, чтобы указатели поворотов или аварийка включались поворотом колес, как в этом скрипте, в том числе и на моей личной иномарке такого нет.
А вот версия 1.1 для cleo4 более всего соответствует реальности.
Надеюсь я нормально объяснил в чем разница.
Потому и прошу сделать cleo3-совместимый код для версии 1.1, если бы сам мог - то не просил-бы.

Offline

#37 23-01-2011 15:22

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Универсальные поворотники [CLEO4/SA/REL]

@Ford -

и мягко говоря вот это http://pastebin.com/h2Cz0YeH - бред, у меня стажа скоро будет 9 лет за рулем, в том числе и профессионально, и на скольких авто я ездил, что Российских что иномарках, я ни в одном авто такого не видел, чтобы указатели поворотов или аварийка включались поворотом колес, как в этом скрипте, в том числе и на моей личной иномарке такого нет.

я сразу сказал, что в моей адаптации кода управление поворотниками как в игре мафия, если знаешь такую. Ты не забыл что скрипт для GTA SA, а не для твоей иномарки?
Собственно код управления хорошо выделяется на фоне остального, строки 143-202 замени кодом из оригинала и всё.

Offline

#38 23-01-2011 15:46

Ford
Registered: 23-01-2011
Posts: 4

Re: Универсальные поворотники [CLEO4/SA/REL]

Собственно код управления хорошо выделяется на фоне остального, строки 143-202 замени кодом из оригинала и всё.

Не получается, у меня SB выдает неизвестная команда ehd и then.

Offline

#39 23-01-2011 16:03

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Универсальные поворотники [CLEO4/SA/REL]

@Ford - ну как то так: http://pastebin.com/q4qrXXKk

Offline

#40 23-01-2011 23:21

Ford
Registered: 23-01-2011
Posts: 4

Re: Универсальные поворотники [CLEO4/SA/REL]

Sergey81 СПАСИБО

Offline

#41 29-01-2011 21:37

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

У меня вопрос есть, как реализовано цепляние короны без шлейфа, можно поподробнее, как это организуется, объясните, и можно ли пользоваться таким способом в своих скриптах, это скорее к автору все.


I know everything and nothing...

Offline

#42 29-01-2011 22:09

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

Для создания короны вызывается процедура CCoronas__addCorona (0x6FC580). Одним из передаваемых параметров является указатель на структуру транспорта, благодаря чему корона прицепляется к данному транспорту, а не создаётся "отдельно". Простой пример: прицепим 2 синих короны к машине - с оффсетами 1.0 2.0 3.0 и 4.0 5.0 6.0:

while true
    wait 0
    if
        056E:   car 0@ defined 
    then
        0A97: 1@ = car 0@ struct
        0A9F: 2@ = current_thread_pointer
        3@ = 1.0
        4@ = 2.0
        5@ = 3.0
        0AC7: 6@ = var 3@ offset
        0AA5: 0x6FC580 21 21 1 0 0x41700000 0 0x3FC00000 0 0 0 0 0 attach_corona_flare 0 type 0 0x43160000 radius 0.3 with_offsets 6@ intensity 255 blue 255 green 0 red 0 to_vehicle_struct 1@ unical_number 2@
        3@ = 4.0
        4@ = 5.0
        5@ = 6.0
        2@ += 1
        0AA5: 0x6FC580 21 21 1 0 0x41700000 0 0x3FC00000 0 0 0 0 0 attach_corona_flare 0 type 0 0x43160000 radius 0.3 with_offsets 6@ intensity 255 blue 255 green 0 red 0 to_vehicle_struct 1@ unical_number 2@
    end
end

Назначение параметров flare, type, radius, intensity, RGB - то же, что и в стандартных опкодах создания корон.
Параметр offsets - указатель на вектор, показывающий положение короны в системе координат машины. Можно записать оффсеты в три последовательные переменные, тогда указателем на вектор будет указатель на первую переменную.
Параметр struct - структура транспорта.
Параметр unical_number - уникальный номер. Как я уже говорил, у всех корон, создаваемых в игре, должны быть разные уникальные номера. Если 2 короны имеют одинаковые номера, то та корона, которая была создана раньше, будет удалена. Я в качестве номера использую адрес потока, к которому прибавляется 1 для каждой последующей короны.

Offline

#43 30-01-2011 16:32

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

О, благодарю тебя, Den_spb!!!


I know everything and nothing...

Offline

#44 31-10-2011 00:06

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

Версия 2.0 - теперь поворотниками могут пользоваться все водители Сан-Андреаса, а не только главный герой.
Архив прикреплён к первому сообщению темы.

Last edited by Den_spb (05-01-2012 02:54)

Offline

#45 31-10-2011 01:03

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Универсальные поворотники [CLEO4/SA/REL]

А что за точки пути? Ты разобрал алгоритм передвижения авто в пространстве игры?

Offline

#46 31-10-2011 09:11

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Универсальные поворотники [CLEO4/SA/REL]

Я нашёл способ вычисления координат точки пути машины по известному ID-номеру точки.
В структурах автомобилей и байков есть такие смещения:

        0A8E: 0_NextPathPointID = 0_VehicleStruct + 0x3A6 // int   НОМЕР СЛЕДУЮЩЕЙ ТОЧКИ ПУТИ (word)
        0A8E: 0_CurrPathPointID = 0_VehicleStruct + 0x3A4 // int   НОМЕР ТЕКУЩЕЙ ТОЧКИ ПУТИ (word)
        0A8E: 0_PrewPathPointID = 0_VehicleStruct + 0x3A8 // int   НОМЕР ПРЕДЫДУЩЕЙ ТОЧКИ ПУТИ (word)

Если известен ID-номер точки пути, то её координаты можно вычислить так:

if
    2@ <> 0xFFFF // значение 0xFFFF - транспорт не движется по пути или прицеплен к другому транспорту
then
    0085: 28@ = 2@ // (int) 

    0B15: 2@ = 2@ SHR 0xA
    2@ *= 4
    2@ += 0x96F854
    0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0
    if
        2@ <> 0
    then
        0085: 2@ = 28@ // (int)
        0B10: 28@ = 28@ AND 0x3FF
        28@ *= 0xE
        0B15: 2@ = 2@ SHR 0xA
        2@ *= 4
        2@ += 0x96F974
        0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0
        005A: 28@ += 2@ // (int) Получили адрес структуры точки
                
        0A8E: 23@ = 28@ + 0 // int смещение для X
        0A8E: 24@ = 28@ + 2 // int смещение для Y
        0A8E: 25@ = 28@ + 4 // int смещение для Z
    
        for 26@ = 0 to 2 // переводим word * 8 в float
            0A8D: 23@(26@,3i) = read_memory 23@(26@,3i) size 2 virtual_protect 0
            if
                23@(26@,3i) >= 0x8000 // negative word
            then
                23@(26@,3i) += 0xFFFF0000 // convert to negative dword
            end 
            0093: 23@(26@,3i) = integer 23@(26@,3i) to_float 
            23@(26@,3f) /= 8.0   
        end
    end
end

Алгоритм работы с точками путей применяется, например, в этой процедуре:

.text:0049D610     CTrafficLights_ShouldCarStopForTrafficLight proc near

Что касается скрипта поворотников, то он сначала вычисляет координаты следующей, текущей и предыдущей точек пути по описанному методу, а затем вычисляет угол между отрезками "следующая-текущая" и "текущая-предыдущая". Если угол не равен нулю, то можно сделать вывод, что машина поворачивает. На перекрёстках повороты, как правило, более крутые (обычно более 30 градусов) - это позволяет отличить поворот на перекрёстке от простого движения по кривой.

Offline

#47 01-11-2011 01:39

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Универсальные поворотники [CLEO4/SA/REL]

вычисления выглядят монструозно, молодец))

Offline

#48 18-11-2011 19:52

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Универсальные поворотники [CLEO4/SA/REL]

Офигеть, и зачем я только в армию пошёл. В следующем июле задолбаюсь новые моды искать и качать, не говоря уж про анонс GTA V, о котором я только сегодня узнал. Надеюсь, вторая версия клео3-совместима, а то придется адаптировать с клео4, или какое там клео щас у вас последнее grin

Offline

#49 18-12-2011 16:51

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Универсальные поворотники [CLEO4/SA/REL]

Есть возможность включать поворотники машинам педов, перестраивающихся на шоссе?
И как насчёт дополнительных оффсетов для мотоциклов? Например, задние поворотники в 99% случаев сливаются посередине.


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#50 18-12-2011 17:18

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Универсальные поворотники [CLEO4/SA/REL]

Да, самая главная функция поворотников - показывать, куда тачка перестраивается. И желательно вообще свести перестроение к минимуму. Дико бесит.

Offline

Board footer

Powered by FluxBB