Модератор форума: КсюXa, ApeX  
Форум » Fallout 3 » Мастерская » Помощь по G.E.C.K. (Помощь по редактору)

Помощь по G.E.C.K.
КсюXa  Offline  Сообщение №1 написано: 25 сентября 2010, 10:57


Гид по Мастерской


Внимание!


Эта тема предназначена только для помощи, связанной с редактором G.E.C.K..
Все вопросы, касательно модмейкерского дела, прошу сюда - "Помощь по моддингу."

Тема по GECK раздела New Vegas



4STOP97  Offline  Сообщение №2371 написано: 18 декабря 2014, 18:43



82
О вы, великие и всемогущие гуру ГЕККа..! (как многие уже догадались, это снова я)

    Срочно нид хелп... Пытаюсь создать (или, вернее, состряпать из разных кусков) специальный скрипт для оружия и оружейных модов. Дело в том, что в Сети достаточно много прекрасных модов и всяких армори. Есть даже оружие со спец функциями, вроде переключения на подствольный гранатомёт... И вот тут напарываемся на жирную и противную бяку - все скрипты переключения режимов оружия, как правило, работают в FOSE, и, на мой взгляд (и не только мой, поверьте), реализованы крайне мерзко, если не сказать, издевательски. То есть, хотишь включить подствольник - так надо пип-бой врубать, находить в инвентаре тот самый переключаемый ствол, нажать и вызвать менюшку, отжать строчку с нужной модификацией ствола, выйти из режима пип-боя... И пусть весь мир подождёт...
    Это, как сказали бы Гейне и Гёте, абсолютная хрень. " -Так как же Ивану убить Кащея Бессмертного, где его смерть..? -Нуууу... Есть метод...В сундуке заяц, в зайце - утка, в утке яйцо...  -А-а-а, понял, в яйце иголка???  -Ты больной, что ли??? Иголка в яйце - это больно, и это садомазохизм..! Не наш метод..!"
    В общем, это садомазохизм... Не наш метод. Нашим методом должен стать скрипт, который можно навесить на оружие, имеющие различные режимы. Скрипт, который позволит назначать клавиши переключения, и переключать режимы сразу нажатием соответствующей клавиши, без заигрывания с пип-боем. 
    Я сформулировал основные, так сказать, требования, но не могу найти ответы. Вот пример:

Оружие: LR300/М203 с подствольным гранатомётом
Режимы оружия:
1. Полный автомат - наибольшая скорострельность, наибольший разброс, наименьший урон за выстрел; экипируется клавишей H;
2. "Вспышка", или burst fire, три пули одним нажатием - средний разброс, средний урон за выстрел, относительно высокий шанс крита; повторное нажатие клавиши H;
3. Полуавтомат, режим снайперской стрельбы - наименьшая скорострельность, высокая кучность боя, относительно высокий урон; третье нажатие нажатие клавиши H;
4. Подствольный гранатомёт с четырьмя режимами/боеприпасами: осколочный, зажигательный, плазма и EMP; экипируется и переключается клавишей K.
 
В принципе, я уже позаимствовал всё, что нужно, из других модов, но скрипт... Вот в чём беда: необходимо, чтобы клавиши работали ИСКЛЮЧИТЕЛЬНО с  ЭКИПИРОВАННЫМ ОРУЖИЕМ, а не экипировали бы из инвентаря. Экипировать можно и стандартными клавишами. Я пытался переделать скрипт переключения режима, выдранный из xMunitions. Там есть неплохой скрипт для FN-SCAR/M203. Да вот незадача - скрипт назначения привязывается к оружию каким-то триггером - после покупки ствола можно попросить продавца назначить режим переключения карабин-гранатомёт на клавишу G. Кроме того, этой же клавишей оружие и экипируется, и это плохо, ведь подобный скрипт, даже сумей я его сляпать, был бы применим только к одному стволу, а это никуда не годится.
    В общем, такая моя "бида-пичаль". Перелопатил кучу материала, выпил горы обезболивающих, на спазмалгон уже перешёл, а результатов - кот наплакал. Пожалуйста, спасите... ну хоть кто-нибудь...

КсюXa  Offline  Сообщение №2372 написано: 18 декабря 2014, 18:49


Гид по Мастерской


Цитата 4STOP97

Скрипт, который позволит назначать клавиши переключения


Без ненавистного FOSE - практически никак не обойтись.

Ой, всё...
4STOP97  Offline  Сообщение №2373 написано: 18 декабря 2014, 21:09



