The Elder Scrolls & Fallout 3 Modding

на главную страницу сайта

Форум Oblivion, Skyrim & Fallout 3/4 Modding

Объявление

У нас есть свой сервер Дискорда. Заходите, пообщаемся.
Господа, те кто пользуются фотохостингом http://uploads.ru/ для размещения изображений. Рекомендую воспользоваться для упрощения загрузки вот этой программой.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » G.E.C.K. (New Vegas Edition) » КАРТОТЕКА ответов по GECK - FAQ


КАРТОТЕКА ответов по GECK - FAQ

Сообщений 61 страница 90 из 139

1

Коллективы модмейкеров сайтов Oblivion & Fallout 3 Modding и MG приветствуют начинающих своё знакомство с редактором GECK!

В этой теме мы собираем для вас, лучшие ответы на вопросы - из разных тем связанных с работой в GECK и не только!
Нажмите на картинку нужной темы в ОГЛАВЛЕНИИ, а затем выбрав из списка ответов нужное, перейдите по ссылке ОТВЕТ и прочитайте ответ на свой или подобный вашему вопрос.
Задавать свои вопросы и писать комментарии здесь не надо. Пользуйтесь для этого существующими темами.

ССЫЛКИ НА ТУТОРЫ, УРОКИ И СТАТЬИ ПО МОДИНГУ   Перейти к списку

ОГЛАВЛЕНИЕ

http://savepic.ru/4362122.png G.E.C.K.
http://savepic.ru/4364170.png ЭФФЕКТЫ
http://savepic.ru/4350858.png ТЕКСТУРЫ
http://savepic.ru/4358026.png ОРУЖИЕ
http://savepic.ru/4384650.png БРОНЯ, ОДЕЖДА
http://savepic.ru/4355978.png СКРИПТЫ
http://savepic.ru/4345738.png NIFSKOPE
http://savepic.ru/4343690.png FOMM
http://savepic.ru/4349834.png NVPlugin Utility
http://savepic.ru/4347786.png БАЗОВЫЕ
http://savepic.su/3467020.jpg МИНИУРОКИ

НОВЫЕ "ПОСТУПЛЕНИЯ"

В новый пункт Оглавления  МИНИ УРОКИ добавлены три первых статьи.

***Мини урок от SIGIS по созданию объекта "линза" в Max, экспорт и создание коллизии объекта средствами NifSkope.   

***Статья от Fillimor. Как сжать видео, снятое Frapsом.   

***Описание приёмов работы с 3D Ripper DX — утилитой для захвата игровых ресурсов, в процессе игры.

Отредактировано K.A.I.N. (2012-04-18 22:27:58)

+3

61

http://savepic.ru/4816744.png Как сделать, чтобы турель можно было включать и отключать через терминал?
http://savepic.ru/4847446.png(Graf) Нужно связать (соединить) терминал и турель LinkedRef связью...

А в терминале создать две кнопки управления.

В кнопке "Активировать" (включить) в поле Item Result Script вписать такой скрипт:

Код:
ref myLink
set myLink to getLinkedRef
myLink.setUnconscious 0

В кнопке "Деактивировать" (выключить) - такой:

Код:
ref myLink
set myLink to getLinkedRef
myLink.stopCombat
myLink.setUnconscious 1

Замечу, что делать для этого новый терминал не обязательно, разве что для тренировки. В игре есть стандартные - те, у которых ID начинается на DefaultTurretTerm. Там уже всё есть, со всеми прописанными условиями и результ-скриптами.

http://savepic.su/3837668m.jpg

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

Подробней про LinkedRef можно почитать в разделе "Базовые" Картотеки.

0

62

Как в Редакторе создать новый скрипт и добавить его объекту

В Редакторе GECK есть встроенный редактор скриптов, который можно открыть:
1. через Главное меню Gameplay - Edit Scripts. Откроется окно Script Edit
http://uploads.ru/i/4/X/t/4Xtf2.jpg

2. через окно настроек объекта (Armor, NPC, Misc Item, door, и тп.) Кнопка открытия Редактора скриптов http://uploads.ru/i/i/J/w/iJwOt.jpg
находится справа от окна  выбора скриптов
http://uploads.ru/i/4/I/g/4Igmb.jpg
в Weapon окно выбора скриптов без названия
http://uploads.ru/i/D/n/C/DnCyM.jpg

Открыв окно Редактора скриптов мы видим  Главное меню состоящее из трёх вкладок:
1. Script  в нём пункты

New... - Создать новый скрипт
Open... - Открыть скрипт (откроется окно прокрутки со списком всех скриптов игры)
Previous Script - Предыдущий скрипт
Next Script - Следующий скрипт
Save - Сохранить
Recompile ALL - Перекомпилировать все скрипты ( заново компилировать все скрипты)
Delete - Удалить
Exit - Выход из редактора скриптов

2.Edit в нём пункты

Preferences - Настройки ( сменить цвет текста и фона)
Undo - Отменить 
Redo - Повторить
Find Text - Найти Текст
Find Next - Искать дальше
Go ti Line - Перейти к строке в скрипте

3. Help - в нём пункты:

Contents - переход по ссылке на сайт The Elder Scrolls Construction Set Wiki в помощь
Commands - ссылка в раздел команды
Functios - ссылка на функции

Ниже Главного меню находятся иконки быстрого запуска для команд
По порядку слева направо - Открыть - Сохранить -Назад - Вперёд - Рекомпилировать - Удалить - Выход

После того как вы создали новый скрипт - выбрав в Главном меню Script - New
Можно вписать текст скрипта или скопировать готовый скрипт из другого источника CTRL - V и вставить CTRL - C
Например такой скрипт на появление объекта, при добавлении в контейнер игрока определённого предмета.

scn AAAKainTableDDD

Short doonce

Begin OnActivate Player
if (doonce ==0)
if (player.GetItemCount AAAKainArmorFiendHelmet > 0)
Set doonce to 1
endif
endif
end

Begin GameMode
if (doonce == 1)
AAAKainAppleRef.Enable
Set doonce to 0
endif
end

Но вы должны помнить о том, что пока не выполнены все условия, требуемые для работы скрипта он не сохраниться.
При выборе Save Редактор скриптов будет выдавать такое сообщение.
http://uploads.ru/t/q/V/S/qVSBK.jpg

Примечание:
В Редакторе скриптов GECKNV есть такой баг - редактор не выводит информацию о месте ошибки, её содержимом.
Как вы видите, по окну сообщения в котором написано "Вы хотите сохранить текущий скрипт" и Current = - не понять почему Редактор не сохраняет скрипт и не закрывает окно.
Что бы исправить этот баг, можно скачать программу Defox ГЛЮКОИСПРАВИТЕЛЬ G.E.C.K. v1.0 (New Vegas Edition), автор Defox.
Скачать можно с сайта автора Глюкоисправитель

Требуемые условия для сохранения скрипта.

1.Должны быть созданы все объекты, сообщения, квесты и тп. чьи ID имена используются в скрипте.
2.Скрипт не должен содержать ошибок в написание команд, функций, переменных, операторов и тп.

