Перейти к контенту

Проект "Новая баллистика"


Рекомендуемые сообщения

@НаноБот, столкнулся с такой проблеммой: патчер работает только на ПЫС версиях. При попытке пропатчить самостоятельные сборки, выдает "Неизвестная версия !".

Поскольку мы уходим от ПЫСятины, и довольно активно (X-Ray Extentions, X-ray of Hope - народ собирает "свои" движки, лишенные ПЫСобагов и недработок), то очень бы хотелось чтобы ваше творение не осталось в прошлом, для тех кто еще не использует(а таких скоро не останется) движковые правки в своих модах.

Огромнейшая просьба, если это реально, выложить исходники с вашими копирайтами, дабы упростить задачу "патчинга" для тех, кто занимается совершенствованием движка как и вы.!

Заранее огромное спасибо. Надеюсь на понимание! =)

Изменено пользователем BlooderDen
  • Спасибо 1
  • Согласен 2

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

Ссылка на комментарий

Ладно, понял.

Патчер работает только с указанными сборками (3116, 3312, 3975, 3967), с любыми другими не работает.

Для ТЧ 1.0007.

 

 

Для того что бы выключить старую баллистику, надо в файле ...XRay\xr_3da\xrGame\Level_Bullet_Manager.cpp за комментировать...

Строки №№ 285,286,287.

		//изменить скорость и направление ее полета
		//с учетом гравитации
		bullet->dir.mul(bullet->speed);

		Fvector air_resistance = bullet->dir;
//		if (GameID() == GAME_SINGLE)
//			air_resistance.mul(-m_fAirResistanceK*delta_time_sec);
//		else
		air_resistance.mul(-bullet->air_resistance*(bullet->speed)/(bullet->max_speed)*delta_time_sec);

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

В том же файле, в строке №47. Меняем нач. скорость пули в зависимости от типа патрона.

speed = max_speed = starting_speed * cartridge.m_kSpeed; 

В той же папке, файл WeaponAmmo.h

Строка №17, зарегистрируем новую перемененную.

float m_kDist, m_kDisp, m_kHit, m_kImpulse, m_kPierce, m_kAP, m_kAirRes, m_kSpeed; 

В файле WeaponAmmo.cpp

Строка №20, инициализация этой переменной.

m_kDist = m_kDisp = m_kHit = m_kImpulse = m_kPierce = m_kSpeed = 1.f; 

В том же файле, загрузка этой переменной, переменная не обязательная, и если загрузчик её не найдёт, то установит в 1.0.

Строка №40 функции void CCartridge::Load(LPCSTR section, u8 LocalAmmoType)

m_kSpeed = READ_IF_EXISTS(pSettings, r_float, section, "k_speed", 1.0f); 

Ещё добавляем в функцию void CWeaponAmmo::Load(LPCSTR section) ту же строчку.

Строка №86

m_kSpeed = READ_IF_EXISTS(pSettings, r_float, section, "k_speed", 1.0f); 

Появится новая переменная, мы не замещаем не какой другой, остальные работают как работали, в отличии от моей правки.

Ах да, ещё энергия пули пропорциональна  квадрату скорости пули.

Файл Level_bullet_manager_firetrace.cpp в той же папке.

После строки №425, поменять.

float speed_factor = bullet->speed/bullet->max_speed;
if (GameID() == GAME_SINGLE) speed_factor *= speed_factor;

 

 

И ещё, не много о себе как о программисте, МК-61, бейсик "микрон", квикбейсик, турбопаскаль, делфи, ассемблер, луа. В общем, на си(си плюс плюс) я не программирую, сложно разобраться в его сжатом синтаксисе. В общем, как то так. Так что надеюсь без ошибок, но надо проверять.


ЭЭЭ, там ещё надо добавить строки.

В файл WeaponAmmo.h

Строка №54

float m_kDist, m_kDisp, m_kHit, m_kImpulse, m_kPierce, m_kAP, m_kAirRes, m_kSpeed; 

