GTA Builder Форум

GTA Vice City => Идеи => Тема начата: xanser от Март 29, 2014, 06:35:18 pm

Название: Авиация - что можно улучшить
Отправлено: xanser от Март 29, 2014, 06:35:18 pm
Что сделано на сегодняшний день с пассажирским самолетом? Наверное ничего.

1. Нужно сделать нормальную коллизию, чтобы врезаться в него, высаживаться на него с вертолета.
Как вариант убрать стандартные самолеты и использовать их с коллизией и путями, но по принципу яхты Кортеза, где есть коллизия. Я как-то пускал ее по городу, сносит все живое. Тут вроде понадобится еще object.dat, чтобы с него не падать.

2. Нужно сделать салон и возможность летать на нем пассажиром с другими педами, это думаю просто, зная его координаты.

3. Возможность его уничтожать, эта мысль пришла после просмотра этого видео (1:56), как вариант перенести на него взрыв deaddodo

GTA 3 Beta - German PS 2 TV-Trailer (http://www.youtube.com/watch?v=d1Jh_fEq4Og#)
Название: Re: Авиация - что можно улучшить
Отправлено: Shagg_E от Март 30, 2014, 09:49:33 pm
Я заменял его на НЛО и прописывал пути так, чтобы он мёртвые петли делал вокруг мостов, но большую часть времени проводил вне зоны видимости(чтобы был редко виден). Потом надоело и пока удалил вообще(мешает при разработке).

Касаемо изложенных тут предложений - кол вроде можно как-то сделать, а вот всё остальное - легче сразу делать по принципу яхты Кортеза, т.е. - объект, ходящий по путям
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Апрель 14, 2014, 02:45:09 pm
Искал функцию взрыва deaddodo, чтобы перенести ее на airtrain, пока нашел кое-что другое:

Код: ASM
  1. .text:005B1E75 024 68 B5 00 00 00                                push    181             ; modelIndex
Код: ASM
  1. .text:005B1E06 024 68 B5 00 00 00                                push    181             ; DEADDODO
Код: ASM
  1. .text:005B1EB5 024 68 A5 00 00 00                                push    165
Код: ASM
  1. .text:005B1F27 024 68 A5 00 00 00                                push    165             ; modelIndex

181 - модель deaddodo, 165 - police chopper. Кое-что поменял:

(http://s6.postimg.org/id1o61t35/scr001.jpg) (http://s6.postimg.org/k4z8ep1tt/scr000.jpg) (http://s6.postimg.org/wkvy8fv5t/scr005.jpg)
Название: Re: Авиация - что можно улучшить
Отправлено: Shagg_E от Апрель 16, 2014, 01:48:21 am
террорист :P
Я наверное у себя заменю airtrain на что-нибудь своё - более интерактивное(поскольку лимита на spath0.dat, spath1.dat, spath2.dat и т.д. вроде нет), чего и всем советую  8) Можно будет скриптами пошалить :D
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Апрель 16, 2014, 05:21:22 am
Я нашел место, где взрывается deaddodo, но пока еще не перенес на airtrain. Для тех, кто хочет по простому повзрывать пассажирские самолеты, можно поменять местами в default.ide номера 180 (airtrain) и 181 (deaddodo), а также их пути flight.dat и flight2.dat. Кстати в игре летает 3 пассажирских, 4 вертолета и 5 красных самолетов. Вертолеты и красные самолеты появляются, когда игрок в воздухе. При замене соответственно пассажирских станет 5 штук и их можно взрывать, но это пока временный способ для развлечения.
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Июнь 04, 2014, 10:54:38 am
Знали фишку? От уровня розыска зависит количество вертолетов, хотя все они выставлены в 1, но можно и поменять 0x4D1E09, 0x4D1E0F, 0x57E0CB
Также можно подсаживать и даже отстреливать людей. Странно, что R* оставили их пустыми.

(http://s6.postimg.org/lzexfr7gh/scr000.jpg) (http://s6.postimg.org/50ake8lmp/scr001.jpg) (http://s6.postimg.org/qrp7akj29/scr003.jpg)
Название: Re: Авиация - что можно улучшить
Отправлено: Shagg_E от Июнь 06, 2014, 01:09:22 am
Круто. А подсаживать только через asi?
Хотелось бы вариант через CLEO  :P
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Июнь 06, 2014, 05:42:13 am
В этой теме  (http://forum.gtabuilder.ru/index.php?topic=135.0) (последний код) я написал, как выхватывать машины и людей из трафика по номеру их модели, и там как раз больше скрипта, чем кода. Здесь тот же код, только вместо коповской тачки 156, куда подсаживаются копы, нужно поставить модель вертолета 165, попробуй переписать через скрипт. В вертолете только не распределены места пассажиров, поэтому будет садить в центр, где chassis_dummy, но лучше перемоделить.

Дополнение:
Здесь 0x5AED9C вызов функции атаки вертолета, можно отключить.
Еще обнаружил, что по вертушке надо всадить более 175 пуль любого калибра. При этом здоровье вертолета никак не задействовано.
Здесь 0x5AC6C0 функция проверки подбитого вертолета.
CHeli.field_324 - нанесенный урон (количество всаженных пуль *4, т.е. вертушка падает, если больше 175*4=700, 4 заложена тут 0x5D19F4, если например поставить 100, то 7*100=700, т.е. достаточно 7 пуль)
CHeli.field_2С0 - статус (1-бессмертный?, 2-сваливает, 3-взрывается, 4-пытается упасть, 5-мотается туда-сюда).
CHeli.field_2E1 - какой-то статус, влияющий на падение
CHeli.field_2E3 - количество оставшихся в вертолете бойцов спецназа, можно увеличивать.
Название: Re: Авиация - что можно улучшить
Отправлено: Shagg_E от Июнь 07, 2014, 08:34:29 pm
Класс, только по-больше бы разъяснений, например: какой адрес подразумевается под "CHeli.field_", или
Цитировать
Здесь 0x5AED9C вызов функции атаки вертолета, можно отключить.
- как отключить? Этот адрес - "статус" атаки, т.е. 0 и 1?
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Июнь 08, 2014, 05:44:56 pm
Отключение вызова любой функции (5 байт) происходит заменой на инструкцию NOP (0x90), которая грубо говоря ничего не делает.
На скрипте выглядит так:
Код: ASM
  1. 05DF: write_memory 0x5AED9C size 5 value 0x90 virtual_protect 1

CHeli.field_ это переменные в структуре (или классе) CHeli, так сказать характеристики вертолета, какие-то уже разобраны, какие-то еще неизвестны (см. в IDA)
Код: ASM
  1. 00000000 CHeli           struc ; (sizeof=0x360)
  2. 00000000 __parent        CVehicle ? ; предположительно можно применять все опкоды авто
  3. ...
  4. 000002E3 field_2E3       db ? ; byte - количество спецназа в вертолете
  5. ...
  6. 00000324 field_324       dd ? ; dword - количество всаженных пуль *4
  7. 00000328 airscrewZAngle  dd ?
  8. ...
Если имеешь указатель на вертолет, то просто читаешь его значение, получаешь адрес структуры. Чтобы сместиться на нужное поле добавляешь например 0x2E3.
Попробую на скрипте написать, хотя я не силен:
Код: ASM
  1. 05E0: 0@ = read_memory 0x813D10 size 4 virtual_protect 0    ; структура 1 вертолета
  2. if
  3. 0@ <> 0    ; если получили структуру вертолета
  4. then
  5. 0085: 1@ = 0@    
  6. 0@ += 0x2E3    ; смещаемся на нужное поле
  7. 05DF: write_memory 0@ size 1 value 8 virtual_protect 0   ; садим 8 спецназовцев
  8. 05E2: call_function 0x4BFFE0 num_params 1 pop 1 1@ 2@   ;  переход к скриптовой переменной авто
  9. 0129: 3@ = create_driver 6 4 in_car 2@
  10. 01C2: remove_references_to_actor 3@
  11. 01C3: remove_references_to_car 2@
  12. end

Не проверял, как компилируется и работает, не люблю скрипты...
Название: Re: Авиация - что можно улучшить
Отправлено: GHOST от Июнь 15, 2014, 09:08:26 am
http://www.youtube.com/watch?v=n0_nFXXhhPc#t=30 (http://www.youtube.com/watch?v=n0_nFXXhhPc#t=30)

В виде .asi-плагина! :)
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Октябрь 01, 2014, 12:46:36 pm
Забавно, если в конструктор CHeli поставить другой id модели в адрес 0x5ACB52 вместо полицейского вертолета 165, например 180.
Как ни странно оно работает, преследует игрока и даже рабочая коллизия появляется.

(http://s6.postimg.org/uu929t85d/scr_20141001082229745.jpg) (http://s6.postimg.org/vl1sflaip/scr_20141001082747342.jpg) (http://s6.postimg.org/5e0ljms8x/scr_20141001083647493.jpg)
Название: Re: Авиация - что можно улучшить
Отправлено: Shagg_E от Октябрь 01, 2014, 09:31:13 pm
Прикольно. Можно при разном уровне звезд делать разные вертолеты. Я подобным занимался с транспортом ментов, модельками ментов, транспортом и модельками банд и т.д. Получается не хилое разнообразие. Главое - грамотно прописать все условия смены ID - тогда будет лафа вроде разных ментов в разных районах города(просто у меня к примеру в моде несколько локаций, где должна быть разная спецтехника, как в SA)
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Октябрь 02, 2014, 07:07:24 am
...разных ментов в разных районах города...

А можно и постоянно разных ментов в конструктор передавать произвольно в 0x4ED762, даже просто взять стандартные модельки в форме: cop, player6, IGBudy2 и уже не близнецы.
Название: Re: Авиация - что можно улучшить
Отправлено: Shagg_E от Октябрь 02, 2014, 06:26:18 pm
...разных ментов в разных районах города...


А можно и постоянно разных ментов в конструктор передавать произвольно в 0x4ED762, даже просто взять стандартные модельки в форме: cop, player6, IGBudy2 и уже не близнецы.


Да, я так тоже делал, результаты можно посмотреть со скринами тут (http://newrockstar.do.am/forum/3-1-2020-16-1397605789). Там есть вещи типа одновременного присутствия нескольких ментов на экране(модельки тестовые ессно):
(http://newrockstar.do.am/Images/LostCitydev/clp1147.jpg)
Название: Re: Авиация - что можно улучшить
Отправлено: xanser от Октябрь 14, 2014, 10:29:39 am
Взрываем все летающее: 165 - chopper, 180 - airtrain, 181 - deaddodo.
Для этого в адресе 0x5AFCE2 меняем эти 11 байт:

Код: ASM
  1. .text:005AFCE2     3D B4 00 00 00         cmp     eax, 180
  2. .text:005AFCE7     0F 84 A8 00 00 00      jz      loc_5AFD95

на эти

Код: ASM
  1. .text:005AFCE2     3C A5                  cmp     al, 165
  2. .text:005AFCE4     74 12                  jz      loc_5AFCF8
  3. .text:005AFCE6     3C B4                  cmp     al, 180
  4. .text:005AFCE8     74 0E                  jz      loc_5AFCF8
  5. .text:005AFCEA     90                     NOP
  6. .text:005AFCEB     90                     NOP
  7. .text:005AFCEC     90                     NOP

(http://www.pixic.ru/i/0050i5152823w6t0.jpg) (http://www.pixic.ru/i/i0W085q5n8w396Q2.jpg)
Название: Re: Авиация - что можно улучшить
Отправлено: Shagg_E от Октябрь 16, 2014, 03:42:02 am
крутота  :D