В моём примере скрипт не сохраняется потому что объекты AAAKainArmorFiendHelmet - шлем и AAAKainAppleRef - яблоко не созданы.

Давайте создадим и как раз на примере рассмотрим добавление скрипта объекту.
Откроем ветку с бронёй. Окно Object Windows - Item -Armor, затем клик ПКМ (правой кнопкой мышки) в списке брони.
Здесь вы можете создать новый шлем, или отредактировать один из имеющихся.
Я выбрал для редактирования ArmorCombatHelmet  и в поле ID изменил имя игрового шлема на имя шлема из скрипта AAAKainArmorFiendHelmet и расположил его в нужной месте локации.
Затем точно также в ветке Clutter -Food изменил ID имя яблока на AAAKainApple, и после расположения его в нужном месте локации присвоил Ref имя  Reference Editor ID  AAAKainAppleRef и включил галку Persistent Reference.

Примечание: Термин Reference довольно сложен для перевода на русский язык в приложении к играм серии TES. На официальной вики Tes 4 Construction Set этот термин встречается на каждом шагу, и каждый раз его можно перевести по-другому.

Подробней о Ref ссылках вы можете почитать здесь RumorWiki

Все условия для сохранения скрипта мы выполнили - теперь можем закрыть окно Редактора скриптов.
Остаётся только присвоить ("повесить") скрипт на  шлем. Для этого открываем окно Armor - выбрав AAAKainArmorFiendHelmet в списке Object Windows - Item -Armor, или кликну по шлему в Рабочем окне.
http://uploads.ru/t/w/e/m/wemWh.jpg

Затем открыть окно прокрутки Script , выбрать там скрипт AAAKainTableDDD. После чего нажать OK тем самым применив изменения и закрыв окно Armor.

В общем то по добавлению скриптов в игру на этом, в основном, всё!

Осталось только отметить, что скрипты бывают трёх типов. Мы рассмотрели пример добавления на Объектном скрипте Object, которые применяться, как это видно из названия к объектам игры (броня, оружие, предметы и тп.)
Есть ещё два типа, это Квестовые скрипты Ouest и Эффектые скрипты Effect - область их применения понятна из названий.
Поэтому создавая скрипт не забывайте в окне прокрутки Script Type выбирать и назначать им нужный тип.
http://uploads.ru/i/s/q/3/sq3YN.jpg
Часто люди создав Квестовый скрипт потом в окне Квеста  Quest Data не могут найти его в поле выбора скриптов, потому что сохранили его как Объектный, который в Редакторе скриптов стоит по умолчанию.

В ходе обсуждения этого ответа мне было сделано правильное замечание - зачем усложнять скрипт, если его можно сделать в одном блоке вот так:

Graf написал(а):

scn AAAKainTableDDD
Short doonce
Begin OnActivate Player
if (doonce ==0) && (player.GetItemCount AAAKainArmorFiendHelmet > 0)
Set doonce to 1
endif
if (doonce == 1)
AAAKainAppleRef.Enable
Set doonce to 0
endif
end

На что был добавлен ответ Spalny_Vagon

SpalnyVagon написал(а):

Если уж на то пошло, то можно было бы упростить еще больше:

scn AAAKainTableDDD
Begin OnActivate Player
if player.GetItemCount AAAKainArmorFiendHelmet > 0
AAAKainAppleRef.Enable
endif
end

С одной стороны у вас "многоразовый" активатор, а а с другой стороны у вас только одно "каин-яблоко". Это значит, сколько на активатор не жми, второго яблока не будет. Поэтому здесь можно обойтись и вовсе без переменных типа doonce.

Если будете использовать этот ответ для создания сцены в игре, используйте скрипт Spalny_Vagon.
При том, что они все работают, лучше использовать самый простой, во первых вам же удобней и понятней. Во вторых надёжней!

0

63

http://savepic.ru/4816744.png Как сделать, чтобы при приближении робота на нужную дистанцию, он подрывал и себя и главного героя?
http://savepic.ru/4847446.png(Joopeeter) Очень просто. Повесьте этот скрипт на робота "подрывника"...

Код:
scn AAARobotMineScript
short DoOnce
Begin GameMode
   if ( DoOnce == 0 )
    if GetDistance player <= 250 ;подрыв настроен на расстояние 250 игровых единиц
     KillActor player 0 ;убиваем робота и отрываем ему всё, что только можно
     killactor player 1
     KillActor player 2
     killactor player 3
     KillActor player 4
     killactor player 5
     KillActor player 6
     killactor player 7
     KillActor player 8
     KillActor player 9
     killactor player 10
     KillActor player 11
     KillActor player 12
     KillActor player 13
     KillActor player 14
     PlaceAtMe MineFragExplosion ;взрываем робота
     player.PlaceAtMe MineFragExplosion ;взрываем игрока
     Set DoOnce to 1
    endif
   endif
End

if GetDistance player <= 250 в этой строчке скрипта меняя цифровое значение 250, увеличивайте или уменьшайте расстояние подрыва.

Как создать новый скрипт, и добавить (повесить) скрипт на объект, можно почитать здесь Картотека - "Базовые"

0

64

http://savepic.ru/4816744.png  Что такое дефолтные (Default) скрипты и для чего они используются?
http://savepic.ru/4847446.png (Spalny_Vagon) Дефолтные (базовые) скрипты, это готовые скрипты, которые можно применять в различных ситуация...

Замечу, что в игре уже имеется несколько скриптов, которые написаны и проверены создателями игры из Bethesda, не требуют лишней писанины и проигрывают анимацию. Вот пример дефолтного скрипта, который "енеблит" при активации:

scn DefaultEnableLinkOnActivateSCRIPT
; basic script that enables linked reference on activate
short DoOnce
ref myLink
begin onActivate
if doOnce == 0
set myLink to getLinkedRef
myLink.enable
set doOnce to 1
endif
activate
end

Есть точно такой же, который "дисеблит", короче, вот список дефаултных скриптов Беседки дляFallouNV, которые позволяют не изобретать велосипеды:

1. Автоматическая триггерная "открывалка" двери

scn Default1xActivateLinkedRefSCRIPT
; a standard, all-purpose script

ref myLink
short doOnce

begin onTriggerEnter player

if doOnce == 0
    set myLink to getLinkedRef
    myLink.activate
    set doOnce to 1
endif
end

2. Скрытая дверь-телепорт, т.е. ты активируешь одну дверь, а тебя телепортирует другая.

scn DefaultActLinkWhenActSCRIPT
; a standard, all-purpose script

ref myLink
ref myActor

begin onActivate

    set myLink to getLinkedRef
    set myActor to getActionRef
    myLink.activate myActor

end

3. Триггерная "отключалка" быстрых перемещений

scn DefaultDisableFastTravelSCRIPT
; used on triggers to mark zones in which fast travel is disallowed

begin onTriggerEnter

