Автор Тема: Авиация - что можно улучшить  (Прочитано 8166 раз)

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Авиация - что можно улучшить
« : Март 29, 2014, 06:35:18 pm »
Что сделано на сегодняшний день с пассажирским самолетом? Наверное ничего.

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

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

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

GTA 3 Beta - German PS 2 TV-Trailer
« Последнее редактирование: Июнь 06, 2014, 11:53:34 am от xanser »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Авиация - что можно улучшить
« Ответ #1 : Март 30, 2014, 09:49:33 pm »
Я заменял его на НЛО и прописывал пути так, чтобы он мёртвые петли делал вокруг мостов, но большую часть времени проводил вне зоны видимости(чтобы был редко виден). Потом надоело и пока удалил вообще(мешает при разработке).

Касаемо изложенных тут предложений - кол вроде можно как-то сделать, а вот всё остальное - легче сразу делать по принципу яхты Кортеза, т.е. - объект, ходящий по путям
« Последнее редактирование: Июнь 06, 2014, 11:54:07 am от xanser »

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #2 : Апрель 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. Кое-что поменял:

« Последнее редактирование: Июнь 06, 2014, 11:53:58 am от xanser »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Авиация - что можно улучшить
« Ответ #3 : Апрель 16, 2014, 01:48:21 am »
террорист :P
Я наверное у себя заменю airtrain на что-нибудь своё - более интерактивное(поскольку лимита на spath0.dat, spath1.dat, spath2.dat и т.д. вроде нет), чего и всем советую  8) Можно будет скриптами пошалить :D
« Последнее редактирование: Июнь 06, 2014, 11:54:18 am от xanser »

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #4 : Апрель 16, 2014, 05:21:22 am »
Я нашел место, где взрывается deaddodo, но пока еще не перенес на airtrain. Для тех, кто хочет по простому повзрывать пассажирские самолеты, можно поменять местами в default.ide номера 180 (airtrain) и 181 (deaddodo), а также их пути flight.dat и flight2.dat. Кстати в игре летает 3 пассажирских, 4 вертолета и 5 красных самолетов. Вертолеты и красные самолеты появляются, когда игрок в воздухе. При замене соответственно пассажирских станет 5 штук и их можно взрывать, но это пока временный способ для развлечения.
« Последнее редактирование: Июнь 06, 2014, 11:54:26 am от xanser »

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #5 : Июнь 04, 2014, 10:54:38 am »
Знали фишку? От уровня розыска зависит количество вертолетов, хотя все они выставлены в 1, но можно и поменять 0x4D1E09, 0x4D1E0F, 0x57E0CB
Также можно подсаживать и даже отстреливать людей. Странно, что R* оставили их пустыми.

« Последнее редактирование: Июнь 06, 2014, 11:54:39 am от xanser »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Авиация - что можно улучшить
« Ответ #6 : Июнь 06, 2014, 01:09:22 am »
Круто. А подсаживать только через asi?
Хотелось бы вариант через CLEO  :P
« Последнее редактирование: Июнь 06, 2014, 11:54:51 am от xanser »

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #7 : Июнь 06, 2014, 05:42:13 am »
В этой теме (последний код) я написал, как выхватывать машины и людей из трафика по номеру их модели, и там как раз больше скрипта, чем кода. Здесь тот же код, только вместо коповской тачки 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 - количество оставшихся в вертолете бойцов спецназа, можно увеличивать.
« Последнее редактирование: Июнь 09, 2014, 01:10:08 pm от xanser »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Авиация - что можно улучшить
« Ответ #8 : Июнь 07, 2014, 08:34:29 pm »
Класс, только по-больше бы разъяснений, например: какой адрес подразумевается под "CHeli.field_", или
Цитировать
Здесь 0x5AED9C вызов функции атаки вертолета, можно отключить.
- как отключить? Этот адрес - "статус" атаки, т.е. 0 и 1?

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #9 : Июнь 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

Не проверял, как компилируется и работает, не люблю скрипты...
« Последнее редактирование: Июнь 08, 2014, 05:49:44 pm от xanser »

Оффлайн GHOST

  • Прохожий
  • *
  • Сообщений: 73
  • Репутация: +14/-0
  • RUS-CASA (2008 - 2010)
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #10 : Июнь 15, 2014, 09:08:26 am »


В виде .asi-плагина! :)
Друга нельзя купить, но его можно продать...

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #11 : Октябрь 01, 2014, 12:46:36 pm »
Забавно, если в конструктор CHeli поставить другой id модели в адрес 0x5ACB52 вместо полицейского вертолета 165, например 180.
Как ни странно оно работает, преследует игрока и даже рабочая коллизия появляется.


Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Авиация - что можно улучшить
« Ответ #12 : Октябрь 01, 2014, 09:31:13 pm »
Прикольно. Можно при разном уровне звезд делать разные вертолеты. Я подобным занимался с транспортом ментов, модельками ментов, транспортом и модельками банд и т.д. Получается не хилое разнообразие. Главое - грамотно прописать все условия смены ID - тогда будет лафа вроде разных ментов в разных районах города(просто у меня к примеру в моде несколько локаций, где должна быть разная спецтехника, как в SA)

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Авиация - что можно улучшить
« Ответ #13 : Октябрь 02, 2014, 07:07:24 am »
...разных ментов в разных районах города...

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

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Авиация - что можно улучшить
« Ответ #14 : Октябрь 02, 2014, 06:26:18 pm »
...разных ментов в разных районах города...


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


Да, я так тоже делал, результаты можно посмотреть со скринами тут. Там есть вещи типа одновременного присутствия нескольких ментов на экране(модельки тестовые ессно):
« Последнее редактирование: Октябрь 02, 2014, 06:29:27 pm от Shaggy »