Эта тема предназначена только для помощи, связанной с редактором G.E.C.K.. Все вопросы, касательно модмейкерского дела, прошу сюда - "Помощь по моддингу."
Если вместо ГЕККа запускается белый экран - это из-за ENBшного d3d9.dll в папке игры. Если после одного из обновлений винды при попытке редактирования лица перса или попытке открыть любое оружие стала выскакивать вот такая надпись Assert File: C:\projects\fallout3PC\BSShader\BSShaderManager.cpp(пути могут различаться) Line: 1996 После чего ГЕКК сворачивается. Вопрос решатся запуском ГЕКК через основную игровую видюху. Установленная по умолчанию в настройках интегрированная выдаёт такую ошибку.
Ребят знающие скриптинг, можете помочь с одним вопросом. Я написал небольшой скриптик на пвн, и собвственно в чем проблема при добавлении через консоль пнв работает нормально, а если взять непосредвственно из игрового мира то эффект не срабатывает. Казалось бы причина есна, но смутил тот факт: я разместил пнв в мире, 2 штуки в бункере нац. гвардии и 1 в форте изгоев, и если взять тот что в форте пнв работает нормально, а если взять тот что в бункере то эффекта нет. В чем проблема понять немогу, может проблема в самом скрипте?
ScriptName ZubNightGogglesScript
short KeyCD short GOGGLESEQUIP
BEGIN OnUnequip player Player.rimod ZubNightGogglesIS Set KeyCD to 0 Set GOGGLESEQUIP to 0 END
BEGIN OnEquip player if player.getEquipped ZubOutfitNightGoggles Set GOGGLESEQUIP to 1 endif END
BEGIN gamemode if GOGGLESEQUIP == 1 && (Player.GetEquipped ZubOutfitNightGoggles == 0) set GOGGLESEQUIP to 0 elseif GOGGLESEQUIP == 0 && (Player.GetEquipped ZubOutfitNightGoggles) set GOGGLESEQUIP to 1 endif
if GOGGLESEQUIP == 1 if ( IsKeyPressed 49 ) if ( KeyCD == 0 ) if ( Player.IsImageSpaceActive ZubNightGogglesIS == 1 ) PlaySound UIPipBoyLightOff Player.rimod ZubNightGogglesIS else ( Player.IsImageSpaceActive ZubNightGogglesIS == 0 ) PlaySound UIPipBoyLightOff Player.imod ZubNightGogglesIS endif endif set KeyCD to 1 elseif (KeyCD == 1 ) set KeyCD to 0 endif endif END
Никогда не задумывался над этим; беглый осмотр фолаутов показал отсутствие в оригиналах игр айронсайт-анимаций для тварей, такие файлы есть только у гуманоидов (то есть под Meshes\Characters). Это ещё не ответ "не могут", но у авторов игры они даже если и могли, никогда этого не делали.
У того оружия точно выше номинальный урон? Всё-таки гранаты это тоже оружие. Ещё может быть связано с тем, что неписи меняют оружие не в любой момент - если почему-то он решил переключиться на гранаты, для обратного переключения ему нужна причина.
Пушка №1: скорострельность 5; собственный урон 750 (одного выстрела); взрыв 500 радиус 275; Пушка №2: скорострельность 5; собственный урон 2500; взрыв 2500; радиус 350. Миниган: скорострельность 75; урон 75. Куда уж выше номинального ^_^..... Насколько я понимаю мощность - главный параметр влияющий на выбор оружия у NPC, или это не совсем так и должна быть еще более веская причина поменять оружие? По поводу укрытий: я конечно в навмешах полный лох, но чисто визуально не заметил разницы при переключении на гранаты между городом с кучей всего и чистым полем без единой кочки, где чисто логически вряд ли кто-то догадается размещать "укрытия".
С IS-анимацией проблема в том, что хотелось бы чтобы из китайского автомата или G-3 дроиды палили "от бедра", а из снайперской винтовки - "через оптику", а все это оружие проходит по одному классу 2HandAutomatic. Похоже придется мутить с самой анимацией непосредственно в папках, переобзывать и все такое....
Про Responsibility спасибо за просвещение, по поводу Confidence ты прав че-то я тупанул...
Про "РЕМОНТНЫЙ" енчант на броне пожалуйста поподробнее.
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1776
написано: 18 августа 2013, 12:37
| Отредактировано: refusepit - 18 августа 2013, 12:39
Ipatow, относительно состояния оружия у НПЦ заметил такую штуку (не знаю, глюк это или того, тенденция ): у напарника в инвентаре периодически замечаю второй экземпляр его оружия с состоянием 100%. Т.е. вручаешь ему то самое ружо 30%, открываешь инвентарь - там ДВА ружа: одно 30%, второе - 100%. При попытке забрать любое исчезают оба, у меня оказывается одно - то, которое 30%. Это я к чему - похоже, они вообще плюют на состояние оружие и пуляют так, словно оно 100%.
Добавлено (18.08.2013, 16:37) --------------------------------------------- И снова здравствуй, дорогая Америка. Давай поболтаем?
Подарила мне напарница стелс-контроллер: такую штуку, которую таскаешь с собой в инвентаре, а она за это делает тебя невидимым, когда ты крадешься (т.е. работает как китайская стелс-броня, только без брони ). И вот я задумался - а как теперь ей подарить такой же?
Со мной-то все понятно: у стелс-контроллера в скрипте прописано: "onAdd - player.addSpell ActorEffectStealth". Но на НПЦ-то spell не действует, мне это давным давно рассказали. И вот чавой-то я не соображу - как такую штуку сделать, которая при нахождении в инвентаре добавляла бы некий эффект НПЦ?
Со мной-то все понятно: у стелс-контроллера в скрипте прописано: "onAdd - player.addSpell ActorEffectStealth". Но на НПЦ-то spell не действует, мне это давным давно рассказали. И вот чавой-то я не соображу - как такую штуку сделать, которая при нахождении в инвентаре добавляла бы некий эффект НПЦ?
наверное нужно player. убрать из строки скрипта (всмысле "onAdd - addSpell ActorEffectStealth"), тогда любому должно добавляться, и нпс тож. может и так будет работать, но я не проверял:
ref Actor begin onadd set Actor to isactor Actor.addSpell ActorEffectStealth end
ты говорил про "РЕМОНТНЫЙ" енчант на броне. Объясни пожалуйста поподробнее...
Что-то наподобие SCRIPNAME GoodAsNewObjectScript BEGIN GameMode SetEquippedCurrentHealth прочность слот END непрерывно выставляет прочность надетого предмета в фиксированное значение - какие-то доли секунды после получения урона прочность снижена, но тут же само "отремонтируется".
QuazarX, спасибо за ответ, но нет. "player" там не стоит, а главное - способности на НПЦ не действуют. Я в свое время хотел, чтобы напарник мог иметь способность "Легкий шаг", но вот как раз Ipatow и рассеял мои иллюзии - нельзя НПЦ способность дать.
Поэтому я и размышляю - как сделать штуку в инвентаре (т.е. чтобы просто лежала, а не была надета/используема), которая добавляла бы НПЦ некий эффект. Причем, там ведь, в ActorEffect есть не только "Способность", там в выпадающем списке есть и "Эффект", "Болезнь", "Специальная способность". Чем они отличаются, я не знаю, но герой (игрок) стал у меня невидим, только когда я поставил пункт "Способность".
Ipatow и рассеял мои иллюзии - нельзя НПЦ способность дать
Ээ, аккуратнее с терминологией! Перк может быть только у ГГ (даже если он по-вегасовски принадлежит как бы неписю, вешается он всё равно на ГГ), а способность - т.е. буквально ability, но порой disease, poison, addiction, power, lesser power - всё чохом реализуемое как actor effect и цепляемое кроме случаев "врождённой" способности (назначаемой прямо базовому объекту моба) как заклинание (функция AddSpell) - на мобов это вешается и на них работает. Какие-то базовые элементы к мобам неприменимы и потому ограничения есть, но сама технология вполне дружелюбна к мобам.
Невидимость/стелс для мобов - вещь двоякохитрая. С одной стороны, когда речь идёт о том, замечают ли мобы друг друга - тут и сама ходьба вприсядку актуальна, и стелс-эффекты вроде китайского стелс-боя. С другой стороны, игра никак не отслеживает, заметил ли кого-то ГГ. Потому что он может не замечать и настойчивую кувалду по физиономии - просто потому, что игрок вышел на балкон покурить...
Ipatow, вот addSpell у меня на НПЦ и не сработал. В этом стелс-контроллере у меня такая примерно схема была:
ref npc
begin onAdd set npc to getContainer npc.addSpell <ActorEffectStealth>
Уже увидев, что НПЦ как был непрозрачным, там и остался, я все заменил на player.addSpell - исключительно чтобы буквы в скрипте сэкономить. При этом эффект вообще не работал ни на ком, пока я не выбрал в выпадающем списке, что это "способность" (в списке выбора названия по-русски, хотя практически все в ГЕКК у меня на английском) - после этого он заработал на ГГ, а на НПЦ как не работал, так и не стал.
А речь, конечно, об обнаружении "моб моба". Чтобы напарника можно было с собой подольше таскать, а то ломится как слон, все засады портит - и в то же время чтобы иметь удовольствие переодевать его, а то как напялил китайскую броню, так и все.
Аналогично с эффектом "убитый напарником моб дает опыт": пришлось его повесить на специальную винтовку - и вся радость типа "о, для моего напарника нашлась еще более крутая пушка!" - псу под хвост, мдя.
В этом стелс-контроллере у меня такая примерно схема была: ref npc begin onAdd set npc to getContainer npc.addSpell <ActorEffectStealth>
Должна быть работоспособная конструкция... Во всяком случае, написано всё правильно. Если загвоздка и есть, то где-то в другом месте (вроде того, что NPC происходит из левел-листа, поэтому базового объекта на самом деле не имеет, и AddSpell, как и любые функции, работающие не с экземпляром, а с эталоном, ведут себя не ожидаемым образом).
Нет, напарница "штучная". А, может, дело в выбранном типе АкторЭффекта? Я так и не понял, чем ему не нравилось, что он был "эффект", а не "способность"? Вообще, до сих пор думал, что отличие "эффекта" от "способности" только в отображении в пип-бое и оповещении (у меня появляется мессаж, что "добавлена способность Стелс-эффект", но в пип-бое записи о новой способности нет... впрочем, не нужно ни сообщение, ни запись, просто подавить сообщение не могу - вылезает, и черт с ним).
А ОбжектЭффект на вещь скриптом ведь не повесишь, да? Я все мечтаю от "особой-дающей-опыт-винтовки" у напарника перейти к "у напарника любое оружие, а опыт за совершенные им убийства идет".
ОбжектЭффект на вещь скриптом ведь не повесишь, да?
FOSE-функция SetScript прицепит скрипт к чему угодно, лишь бы оно в принципе могло быть скритовано. Чтобы не сбить уже имеющийся скрипт - можно его наличие проверять FOSE-функцией IsScripted. FOSE-функции GetScript и RemoveScript в дополнение у названным позволяют вполне гибкое управление объектными скриптами...
Спасибо. Но ФОСЕ не пользуюсь - lingua pura и все такое ... ну, это у меня старый программерский комплекс, что конечный пользователь не должен ничего "доустанавливать", чтобы все работало... хотя в данном случае конечный пользователь всего один - я.
С выхода золотого издания прошло уже три года, а меня все мучит вопрос: почему перфоратор(он же дырокол) делает 2 выстрела в vats? Я уже и весь гекк перелазил, и скрипты, и глобалсеттингс, но все равно не могу понять почему именно очередь из 2 патронов. Может есть какой то параметр который отвечает за очередь стрельбы в ватс?
У меня тоже стоит золотое издание, но почему-то перфоратор(он же дырокол) стреляет по одному патрону. И инфильтратор - тоже, они практически с дыроколом близнецы-братья. Попробовала в настройках этого оружия поменять параметр #projectile (количество прожектилей, вылетающих из ствола) с 1 на 4 - стало вылетать по 4 пули. Что в обычном режиме, что в Ватс. А еще отметила галочку Long Burst (длинные очереди). Вроде как в режиме Ватс стало стрелять подольше. Попробуй - может это то, что тебе нужно.
непрерывно выставляет прочность надетого предмета в фиксированное значение - какие-то доли секунды после получения урона прочность снижена, но тут же само "отремонтируется".
Премного благодарен, но функция типа экстендеровская а у меня с ним религиозные разногласия ...
Изменение репутации для пользователя Quazar
QuazarOffline
Сообщение №1791
написано: 22 августа 2013, 07:12
| Отредактировано: QuazarX - 22 августа 2013, 07:17
проверил - действуют. проверил на Хароне и на гг, использовал дефолтный StealthBoyInvisibilitySpell - и гг и Харон сразу остекленели. тут в другом вопрос - как потом удалить способность? )) если потом предмет удалить у непися, он все равно остается невидимкой. попробовал через ondrop удалять способность - не работает, причем почему-то начинаются проблемы и с добавлением способности неписю, кстати возможно в вашем скрипте есть ondrop и причина в этом. заинтересовался, стал копать...вобщем решение я всеже нашел (для любых компаньонов) но нужен fose поэтому вам наверное не подойдет. еще могу что предложить - если нужно добавить способность только одному неписю и у него есть свой RefID то можно так сделать:
begin onadd NPCRefID NPCRefID.addSpell InvisibilitySpell end
begin ondrop NPCRefID NPCRefID.removespell InvisibilitySpell end
тогда все работает отлично, и добавляется и удаляется.
Спасибо за наводку и за то, что не поленились покопаться! Погляжу на этот спелл - чем он выгодно отличается от моего.
Удалить в моей ситуации - когда предмет дается не вообще любому НПЦ, а напарнику, пусть и неизвестному заранее - можно, думаю, компромиссно: по условию "предмет в инвентаре" добавить реплику диалога: "А дай-ка мне, друг, свой стелс-контроллер" - и в скрипте сделать removeItem + removeSpell
добавить реплику диалога: "А дай-ка мне, друг, свой стелс-контроллер" - и в скрипте сделать removeItem + removeSpell
так все равно RefID для компаньона добавлять придется (NPCRefID.removeItem + NPCRefID.removeSpell), хотя я с диалогами еще вобще не работал.может там по другому..
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1794
написано: 22 августа 2013, 11:07
| Отредактировано: refusepit - 22 августа 2013, 13:53
QuazarX, в диалогах можно задать самые разнообразные условия. Например "эта реплика только для тех, у кого есть определенная вещь". Почти всё, что можно вставить в if ( ) then else, можно указать и в условиях произнесения реплики.
Там есть понятие speaker (S) и target (T) - говорящий и слушающий. И по умолчанию скрипт относится к собеседнику ГГ (он считается "спикером", в ГГ - "таргетом", почему - не знаю). Если в скрипте реплики стоит просто addSpell (а не ref.addSpell)- то это относится к "спикеру", кем бы он ни был. Довольно удобно.
Например, условие "getItemCount WeapChineseAssaultRifle >= 1", а в скрипте - "addItem Ammo556mm 48" означает, что эта реплика появится в разговоре с любым обладателем китайского автомата, а в результате общения он получит 2 рожка патронов 5.56mm.
Подскажите как сделать чтобы непись (напарник) стрелял вражине в конкретно указанную часть тела допустим в голову? И возможно ли такое вообще и с холодным оружием?
Veldion, по-моему, это невозможно. Но если важен результат, а не процесс, то можно, думаю, в onHit врага или в эффект оружия поставить условие "после N попаданий (куда угодно) у врага должна разлететься голова (как будто стреляли в нее)".