if isActionRef player == 1
    EnableFastTravel 0
    if NQlvl.fastTravelDisabled == 0
    set NQlvl.fastTravelDisabled to 1
    endif
    ;messageBox "fast travel disabled"
endif
end

begin onTriggerLeave
if isActionRef player == 1
    enableFastTravel 1
    if NQlvl.fastTravelDisabled == 1
    set NQlvl.fastTravelDisabled to 0
    endif
    ;messageBox"fast travel enabled"
endif
end

4. Активатор "исчезалка" Disable

scn DefaultDisableLinkOnActivateSCRIPT
; basic script that enables linked reference on activate

short DoOnce
ref myLink

begin onActivate

if doOnce == 0
    set myLink to getLinkedRef
    myLink.disable
    set doOnce to 1
endif

activate
end

5. Активатор "появлялка" Enable

scn DefaultEnableLinkOnActivateSCRIPT
; basic script that enables linked reference on activate

short DoOnce
ref myLink

begin onActivate

if doOnce == 0
    set myLink to getLinkedRef
    myLink.enable
    set doOnce to 1
endif

activate
end

6. Триггер "появлялка" Enable общего использования

scn DefaultEnableLink1xSCRIPT
; basic script that enables linked reference

short DoOnce
ref myLink

begin onTriggerEnter

if doOnce == 0
    set myLink to getLinkedRef
    myLink.enable
    set doOnce to 1
endif
end

7. Триггер "появлялка" только для одного ГГ

scn DefaultEnableLink1xSCRIPTplayer
; basic script that enables linked reference

short DoOnce
ref myLink

begin onTriggerEnter player

if doOnce == 0
    set myLink to getLinkedRef
    myLink.enable
    set doOnce to 1
endif
end

8. Стандартная "прилеталка" для вертолёта

scn DefaultPlaygroupForwardOnLoad

short doOnce

begin onLoad

playgroup idle 0
playgroup forward 0
end
begin gameMode

if doOnce == 0
    if isAnimplaying forward == 0
    set doOnce to 1
    playgroup left 0
    endif
endif
end

Если вы не знаете, то в редакторе GECK есть удобная система поиска.
Открыть можно через Главное меню Edit - Find Text откроется окно
http://uploads.ru/t/Z/5/H/Z5Hvm.jpg

в котором можно ввести текст запроса и во вкладках
Infos - инфо из квестов
Scripts - скрипты
Objects - объекты
Quest Stades - стадии квеста
Quest Objectives - цели квеста

выбрав нужное - совершить переход или открыть место с найденным. Если выбрать (кликнуть) по скрипту из списка найденных, откроется окно Редактор скриптов с текстом выбранного скрипта.

0

65

http://savepic.ru/4816744.png Kак сделать, чтобы мертвое тело было без рук, ног и головы?
http://savepic.ru/4847446.png(Spalny Vagon)  Есть функция killactor, у нее в параметрах можно указать, кто убийца, какую часть тела оторвать и причину смерти:

Actor.KillActor Killer:ref DismemberLimb:int CauseOfDeath:int
В качестве убийцы обычно используется какой-нибудь нейтральный Ref.
Не знаю, кто "серийный" убийца в Вегасе, а в Фаллуте-3 это CG01DadREF, т.е. папа (кто бы мог подумать?). Фукнция отрывает за один раз одну часть тела, но ее можно применять в одном фрейме многократно, в том числе и к уже мертвым актерам.

Итого, в скрипте это выглядит примерно так:

Код:
scn DivisionIntoParts

begin onload

   killactor CG01DadREF 1 ;(голова)
   killactor CG01DadREF 3 ;(левая рука)
   killactor CG01DadREF 5 ;(правая рука)
   killactor CG01DadREF 7 ;(левая нога)
   killactor CG01DadREF 10 ;(правая нога)
end

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

Остальные номера

2 - Head2 (Вторая голова)
4 - LeftArm2 (Вторая левая рука)
6 - RightArm2 (Вторая правая рука)
8 - LeftLeg2 (Вторая левая нога)
9 - LeftLeg3 (Третья левая нога)
11 - RightLeg2 (Вторая правая нога)
12 - RightLeg3 (Третья правая нога)
13 - Brain (Центр нервной системы)
14 - Weapon (Оружие)

На актеров под эффектом SetScale KillActor может не подействовать.

0

66

http://savepic.ru/4816744.png Как начать какое то событие, после того, как определённый объект, был положен на определённое место (подбор клавишей "Z")?
http://savepic.ru/4847446.png(Graf) Расскажу на примере фишек, из моего мода "Арена"...

