Автор Тема: Прицельная стрельба.  (Прочитано 12478 раз)

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #15 : Январь 19, 2014, 09:47:50 pm »
Еще если хорошенько с камерой повозиться можно добиться потрясенных результатов типа таких:


Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #16 : Январь 20, 2014, 03:26:04 pm »
Классно, интересно вживую глянуть, например с перезарядкой автомата, или бензопилу от первого лица, может видео сделаешь?

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #17 : Январь 20, 2014, 03:41:44 pm »
Нет это не моя работа, это просто нашел в сети где-то... Была бы моя я бы так и сказал, просто скрин где-то нарыл. Но уверяю тут надо возиться с камерой что-бы добиться такого эффекта.

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #18 : Февраль 20, 2014, 12:19:46 pm »
Такая прицельная стрельба реализована здесь: http://www.gtagarage.com/mods/show.php?id=1823
Жаль не приложен исходный код.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #19 : Март 01, 2014, 10:29:09 pm »
Да по поводу GTA:FPS у меня давно была беседа еще с автором, когда я сделал один плагин отдачи для вооружение, его это заинтересовало, но сорцы так и не прислал мне, что-бы мы объедении все это в одно.

Я сделал разброс пуль, цель также меняет размеры в зависимости от стрельбы, это было дело еще давно:

gta vice city новая стрельба


Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 707
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Прицельная стрельба.
« Ответ #20 : Март 19, 2014, 11:03:55 am »
Насчет моментов, когда камера "пожирает" оружие:
есть такой опкод
041D: set_camera_near_clip 0.1 Так вот, обычно значения 0.1 достаточно, чтобы камера не жрала объекты вблизи, но проблема в том, что иногда этого недостаточно, а значения меньше 0.1 могут привести к вылету игры.
Но я всё же думаю, что этого хватит, что оружие развестить снизу экрана без глюков.
Адреса памяти я не знаю, т.к. даже не искал(я преимущественно скриптингом пользуюсь)

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #21 : Март 19, 2014, 02:48:51 pm »
Супер! То, что нужно, теперь можно экспериментировать


Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #22 : Март 20, 2014, 12:07:34 am »
Цитировать
Адреса памяти я не знаю, т.к. даже не искал(я преимущественно скриптингом пользуюсь)
Вот по этому адресу, находиться метод класса CCamera, думаю пригодиться для тех кто занимается разработкой плагинов на C++


Код: ASM
  1. .text:0046B9E2                                                     ; int __stdcall CCamer__SetNearClipPlain(float)
  2. .text:0046B9E2                                                     CCamer__SetNearClipPlain proc near      ; CODE XREF: CRunningScript::ProcessCommands1000To1099(int)+8FAp
  3. .text:0046B9E2
  4. .text:0046B9E2                                                     arg_0           = dword ptr  4
  5. .text:0046B9E2
  6. .text:0046B9E2 000 D9 44 24 04                                                     fld     [esp+arg_0]
  7. .text:0046B9E6 000 D9 99 3C 01 00 00                                               fstp    [ecx+CCamera.fNearClipPlain]
  8. .text:0046B9EC 000 C6 41 61 01                                                     mov     [ecx+CCamera.field_61], 1
  9. .text:0046B9F0 000 C2 04 00                                                        retn    4
  10. .text:0046B9F0                                                     CCamer__SetNearClipPlain endp


Если ее переписать в сорц, то не составит труда, это для примера:

Код: C++
  1. CCamera::SetNearClipPlain(float value ) {
  2.   this->fNearClipPlain = value;
  3.   this->field_61 = 1;
  4. };
  5.  

При условии что класс, содержит все нужные поля...
« Последнее редактирование: Март 20, 2014, 12:28:07 am от Sektor »

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Прицельная стрельба.
« Ответ #23 : Октябрь 03, 2014, 05:26:16 pm »
Я все думал, почему нельзя сразу было сделать this->fNearClipPlain = 0.01f (кстати это this->field_61 включение/отключение), чтобы не обрезался ближний план и вот обнаружил так сказать "обратную сторону медали", поэтому стоит включать только вблизи, а на открытых пространствах стоит отключать.