В файле WeaponAmmo.cpp

После строчки №165

cartridge.m_u8ColorID = m_u8ColorID;

Добавить.

cartridge.m_kSpeed = m_kSpeed;

В общем, надо что бы проверили те, кто хорошо понимают C++, я не уверен что всё правильно написал.

Изменено пользователем НаноБот
  • Спасибо 1
  • Нравится 1
  • Полезно 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

@НаноБот, здравствуй. Напиши, пожалуйста, подобный пост для ЧН, если там есть отличия. А если нет, то попробую ориентироваться на этот.

 

Есть. В Level_Bullet_Mananager таких строчек не обнаружено.

Изменено пользователем Max Warlock
Ссылка на комментарий

@НаноБот, Спасибо милейший. Будем ковырять и думать. Скорее всего будут еще вопросы =)

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

Ссылка на комментарий

В ЧН и ЗП баллистика другая, но в целом изменения аналогичны.

Набросал список функции с изменениями, ориентироваться меткой в комментариях NewBal.

Для 1.5.07, думаю подойдёт и для 1.5.10.

https://yadi.sk/d/AChY4tc7dwsWg

Изменено пользователем НаноБот
  • Спасибо 1
  • Нравится 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

 

 

Для 1.5.07, думаю подойдёт и для 1.5.10.
Для ТЧ будут ещё какие-нибудь наработки?

AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit

%DF%20-%20%C2%F1%EF%FB%F8%EA%E0%20%21.gi

 

Ссылка на комментарий

 

 

Для ТЧ будут ещё какие-нибудь наработки?

Есть включения трассера и рикошета у осколков, например.  :D

В общем, я там изменил правку. Теперь k_speed = 0 отключает квадратичную зависимость от скорости пули и k_speed = 1 при этом. Это надо для нормальной работы мультиплеера и не пулевого оружия, в точности для огнемёта.

  • Согласен 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

@НаноБот, Как скоро можно будет увидеть правку?

AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit

%DF%20-%20%C2%F1%EF%FB%F8%EA%E0%20%21.gi

 

Ссылка на комментарий

0024FF0A: [80 A4 24 B4 00 00 00 FE]

Заменить на:

0024FF0A: [83 8C 24 B4 00 00 00 03]

03 - это биты: включающие, 0 - трассер, 1 - рикошет, 2 - ?, 3 - взрывной партикл (добавлять не рекомендуется), остальные вроде не используются.

Для версии 1.0006 (билд 3312)

Вот патчер, кроме основной правки добавлена эта штука.

https://yadi.sk/d/_B5Y-fObdx3Ny

  • Спасибо 2

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий
(добавлять не рекомендуется)

Я так пониманию, что придётся своими руками добавлять? Смех и грех!!! Не отвечать на этот пост!!!!!!!!

Изменено пользователем Вспышка

AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit

%DF%20-%20%C2%F1%EF%FB%F8%EA%E0%20%21.gi

 

Ссылка на комментарий

На счёт этой правки, я просто делаю не большой мод, точней да же не мод, в аддон к модам, рабочее название ТНБМ (Террорист НаноБот Мод), в общем там всякие СВУ (самодельные взрывные устройства) и мне требовалась  усилить осколочный эффект методом рикошета. Возможно сделаю правку где можно направлять осколочный поток, давно мечтаю сделать МОН-50, ОЗМ-72 и другие реальные мины, с как можно реалистичными параметрами.

 

 

 

Я так пониманию, что придётся своими руками добавлять? 

Конкретно это, просто лаги получаются если слишком много вспышек, короче партикл тормознутый.

  • Нравится 2

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

 

 

короче партикл тормознутый.
Отдай amik"у, он что-нибудь придумает! Оптимизирует на крайняк.

 

 

слишком много вспышек
Пардон, я один.

AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit

%DF%20-%20%C2%F1%EF%FB%F8%EA%E0%20%21.gi

 

Ссылка на комментарий