Первую фишку (раздел world objects -> static), ложим туда, где нужно чтобы наша фишка появлялась (и даём ей Ref ссылку, у меня ("aaaArenaModYPOBEHb2ChipKey3Ref") и не забываем нажать Disable (что бы наша фишка не появилась раньше времени).После этого берём Xmarker (раздел world objects -> static) даём ему Ref ссылку, у меня "aaaArenaModYPOBEHb2ChipKey1Marker1Ref", и ставим туда же, где и стоит наша фишка:
http://savepic.su/779937m.jpg
Далее создаём третью фишку (раздел world objects -> movable static), называем её (как угодно), и даём ей Ref ссылку, у меня "aaaArenaModYPOBEHb2ChipKey1Ref".
Теперь создаем квест, и вешаем на него скрипт:

Код:
scn MadScriptName
Short CodeKey1
Begin GameMode
if ( CodeKey1 == 0 )
if ( aaaArenaModYPOBEHb2ChipKey1Ref.GetDistance aaaArenaModYPOBEHb2ChipKey1Marker1Ref <= 5 )
aaaArenaModYPOBEHb2ChipKey3Ref.Enable
aaaArenaModYPOBEHb2ChipKey1Ref.Disable
SetStage Idquest 20
PlaySound DRSPlaypenOpenA
Set CodeKey1 to 1
endif
endif
End

Небольшое объяснение:
if ( aaaArenaModYPOBEHb2ChipKey1Ref.GetDistance, aaaArenaModYPOBEHb2ChipKey1Marker1Ref <= 5 ) Если обычная фишка будет находиться на дистанции меньше или 5, от маркера
Тогда:

aaaArenaModYPOBEHb2ChipKey3Ref.Enable - нужная фишка появится
aaaArenaModYPOBEHb2ChipKey1Ref.Disable - ту которую ложили, исчезнет
PlaySound "DRSPlaypenOpenA - проигрывается звук
SetStage Idquest 20 - квест Idquest переходит на стадию 20

Надеюсь понятно объяснил!

0

67

http://savepic.ru/4816744.png Как сделать автоматически открываемые/закрываемые двери?
http://savepic.ru/4847446.png(Graf) Можно сделать так...

Уставливаем триггер. Растягиваете его в обе стороны от двери и связываете с ней линком (указываете дверь как Linked Ref триггера).
На триггер "вешаете" такой скрипт:

Код:
scn AutoDoorScript

ref myLink

Begin onTriggerEnter
    set myLink to getLinkedRef
    myLink.setOpenState 1
End

Begin onTriggerLeave
    set myLink to getLinkedRef
    myLink.setOpenState 0
End

Работает такая схема так.
При входе игрока в зону триггера - дверь открывается, и остаётся открытой.
Как только игрок покидает зону триггера - дверь закрывается.

http://i019.radikal.ru/1109/43/a2beef4b0483t.jpg

Что такое Ref-связь и как именно такая связь делается вы можете посмотреть Здесь
А как "повесить" (присвоить) скрип объекту Здесь

0

68

http://savepic.ru/4816744.png Подскажите как сделать напарников на Хардкоре (и не только) бессмертными?
http://savepic.ru/4847446.png(Оrder) В зависимости от ваших возможностей, это можно сделать по разному...

1. Консольной командой SetEssential BaseID 1
Например для "Рейнджер Призрак" команда будет выглядеть так SetEssential 0013D6A2 1
Если ввести в консоли SetEssential 0013D6A2 0 то Призрак снова станет смертной.
ID компаньонов или любого другого NPC можно посмотреть в GECK, FNVEdit, поискать в интернете.

2. В редакторе GECK(New Vegas Edition)
Для этого в списке NPC найти нужного вам компаньона (или любого NPC), двойным кликом ЛКМ(левая кнопка мышки) открыть окно NPC
и поставить галку Essential
http://uploads.ru/i/j/U/V/jUV6C.jpg

Нажать OK (применить)
Сохранить изменения в новом esp, а в случае подключённого "активного" esp - в нём.

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

0

69

http://savepic.ru/4816744.png Что обозначает знак == в скрипте, да и другие! Расскажите пожалуйста?
http://savepic.ru/4847446.png Именно это [b]== равно, относится к операторам...[/b]

Вот остальные Арифметические операторы:

+ Сложение
- Вычитание
* Умножение
/ Деление
% Модуль (выполняет целочисленное деление и возвращает остаток)

&& - и
|| - или

== Равно
!= Не равно
> Больше чем
< Меньше чем
>= Больше или равно
<= Меньше или равно

Подробней можно почитать в OSFM v1.2, скачать учебник по скриптам можно здесь OBLIVION & FALLOUT 3 MODDING

Там же есть ссылка на онлайн версию учебника.

0

70

http://savepic.ru/4816744.png Как сделать сортировщик предметов инвентаря?
http://savepic.ru/4847446.png Один из вариантов сортировка при помощи Form List (списков)...

Это может кому-нибудь пригодится, особенно тому кто делает жилища и дома.
Захотел сделать у себя в жилище сортировщик. Чтоб при нажатии на активатор (будь то какая-нибудь панель или терминал) предметы автоматом перемещались в контейнер.
Покопавшись в модах с домами в скриптах я пришел в ужас от того какие длинные получаются скрипты. Немного подумал, а почему бы все предметы сортировки не поместить в Form List и скрипт получиться намного меньше.
Реализуется это так:

Пример с журналами.
       
Создаем новый Form List с уникальным ID (например aaMagazineFormList).
http://uploads.ru/t/O/K/h/OKhZV.jpg

Перетаскиваем все журналы их всего 14 (Editor ID у них начинается с Magazine) сохраняем.
http://uploads.ru/t/z/A/6/zA6FZ.jpg

Создаем активатор или терминал (aaMagazineSorter).
Создаем контейнер с уникальным ID (aaMagazineBox) и помещаем его куда вам надо в мир Вегаса,
присваиваем ему Reference Editor ID (aaMagazineBoxREF).
Пишем скрипт:

      scn aaMagazineSortSCRIPT

        short choice
        short FormListcount

        begin OnActivate
        if ( isActionRef Player )
        set choice to 1
        ShowMessage aaMagazineSortMsg
        endif
        end

        begin GameMode
        if (choice)
        Set choice to GetButtonPressed
        if ( choice ==0 )

        ;Magazine
        set FormListcount to player.GetItemCount aaMagazineFormList
        if ( FormListcount > 0)
        Player.RemoveItem aaMagazineFormList FormListcount 1
        aaMagazineBoxREF.AddItem aaMagazineFormList FormListcount
        set FormListcount to 0
        endif

        endif

        if choice == 2
        ;exit
        endif
        endif
        endif
        end

Находим в созданом активаторе (aaMagazineSorter) наш Скрипт (aaMagazineSortSCRIPT).
Сохраняемся и проверяем в игре.
У меня все работает.
Если что то не ясно задавайте вопросы, чем могу помогу.
Спасибо за внимание.

Не смог найти на форуме ник автора скрипта и описания процесса - извините, если не ошибаюсь то автор VIP.

0

71

http://savepic.ru/4816744.png Как сделать заминированный предмет мебели (стул, кресло, диван, сортир - не принципиально), такой, чтобы персонаж, при попытке им воспользоваться, взрывался (или сгорал, или дезинтегрировался, тоже не суть). Применение блока OnActivate ведет к тому, что подлежащий активации объект перестает выполнять свойственные ему функции (на стул не сесть, Misc Item`ы не подобрать), а хотелось бы как-то все же это исправить, но как?
http://savepic.ru/4847446.png(Spalny_Vagon) Фурнитура не перестает выполнять свои функции, просто раньше она выполняла их автоматически...

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

Код:
begin onActivate
   activate
   placeatme
[explosion]end

Сядешь - взорвешься. Захочешь встать - тоже взорвешься.
Хотите взорваться только один раз? Пожалуйста:

Код:
short doOnce
begin onActivate
   if doOnce == 0
    set doOnce to 1
    activate
   endif
end

begin gamemode
   if doOnce == 1
    placeatme
    [explosion]set doOnce to 2
   endif
end

Садиться можно сколько угодно, но первый раз будет со взрывом.
А вот стандартная мина-лягушка, сел - все ОК, встал - взорвался:

Код:
short doOnce
begin onActivate
   set doOnce to doOnce + 1
   activate
end

begin gamemode
   if doOnce == 2
    set doOnce to 3
    placeatme
   [explosion]endif
end

Примечание: Вместо [explosion] вы должны вписать ID имя эффекта взрыва, например
DLC03LibertyPrimeNukeExplosionSpecial.
Строка в скрипте будет выглядеть так placeatme DLC03LibertyPrimeNukeExplosionSpecial

Как в Редакторе создать новый скрипт и добавить его объекту можно почитать в разделе оглавления "Базовые"

Отредактировано SpalnyVagon (2012-04-26 21:09:03)

0

72

Вопрос: Для чего применяется флаг NPCs Use Ammo и как сделать, что бы оружие не отображалось в инвентаре компаньона?
***
Ответ BloodBear: NPCs Use Ammo – NPC будут использовать розданные патроны...
В противном случае патроны будут бесконечны. По умолчанию сброшен.
http://savepic.net/586818.jpg

Описание остальных Flags – флагов оружия.

1. NPCs Use Ammo – NPC будут использовать розданные патроны. В противном случае патроны будут бесконечны. По умолчанию сброшен.
2. Ignores Normal Weapons Resistance – оружие будет игнорировать Damage Resist брони, те урон непосредственно наносится на игрока, игнорируя AR брони, а также, возможно, и те другие resists которые вы прописали в Object Effect у бронек. В игре использует этот параметр только Перчатки когтя смерти. Также стоит отметить, если вы хотите создать пистолет с бронебойными патронами, то не следует указывать этот параметр, ведь не пистолет же у нас бронебойный а патроны , так что указывайте этот параметр для патронов в разделе Ammo, он там тоже есть.
3. Automatic – оружие может стрелять очередями.
4. Can't drop – оружие не может быть подобрано с трупа, а будучи выбитым из рук, не может быть подобрано игроком. Устанавливается сбросом флага Playable.
5. Not Used in Normal Combat – оружие не будет использоваться, если не прописано в Use Weapon Package.
6. Quest Item – квестовый предмет. Не может быть удален ни из инвентаря, ни из мира.
7. Playable – оружие может использоваться игроком. При установке автоматически срасывает флаг Can't drop.
8. Player Only – доступно только игроку. NPC будут его полностью игнорировать, т.е. даже не подберут.
9. No Jam After Reload – непосредственно после перезарядки оружие не может заклинить.
10. Minor Crime – использование данного оружия не будет влиять напрямую на вашу карму, т.е. При убийстве из него карма не изменится.
11. Hide Backpack – если флаг установлен, то оружие не будет видно за спиной, если сброшен то оно или за спиной или на поясе. В основном применяется для громоздкого оружия.

Дополнение Spalny_Vagon: В Пип-бое отображается, но ни продать, ни выбросить ты его не сможешь. А чтобы ты его нигде не видел надо убрать галку playable.

Если вам нужно более подробное и детальное описание окна Weapon можете скачать с нашего сайта урок Artem13
Добавление нового оружия в Fallout 2.5мб в формате PDF.

0

73

http://savepic.ru/4816744.png Как сделать, что бы при наличие определённого предмета в инвентаре игрока каждые 24 часа в контейнер  поступало нужное кол-во крышек?
http://savepic.ru/4847446.png (Sergey_Ros) Добавление крышек можно сделать таким скриптом...

Код:
scn aaaWorldSCRIPT

float CurrentDay

Begin GameMode
if (Player.GetItemCount aaaobjectz > 0)
if ((GameDaysPassed - CurrentDay) >= 1)
set CurrentDay to GameDaysPassed
aaacontzRef.AddItem Caps001 КолВоКрышек
endif
endif
End

aaacontzRef - реф ссылка контейнера
aaaobjectz -  объект в инвентаре (счёт, чек, расписка и тп)

Крышки это просто пример, в случае необходимости вы можете добавлять в контейнер - лекарство, патроны, еду и тп.
Для этого в строчке скрипта
aaacontzRef.AddItem Caps001 КолВоКрышек
Замените Caps001 на нужное вам, например  на сто 10mm патронов, строчка будет выглядеть так
aaacontzRef.AddItem Ammo10mm 100

0

74

http://savepic.ru/4816744.png Как узнать какие NPC квестовые?
http://savepic.ru/4847446.png Можно посмотреть стоит ли у них галка Quest Item...

В окне Object Window - кликни по ветке NPC справа будет открыт список всех неписей. В нём много информации помимо ID Count Users - не всё входит в окно - прокрути до конца и там увидишь столбик Quest кликни по названию и неписи отсортируются по Квестовой принадлежности YES и NO
У которых есть надпись YES - в окне NPC стоит галка Quest Item
http://savepic.net/2758304m.jpg
В этом же окне можно узнать и отсортировать по:
ID - уникальному имени ( по алфавиту)
Count - по колличеству в игре
Users - по колличеству ваших объектов
Name - по имени
Template - по шаблону (в Template Data и Базовый актёр)
Script - по скриптам ( есть на нём или нет)
Level - по уровню
Race - по расе
Voice Type - по типу голоса
Female - по сексуальной принадлежности (Yes - женщина, NO - мужчина)
Class - по классу ( рейнджер, доктор, солдат, поселенец и пт)
Faction - по фракции
Rank - по рангу во фракции
Inventory - по наличию предметов в инвентаре (указано всё что есть)
AutoCalc - по сервису (покупака - продажа)
Essinteal - по бессмертию (только теряют сознание)
Respawns - по возрождению после смерти (через три дня)
Animation - по типу скелета
No Vats Melee - по возможности войти в VATS с этим NPC, если он с оружием ближнего боя.
PC Level Multi - по определению уровня от уровня игрока
Calc Min - по минимальному расчетному уровню для NPC.
Calc Max - по максимальному расчетному уровню для NPC.
Melee Dmg - по урону оружием
Unarmed Dmg - по урону без оружия
Quest - по принадлежности к квестовым предметам (NPC более часто обновляется. Труп не исчезает, когда ячейка перезагружается. Оружие или предмет нельзя продать или выбросить из инвентаря)

0

75

http://savepic.ru/4816744.png Как сделать что бы после диалога со сторожем, все "жители" интерьера становились агрессивными по отношению к игроку?
http://savepic.ru/4847446.png(Spalny_Vagon) Самый простой способ - дать каждому NPC в указанном интерьере Ref-имя (если их не много)...

http://s019.radikal.ru/i611/1205/9c/0fde2494f694t.jpg

А в результ-скрипте квеста, в последней фразы сторожа дать команду атаковать игрока
http://s019.radikal.ru/i635/1205/3b/25cdd4fb4239t.jpg
Для сторожа ( с кем говорит игрок)
startcombat player

Для остальных NPC интерьера
NPC01Ref.startcombat player
NPC02Ref.startcombat player
NPC03Ref.startcombat player

Работать будет со 100% гарантией, если всё действо происходит в одном интерьере.

Более сложый и более надежный способ: создать новую фракцию ([newFaction])
http://s019.radikal.ru/i634/1205/5c/2aab297a7041t.jpg
Добавить в эту фракцию всех жителей интерьера и сторожа.
http://s44.radikal.ru/i105/1205/be/1ccc923fd057t.jpg

В результ-скрипте последней фразы сторожа дать команду:
setenemy playerFaction [newFaction]

0

76

http://savepic.ru/4816744.png Как сделать чтобы можно было в дом зайти? Там надо какую то штуку поставить перед дверью и в самом доме!
http://savepic.ru/4847446.png(One_Dart) Эта "Штука" называется маркер телепорта, а поставить её можно так...

1. Есть уличная (входная) дверь и есть внутреннее помещение (interiors), в котором есть (выходная) дверь. При условии что вы запомнили название внутренней локации (Cell) в этом примере GSGazStation и ID имя двери - в этом примере OffDoorMetalSmL01 всё что вам нужно сделать, это сделать двойной клик по уличной двери и в окне Reference, в области Teleport отметить галку Teleport и в окнах прокрутки Cell и Reference выбрать соответственно ячейку и дверь.
В окне прокрутки Cell - находится список всех ячеек игры, в Reference список всех дверей этой ячейки.
Как только вы это сделаете возле уличной и внутренней двери появятся маркеры телепортов. Отодвиньте их в нужные вам места и разверните выступами в нужную сторону (куда выступ - туда и будет смотреть игрок после входа - выхода)
http://i060.radikal.ru/1205/55/3ac65e865e1bt.jpg
После чего нажать кнопку OK

2. Второй способ - двойной клик по уличной двери. Затем не закрывая окно Reference открыть внутреннюю локацию (ваше помещение). Потом поставь галочку около Teleport и нажать кнопку Select Reference in Render Window. После этого курсор превратится в прицел красного цвета.
Навести прицел на внутреннюю дверь дома, и когда прицел станет белым, сделай двойным кликом ЛКМ, после чего нажми ОК. Около двери появится желтый маркер.
Это означает, что дверь теперь является телепортом. Поверни маркер вершиной желтого треугольника от двери.
Теперь сделай двойной клик ЛКМ по маркеру, выпадет сообщение View Door. Если нажмешь «Нет», то останетесь в текущей локации. Если нажмете «Да», то попадёте в ту локацию,
в которую ведет маркер, в данном случае – "на улицу". Там также поверните маркер, как вам нужно.
http://s004.radikal.ru/i205/1205/37/bbf5c4fc611dt.jpg

0

77

http://savepic.ru/4816744.png Как при помощи терминала открывать и закрывать двери?
http://savepic.ru/4847446.png Для того что бы после выбора команды в терминале дверь открылась - закрылась (выполнила анимацию открывания или закрывания) нужно проделать следующее...

1. У двери поставить галку Persistent Reference (Постоянная ссылка)

2 В окне Preference терминала, во вкладке Linked Ref связываем терминал с дверью.
http://savepic.ru/4828040m.jpg

3. В окне Terminal вписываем Welcome Text.
Затем создаём первую команду "Открыть" (например). В поле Menu Items делаем правый клик мышкой и в контекстном меню выбираем New. Появляется пустая строка с номером один.
В Item Text пишем команду "Открыть дверь".
В Result Text пишем "ответ", что команда принята и выполняется - "Доступ разрешён - открываю"

4. В поле Item Result Script вписываем скрипт

ref myLink
set myLink to getLinkedRef
myLink.SetOpenState 1

И компилируем скрипт нажав кнопку Compile Result

То же самое повторяем и для второй команды, в поле Item Resul Script вписав скрипт "закрывания".

ref myLink
set myLink to getLinkedRef
myLink.SetOpenState 0

Не забываем Компилировать!

Это скрин для команды "Открыть дверь"
http://savepic.ru/4844425m.jpg

Связь установлена, тексты и скрипты вписаны, можно сохранять esp и проверять в игре.

Подробней про LinkedRef можно почитать в "Базовом" разделе "Картотеки" Что такое Ref-связь и как именно такая связь делается?

0

78

http://savepic.ru/4816744.png Как сделать так, чтобы при активации запертого на ключ контейнера, в инвентарь один раз добавлялась записка?
http://savepic.ru/4847446.png( Graf) Для того, чтобы при первой активации запертого контейнера в инвентарь добавилась записка, нужно сделать следующее:

1. Создать записку (zzzNote в моём примере)
2. Создать скрипт и "повесить" его на контейнер.

Скрипт на контейнере

Код:
scn zzzScript

Begin OnActivate
   if (IsActionRef player) && (player.GetHasNote zzzNote==0) && (GetLocked==1)
    player.AddNote zzzNote
   else
    Activate
   endif
End

Как написать новый скрипт и "повесить" его на объект, можно почитать здесь Оглавление "Базовые"

0

79

Вопрос: Как розовую пижаму сделать, как постоянное нижнее белье?
***
Ответ Wulf: О блин, так тут вааще проще некуда... :D Шутка! Это делается так...
***
Берём модель из из распакованных ресурсов игры, а именно из файла Fallout - Meshes.bsa - meshes\armor\lingerie\outfitf.nif Как извлечь модель (nif) из bsa архива можно почитать здесь   Как извлечь ресурсы

1. Извлечённый outfitf.nif кидаем в папку с игрой \Data\meshes\characters\_male. Если таковых нет - создаём.
2. Переименовываем его в femaleupperbody.nif
http://s019.radikal.ru/i627/1206/d2/7f4e3e98e223t.jpg

Ну собственно всё... :) Запускаем игру и видим вместо майки и трусиков пижаму.
http://s019.radikal.ru/i615/1206/65/86ec64a4e3e1t.jpg

