Проект "Новая баллистика" - Страница 2 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

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

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

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

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

Изменено пользователем BlooderDen
  • Спасибо 1
  • Согласен 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

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

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

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

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

https://yadi.sk/d/AChY4tc7dwsWg

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

 

 

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

 

 

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

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

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

  • Согласен 1

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
(добавлять не рекомендуется)

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

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

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

 

 

 

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

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

  • Нравится 2

 

 

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

 

 

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

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

  • Нравится 1

 

 

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

НаноБот, спасибо. Перенесли, возле каждой твоей правки указали копирайт.

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

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 ?

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

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

http://bahing.offtopic.su/

По второму.

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

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

  • Спасибо 1

 

 

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

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

https://yadi.sk/d/La0SASxVdxLPV

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

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

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

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

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

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

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

Войти

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

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

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