Да ну, это всё прикол, какие у осколков  трассеры, да вспышки (каламбур :D ) при попадании. По сюжету в СВУ шарикоподшипники, а они здорово рикошетят, в оригинале осколки не рикошетели, вот я и включил кроме рикошета трассеры, для того что бы это проверить.

  • Нравится 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

 

 

для того что бы это проверить.
Каков эффект?  Просто я ещё не пробовал  сие произведение. 

AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit

%DF%20-%20%C2%F1%EF%FB%F8%EA%E0%20%21.gi

 

Ссылка на комментарий

Видать друг друга недопоняли, правка включает такие эффекты у осколков взрывных предметов (гранаты ящики с динамитом и т.п.), как рикошеты, трассеры, взрывные партиклы пуль.

https://yadi.sk/i/UDMJZFU1dxB5N

В общем, если приглядеться там видно что рикошетят осколки. 

Изменено пользователем НаноБот
  • Нравится 2

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

@НаноБот, возможно глупый вопрос задам, но не знаю как считать все.

У ПМ например прицельная дальность 50м, убойная 350м, и максимальная что-то около 800.Собственно вопрос:

Если есть k_air_resistance, k_speed, и начальная скорость пули в оружии (будем считать что это k_speed), дальности из ТТХ ПМ, то как расщитать падение убойности и скорости. Вернее по какой формуле оно считается, чтобы можобыло зная эту формулу подогнать k_air_resistance и k_speed так, чтобы было близко к данным ТТХ оружия что приводятся выше?

И еще вопрос:

Для нормальной работы правки, параметр k_speed = 0 должен быть в секции
default_weapon_params в файле defines.ltx.
Для работы МП, в файле ammo_mp.ltx в секции каждого патрона, так же,
должен быть параметр k_speed = 0. Для СП (сингл-плейер) в секции ammo_base файла
weapons.ltx, этот параметр должен быть по k_speed = 1 (по дефолту равен 1).

 

 

 

k_speed = 0 - отключено и не требуется в конфигах патронов ?

k_speed = 1 - включено, но не меняет значения оружия ?

0<k_speed  и k_speed<2 ?

[Нач.скорость пули] = [параметр в оружии] * k_speed , при условии что k_speed != 0 ?

Я правильно понял ?

Сталкер: Когда человек родится, он слаб и гибок, когда умирает, он крепок и черств. Когда дерево растет, оно нежно и гибко, а когда оно сухо и жестко, оно умирает. Черствость и сила спутники смерти, гибкость и слабость выражают свежесть бытия. Поэтому что отвердело, то не победит.

из фильма 1979 года режиссёра Андрея Тарковского по сценарию братьев Стругацких.

Мои звуки и прочее для dsh_modМои звуки АК, Модифицирование NLC 6 Long Way Mod,   Умное выпадение запчастей мутантов для ОП-2

Ссылка на комментарий

По первому вопросу надо спросить Bahing-а

http://bahing.offtopic.su/

По второму.

При k_speed = 0 значит k_speed не умножается на скорость пули из конфига оружия, и не возводится в квадрат speed_factor, это надо, как я уже писал, для нормальной работы мультиплеера, и ещё для огнемёта. Так же k_speed "сверху" не как не ограничен, можно хоть 1000 задать, только зачем.

Кстати, указанная правка для ТЧ устарела, я забыл добавить проверку на k_speed равно нулю. Чуть по же сделаю. 

  • Спасибо 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

 

 

Кстати, указанная правка для ТЧ устарела
Может ещё что-то усторело, Имею ввиду сразу поправить! И всё в одно выложить?

AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit

%DF%20-%20%C2%F1%EF%FB%F8%EA%E0%20%21.gi

 

Ссылка на комментарий

Вот как и положено, всё по папкам раскидано, все правки помечены словом NewBal

https://yadi.sk/d/La0SASxVdxLPV

Надеюсь косяков нет, но надо что бы опытный программист всё проверил, это не трудно.

  • Спасибо 2
  • Нравится 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...