82
КсюXa, О`кеюшки, без фоси нам не обойтись, во многом согласен. Но даже если так, это никак не отменяет того факта, что режимы переключения через пип-бой - садомазохизм в самой запущенной форме.

Ipatow  Offline  Сообщение №2374 написано: 19 декабря 2014, 00:23



Цитата 4STOP97

необходимо, чтобы клавиши работали ИСКЛЮЧИТЕЛЬНО с ЭКИПИРОВАННЫМ ОРУЖИЕМ, а не экипировали бы из инвентаря

Поскольку любая реализация нескольких режимов оружия может эти режимы имитировать только путём замены экипированного оружия на оружие, стреляющее в желаемом режиме - я не спорю, может, тебе оно и необходимо, но оно невозможно. Смена режима это смена оружия, никак иначе.

Можно обойтись однократной сменой - при экипировании какого-то оружия в этот момент вместо него дать ГГ в руки клон того оружия и впоследствии при переключении менять свойства клона (FOSE может на ходу менять свойства оружия).

Quazar  Offline  Сообщение №2375 написано: 19 декабря 2014, 03:45



446
Цитата 4STOP97

экипируется и переключается клавишей K.

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

4STOP97  Offline  Сообщение №2376 написано: 19 декабря 2014, 12:00 | Отредактировано: 4STOP97 - 19 декабря 2014, 12:05



82
Ipatow, это безусловно верно, QuazarX, ты тоже прав. Но именно так это и работает - в ГЕКК создаются столько моделей оружия, сколько режимов предполагается использовать. Я и сам так делаю. Да и в подавляющей части оружейных модов именно так всё и реализовано. Единственное различие между модами, которое я знаю, это использование разных текстур и мешей для разных режимов, как в Armory of Xzax  - в режиме стрельбы стандартными патронами есть и прицел, и лазерный целеуказатель, и подствольник, а в режиме гранатомёта модель без прицела и лц, только подствольник, экипируется всё через пип-бой... Но суть моей беды не в том, я так или иначе намерен использовать одну и ту же модель, благо такая модель и анимация уже есть. Моя задача состоит в том, чтобы заставить "переключаться" между этими разными/одинаковыми оружьями определённой клавишей/клавишами.

Предлагаю вашему вниманию фрагмент FOSE скрипта из оружейной xMunition, над которым я чахну, и который я привожу в качестве примера. Речь тут идёт о карабине FNSCAR/M203 "Курильщик", (в скрипте - "Smoke") c подствольником. Оружие экипируется и переключается в режим подствольника одной и той же клавишей, для обоих режимов/оружий использованы одинаковые модели. Итак:

scn xCalFoseScript

Short Setup
Short Scan
Short SetScope    (не уверен насчёт этой строки... дело в том, что это лишь фрагмент скрипта, а полностью скрипт контролировал несколько типов оружия, у Курильщика же оптический прицел предусмотрен изначально)
Short Grenadekey
Short SelectKey
Short M203Toggle

BEGIN Gamemode

;  Initialization

IF Setup == 0

Set GrenadeKey to 34 ; 34 for [G]renade Launcher  (вот тот самый момент назначения "Курильщика" на клавишу [G])
Set Setup to 1
EndIF

con_SetINISetting "fScopeScissorAmount:Display" 0.000 ; set up reflex sights                            (что-то про прицел, но полностью я не понял, это вроде бы как в Follaut.INI, где обозначена область затемнения/обзора для прицела... вроде... однако я не совсем уверен в том, что эта строка именно к "Курильщику относится... :) )

; SmokeMonster inventory control
IF Player.GetItemCount xCalFNSCARsmoke > 0 && Player.GetItemCount xCalFNSCARsmokeG > 0
IF Player.GetItemCount xCalFNSCARsmokeG == 0
IF xCALsmokeHealth > 0
Player.AddItemHealthPercent  xCalFNSCARsmokeG 1 xCALsmokeHealth 1
ELSE
Player.AddItem xCalFNSCARsmokeG 1
EndIF
EndIF
Player.removeitem xCalFNSCARsmoke 1 1
EndIF

;  GrenadeLauncher Toggle

IF M203Toggle != IsKeyPressed Grenadekey
Set M203Toggle to M203Toggle == 0
IF M203Toggle
IF Player.getEquipped xCalFNSCARsmoke == 1
Set xCALsmokeHealth to (Player.GetWeaponHealthPerc / 100)
player.AddItemHealthPercent xCalFNSCARsmokeG 1 xCALsmokeHealth 1
player.equipitem xCalFNSCARsmokeG 0 1
Player.removeitem xCalFNSCARsmoke 1 1
ElseIF player.getEquipped xCalFNSCARsmokeG == 1
Set xCALsmokeHealth to (Player.GetWeaponHealthPerc / 100)
player.AddItemHealthPercent  xCalFNSCARsmoke 1 xCALsmokeHealth 1
player.equipitem xCalFNSCARsmoke 0 1
player.RemoveItem  xCalFNSCARsmokeG 1 1
ElseIF IsKeyPressed Grenadekey
IF Player.GetItemCount xCalFNSCARsmoke > 0
Player.removeitem xCalFNSCARsmoke 1 1
Player.AddItemHealthPercent  xCalFNSCARsmokeG 1 xCALsmokeHealth 1
EndIF
player.equipitem xCalFNSCARsmokeG 0 1
EndIF
ENDIF
EndIF

END ;GameMode Block

Собственно, помимо непонятных мне моментов, у данного скрипта есть серьёзный недостаток. Во-первых, он работает только с каким-то одним оружием, и не совместим с другими модами, где используется подобный же скрипт. К примеру, один из пистолетов из этой оружейни назначен на ту же клавишу, что и эффект стелс поля для брони из мода Reinforced Chinese Stealth Armor, и как результат, нажатие клавиши С приводит к одновременному экипированию пистолета и включению стелс поля брони. Взял пушку в руки - и исчез... Второй недостаток - нажатие на клавишу G не только "переключает", но и экипирует, то есть, какой бы ствол или дубинка не был бы в руках, нажатие на G "одевает" Курильщика. А это не то, что мне нужно. Я добиваюсь того, чтобы переключение режимов применялось ИСКЛЮЧИТЕЛЬНО к УЖЕ ЭКИПИРОВАННОМУ мной оружию, причём к ЛЮБОМУ, к которому прицеплен скрипт. Не экипировало. Только переключало. Не знаю, с того ли я конца за шар берусь, но поскольку за весь последний месяц я так и не нашёл ничего, что называлось бы примерно как "Сойти с ума за пять минут, или написание  скриптов полными чайниками", то ситуация с модопеределыванием у меня крайне плачевная...

Quazar  Offline  Сообщение №2377 написано: 19 декабря 2014, 12:38



446
Цитата 4STOP97

Второй недостаток - нажатие на клавишу G не только "переключает", но и экипирует, то есть, какой бы ствол или дубинка не был бы в руках, нажатие на G "одевает" Курильщика. А это не то, что мне нужно.

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

4STOP97  Offline  Сообщение №2378 написано: 19 декабря 2014, 14:09 | Отредактировано: 4STOP97 - 19 декабря 2014, 14:11



82
Цитата QuazarX

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

Да нет же, ты не понял, никакого изменения текстур и мешей как раз и не нужно, используется ОДНА И ТА ЖЕ МОДЕЛЬ. И в приведённом мной примере скрипт применяется к оружию, состоящему из двух совершенно одинаковых моделей: FNSCARSmoke  и FNSCARSmokeG (гранатомёт). Просто под каждую модель привязаны свои звуки, боеприпасы, скопы и так далее, но с этим даже такой тугодум, как я, справляется. А по поводу функции GetEquippedObject 5 - это крайне интересно. Мне всегда казалось, что если FOSE скрипт, привязанный к оружию, "распознаёт" указанное в нём оружие, то... Что касается большого количества стволов... Нет, речь идёт о том, чтобы изменить таким образом максимум 5 или 6 стволов. Вот, кстати, приведённый мной фрагмент выдран из xMunition, в полном виде этот скрипт управляет функциями ещё нескольких стволов. Выглядит это так:

scn xCalFoseScript

Short Setup
Short Scan
Short SetScope
Short Grenadekey
Short TacLightKey
Short SelectKey
Short LightSwitch
Short M203Toggle
Short ReCalibrate
Short Number9
Short M99bind
Short EagleBind
Short EagleKey
Float Timer
Float ScissorAmt

BEGIN Gamemode

;  Initialization

IF Setup == 0

Set TacLightKey to -1  ; disabled by default, 38 for
ight
Set GrenadeKey to 34 ; 34 for [G]renade Launcher
Set SelectKey to 45 ; 45 for e[X]calibr SeleXtor
Set EagleKey to 46 ; 46 for
ustom Eagle
Set Setup to 1
EndIF

con_SetINISetting "fScopeScissorAmount:Display" 0.000 ; set up reflex sights

; SmokeMonster inventory control
IF Player.GetItemCount xCalFNSCARsmoke > 0 && Player.GetItemCount xCalFNSCARsmokeG > 0
IF Player.GetItemCount xCalFNSCARsmokeG == 0
IF xCALsmokeHealth > 0
Player.AddItemHealthPercent  xCalFNSCARsmokeG 1 xCALsmokeHealth 1
ELSE
Player.AddItem xCalFNSCARsmokeG 1
EndIF
EndIF
Player.removeitem xCalFNSCARsmoke 1 1
EndIF
; Custom Eagle inventory control
IF Player.GetItemCount xCalEagleon > 0 && Player.GetItemCount xCalEagleoff > 0
IF Player.GetItemCount xCalEagleon == 0
IF xCalEagleHealth> 0
Player.AddItemHealthPercent  xCalEagleon 1 xCalEagleHealth 1
ELSE
Player.AddItem xCalEagleon 1
EndIF
EndIF
Player.removeitem xCalEagleoff 1 1
EndIF

;  GrenadeLauncher Toggle

IF M203Toggle != IsKeyPressed Grenadekey
Set M203Toggle to M203Toggle == 0
IF M203Toggle
IF Player.getEquipped xCalFNSCARsmoke == 1
Set xCALsmokeHealth to (Player.GetWeaponHealthPerc / 100)
player.AddItemHealthPercent xCalFNSCARsmokeG 1 xCALsmokeHealth 1
player.equipitem xCalFNSCARsmokeG 0 1
Player.removeitem xCalFNSCARsmoke 1 1
ElseIF player.getEquipped xCalFNSCARsmokeG == 1
Set xCALsmokeHealth to (Player.GetWeaponHealthPerc / 100)
player.AddItemHealthPercent  xCalFNSCARsmoke 1 xCALsmokeHealth 1
player.equipitem xCalFNSCARsmoke 0 1
player.RemoveItem  xCalFNSCARsmokeG 1 1
ElseIF IsKeyPressed Grenadekey
IF Player.GetItemCount xCalFNSCARsmoke > 0
Player.removeitem xCalFNSCARsmoke 1 1
Player.AddItemHealthPercent  xCalFNSCARsmokeG 1 xCALsmokeHealth 1
EndIF
player.equipitem xCalFNSCARsmokeG 0 1
EndIF
ENDIF
EndIF

;  Custom EagleToggle

IF EagleBind != IsKeyPressed Eaglekey
Set EagleBind to EagleBind == 0
IF EagleBind
IF Player.getEquipped xCaleagleOn == 1
Set xCALeagleHealth to (Player.GetWeaponHealthPerc / 100)
player.AddItemHealthPercent xCaleagleOff 1 xCALeagleHealth 1
player.equipitem xCaleagleOff 0 1
playsound UIpipboyLightoff ; Buzz
Player.removeitem xCaleagleOn 1 1
ElseIF player.getEquipped xCaleagleOff == 1
Set xCALeagleHealth to (Player.GetWeaponHealthPerc / 100)
player.AddItemHealthPercent  xCaleagleOn 1 xCALeagleHealth 1
player.equipitem xCaleagleOn 0 1
playsound UIpipboyLighton ; Buzz
player.RemoveItem  xCaleagleOff 1 1
ElseIF IsKeyPressed Eaglekey
IF Player.getItemCount xCaleagleOff > 0
Player.removeitem xCaleagleOff 1 1
Player.AddItemHealthPercent  xCaleagleOn 1 xCALeagleHealth 1
EndIF
player.equipitem xCaleagleOn 0 1
EndIF
ENDIF
EndIF

;  Slot 9 for M99

IF M99bind ==1 && Number9 != IsKeyPressed 10
Set Number9 to Number9 == 0
IF Number9
IF Player.getEquipped xCalM99 == 1
player.equipitem xCalM99sup 0 1
ElseIF player.getEquipped xCalM99sup == 1
player.equipitem xCalM99 0 1
ElseIF IsKeyPressed 10
player.equipitem xCalM99 0 1
EndIF
ENDIF
EndIF

;  TacLight Toggle

IF LightSwitch != IsKeyPressed TacLightKey
Set LightSwitch to LightSwitch == 0
IF LightSwitch
IF ((Player.getEquipped xCalM1014 == 1)&&(Player.IsWeaponOut)) || ((Player.getEquipped xCalM1014ns == 1)&&(Player.IsWeaponOut)) || ((Player.getEquipped xCalAR57Pistol == 1)&&(Player.IsWeaponOut))
IF TacLightOn == 0
SetQuestDelay xCalTLQ .001
TacLightREF.Enable
Set TacLightOn to 1
Playsound UIpipboyLightOn
Else
SetQuestDelay xCalTLQ .1
TacLightREF.Disable
Set TacLightOn to 0
Playsound UIpipboyLightOff
EndIF
EndIF
ENDIF
EndIF

;  TacLight disable on weapon switch

IF (Player.getEquipped xCalM1014 == 1) || (Player.getEquipped xCalM1014ns == 1) || (Player.getEquipped xCalAR57Pistol == 1)
ELSEIF (Player.IsWeaponOut)&&(TacLightOn == 1)
SetQuestDelay xCalTLQ .1
TacLightREF.Disable
Set TacLightOn to 0
Playsound UIpipboyLightOff
EndIF

END ;GameMode Block

В написании участвовал сам Erache42. Даже такой олух, как я знает, что это автор XCalibr. Так что уровень, есссно... Но скрипт работает безотказно. Если тебе интересно, можешь сам попробовать, мод xMunition действительно хорош, хотя бы с этй точки зрения... Но в любом случае, хотелось бы знать твою точку зрения касательно моих потуг, в свете всего вышесказанного...

Quazar  Offline  Сообщение №2379 написано: 19 декабря 2014, 17:53



446
4STOP97, тут я тебя могу только отослать к документации FOSE http://geck.bethsoft.com/index.php?title=Category:Functions_(FOSE)
почитай стопку функций начиная от SetWeapon... - все они изменяют какие-то параметры оружия. Лично я их все не проверял, и не знаю насколько стабильно они работают. Использовал лишь SetWeaponIsAutomatic - ставит флаг "Automatic" у выбранного оружия, и SetWeaponAmmoUse - изменяет количество патронов при выстреле, вроде все нормально работало, но на счет всего остального - не проверял...

4STOP97  Offline  Сообщение №2380 написано: 19 декабря 2014, 18:30



82
QuazarX,  Спасибо! Щас только за обезболивающим сгоняю... Туториалы только так могу читать - или под анальгетиками, или под коньяком...

Ipatow  Offline  Сообщение №2381 написано: 20 декабря 2014, 07:35



Цитата 4STOP97

Я добиваюсь того, чтобы переключение режимов применялось ИСКЛЮЧИТЕЛЬНО к УЖЕ ЭКИПИРОВАННОМУ мной оружию

И снова повторю - любая смена режима означает - убрать к чертям (уничтожить, развеять на атомы) твоё "УЖЕ ЭКИПИРОВАННОЕ" оружие, потому что в него встроен другой режим, и вместо него экипировать оружие с нужным режимом. Ты меняешь режим - значит, ты уничтожаешь своё "ИСКЛЮЧИТЕЛЬНО ЭКИПИРОВАННОЕ" оружие, и оно больше никакое не исключительное и не экипированное.

Если у ГГ в руках дубинка, а ты замышляешь сменить у привязанного к пипбойной кнопке 1-8 ствола режим, чтобы потом нажать эту кнопку, и дубинка сменилась бы на тот ствол уже с новым режимом - забудь свой замысел: смена режима означает уничтожение оружия, которое при этом обязательно оторвётся от пипбойной кнопки. Мод не случайно при смене режима суёт ГГ в руки оружие - иначе новый ствол придётся искать по всему рюкзаку.

Ещё один момент, который как будто не был озвучен - всё это жонглирование с уничтожением и материализацией приемлемо работает только для уникальных экземпляров оружия. Как только ты пытаешься прикрутить режимы к типичному существующему не в одном экземпляре оружию - ты больше не знаешь, какой из нескольких экземпляров одного типа будет использован. Скажем, у тебя в рюкзаке лежат два ствола одного типа - один новенький, от другого осталось 2% - взял ты в руки исправный, сменил режим, и ты уже не знаешь, окажется у тебя в руках исправный или сломаный. Только лезть в рюкзак, глазами смотреть и явно выбирать правильный экземпляр. При каждой смене режима.

И ещё раз повторю - количество уничтожений и экипировок оружия заново можно сократить, использовав клон оружия, но один раз уничтожить твоё экипированное и исключительное придётся.

4STOP97  Offline  Сообщение №2382 написано: 20 декабря 2014, 20:28 | Отредактировано: 4STOP97 - 20 декабря 2014, 20:29



82
Ipatow, именно такую пренеприятную шнягу в фолле и я предполагал, об этом же меня предупреждали на Нексусе. Говорили, что каждое последующее нажатие горячей клавиши для экипирования оружия с режимами будет сбрасывать назначение клавиши по каждому стволу/режиму. А без горячих клавиш 1-8 всё равно придётся лезть в пип-бой, в таком случае игра вообще не стоит свеч... ОДНАКО!!!! Вот какой эксперимент я провёл: скачал и установил плагин Extended Hotkeys, главная фишка которого в том, что на каждую из восьми горячих клавиш можно байндить по 8 едениц оружия. Далее: затарился тремя многорежимными стволами (тот самый LR300 c подствольником трёх видов. К одному стволу применил режим автомата, к двум другим осколочного и зажигательного гранатомётов, а затем по очереди назначил все три ствола на клавишу 3. Вуаля!!! Каждое нажатие клавиши 3 экипирует  по очереди карабин LR300, LR300-гарантомёт с осколочными гранатами, затем с зажигательными. И ничего не сбрасывается, FOSE скрипт плагина никак не затрагивает собственный скрипт оружия... И честное слово, даже не знаю, как это всё понимать: с одной стороны, вроде бы нужный мне скрипт создать невозможно, а с другой стороны, вот сторонний плагин, который худо-бедно делает что-то отдалённо похожее... Не знаю, в тему ли я это сказал, однако ж любопытно, как это всё делается...

Добавлено (20 Декабря 2014, 23:28)
---------------------------------------------
Ipatow, помимо описанных мной ранее претензий к фоллу, я задумался вот о чём: существует ли возможность создать вменяемый ребаланс брони для игры??? Странно наблюдать, как трое рейдеров с кусками трубы наперевес забивают насмерть высшего паладина Братства в силовой броне... И вот о чём я подумал:

- предположим, на ГГ надета какая-то броня с СУ равным, скажем, 100;
- если броня принимает выстрел с дамагом <=25 (до 25% от текущего СУ брони), то никакого урона ГГ он не наносит (непробитие), броня теряет прочность (износ) втрое меньше от обычного;
- если броня принимает выстрел с дамагом от 25 до 50 (25-50% от текущего СУ брони), то никакого урона ГГ он не наносит (непробитие), броня теряет прочность вдвое меньше, чем обычно;
- если броня принимает выстрел с дамагом от 40-50 (40-50% от текущего СУ брони), но данное оружие является автоматическим (более 1 выстрела в секунду) то никакого непосредственного урона ГГ он не наносит (непробитие), однако же ГГ получает незначительный "побочный" дамаг "от непогашенного удара", равный, скажем, 0,5 или 1% от общего урона данного оружия (рандомно);
- если броня принимает выстрел с дамагом от 50 до 75 ( 50-75% от текущего СУ брони), то ГГ получает незначительный "побочный" дамаг "от непогашенного удара"(непробитие), равный, скажем, 1 или 2% от общего урона данного оружия (к своему стыду должен признаться, что не знаю, по какой формуле рассчитывается урон персу от взаимодействия пуля/броня в фолле);
- если броня принимает выстрел с дамагом от 75-100 (75-100% от текущего СУ брони, но не более 100), то никакого непосредственного урона ГГ он не наносит (непробитие), однако же ГГ получает незначительный "побочный" дамаг "от непогашенного удара", равный, скажем, 2 или 4% от общего урона данного оружия (рандомно);
- если броня принимает выстрел с дамагом >100 (от текущего СУ брони), то имеет место пробитие, однако же ГГ получает дамаг, равный, скажем, урон-текущий СУ брони-дамадж резист перса(включая перки вроде "алмазный скелет")+ дамаг от "непогашенного удара"+50% от разницы между уроном от выстрела и СУ брони.
То есть, если на ГГ броня с СУ 100, а в него хлопнулась убер-пуля, выпущенная из слонобойной вундер-вафли с прописанным уроном в 200, то ГГ должен от первого выстрела хапнуть горя где-то на 25% от прописанного урона оружия; прочность и СУ брони, есссно, сильно понизятся, и уже второй поцелуй нашей убер-пули вполне обоснованно нанесёт 50 или даже более процентов от прописанного урона оружия. Третий, разумеется, выписывает справку в морг.

Это, конечно, весьма примитивная схема, в которой логично смотрятся только процентные соотношения. И тем не менее, такая схема мне кажется более приемлемой для интересного геймплея.

Ipatow  Offline  Сообщение №2383 написано: 20 декабря 2014, 21:33



Цитата 4STOP97

я задумался вот о чём: существует ли возможность создать вменяемый ребаланс брони для игры???

В рамках движка Fallout 3 - нет. Но разделение противодействующих урону характеристик брони на DT и DR было в первых двух фолаутах (там было вовсе круто - там пара DR/DT на броне была для каждого из поражающих факторов - механика, огонь, плазма и т.д.), и оно частично возрождено в нью-вегасе (один глобальный DT в дополнение к глобальному DR третьего фола - причём палку сдуру перегнули, от радости при виде DT поотключали всей броне DR в ноль).

4STOP97  Offline  Сообщение №2384 написано: 21 декабря 2014, 18:46 | Отредактировано: 4STOP97 - 21 декабря 2014, 18:47



82
Ipatow, я почитал тут кое-что... Мдеее, о чём только беседковые думали... вернее, чем... Но вот что мне посоветовали на нексусе: найти в гекк значения fMaxArmorRatingи fMaxPlayerResistance в GameSettings, и установить выше стандартных значений, затем для брони присваивать энчаты с добавленными эффектами на сопротивление урону или огню... Также, чтобы не увеличивать значения СУ у брони, можно поколдовать с параметрами оружия, например, Weapon Damage Resist. Я и сам как-то заметил, что с установленным Weapon Damage Resist броня неписей реально демпфирует урон. Правда, на ГГ, кажется, этот положительный эффект никак не сказывается...

Добавлено (21 Декабря 2014, 21:46)

Quazar  Offline  Сообщение №2385 написано: 22 декабря 2014, 13:52



446
Обращаюсь опять с тем же вопросом, с каким обращался ранее - из-за чего может вылетать ГЕКК при создании топиков диалога? Бляха, не могу создать ни одного самого мелкого ничтожного квеста! При попытке открыть окно написания топика - сразу же немедленный вылет на стол. И что самое противное - это наблюдается похоже с любой версией игры, я устанавливал даже через Steam третий фолл - результат тот же. Напрашивается вывод что это связано не с игрой, а с редактором или с каким-то необходимым ПО. Между тем, вегосовский и скайримовский редакторы чувствуют себя вполне нормально.
 
Уже думал даже о том чтобы делать квесты в Вегасе, а потом портировать в Фолл, но это же сущий геморрой..  facepalm

КсюXa  Offline  Сообщение №2386 написано: 22 декабря 2014, 15:39


Гид по Мастерской


QuazarX, а редактор откуда скачивал? Он проапгрейден до версии 1.5?

Ой, всё...
Quazar  Offline  Сообщение №2387 написано: 22 декабря 2014, 16:25



446
Цитата КсюXa

Он проапгрейден до версии 1.5?

Разумеется. Скачивал отсюда, с сайта.

4STOP97  Offline  Сообщение №2388 написано: 22 декабря 2014, 16:42



82
QuazarX, а у тебя чистый фолл??? У меня тоже чё-то вылетало... А может, у тебя конфиг не поставлен на multiple plugins? Или вот ещё момент - отключить DEP для ГЕКК, потом открыть его экзешник с CFF Explorer и в File Header поставить app can handle > than 2 gb. Не знаю, тот ли это случай, но у меня ГЕКК вылетать перестал. Капризничать капризничает периодически (или это я косячу..?), но уже второй месяц без вылетов.

Quazar  Offline  Сообщение №2389 написано: 22 декабря 2014, 16:50



446
Цитата 4STOP97

потом открыть его экзешник с CFF Explorer и в File Header поставить app can handle > than 2 gb.

 Делал-делал. Немного ускоряет работу ГЕКК, но не помогло в моей проблеме.

Ipatow  Offline  Сообщение №2390 написано: 22 декабря 2014, 18:04



Цитата QuazarX

не могу создать ни одного самого мелкого ничтожного квеста! При попытке открыть окно написания топика - сразу же немедленный вылет на стол.

Уточню - взрывается в тот момент, когда ты создал топик, создаёшь ответ и при этом открывается окно New Response? Или позже, когда окно ответа открыто и ты начинаешь печатать буквы? Если второе, я бы грешил на ssce5432.dll - проверку орфографии... Если первое, то, кажется, про это уже говорилось - GECK проявляет неожиданные требования к звуковой подсистеме (в зависимости от драйверов там бывало что требовалось аж чтоб микрофон в гнездо был воткнут), и резонно потеребить что-нибудь там unsure

4STOP97  Offline  Сообщение №2391 написано: 22 декабря 2014, 20:30



82
QuazarX, да брось ты нафиг пока эти топики... У меня вот какая идея появилась - как бы нам, посонам, изменить визуальные эффекты, а? Картина маслом - стоит такой себе мужчинка в силовой броне, жена на него матом орёт и скалкой для теста колотит, зарплату всю до копейки вымогает... И что интересно - лупит деревяшкой по металлу, а из металла кровь фонтанами брызжет... Тупо??? Тупо. А не подскажешь ли мне, как (или где, или чем...) поменять... блин, как это называется... Impact LOD... Impact Data Set... блин, моск наизнанку... Короче - ежели по кожаной броне пулька попадает - то можно бы, скажем, сделать эффект как от попадания по пивной бутылке, такое маленькое облачко... совсем как в жизни - ежели пуля лупит в тело, из одежды выбивает частицы. Ежели по металлической броне - то чтоб как по машинам - искры, скрежет, мать-перемать... Честно, я совершенно не в курсах, с какого конца за шар браться... Одни кричат, что в прожектилях есть add destruction data ( ну, оно то есть, а вот что дальше..?), другие вопят, что где то в ГЕКК (где-то, мля, какая полезная информация...) есть те самые Impact для разного типа поверхностей и структур: для дерева, металла... мяса... В общем, хочу знать твоё просвещённое мнение по поводу моего безумия...

Quazar  Offline  Сообщение №2392 написано: 23 декабря 2014, 05:35 | Отредактировано: QuazarX - 23 декабря 2014, 05:59



446
Цитата Ipatow

взрывается в тот момент, когда ты создал топик, создаёшь ответ и при этом открывается окно New Response?

Окно New Response я не могу даже открыть. При попытке это сделать (выбираешь New из списка), ГЕКК зависает на какое-то время, а потом происходит вылет. Иногда вылета не происходит, но появляется окно ошибки о прекращении работы программы:

Пишет что что-то не так с системным файлом ntdll.dll Нашел более новую версию, но заменить его не так-то просто, через него работает множество процессов. Да и не знаю стоит ли, сомневаюсь что причина в нем, даже если его побил какой-то вирус ГЕКК крашился на диалогах даже будучи установленным на свежую систему.

4STOP97  Offline  Сообщение №2393 написано: 23 декабря 2014, 15:01



82
Цитата QuazarX

Пишет что что-то не так с системным файлом ntdll.dll Нашел более новую версию, но заменить его не так-то просто, через него работает множество процессов. Да и не знаю стоит ли, сомневаюсь что причина в нем, даже если его побил какой-то вирус ГЕКК крашился на диалогах даже будучи установленным на свежую систему.

Не буду утверждать априори, однако на скрине видно, что в данных об ошибке есть код исключения с0000005... Знаешь, обычно этот код означает какой-нибудь косяк с чтением данных из оперативной памяти, либо ошибку работы памяти... Попробуй продиагностировать память традиционными средствами, также не поленись проверить том на наличие ошибок, возможно, есть проблемы в разделе диска.

Ipatow  Offline  Сообщение №2394 написано: 23 декабря 2014, 16:21



Цитата QuazarX

Пишет что что-то не так с системным файлом ntdll.dll Нашел более новую версию, но заменить его не так-то просто, через него работает множество процессов

Этот файл принадлежит операционной системе, и изменять его иначе как штатными средствами обновления операционки простительно только тому, кто точно знает, какую функциональность обеспечивает этот файл. И к проблеме GECK он отношения не имеет - то, что он записан в сообщении об ошибке потерпевшим, это просто он последний подававший признаки жизни в случившейся катастрофе - отозвался на вопрос "есть кто живой?" - его и записали жертвой...

При попытке редактировать сушествующий ответ - вариант окна по имени Edit Response - так же всё взрывается? Игра (и GECK) установлена не в "защищённую" папку (наподобие Program Files)?

4STOP97  Offline  Сообщение №2395 написано: 23 декабря 2014, 18:21 | Отредактировано: 4STOP97 - 23 декабря 2014, 19:27



82
Цитата Ipatow

материал ушибаемого предмета, прописанный в его модели. Вторая - тот самый набор impact-эффектов, назначенный оружию

Ipatow, я не совсем понимаю, где это... или как это... Может, не там смотрю??? Вот я залез в статы оружия и вижу в разделе Impact Data Set значение BallisticImpactDataSet (ну, раз оружие у нас с баллистическим боеприпасом, то всё ок). Потратив ещё пару часов и разжевав упаковку обезболивающего, нахожу (ура, ура!!!!) раздел Impact Data, а в нём - ImpactDataSet. Там, к ещё большей своей радости, нахожу требуемый набор BallisticImpactDataSet. Открываем, смотрим: ага, вот есть земля, трава, дерево, металл, вода, стекло... вот органика жуков, а вот органика коров... нет только для одежды (почему???). В общем, в наборе BallisticImpactDataSet как бы всё необходимое есть... В таком случае, что мешает, скажем, пуле, попав в броню "из металла" вести себя как с металлом, используя прописанный в BallisticImpactDataSet тип BallisticMetalmpact или BallisticMetalHollowImpact??? В разделе Armor нет ни слова о том, из какого материала состоит броня, и потому, видимо, прожектиль и "не знает" во что втыкается - попадает в силовую броню из металла, но в результате брызжет кровь, как из мяса... Но тогда какой вообще смысл во всех этих импактах, если прожектиль их не использует? Или броня не определяется как "объект"???

Ipatow  Offline  Сообщение №2396 написано: 23 декабря 2014, 21:58 | Отредактировано: Ipatow - 23 декабря 2014, 22:00



Цитата 4STOP97

В разделе Armor нет ни слова о том, из какого материала состоит броня, и потому, видимо, прожектиль и "не знает" во что втыкается - попадает в силовую броню из металла, но в результате брызжет кровь, как из мяса... Но тогда какой вообще смысл во всех этих импактах, если прожектиль их не использует? Или броня не определяется как "объект"???

В GECK информацию о материале искать не надо, её там нет. Она находится в файле модели, в ветке BSFadeNode -> bhkCollisionObject -> bhkRigidBody -> и вот там в разных bhkConvex* имеются поля с типом HavokMaterial. Поскольку движок Havok в фолауте привинчен несколько набекрень, три десятка хавоковских материалов в игре транслируются в более короткий список. Данные о материале, конечно, используются - мягкотряпчатый диван, деревянную скамейку и фонарный столб топор рубит по-разному. И когда ты снимешь с дяденьки каску и постучишь по этой каске кирпичом, результат будет вполне кастрюльный, как для любого честного предмета. Но когда ты наденешь каску на дяденьку - каска станет частью дяденьки и больше не будет подчиняться законам физики (точнее, не будет подчиняться Havok Physics - надетая броня и в самом деле для хавока не объект). Если честно, я толком не знаю, как именно в игре состыкованы движки Havok и Gamebryo (поведением анимированных объектов заведует он) - понятно, что как-то там коллизии строятся на лету и отслеживаются, раз попадают пули в людей, но как именно это делается, как при этом обрабатывается информация о материалах и откуда она берётся (модели живых хавоковской информации не содержат, поскольку хавок всё равно не будет их обрабатывать), представления не имею. Возможно, по причине динамической постройки коллизий там и нет дифференциации по материалу и весь моб считается органикой. Если подумать, это было бы изрядной нагрузкой - отслеживать, где на энергично танцующем дяденьке в каждый момент расположены ремешки и пряжки, чтобы шальная пуля об пряжку делала дзынь, об ремешок тюк, а об дяденьку чпок... С другой стороны, визуальные-то характеристики успевают отследиться - пряжки блестят металлом, ремешки поблёскивают кожей, а дяденька хвастается татуировками - и ведь всё в движении, с тенями и полупрозрачностями unsure Так или иначе, корень зла тут определённо в использовании игрой двух движков...

Quazar  Offline  Сообщение №2397 написано: 24 декабря 2014, 16:13



446
Цитата Ipatow

Игра (и GECK) установлена не в "защищённую" папку (наподобие Program Files)?

Игра установлена НЕ в защищенную папку, и я запускаю ГЕКК от имени админа. Ставил игру так же и в защищенную папку (Program Files) и запускал от админа - не помогло.

Но что самое странное, и что меня самого сильно удивляет - на этом же диске, в этой же папке, установлены вегосовский ГЕКК и Creation Kit и у них с топиками диалогов не наблюдается никаких проблем. Редакторы-то ведь однотипные, ну ладно Creation Kit еще может как-то выделяется (папирус и прочие плюшки), но оба ГЕККа-то по сути должны работать одинаково!

У меня такое впечатление что это вообще какая-то очень редкая проблема, потому как в инете я не нашел никаких рекомендаций. А между тем, уже перепробовал казалось бы все... :(

КсюXa  Offline  Сообщение №2398 написано: 24 декабря 2014, 17:34


Гид по Мастерской


QuazarX, как бы странно не звучало.. но попробуй удалить оба ГЕККа, а затем установи заново. Но сначала фоловский, потом - вегасовский.

Ой, всё...
4STOP97  Offline  Сообщение №2399 написано: 24 декабря 2014, 21:41



82
Ipatow, если я правильно понял, то моя затея с импактами для брони смахивает на ту же затею с останавливающим действием пуль... Окей, суть проблемы и масштабы бедствия я представил (но всё равно подскажи, как найти этот BSFadeNode, ума не приложу, где это, и чем открывается). Тем не менее, есть примеры, когда движки действуют слаженно - например, при стрельбе по роботам - де-юре все роботы являются неписями, а де-факто прожектили всё-таки распознают их как объект и используют нужный тип импакта. Возможно, я слишком наивен в вопросах модостроения (а скорее всего, так и есть, блин...), и пример мой неудачен, однако же такое явление в игре наблюдается. Или дело тут не в материале, а в типе непися, и роботам, как и муравьям, положен именно тот самый импакт... не знаю... К тому же, не нужно отслеживать пряжки и ремешки - достаточно того, каков основной материал брони: кожа или металл, ещё-что-нибудь...

Добавлено (25 Декабря 2014, 00:41)
---------------------------------------------

Цитата КсюXa

У губ твоих конфетный, конфетный вкус. Твой шёпот нежный-нежный разгонит грусть... (эта песня реально зомбирует)

КсюXa, если не секрет, что за произведение??? Наводит странные ощущения... словно уже где-то слышал подобное... Сам по молодости песни писал когда-то... Жене хочу чего-нибудь пикантного состряпать на праздники, а в голову ничего не приходит...

Galko  Offline  Сообщение №2400 написано: 25 декабря 2014, 03:00 | Отредактировано: Galko - 25 декабря 2014, 06:43


GALAктическая мартышка


Цитата Ipatow

Она находится в файле модели, в ветке BSFadeNode ->


Открыть ниф-модель брони в Nifskope и перейти на указанную ветку.

Ваше счастье, что я не ваше счастье
Форум » Fallout 3 » Мастерская » Помощь по G.E.C.K. (Помощь по редактору)
Поиск:





Ответ на жалобу смотрите в разделе жалоб