Эта тема предназначена только для помощи, связанной с редактором G.E.C.K.. Все вопросы, касательно модмейкерского дела, прошу сюда - "Помощь по моддингу."
Если вместо ГЕККа запускается белый экран - это из-за ENBшного d3d9.dll в папке игры. Если после одного из обновлений винды при попытке редактирования лица перса или попытке открыть любое оружие стала выскакивать вот такая надпись Assert File: C:\projects\fallout3PC\BSShader\BSShaderManager.cpp(пути могут различаться) Line: 1996 После чего ГЕКК сворачивается. Вопрос решатся запуском ГЕКК через основную игровую видюху. Установленная по умолчанию в настройках интегрированная выдаёт такую ошибку.
не нужно отслеживать пряжки и ремешки - достаточно того, каков основной материал брони: кожа или металл, ещё-что-нибудь...
Это не так чтобы необходимо, но для неодушевлённых объектов оно просто уже сделано и работает. Вот висит на стене лопата, предмет самостоятельный, но составной, в модели два блока разного материала: ручка деревянная, совок металлический. Стреляешь в ручку - летят щепки, стреляешь в совок - летят искры.
Это не так чтобы необходимо, но для неодушевлённых объектов оно просто уже сделано и работает. Вот висит на стене лопата, предмет самостоятельный, но составной, в модели два блока разного материала: ручка деревянная, совок металлический. Стреляешь в ручку - летят щепки, стреляешь в совок - летят искры.
...и только несчастный Буратино, тщетно отбивающийся от дятлов, при попаданиях в самые различные части тела издавал однообразный глухой стук, и скупо ронял на пол опилки...
Неееет, мне вполне хватило бы и самого простого варианта. Сделать хотя бы так, а уж потом скакать от результата...
Добавлено (27 Декабря 2014, 23:13) --------------------------------------------- Братцы, караул, спасите... Открыл туториал Nifscope, по ссылке... а тама половина скринов уже недоступна, нихрена не понятно, на какие педали давить... Если у кого-ндь завалялся туториал для чайников, плиииззззз... И ребята, простой вопрос в лоб: можно ли в Гекк изменить Animation type для холодного оружия??? сделал двуручный меч как одноручный... а правая рука, зараза, держит рукоять в том месте, где была левая, то есть не у самой гарды, а практически за конец рукояти... полный облом... и за спину повесить, как двуручный, тож не можна...
set WeaponInHandRef to player.GetEquippedObject 5 if WeaponInHandRef.GetIsID Weap10mmPistol == 1
Раз уж вопрос возникал - GetEquippedObject выдаёт FormID базового объекта. То, что переменная названа про "Ref", не сделает применение WeaponInHandRef.GetIsID законным... Собственно, нужная тебе проверка должна бы была звучать if WeaponInHandRef == Weap10mmPistol
Чаще всего предметы, находящиеся в контейнерах (в том числе в руках мобов, включая ГГ), не имеют FormID. Когда FormID есть, это присходит из-за того, что недавно объект был объектом мира - самостоятельно существовал в 3D-пространстве игры - и потому являлся Reference с собственным FormID. В течение некоторого времени игра ещё не забыла, что этот объект был Ref - так же, как при входе ГГ в интерьер снаружи не приводит к мгновенному замиранию мира по ту сторону двери, и, например, преследующие ГГ мобы немного погодя вбегут следом в этот интерьер. Эта "краткосрочная память" сбрасывается, например, сохранением-восстановлением игры: записался-восстановился, и мир за дверью замер, а пулемёт в руках потерял FormID.
Возможно, недопонимание вызвано тем, что тип переменной называется REF, хотя её значение может быть любым FormID, хоть номера объектов, к которым применима логика эталон/экземпляр, хоть номера объектов совершенно другой системы - погода, стиль боя, звук, скрипт и т.д.
Насколько я могу судить, тебе совершенно не нужен FormID референса, конкретного экземпляра, находящегося в руках. Тебе нужен как раз FormID базового объекта. Я ведь правильно понимаю, что у тебя там задумка вида? -
SET Weapon TO GetEquippedObject 5 IF (GetWeapoIsAutomatic Weapon) …IF ((GetWeaponType Weapon) > 4) проверяем, достаточно ли силы противостоять отдаче очереди двуручной дуры …ELSE у одноручных скорострелов отдача меньше, но тоже проверим …ENDIF ENDIF IF ((GetWeaponResistType Weapon) = 60) проверяем, достаточно ли интеллекта энергетически разить цель ENDIF и так далее куча проверок - типа достаточно ли снайпер, чтобы осилить оптический прицел, не слишком ли тяжёлая пушка просто в килограммах, в противопожарной ли одежде умник пытается орудовать огнемётом - всё на основании свойств базовго объекта оружия, не интересуясь, из какого мода оружие и как оно называется, не говоря уж про FormID какого-то конкретного экземпляра этого оружия...
Изменение репутации для пользователя Darwinian
DarwinianOffline
Сообщение №2409
написано: 5 февраля 2015, 16:00
| Отредактировано: Darwinian - 5 февраля 2015, 16:11
Не совсем так, я хотел для каждого стандартного оружия прописать отдельные конкретные требования. И за неимением идеи лучше, решил сделать это "по грязному", просто начал перечислять все пушки по виду:
Код
if player.GetEquipped WeapPlasmaPistol == 1 if player.getav EnergyWeapons < 75 player.UnEquipItem WeapPlasmaPistol 0 1 showmessage TweakoutNotEnoughSkills elseif player.getav Strength < 2 player.UnEquipItem WeapPlasmaPistol 0 1 showmessage TweakoutNotEnoughStrength endif set VanillaWeapon to 1 endif
Но вот незадача, оказалось что форма скрипта имеет ограничение по кол-ву символов. Есть идеи как это всю жуть сжать и оптимизировать? Я имею ввиду не конкретно эту часть скрипта, а идею в целом. Вот скрипт целиком http://pastebin.com/5Z67FHVb
Не совсем так, я хотел для каждого стандартного оружия прописать отдельные конкретные требования. И за неимением идеи лучше, решил сделать это "по грязному", просто начал перечислять все пушки по виду
Можно то же самое очень по-разному реализовывать. Например, сгруппировать оружие с одинаковыми требованиями. Разнообразие требований, наверное, меньше разнообразия оружия?
IF (Player.IsWeaponInList ListOfST5Weapons) && ((Player.GetAV Strength) < 5) SET UnequipFlag TO 1 ShowMessage YouNeedST5 ENDIF IF (Player.IsWeaponInList ListOfST3Weapons) && ((Player.GetAV Strength) < 3) SET UnequipFlag TO 1 ShowMessage YouNeedST3 ENDIF ... IF UnequipFlag SET Weapon TO Player.GetEquippedObject 5 Player.UnequipItem Weapon ENDIF
Ipatow, да, я думал про это. С силой проблем нет, там диапазон от 2 до 10 максимум, а вот со скиллами? Там разброс очень большой, да еще и где-то взрывчатка, где то без оружия, рукопашное и т.д. Можно конечно разделить на SmallGuns 25 SmallGuns 50 SmallGuns 75 SmallGuns 100 и так же с остальными, но это довольно скучно. И я пытался уйти от таких железобетонных значений (25*n)
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №2412
написано: 5 февраля 2015, 22:12
| Отредактировано: Joopeeter - 5 февраля 2015, 20:12
Можно куски скрипта вынести в результ-скрипты стадий квеста. У этих результ-скриптов такая особенность, что они срабатывают сразу при установке стадии функцией SetStage, прямо посерёдке другого скрипта. То есть к примеру пишем в такой-то стадии некоего квеста в результ-скрипте
Код
if player.GetEquipped WeapGrenadeFrag == 1 if player.getav Explosives < 25
player.UnEquipItem WeapGrenadeFrag 0 1
showmessage TweakoutNotEnoughSkills
elseif player.getav Strength < 2
player.UnEquipItem WeapGrenadeFrag 0 1
showmessage TweakoutNotEnoughStrength
endif
set [некий квест].VanillaWeapon to 1
endif
а в самом скрипте вместо этого
Код
SetStage [некий квест] [такая-то стадия]
что заметно короче.
Добавлено (06 Февраля 2015, 01:12) --------------------------------------------- И, наверное, если перебирать оружия, то стоит это делать не if-endif...-if-endif, а if-elseif-elseif...-endif. Может, первое же подойдёт, чего потом зря скрипт гонять.
С силой проблем нет, там диапазон от 2 до 10 максимум, а вот со скиллами? Там разброс очень большой, да еще и где-то взрывчатка, где то без оружия, рукопашное и т.д. Можно конечно разделить на SmallGuns 25 SmallGuns 50 SmallGuns 75 SmallGuns 100 и так же с остальными, но это довольно скучно. И я пытался уйти от таких железобетонных значений (25*n)
Возможно, отказ от железобетонных ступенек и придаст игре что-то вроде реализма, но я что-то сомневаюсь... Скажем, если бы то же было сделано для замков/терминалов - их в игре тысячи, и там разброс требуемого для взлома скилла не выглядит странно. Но видов стандартного оружия не больше сотни, считая уникальное, считая не помещённое в оригинальную игру, считая все эти перочинные монтировки - ну так и какой резон устраивать "плавную степенчатость"? Игрок возьмёт в руки за всю игру с дюжину видов оружия, так что неступенчато просто не выйдет. А раз всё равно ступеньки - почему не 25-50-100?... Ну, это философия.
Создаёшь один формлист и заносишь в него всё оружие. Создаёшь другой формлист и заносишь в него такое же количество специально созданных мусорных предметов (в их свойствах не нужно прописывать ничего, кроме цены - они в игровой мир не попадают и работают числами; цена каждого предмета равняется <требуемая сила>*1000 + <требуемый скилл>).
SCRIPTNAME MyScriptName REF Weapon REF tmpRef SHORT Index SHORT Price SHORT Check1 SHORT Check2 SHORT Skill BEGIN GameMode …SET Weapon TO Player.GetEquippedObject 5 …SET Index TO ListGetFormIndex WeaponsList Weapon …IF Index == -1 ……RETURN …ENDIF …SET tmpRef TO ListGetNthForm PriceList Index …SET Price TO GetItemValue tmpRef …SET Check1 TO Price / 1000 …SET Check2 TO Price - (Check1 * 1000) …SET Skill TO GetWeaponSkill Weapon …IF Check1 ……IF (Player.GetAV Strength) < Check1 ; мало силы ……ENDIF …ENDIF …IF Check2 ……IF (Player.GetAV Skill) < Check2 ; мало скилла ……ENDIF …ENDIF END
Решил использовать несколько совмещенный вариант. Проверка силы через форм листы и проверка скилла через скрипт. Уместилось все.
Есть другой вопрос. Хотел добавить зависимость от простой ядер колы, без отрицательных эффектов, просто как атмосферную фишечку. Но проблема возникла с imp's more complex needs. Там переделаны все химикаты, еда и прочее. Так вот, как можно добавить зависимость, не используя отдельный esp патч совместимости? Подумал что получится вручную запихнуть ее в скрипт NukaColaAddCapEffectScript, который в оригинале дает одну крышечку после использования колы. Но по какой то причине автор imcn решил вообще не использовать этот скрипт.
Добавлено (08 Февраля 2015, 11:48) --------------------------------------------- Поясните мне работу SetScript, пробую два варианта, вроде как по инструкции, не работают
Код
if ContREF.IsScripted == 0 set Distance to player.GetDistance ContREF if Distance <= 400 set OldScript to ContREF.SetScript TweakoutMeleeLockpickScr ;другой вариант SetScript TweakoutMeleeLockpickScr, ContREF endif endif
Добавлено (08 Февраля 2015, 14:11) --------------------------------------------- Разобрался что скрипт нужно сперва привязать к любому объекту, а потом уже объект указывать в виде источника скрипта. Но все равно в игре скрипт не прикрепляется к цели.
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №2415
написано: 8 марта 2015, 15:30
| Отредактировано: refusepit - 8 марта 2015, 15:30
Дорогая Америка! Напомни, пожалуйста, как решается проблема "у меня все параметры прокачаны до 100, при очередном уровне (47-м, например) остались нераспределенные баллы, соответственно, не могу дальше пройти". Кажется, чего-то там с каким-то файлом XML делали, нет? Я для личного пользования сделал топорно в свое время: в GameMode проверял, если навык рукопашки больше 50, то сбросить его в 50, но это все-таки топорно, для себя, я рукопашкой не пользуюсь. А понтово как?
vlad0981, tckb ytvyjuj jhbtynbбля.. если немного ориентируешься в ГЕКК, то открой мод, найди в новых локациях мап-маркеры и поменяй у этих маркеров статус (там есть у реф-копий чек-боксы, которые отвечают за: - маркер изначально открыт на карте, маркер открывается при обнаружении и еще какой-то, не помню точно, а посмотреть сейчас не могу. Короче - пошарься по вкладкам маркера. Вроде как во второй вкладке MarkerData всё сам увидишь.
Добавлено (08 Марта 2015, 20:02) --------------------------------------------- а! вот! В туториале от Императора про мап-маркеры сказано: В случае с домом поставлю тип маркера Settlement. Тип маркера влияет только на обозначение на карте. Под типами маркера расположено три переключателя:
Visible. Означает, что маркер будет открыт на карте, но не исследован (Fast-travel невозможен)
Can travel to. Означает, что маркер будет открыт на карте и исследован (Fast-travel возможен). В случае установки Can travel to параметр Visible становится неактивным.
«Show all» hidden. Означает, что маркер не будет открыт на карте и не исследован (Fast-travel невозможен). Функция абсолютно аналогична тому, если вы не поставите ни одну отметку. Полностью тутор можно почитать на Тиаруме - статья "Руководство по созданию дома"
Ой, всё...
Изменение репутации для пользователя vlad0981
vlad0981Offline
Сообщение №2418
написано: 8 марта 2015, 17:59
| Отредактировано: vlad0981 - 8 марта 2015, 18:00
как решается проблема "у меня все параметры прокачаны до 100, при очередном уровне (47-м, например) остались нераспределенные баллы, соответственно, не могу дальше пройти".
Что-то у меня сегодня настроение на такие вопросы отвечать "выдерни шнур, выдави стекло"... Ох.
Поскольку игра всё равно уже вывихнута по самое не могу (как пример - автоподстройка уровня мобов работает в пределах десяти уровней, и 47 ей сорвёт крышу), вполне можно доломать и вообще убрать выдачу баллов. Обнулить цифры выдаваемого на уровне (iLevelUpSkillPointsBase и iLevelUpSkillPointsInterval), и всё...
Вообще-то, мне казалось, что сама игра должна скидывать лишние баллы. Поскольку набрать всё-по-сто можно было и в оригинальной игре раньше 20 уровня (не без книжек, но всё-таки стандартными средствами), а подъём оригинального лимита до стандартной тридцатки сделал это очень даже вероятным событием... Должно быть, выход за предельный уровень что-то там переклинил.
если у НПЦ в рюкзаке будут стимпаки, он их сам скушает?
Скушать-то он скушает... Вопрос кушанья стимпаков меня и самого давно волнует. Происходит это так. Вне боя любой непись к здоровью относится наплевательски и стимпак не жрёт вообще. В бою он, если сильно ранен, колет себе один, а следующий колет только через время, задаваемое настройкой fCombatItemBuffTimer. Даже если совсем при смерти, всё равно второй стимпак до срока использовать не станет. Валяющиеся рядом стимуляторы непись, кажется, не подбирает. Часто анимация укола проигрывается неправильно или не проигрывается вообще (особенно при повторном уколе) - непись тупо стоит несколько секунд со шприцем в руке. Может быть, поэтому стимуляторы у неписей встречаются так редко - при игре со стандартными настройками и инвентарями (несколько прохождений) я наблюдал непися, использующего свой стимулятор, ровно один раз.
Добавлено (19 Марта 2015, 14:57) --------------------------------------------- Не помню, жрут ли инвентарные стимпаки напарники... Вроде нет.
Любопытно, что будет, если мой непись спохватится, что пора бы стимпак принять, а тут еще и скрипт ему скажет, что давай-ка, мол, лечись. Умрет от передоза?
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №2423
написано: 20 марта 2015, 16:18
| Отредактировано: Joopeeter - 20 марта 2015, 15:41
Вдвое здоровее станет. Стимулятор расходуется по завершении анимации укола (или тупого стояния, если анимация заела). Если во время проигрывания анимации надобность в лечении пропала, непись в конце просто не использует свой стимпак. То есть скрипту и штатному лечению совпасть в одном мгновении затруднительно. Даже если лечение стимпаком будет растянуто на манер Вегаса.
Добавлено (20 Марта 2015, 19:18) --------------------------------------------- Кстати, животные тоже используют стимпаки! Жаль, без анимации
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №2424
написано: 21 марта 2015, 10:34
| Отредактировано: КсюXa - 21 марта 2015, 10:48
Дорогая Америка, не сталкивалась ли ты с траблом? Сейчас я его опишу.
Как и многие поколения до меня, занялся я Регуляторами - жалкие они в ванильном исполнении, помоечные какие-то. Поменял локацию с их домиком (т.е. экстерьер), создал несколько НПЦ (не левел-лист, а персональных), чтобы ее охраняли (пакет travel до ликед-рефа - маркера, где должен стоять нпц с weapon-drawn). Поставил им в квесте greeting: если это фракция Регуляторы и если герой не имеет перка Законник, то "Гуляй, гуляй, проваливай, добрый человек" и флаг goodbay.
Обращаюсь к нпц - он дергается и молчит. Может, думаю, это потому, что он Регулятор, какой-то другой гритинг перебивает мой? Убрал фракцию Регуляторы, дал фракцию РегуляторНью. Молчит. Убрал все условия, дал условие "этот конктретный нпц" - для проверки. Он молчит, остальные заговорили - ванильный "привет" говорят. Убрал все пакеты - пусть просто тупо стоит. Молчит, подергивается.
#$&, дорогая Америка, спаси мой угасающий разум!
ЗЫ. Вечером еще буду... гм... подергиваться. Пришла мысля - если я приоритет этого гритинга изменю на 100, он у всех гритингов в игре изменится или только у этого конкретного?
Пришла мысля - если я приоритет этого гритинга изменю на 100, он у всех гритингов в игре изменится или только у этого конкретного?
У всех. Но даже если бы и у одного, толку не было бы. Приоритет квеста имеет приоритет перед приоритетом топика Какое из подходящих приветствий будет сказано, определяется приоритетом квеста, а не приветствия в нём. Приоритет топика влияет только на порядок топиков в окне диалога. Или, при некоторых извращённых формах начала диалога, какой из топиков будет произнесён вместо приветствия.
А то ещё иногда бывает, когда по сто раз переправляешь что-то, оно потом вообще отказывается работать
Субтитры включены, конечно.
Такая мысля тоже приходила. У меня вообще там все извращено - я esp правлю и на работе, и дома, т.е. два разных ГЕККа, причем в домашнем не работает добавление топика в диалог (но иногда вдруг срабатывает, в общем, черт-те что) - ГЕКК вылетает (тут где-то такую проблему описывали, решения не нашли). Может и впрямь поплохело моду от жизни такой...
В общем, чую, что буду в третий раз пересоздавать...
Добавлено (27 Марта 2015, 18:55) --------------------------------------------- Дорогая Америка, объясни мне такую вещь: если у меня Скрытность = 100, то имеет ли смысл стелс-эффект? Т.е. вопрос вот в чем: делает ли что-то стелс-эффект, кроме визуальной (для игрока, смотрящего в монитор) прозрачности? Может быть, даже лучше переформулировать (потому что на китайской броне, например, 3 эффекта: увеличение скрытности на 15, стелс-эффект и какой-то стелс-комбат эффект) - архетип "хамелеон" как-то на уровне программного кода уменьшает обнаружение игрока мобами, или он только внешний?
Хамелеон, насколько я помню, чисто для красоты, визуальный. Характеристики и навыки, увеличенные выше максимума, обсчитываются как максимальные и ни единичкой больше. Смысл повышения сверх максимума следующий. Например, скрытность ровно 100, но в результате нездорового образа жизни ловкость снижена на 2. Скритность становится 96. Например, скрытность 100+4. Считается как 100, но при снижении ловкости на 2 она остаётся ровно 100.
Всем привет,подскажите,что можно сделать? (Проблема именно в Geck!) Пытаюсь отредактировать скрипт мода. В скрипте есть один момент. GetCrosshairRef . Geck категорически не принимает этот скрипт,хотя на сайте с командами он есть. Проблема в том,что мод работает,но его главный скрипт невозможно изменить. (DotW)
If (layer == 0) set mytarget to GetCrosshairRef If (mytarget.GetInFaction RobotFaction == 0 && (mytarget.IsActor || mytarget.GetIsCreature)) If (mytarget.GetDead) ShowMessage amsgDoctorBagMENU Else ShowMessage amsgDoctorBagMENUAlive EndIf
set layer to 1 Else set mytarget to Player ShowMessage amsgDoctorBagMENUSelf set layer to 1 EndIf EndIf