0

80

http://savepic.ru/4816744.png Как сделать что бы после клика на NPC , он поворачивался в сторону игрока и открывался инвентарь этого NPC?
http://savepic.ru/4847446.png (Joopeeter) Значит так. Скрипт на NPC-ходячем чемодане:

Код:
[b]scn zzzScript

float timer
short Activated

Begin GameMode

if Activated==1
   if timer>0
    set timer to timer - GetSecondsPassed
   else
    OpenTeammateContainer 1
    set Activated to 0
   endif
endif

End[/b]

В топике GREETING создаём для него приветствие с отмеченной галкой Goodbye. Не обязательно из слов, можно из одних пробелов.
В поле Result Script (Begin) пишем:

set zzzRef.timer to 1.5
set zzzRef.Activated to 1

где:
zzzRef - это Reference Editor ID непися
1.5 - время задержки между активацией и открытием, можно поменять по вкусу.

Вариант Spalny_Vagon: Можно сделать проще. Я бы вставил в скрипт один единственный блок для доступа к контейнеру и еще один для разворота в сторону игрока:

Код:
begin onactivate plaer
open teammatecontainer 1
end
begin onpackagestart [аi-пакет]
look player
end

[аi-пакет] Пакет AI заставляющий повернуться к игроку лицом. Например, AI пакет SandBox.

