F3Upgrade v 0.21
http://ifolder.ru/10976967И так перед вами начало моего видения системы S.P.E.C.I.A.L. на движке облы для игры Fallout 3, здесь я хотел исправить по возможности что можно и про что сейчас на данный момент есть хоть какая-то информация. Скажу сразу, на вики на счет информации очень скупа, что касается механики игры, ее практически нет, многое здесь было разобрано самостоятельно и на это было затрачено время. Целью всего было придать более понятную систему рпг, которая не стелиться перед игроком, и это пока только начало пути, надеюсь, я дойду до конца. Перелопатить придется многое. Я постараюсь по возможности более подробно объяснить, что я изменил в механике, и как это делалось, даже постараюсь рассказать, почему я пошел именно так, что же надеюсь, у вас есть время почитать это все, если где-то что-то не так, с удовольствием послушаю ваши доводы.
Учтите, это только начало, по возможности все это будет развиваться дальше. Что же начнем:
А начнем мы, пожалуй, с некоторых параметров SPECIAL, играя в первый раз, насколько корява, встала SPECIAL на облу с их 100% раскачкой, в которой только был один стимул, раскачать по возможности все параметры до 100 и игра это свободно разрешала, но самое главное – от этого было никакого особого эффекта.
1.Что же я начал с параметра Сила, с расчета грузоподъемности, а оно идет по формуле:
1.1.FAVDCarryWeightsBase(150)+FAVDCarryWeightMult(10)*Strength(Сила) – непонятно зачем такое большое базовое значение в 150 футов для игрока (видать беседка не хотела отпугнуть от игроков всяких там ламеров и читеров – так сказать увеличить массы), но как видно что Сила здесь не так сильно влияет, и при желании, можно было обойтись малым показателем. Я решил восстановить формулу расчета грузоподъемности, как и в предыдущих частях серии, теперь расчет идет именно по ней.
CarryWeight(Грузоподъемность) = 25+25*Strength(Сила), спросите для чего нужно 25 как базовое значение? Объясняю: возможно, ошибка игры, если вы, к примеру, создали игрока с параметром Силы равным 1 и допустим, приняли наркотик, который отнял эту силу, как вести игре на это? Так этот базовое значение спасет от возможной ошибки просчета.
1.2.Также сила напрямую влияет на ваш собственный урон от холодного оружия, т.е. вы получали за 2 Силы +1 к урону из холодного оружия. Мне захотелось показать, что каждый параметр Силы влиял на это. Формула просчета такова:
FAVDMeleeDamageStrengthOffset(0)*FAVDMeleeDamageStrengthMult(0.5)+ FAVDMeleeDamageStrengthMult(0.5)*Strength
Теперь стало 1* Strength
2.1.Параметр Ловкость, начнем с самого главного, за что этот параметр отвечает, а именно очки действия, расчет производиться:
FAVDActionPointsBase(65)+FAVDActionPointsMult(2)* Agility(Ловкость)=ActionPoints(Очки действия) – зачем думаете такое большое базовое значение выставили, обратно чтобы избежать ошибки, т.е. все тот же герой только с 1 ловкостью и ее чем то отняли, думаю будет крах игры, так как на все действия игрок как ни странно даже в реал тайме тратит очки действия, даже перезарядка стоит 10 очков, так по крайне мере расписано в Настройках, кому интересно, может поглядеть. А почему 65, допустим у вас 0 ловкости от какого-то крутого наркотика, а вам захотелось пострелять из Толстяка, а стоимость выстрела как раз 65 очков. В принципе вроде так ничего формула, но видно сразу, что зависимость очков действия от Ловкости практически минимальна, что, же давайте посмотрим, что предлагали нам предыдущие части, вот формула расчета:
(ЛВ/2)+5 – конечно если задаться целью, то можно воспроизвести ее, если ее преобразовать: (ЛВ*0.5)+5 и вот она:
50+5* Agility(Ловкость) – отличие только в том, что старую формулу мы помножили еще на 10. Конечно, можно было бы вернуть все расчеты, как и в предыдущих частях, но это займет много – очень много времени, и я не думаю, что все пройдет так гладко, а все потому, что механика, то и неизвестна, а помножив эту формулу на 10, мы убили не одного, а целых 3 зайца.
Первый заяц – не надо тотально изменять все очки действия в настройках игры, их практически изначально делали для десятичного просчета.
Второй заяц – Это очень удобно показать разницу для примера подготовки к бою однотипного оружия, если в предыдущих частях, к примеру, нам требовалось затратить 5 очков на выстрел из автомата, то с десятками нам очень легко показать разницу затрачиваемого времени на зарядку оружия разных фирм. Ведь если брать из математики систему округления то нашей 5 помноженной на 10, т.е. 50 будут приблизительно равны цифрам от интервала от 46 до 54. А это так наглядно, к примеру, показать, что вот автомат Калашникова затрачивает на выстрел 46, а вот его, к примеру, американский собрат М – 16 целых 50 очков, мы сразу видим какой автомат затрачивает больше и из чего лучше стрелять в критический момент.
Третий заяц – привет новая старо-знакомая формула с правильным подсчетом и зависимостью очков действия от Ловкости.
2.2. Перк Живчик теперь дает не 25 очков, а только 10, (как и в ранних частях 1очко).
3.1.Параметр Выносливость – о, это веселый параметр, начнем, пожалуй, с просчета здоровья, и так формула просчета:
(Base Health(смотрим в вкладке NPC и ищем Editor ID – Player, там оно равно 100)+fAVDHealthEnduranceOffset(0)* fAVDHealthEnduranceMult(20))+ Endurance* fAVDHealthEnduranceMult(20)
Увы, повторить формулу из предыдущих частей не получиться, ведь там еще привязана Сила, так, что же с ней делать. Обратно видно что дана большая базовая величина, в данном случае конечно можно ее поменять в вкладке NPC, но мне захотелось малость изменить ее, и придал ей такой вид: 25+25*Выносливость, зачем скажете обратно 25 вначале. Обратно отвечу, что это сделано как база, чтобы избежать возможного краха игры, я не пробовал, но что случиться с персонажем, если вообще убрать базовое здоровье и оставить зависимость только от Выносливости? Ведь что будет с игроком, когда он создан с 1 Выносливостью и ее у него отняли? Не буду лукавить, я понизил базовое здоровье игрока до 50 очков. А дело в том, что среди людей (NPC) у него одно из самых больших 100 очков здоровья, у остальных от 10 до 50 в среднем (хотя вроде есть и индивидуумы), но меня поразил расчет здоровья NPC – это были просто мальчики для битья, вот их формула с их значениями:
(Base Health(смотрим в вкладке NPC и ищем в Editor ID любого вам интересуемого NPC, там оно равно от 10 до 50)+fAVDNPCHealthEnduranceOffset(-1)* fAVDNPCHealthEnduranceMult(5))+ Endurance* fAVDNPCHealthEnduranceMult(5)
А теперь ради интереса посчитаем, какая разница была у игрока со 100очками и NPC с 50 очками, к примеру, если они были 5 уровня, для этого надо еще пару формул просчета добавления дополнительных очков здоровья, увы, они не зависят от показателя Выносливости, а имеют фиксированное значение:
Для игрока FAVDHealthLevelMult(10)*Level и для NPC FAVDNPCHealthLevelMult(5)*Level
В итоге для игрока 5 уровня 250 очков здоровья и для NPC 5 уровня 70 очков – как вы думаете кто из них ламер?
Теперь просчет у NPC идет как у игрока, конечно враги теперь стали не сахар, и с ними сейчас действительно не так легко, учтите, над ними еще предстоит работа с их параметрами, но сосунками они не будут. Да и еще, бонусная прибавка для игрока стала такая же, как и у NPC, слишком много это дарить игроку 200 очков, и 100 хватит – я думаю, вы сразу поняли что Выносливость теперь почти из самых главных параметров, но пока не спешите с выводами
И еще, формула NPC не относится к существам, у них какая-то порезанная система SPECIAL, по-видимому, они обладают только фиксированным здоровьем и оно не меняется.
3.2.Следующее что обнаружилось, я считаю это ляпом, хотя может там, в беседке более умные сидят. Не обращали ли вы внимания, что при 10 Выносливости на экране показаний радиации вы обладаете 18% сопротивлению к радиации, а не 20%? Т.е. проблема такая – за первый самый показатель Выносливости вам добавляют только здоровье, а за второй и за ним последующий уже прибавляют кроме здоровья +2% Сопротивлению радиации. И действительно разбирая, я нашел формулу добавления сопротивления радиации:
fAVDRadResistEnduranceMult(2)*( fAVDRadResistEnduranceOffset(-1)+Endurance)
Для тех, кто в “танке” и впервые играет в игры серии Fallout, поясняю, что во всех частях Выносливость добавляла +2% к сопротивлению радиации (вот формула 2*ВН), я к этой формуле и свел все, теперь на +2% к сопротивлению радиации больше.
3.3.Также решил проверить второй параметр, который также в виде бонуса добавляет параметр Выносливость, естественно, ветераны скажут про +5% к сопротивлению к ядам, и там такая же лажа, вот ее расчет:
fAVDPoisonResistEnduranceMult(2)*( fAVDPoisonResistEnduranceOffset(-1)+Endurance) , как видно обратно украли наши законные +5% к сопротивлению ядам, расчет во всех сериях велся 5*ВН, к этой формуле все и свел. Кстати эту ошибку можно видеть, только, когда настраиваешь NPC, жаль, что в игре вся статистика забита хламом, а не важными показателями.
3.4.Изменен просчет урона от рукопашного боя, сам урон рассчитывается по формуле:
fAVDUnarmedDamageBase(0.5)+ fAVDUnarmedDamageMult(0.05)*SkillsUnarmed,
Теперь он ведется по формуле 1+0.1SkillsUnarmed – т.е. чтобы получить 1 урона в плюс вам надо поднять на 10очков ее навык, ранее надо было 20очков. Кстати, если вы будете носить какую-нибудь вещь, добавляющая навыки для рукопашного боя, просчет будет продолжен и для них и сложится к остальному. Мотайте себе на ус.
5.Параметр Харизма: - один из самых ненужных параметров в игре, хотя в нем есть кое-какие особенности, в дальнейшем будем с ним разбираться.
5.1.Изменен просчет покупки у торговцев, расчет ведется по формуле:
(fBarterBuyBase(1.55)+fBarterBuyMult(-0.45)*SkillsBarter)*(Count Item), т.е. из формулы следует, что при очень низком навыке Торговля вы покупаете вещь на 55% дороже от полной стоимости, а при полном раскачивании навыка на 10% больше ее стоимости. Если так в беседке понимают что такое торговля, понятно тогда почему в мире кризис. Теперь расчет стал жестче, при низком проценте
Теперь продается на 90% дороже от стоимости, а при максимальной величине вы покупаете на 10% дешевле от стоимости вещи.
1.9+(-1)SkillsBarter
5.2.Изменен просчет продажи вещи торговцам, расчет ведется по формуле:
(fBarterSellBase(0.45)+fBarterSellMult(0.45)*SkillsBarter)*(Count Item), т.е. из формулы следует, что при очень низком навыке Торговля вы продаете вещь на 55%дешевле от полной стоимости, а при полном раскачивании навыка на 10% меньше от стоимости. Теперь расчет также стал намного жестче, при низком проценте на 90% дешевле от стоимости, а при максимальной величине вы продаете с выгодой для себя на 10% дороже от стоимости вещи.
0.1+1* SkillsBarter
6.1Параметр Интеллект – мой любимый параметр во всех частях этой серии игры, я всегда старался лишнее очко закинуть в этот параметр, и он всегда вознаграждал меня. Не исключение было и в этой части, здесь он даже сильнее оправдал себя, уже к 8 уровню я имел 2 полностью раскаченных параметра, когда в первый раз играл. Именно из-за него было видно, как разбалансирована игра, каким неисчерпаемым источником сыпется очки к навыкам. 20 очков при 10 интеллекте это очень, неимоверно много, учитывая, что мы раскачиваем не до 300,% а только до 100% и без дополнительных штрафов. Естественно мне это очень сильно не понравилось, игру можно было пройти с 1Интеллектом, и это было возможно, учитывая халявную прибавку в 10 очков. Вот по какой формуле был расчет:
(iLevelUpSkillPointsBase(11)-iLevelUpSkillPointsInterval(1))+iLevelUpSkillPointsInterval(1)*Intellect
Сейчас производится по формуле: 1+Интеллект, т.е. жесткая прибавка от Интеллекта, сколько вложили, то столько и получаете в отдаче, а +1 это база при условии, что если у вашего героя понизился Интеллект до 0, а тут получение уровня.
6.2.Также была подвергнута изменение Tag – бонусные прибавки каким-нибудь навыкам, если честно в оригинале от них никакого интересного эффекта, +15 в начале, хм, и это все?
В первых был изменена сперва именно прибавка +15 – за что такая халява в начале? Я изменил ее в сторону уменьшения, теперь она составляет только +5, вот ее параметр:
fAVDTagSkillBonus(15) теперь 5
Вы скажете “за что такая жестокость?”, не спешите с выводами. Если я что-то забираю, то что-то и даю взамен – ведь я тоже помню закон сохранения энергии.
6.3.Кто играл в предыдущие части, вспомнят что Tag(Приз) кроме прибавки в начале давали еще бонусы когда вкладываешь в очки в указанный навык Tag’ом т.е. как я помню до 100% из 300% вы вкладывали 1 очко но в навыке добавлялась еще одно очко т.е. не 1очко а получали 2. Не исключением был бы и эта часть, но видать разработчики это посчитали дисбалансом, а это и, правда, был бы жестокий дисбаланс, поэтому этот параметр установили на 1, в общем, теперь я это дело поправил. В указанный навык Tag дает не 1 к 1, а 1 к 2, вот этот параметр:
iSkillPoitsTagSkillMult(1) теперь равен 2 – это вам компенсация за то что Интеллект теперь дает намного меньше очков, так как их 3 в начале и +1 еще дает перк “Приз”, то по-умному распоряжайтесь ими.
6.4.Изменена прибавка всех навыков в начале игры, ранее они составляли по 2, но за что? Конечно, я не стал их полностью убирать, во избежание провалов формул, если какой-нибудь параметр был бы равен 0, теперь они равны все 1, вот их параметры:
fAVDSkill(название нужного вам параметра, к примеру Medicine)Base(2) теперь равны 1
6.5.Изменена прибавка к очкам навыка за 1 соответствующий им параметр, ранее он составлял 2 очка к его навыкам, т.е. к примеру, за 1 Интеллект давали к его навыку Наука +2. Мне хотелось больше придать зависимость этой прибавки, чтобы вы больше внимания акцентировали на параметры соответствующих навыков, а не только на параметре Интеллект и Выносливости. Вот этот параметр:
fAVDSkillPrimaryBonusMult(2) теперь 3.
7.Параметр Удача
Изменена прибавка очкам навыка от этого параметра. Ранее она составляла +2 к Удаче, и вы получали +1 ко всем навыкам. Мне хотелось более явнее показать полезность этого параметра, кроме того что каждый параметр добавляет +1 к шансу критического удара, так теперь еще +1 ко всем навыкам. Вот сама формула:
fAVDSkillLuckBonusMult(0.5)*Luck
Это также было сделано как дублирующее средство, если какой-нибудь параметр, отвечающий за навык стал бы равен 0. Не забывайте этот параметр, требуют перки на увеличение, как шанса, так и самого критического урона.
8.Так и немного я внес некоторые корректировки для большей реалистичности. Не обращали вы внимания, когда допустим стреляя по ровной бетонной стене, что пройдя немного дальше от нее, исчезали так называемые Decals (отметины) попадания пуль в стену? Или что, стреляя из лазерного оружия на чуть дальнем расстоянии следы от них исчезали или что если подойти к стреляющему NPC видно как вылетают гильзы от оружия, а вот стоит чуть отойти, уже нет?
В общем, я нашел эти параметры:
fGunDecalCameraDistance(2048) – Отметины, теперь стоит 5120, если будете изменять то старайтесь ставить в 2 системе (2,4,8,16,32 и т.д.) – теперь приближенно видно что мог бы видеть человеческий глаз.
fGunParticleCameraDistance(2048) – Particle – это все ваши летящие трассеры, пули, ракеты, гвозди и т.д. сейчас стоит 4096, думаю больше не надо, так как дальше особо не видно, все равно они там сливаются в одну точку.
fGunShellCameraDistance(512) – Отлетающие гильзы теперь очень хорошо просматриваются, я сделал расстояние таким, как можно еще разглядеть вылетающие гильзы из снайперской винтовки у врагов, а они крупные, дальше я думаю нет смысла увеличивать, сейчас выставлено 2048.
Загруженность системы после этих махинаций не замечено, но думаю, чуточку все, же есть нагрузка, но на это стоит обратить внимание, ведь мелочи и продлевают интерес к игре. Что не пожертвуешь ради красоты
9.Нашел параметры брони и повысил им прочность, дело в том, что в оригинале базовое значение защиты брони падает от ее изношенности, те при оставшемся 1% из 100% общей износостойкости, защита брони будет составлять почти 20% от базового значения защиты, это конечно может быть хорошо. Но, не правдоподобно, надо учесть, что таких в хлам изнашивающих броней не так много в игре, да и прострелянная броня продолжает, же ведь защищать. Конечно, если пуля попадет обратно в то же пулевое отверстие, но как в поговорке, снаряд в одну воронку не падает, так что, подумав, целесообразней поднять было нижнюю остаточную планку защиты броней, а то, как же объяснить, что силовая броня так в хлам изничтожается. Так же это сильно исправит проблему со слабостью NPC, они почти все поголовно ходят в хламе. В общем вот параметры броней:
fArmorRatingBase(0.2)*(Степень защиты) – это значение показывает нижнее значение защиты брони при состоянии равном 0, теперь оно составляет 0.6*(Степень защиты)
fArmorRatingMax(1)* (Степень защиты) – это максимальное значение защиты брони, если вы к примеру выставите 1.5, то броня обладающая 40сопротивлению урону станет 60.
10.Так как я ранее вставил для расчета новую формулу для очков действия, то пришлось корректировать под нее все оружие, и так начнем возвращать былые ценности:
fActionPointsAttackGrenade – 35 теперь 40, это базовая величина затрачиваемых очков действий, если нет конкретных у самого оружия используется они, как видно это для гранат.
fActionPointsAttackMine – 10 теперь 30, особой роли в роде не играет, так по крайне мере в системе VATS мины нельзя вроде использовать, но все же.
fActionPointsAttackHandle – 20 так и остались те же 20 для кулаков.
fActionPointsAttackLauncher – 40 теперь 60 для больших пушек, те как в предыдущих частях те же 6 очков.
fActionPointsAttackOneHandMelee – 15 теперь 30, все одноручное холодное оружие.
fActionPointsAttackPistol – 20 теперь 40, все пистолеты.
fActionPointsAttackRifle – 25 теперь 50, все автоматы и ружья.
fActionPointsAttackTwoHandMelee – 30 теперь 40, все двуручное холодное оружие.
fActionPointsAttackUnarmed – 22 теперь 30, все оружие для рукопашного боя.
Также подкорректировано все оружие использующие свои очки действия под базовые величины, т.е. если базовая величина 30, то все оружие этого класса варьируется от 25 до 34 по правилам округления.
Вы теперь думаете, что я действительно был таким добрым?
11.Исправлена ошибка с противопехотными минами, их можно было сколько угодно ставить, независимо от количества, был сброшен флажок напротив использования патронов для данного вида оружия.
12.Была попытка исправить визуальный баг у огнеметов, когда противник, стреляя по нему по игроку, а тот в свою очередь напрыгивал на него, то вблизи происходил преломление струи огня, следуемая на игрока, искажаясь от места выстрела. Немного увеличил минимальное расстояние огнеметов как у NPC, так и встроенных у роботов. Надеюсь, будет вести себя корректней.
13.Разбираясь в формуле урона, исправил кое-какие её аспекты:
Повысил нижнюю планку урона у огнестрелов при полностью низком состоянии, ранее урон падал до 66% от 100%, теперь только до 85%. Я думаю это не правильно, возможно состояние оружия и влияет на исходный урон, но не на 34% процента.
fDamageGunWeaponCondBase – 0.66 теперь 0.85
fDamageGunWeaponCondMult – 0.34 теперь 0.15
Также исправил влияния состояния оружия у холодного оружия, повысил и это тоже однозначно, даже мятая кувалда – все равно остается кувалдой.
fDamageMeleeWeaponCondBase – 0.5 теперь 0.75
fDamageMeleeWeaponCondMult – 0.5 теперь 0.25
14.Следующим аспектом был немного недоволен, слишком малое влияния урона было от навыков от типа оружия. Конечно, для огнестрелов может быть это отчасти не правильно, понижая урон из-за низкого параметра, но этот параметр отвечает не только за них. Да и объяснить можно тем, что более опытный стрелок, боец и т.д. знает, куда и где больнее и главное как наносить удары. Так что думаю, поймете.
fDamageSkillBase – 0.5 т.е. при самом низком навыке урон от оружия падал до 50%, теперь аж до 20% (я как никак возместил огнестрелам это нелепицу, подняв урон от состояния оружия) теперь 0.2
fDamageSkillMult – 0.5 теперь – 0.8
15.Также чтобы усилить рукопашный бой, я поднял начальную зависимость урона от силы
fDamageStrengthBase – 0.5 теперь 1, т.е теперь она будет при 10 Силе не на 1.5 увеличена, а в 2 раза.
Также была повышена силовая атака, так что используйте ее чаще.
В общем, я пока полностью не разобрался с общей формулой урона, пока остались кое какие нюансы.
16.1.Также я разбирался в хитросплетениях формулы разброса оружия, что же многое теперь стало мне понятно, в общем, тут я покажу дальше, как выглядит полная формула для всех существ в моей редакции, я не исключаю, что где-то я мог, что-то попутать. А пока я начну вот с чего.
Прежде чем говорить о разбросе оружия, могу сказать, что разброс в игре состоит из 3 частей.
Первая часть – Min Spread во вкладке оружия, что это за разброс? Это базовый разброс оружия независимо, от каких либо факторов действующих как на оружие или на вашего персонажа. Т.е. это разброс допустимый по “ГОСТу” при изготовлении этого оружия. И чем он больше в настройках оружия, тем больше будет косить оружия даже при самых благоприятных условиях. Измеряется он в градусах и понимается, под каким градусом отклониться пуля от заданной траектории.
Вторая часть самая интересная – Spread(Разброс) рассчитанный из соответствующей формулы и он зависит от очень многих факторов, вот приблизительная полная формула расчета:
Spread = PerkModifiers(IronSightsBonus * CrouchBonus * (ConditionPenalty + SkillBonus + DriftPenalty) * (WalkPenalty + RunPenalty) + ArmPenalty + ArmNPCPenalty + HeadPenalty)
Если вы будете сравнивать с формулой на вики, то замете много недостающих частей. Конечно, многим она может быть не понятно с первого взгляда, что это все значит, но я сейчас постараюсь все объяснить.
Сама формула состоит из 3 частей:
Первая часть (ConditionPenalty + SkillBonus + DriftPenalty) – от этой части и образуется средний рассчитываемый разброс, от него все и пляшется. Давай те разбираться…
ConditionPenalty – это зависимость разброса от состояния оружия, состоит из ConditionPenalty = fGunSpreadCondBase(0) + fGunSpreadCondMult(0) * WeaponCondition – как видно из расчетов в оригинале был отключен. Сильно большое значение будет только осложнять игру, увеличивая разброс оружия, который мы мало сможем контролировать, ведь оружие нельзя полностью починить. Я задал максимальное значение 0.5 градусов отклонения при низком состоянии оружия. Влияет вроде на все оружие.
SkillBonus – это зависимость разброса оружия от навыков данного типа оружия, состоит из SkillBonus = fGunSpreadSkillBase(0.5) + fGunSpreadSkillMult(-0.005) * ActorSkillValue – как видно, что разработчики установили разброс от низкого навыка всего 0.5 градуса, что очень мало и это характерно отмечается в игре, когда при низких навыках мы отлично попадаем в цель. Кстати эти параметры сильно влияют на шанс попадания. Я решил немного увеличить этот разброс, чтобы у вас был стимул как можно быстрее избавиться от него, задал в данной версии мода максимальный равным 1. Навыки есть как у игрока, так и у NPC. На счет creatures сказать с уверенностью не могу, но у них нет распределения как у NPC и Игрока, но есть Combat Skills, которые они с удовольствием кидают на используемое ими оружие.
DriftPenalty – вот это уже вы точно не найдете в вики, этот параметр влияет не на сам разброс, а на качание оружия в ваших руках, зависит как я понял от навыков к определенному типу оружий. Т.е. чем ниже навык те больше амплитуда качания, чем больше набираете навык, тем меньше становиться амплитуда качания оружия. Состоит из DriftPenalty=fGunSpreadDriftBase(0) + fGunSpreadDriftMult(0) * ActorSkillValue Влияет вроде вообще на всех. Установил значение равным 1
И так это первая часть, вторая часть это факторы, зависящие от игрока.
PerkModifiers – это параметр ни от чего не зависит, он изменяет формулу на свое значение, это так если можно выразиться манна небесная. Задается чаще всего через перки.
IronSightsBonus – это прямая зависимость от применения прицеливания оружия без оптики через мушку. Состоит из fGunSpreadIronSightsBase(1) + fGunSpreadIronSightsMult(-0.65) * IsUsingIronSights . Первое значение подключает данную функцию в расчет формулы и желательно он должен равняться всегда 1, так как иные значения будут восприниматься как необоснованные PerkModifiers. Как видно, что при использовании данной функции разброс падает аж до 35% от своих 100% т.е. 75% съело. Я выставил на 30%. Данную функцию использует как игрок, так и NPC, creatures вроде не используют.
CrouchBonus – это прямая зависимость от применения приседания на разброс оружия. Состоит из CrouchBonus = fGunSpreadCrouchBase(1) + fGunSpreadCrouchMult(-0.4) * IsSneaking – Первое значение также подключает данную функцию и желательно всегда должно быть равно 1, так как иные значения будут восприниматься как необоснованные PerkModifiers. Как видно, что при использовании данной функции разброс падает до 60%. Это много, я не думаю, что присев человек с автоматом прям настолько снизит разброс, я бы понял, если бы это была функция залегания, но для стрельбы в присесте слишком большое значение. Я выставил на 20%. Данную функцию использует как игрок, так и NPC, creatures вроде не используют, я по крайне мере не определил.
Это вторая часть и последняя третья часть, здесь собраны в сумму факторы на увеличения разброса.
WalkPenalty = fGunSpreadWalkBase * !IsRunning(1) + fGunSpreadWalkMult * IsWalking (0) – зависимость разброса от ходьбы, как видно подключена, но эффекта никакого, теперь же при ходьбе разброс увеличивается на 25%. Хотите понизить? Цельтесь! И лучше ходите крадучись…
RunPenalty = (fGunSpreadRunBase(1) + fGunSpreadRunMult(0)) * IsRunning – зависимость разброса от бега. Как видно функция подключена, но эффекта никакого, теперь, же при беге разброс увеличивается на 75%. Хотите понизить? Стреляйте при ходьбе, а лучше присядьте, прицельтесь и никуда не идите, а стреляйте.
ArmPenalty – зависимость разброса от целостности рук у игрока, т.е. чем больше вас ранили в руку тем больше вы мажете. Состоит из ArmPenalty = fGunSpreadArmBase(0.5) + fGunSpreadArmMult(-0.5) * ArmCondition . В данном случае при самом катастрофичном положении руки разброс увеличивается на 50%.
ArmNPCPenalty – та же самая зависимость только теперь для NPC. Состоит из ArmNPCPenalty = fGunSpreadNPCArmBase(0.5) + fGunSpreadNPCArmMult(1) * ArmCondition. Как видно из расчетов разработчики сделали, что при 100% состоянии рук у NPC они имеют повышенный разброс на 150% в отличие от игрока, и он падает до повышенных 50% , как только игрок начинает настреливать им руки. Т.е. они у нас ожесточенно огрызаются. Видно, что эту фичу делали обратно для обширной публики. Я решил сделать такой же просчет, как и у игрока. Надеюсь, я думаю это правильно.
HeadPenalty – единственный непонятный мне до конца параметр, я посчитал как и Arm схожим параметром, но только для головы. Он состоит из
HeadPenalty = fGunSpreadHeadBase(1) + fGunSpreadHeadMult(-1) * HeadCondition – возможно я ошибаюсь на счет него и его заданных параметров, но как видно расчет в игре идет. Но не ясно до конца на кого он влияет. На игрока вроде вообще не влияет, на NPC тоже не замечено, на счет creatures со всеми их Супер мутантами не проявлялось, я его не изменял, так как природа его значения пока под вопросом. Надеюсь, кто-нибудь скажет, на что он влияет.
16.2.Вроде бы со средним значением разобрались, теперь остался последнее значение. Я называю его максимальным разбросом. Это значение можно найти во вкладке оружия как Spread – этот разброс зависит от состояния оружия, и шанс его срабатывания задается несколькими показателями. В обычной игре они все отключены, на Вики про это вообще ничего не сказано. А задается он от: fWeaponConditionSpread их 10 значений, где fWeaponConditionSpread10 – это при состоянии оружия от 100% до90%, а самое низкое соответственно fWeaponConditionSpread1 от 10% до 0%. В обычной игре напротив всех выставлено по 0. Я выставил максимальный шанс срабатывания от 1% до 20%, причем прирост не линейный, а нарастающий в конце. Советую его сильно не увеличивать, будет очень необоснованно большой разброс.
В итоге общий разброс складывается из 3 его составляющих: Мин. Разброс+Сред.Разброс+Макс. Разброс
Надеюсь, вы согласитесь со мной и расчет разброса вам стал более понятен, а не туманен как раньше.
Пока на этом все, основная ударная часть уже будет в версии 1.22. Эта версия идет как ознакомительная с новыми прибамбасами, и далее появиться еще кое-что интересное. Надеюсь вы оцените...

World's on fire......