В этом случае не нужны ни квесты, ни диалоги, и скрипт ресурсов практически не отбирает.

0

81

http://savepic.ru/4816744.png Как сделать, чтобы после активации предмета в инвентаре к игроку телепортировался некий определённый объект и при этом возникал бы немного впереди?
http://savepic.ru/4847446.png(Joopeeter) Первым делом создадим тот объект, который будем телепортировать...

Он не должен быть из разделов World Objects -> Static или World Objects -> Furniture, статика и мебель не телепортируются.
Большинство других типов (в том числе актёры) вполне подходит. Размещаем копию объекта в игровом мире, делаем её Persistent Reference и даём RefID, у меня это будет zzzRef.
В разделе GameEffects -> Ingestible создаём предмет, который будем активировать в инвентаре. В пип-бое он будет в разделе "Помощь". Проще всего переделать из уже имеющегося, например, стелс-боя. Удаляем всё из поля Results, обязательно меняем ID (у меня это будет zzzTeleporter) и после нажатия OK подтверждаем создание нового объекта.
Пишем такой скрипт (тип скрипта - Effect):

Код:
scn zzzScript

float Offset
float OffsetX
float OffsetY
float OffsetZ
float Angle
float TrigAngle

Begin ScriptEffectStart

   set Offset to 100; [i]расстояние, на котором возникнет предмет, можно поменять
   set OffsetZ to 100; [i]высота, на которой возникнет предмет, можно поменять
   set Angle to player.GetAngle z

   if Angle<90
    set TrigAngle to 90 - Angle
   else
    set TrigAngle to 450 - Angle
   endif

   set OffsetX to Offset*Cos TrigAngle
   set OffsetY to Offset*Sin TrigAngle

   zzzRef.MoveTo player OffsetX OffsetY OffsetZ
   ;Set Angle to Angle+180; [i]см. примечание 1
   ;zzzRef.SetAngle z Angle; [i]см. примечание 1
   ;player.AddItem zzzTeleporter 1 1; [i]см примечание 2

End

Примечание 1. По умолчанию предмет будет повёрнут к игроку той стороной, какой он показан в окне Preview. Если требуется развернуть его, то нужно раскомментировать эти две строки (убрать точки с запятой перед ними).

Примечание 2. По умолчанию предмет-телепортер (который в инвентаре) одноразовый. Чтобы стал многоразовым, раскомментируйте эту строку.

В разделе Game Effects -> Base Effect создаём новый эффект, на этот раз лучше с нуля.
Заполняем поля ID (пусть будет zzzBaseEffect) и Name (тут можно по-русски).
В поле Effect Archetype выбираем Script,
в поле Assoc Item - наш zzzScript.
Отмечаем флаг Self.
Возвращаемся в раздел Ingestible к телепортеру.
Жмём правой кнопкой в очищенное поле Result и выбираем New. Откроется окно настройки эффекта. В поле Effect выбираем наш новый zzzBaseEffect, жмём OK.
Размещаем телепортер в игре.
Всё. Сохраняем, проверяем.

И опять постскриптум. Вообще-то статику можно телепортировать с помощью PlaceAtMe c удалением предыдущей ссылки, но в рамках данного ответа это уже излишество.

Как создать и назначить скрипт объекту смотрите в Картотеке раздел "Базовые"

0

82

http://savepic.ru/4816744.png Как сделать дверь в одной локации, а выключатель (кнопку открывания) для неё - в другой?
http://savepic.ru/4847446.png (Graf) Если нужно поставить дверь с выключателем в разных ячейках, то можно повесить на активатор (выключатель) такой скрипт:

Код:
scn zzzScript

short Open

Begin OnActivate

if Open==0
zzzDoor.SetOpenState 1
set Open to 1
else
zzzDoor.SetOpenState 0
set Open to 0
endif
Activate
End

где zzzDoor - это RefID двери.

А на саму дверь надо повесить скрипт, препятствующий обычной активации GenericDoorOpenedElsewhereSCRIPT
Ищите в скриптах, или запросом в Главное меню - Edit - Find text

0

83

Вопрос: Как в NifSkope изменить положение объекта или его отдельной части?
***
Ответ: Иногда бывает нужно, немного сдвинуть или повернуть модель, или её часть, добиваясь правильного хвата для оружия, или положения статического объекта относительно поверхности и тп...
***
Правку положения для всей модели (включая коллизию) можно произвести сделав клик ПКМ (правой кнопкой мышки) по корневому ноду
BSFadeNode или NiNode
http://s1.ipicture.ru/uploads/20120708/thumbs/oD33W572.jpg
Откроется окно в котором можно двигать, вращать и изменять размер объекта
http://s1.ipicture.ru/uploads/20120708/thumbs/gJUbChVc.jpg
Name - Имя (название) объекта
Translation - Изменение положения (движение)
Rotation - Вращение
Scale - Изменение размера
Кнопка Accept - Применить изменения (сохранить)

Правку положения отдельной детали модели можно сделать кликнув по ноду (ветке) NiTriStrips или NiTriShape нужного элемента модели
http://s2.ipicture.ru/uploads/20120708/thumbs/VToSV342.jpg
и выбрать Transform - Edit
Для перемещения и вращения, меняйте значения по X Y Z, в соответствующих окнах, одновременно просматривая изменение положения в рабочем окне NifSkope.

0

84

Вопрос: Как заставить неписей из определенной фракции носить модовую броньку взамен стандартной? Для примера - хочу "переодеть" Подрывников.
***
Ответ Ipatov, Galko: Привязать именно к фракции не очень практично...
***
Мне приходит в голову только универсальное решение с постоянным сканированием всех NPC, проверкой на их принадлежность к фракции и принудительным переодеванием. Это хлопотно, грузит систему, добавляет в игру нелепые чудеса и глюки - и это, скорее всего, не то, что нужно.

Как это сделано авторами игры?
Например, подрывники наряжены в CondPowderGangerArmorAll [LVLI:00101C91] - если хочешь переодеть их всех разом, просто измени содержимое этого списка. Для всех групп с каким-то дресс-кодом (это не только одежда, но оружие и всякие карманные мелочи) авторы уже предусмотрели списки, изменение которых изменяет экипировку и инвентарь всей группы - довольно резонно этим воспользоваться.
А именно:
Открыть GECK, перейти в окно объектов, выбрать позицию ALL (показать все) и в вверху, в поле фильтра вбить название списка CondPowderGangerArmorAll
http://s1.ipicture.ru/uploads/20120711/thumbs/W7T1nwfw.jpg
Если нужен список с другой одеждой - открывай непися, перейди в инвентарь, посмотри какую одежду он носит, проверь - это конкретная броня или список брони (LVLI) . Если список - запомни название (Editor ID). Перейди в раздел Leveled Items, найди по Editor ID нужный список, удали из него старую броню и перетяни туда новую, нужную тебе из раздела Armor

0

85

Denisis написал(а):

я ставлю свет, а он не освещает

Для данных операций нужно задействовать священника.

Если серьезно, проблема, скорее всего, в русификации. От них постоянно какие-нибудь баги. Используйте английскую версию и не трепите себе нервы по пустякам.

0

86

http://savepic.ru/4816744.png Как сделать так, что бы после активации предмета (активатора - дверь, стул, ящик и тп.) выводилось сообщение с текстом?
http://savepic.ru/4847446.png Для этого вам нужно создать сообщение, а на предмет "повесить" такой скрипт...

... В этом примере ID имя сообщения AaaaMessageActivateMsg
Своему сообщению вы можете присвоить любое, своё ID имя.
Вписать текст сообщения в Message Text
Поставить время отображения на экране в Display Time
Сохранить - OK
http://savepic.net/3134669m.jpg

Скрипт такой

Код:
scn ActivateScript

short doOnce
begin onActivate
   set doOnce to doOnce + 1
   activate
end

begin gamemode
   if doOnce == 2
    set doOnce to 3
    ShowMessage aaaMessageActivateMsg
   endif
end

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

Код:
scn ActivateScript

begin onActivate
   showmessage aaaMessageActivateMsg
   activate
end

А в этом примере - сообщение будет выводится постоянно, после активации. Перед анимацией (если она есть у предмета)

Как создать и добавить скрипт объекту вы можете посмотреть в разделе Оглавления "Базовые"

0

87

http://savepic.ru/4816744.png Возможно ли сделать так, чтобы, например, после взлома определённого сейфа в зависимости от интеллекта прибавлялось к взлому определённое кол-во навыка?
http://savepic.ru/4847446.png (Joopeeter) Можно...

Для примера:

интеллект 1-3 - +1 к взлому
интеллект 4-7 - +10 к взлому
интеллект 8-10 - +20 к взлому.

Скрипт на сейфе:

Код:
scn zzScript

short DoOnce

Begin MenuMode

   if DoOnce==0 && GetLocked==0
    if player.GetAV Intelligence<4
     player.ModAV LockPick 1
    elseif player.GetAV Intelligence>=4 && player.GetAV Intelligence<8
     player.ModAV LockPick 10
    elseif player.GetAV Intelligence>=8
     player.ModAV LockPick 20
    endif
    set DoOnce to 1
   endif

End

[/b]

Как создать и добавить скрипт объекту вы можете посмотреть в разделе Оглавления "Базовые"

0

88

http://savepic.ru/4816744.png Что такое бэкап (Backup) в GECK и как им пользоваться для востановления esp?
http://savepic.ru/4847446.png Backup - резервное копирование данных, автоматическая функция редактора GECK...

Когда вы в GECK делаете сохранение своего мода - перед этим редактор автоматически сохраняет бэкап в папке Дата\Backup.
http://savepic.net/3193358m.jpg

Файл сохраняется под тем же именем, только в конце к нему добавляется расширение бак. И порядковый номер сохранения. (например - xxxxxx.esp.0bak)
Чтобы вернуть бэкап - просто убери после ESP все баковские расширения и верни обратно в папку дата, заменив "испорченный" еспешник. Только учтите, что редактор делает бэкапы, так сказать, на текущий момент. То есть - номера бэкапам присваиваются от 0 до бесконечности (0, 1, 2, 3, 4 ..... и тд).
Но стоит закрыть редактор, а потом снова запустить - он начнет присваивать порядковые номера бэкапам сначала, заново, переписывая уже имеющиеся.
Так что при выборе "отката" или восстановления лучше ориентироваться на дату сохранения бекапа.

0

89

Вопрос: Как в диалоге добавить NPC одежду и принудительно одеть на него?
***
Ответ Bruner: Один из способ решения, через добавление команд в Result Script диалога и квестовый скрипт...
***

Начнём по порядку

1. Создаем непися (NPC)

Задаем нужные настройки, в инвентарь кидаем какое нибудь начальное платье
http://savepic.net/3195518m.jpg

Если требуется добавляем AI Packages (пакет поведения), чтобы она не стояла манекеном, а ходила.
http://savepic.net/3191422m.jpg

Ставим ее где нибудь в игре, например в Гудспрингсе.
Задаем REF имя - Для этого кликаем 2 раза по фигурке NPC в окне рендеринга (локация)
В открывшемся окне Reference , в Reference Editor ID вписываем Ref имя - AAATestFemaleRef
http://savepic.net/3182206m.jpg

2. Создаём квест (Quest)

Создаем новый квест - AAATestFemaleQuest
Настройки стандартные, в Quest Conditions "привязываем" квест к NPC. Создаём квестовый скрипт.
http://savepic.net/3170942m.jpg

Скрипт

Scn AAAFemaleTestScript

short DoOnce
short flag
float timer

Begin GameMode
if (DoOnce == 1)
disableplayercontrols
Player.addscriptpackage VCG01PlayerSection1
PlaySound FXMeleePowerFistFlesh
Player.DamageActorValue PerceptionCondition 100
Set timer to 3
Set flag to 1
Set DoOnce to 2
endif

if (timer > 0) && (flag == 1)
Set timer to (timer - getsecondspassed)
elseif (flag == 1)
Player.removescriptpackage VCG01PlayerSection1
ShowMessage AAATestFemaleMessage
EnablePlayerControls
Set flag to 2
endif
End

В этом скрипте, при значении переменной DoOnce == 1 (переменную устанавливаем в 1 в Result Scripts ниже) , отключаем управление игроком, добавляем пакет "падения", звук, еффект зрения, время "отруба" до вставания, удаляем пакет и возвращаем управление игроку.

3. Создаем топики

GREETING стандартное приветствие и остальные нужные для диалога.

В Топике "Выдачи и одевания" одежы в Result Scripts (End) вписываем команды

AAATestFemaleRef.addItem AAATestFemaleOutfit 1
AAATestFemaleRef.EquipItem AAATestFemaleOutfit
Set AAATestFemaleQuest.DoOnce to 1

http://savepic.net/3155582m.jpg

Компилируем, сохраняем

Идём проверять в игре.
Говорим
http://savepic.net/3161726m.jpg

Падаем
http://savepic.net/3159678m.jpg

Встаём!
Что требовалось получилось. Дали одежду, непись, её одел, а Главный герой - упал, от "Страшной силы Красоты".

4. Говорим спасибо Graf за скрипт и тестовый ESP!

Спасибо!

0

90

Вопрос: Как сделать вращение генератора после его ремонта?
***
Ответ (Graf):Чтобы отремонтировать генератор, нужен гаечный ключ...
***
http://savepic.su/2207815m.jpg

Создаем три мессага, первый с двумя выборами ответов (ID - IDMessage):
1.Отремонтировать генератор
2.Отмена
Второй мессаг создаешь со словами “Вы починили генератор”(ID - IDMessageYes).
Третий мессаг создаешь со словами “Вам нужен гаечный ключ для починки генератора”(ID - IDMessageNo).
Вот шаблон скрипта который поставишь на генератор (генератор должен быть в директории World Objects -> Activator и ты должен дать ему Реф ссылку, в скрипте я написал “IDGeneratorRef”):

Код:
Short DoOnce
Short Button

Float ZAchse
Float ZAchseMoved

Begin OnActivate
if (DoOnce == 0)
	showmessage IDMessage ;сообщение с двумя выборами
endif
End

Begin GameMode
Set Button to GetButtonPressed
if (button == 0) && (player.getitemcount Wrench01 >= 1)
	showmessage IDMessageYes ;генератор отремонтирован
	IDGeneratorRef.setdestroyed 1 ; убираем сообщение с генератора
	Set DoOnce to 1
elseif (button == 0) && (player.getitemcount Wrench01 < 1)
	showmessage IDMessageNo ;вам нужен гаечный ключ
elseif button == 1
	endif
endif

if (DoOnce == 1)
	Set ZAchse to GetAngle Z
	Set ZAchseMoved to ZAchse - 0.5 ;скорость вращения
	SetAngle Z ZAchseMoved
endif
End

+1


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » G.E.C.K. (New Vegas Edition) » КАРТОТЕКА ответов по GECK - FAQ