Garden of Eden Creation Kit - 2 ч. - один из самых важных отделов нашей Мастерской. Перечень вопросов огромен, проще написать о чём здесь спрашивать нежелательно. Не нужно спрашивать про скрипты, про NifSkope, работу в 3D и графических редакторах.
Смотри свою проблему в Картотеке, Пред тем, как в теме свой вопрос задать, Возможно, там уже и есть ответы, Которые тебе хотелось знать.
Если вместо ГЕККа запускается белый экран - это из-за ENBшного d3d9.dll в папке игры. Если после одного из обновлений винды при попытке редактирования лица перса или попытке открыть любое оружие стала выскакивать вот такая надпись Assert File: C:\projects\fallout3PC\BSShader\BSShaderManager.cpp(пути могут различаться) Line: 1996 После чего ГЕКК сворачивается. Вопрос решатся запуском ГЕКК через основную игровую видюху. Установленная по умолчанию в настройках интегрированная выдаёт такую ошибку.
Решил ракетку из f3 перенести все ок ,но в игре когда в пип-бое нажимаю вылет .В чем может быть проблема P.S переносил с скриптом
scn SchematicsRockItLauncherItemFNVSCRIPT
short AddOnce
BEGIN OnAdd player
if (AddOnce == 0)
;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsRockItLauncherNote10 == 1)
;Increment a variable for number of times this schematic has been gotten. set countRockItBonus to 1.25
;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsRockItLauncherNote10 player.addNote SchematicsRockItLauncherNote20 ;Remove this item from inventory set AddOnce to 1 removeme
;First note -> first Improvement elseif (player.gethasnote SchematicsRockItLauncherNote == 1)
;Increment a variable for number of times this schematic has been gotten. set countRockItBonus to 1
;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsRockItLauncherNote player.addNote SchematicsRockItLauncherNote10 ;Remove this item from inventory set AddOnce to 1 removeme
;Otherwise, just add the note elseif (player.gethasnote SchematicsRockItLauncherNote20 == 0)
;Add the Schematic Note player.addNote SchematicsRockItLauncherNote ;Remove this item from inventory set AddOnce to 1 removeme
endif
endif
END
Swindler,
А какая раздница 1 или 2ая радзиницы нет же.Лишняя заморочка
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №3
написано: 2 октября 2011, 21:22
| Отредактировано: KAIN48 - 2 октября 2011, 21:25
kiruhaSUPER, Привет! Если убрать комментарии и посмотреть то в скрипте ошибок нет.
short AddOnce
BEGIN OnAdd player
if (AddOnce == 0) ; если переменная блокиратор скрипта равна 0 if (player.gethasnote SchematicsRockItLauncherNote10 == 1) ;если у игрока есть схема ракетки 10 - одна штука set countRockItBonus to 1.25 ; установить какой то бонус (видимо урон) ShowMessage SchematicsImprovedMsg ; вывести сообщение схема улучшена player.removeNote SchematicsRockItLauncherNote10 ;удалить схему ракетки 10 player.addNote SchematicsRockItLauncherNote20 ; дать схему ракетки 20 set AddOnce to 1 ; установить переменную в 1 removeme ; удалить (себя) elseif (player.gethasnote SchematicsRockItLauncherNote == 1) по другому (иначе) если у игрока есть схема ракетки set countRockItBonus to 1 ; установить (видимо урон) ShowMessage SchematicsImprovedMsg ; вывести сообщение - схема улучшена (судя по названию сообщения) player.removeNote SchematicsRockItLauncherNote ; удалить схему ракетки player.addNote SchematicsRockItLauncherNote10 ; дать схему ракетки 10 set AddOnce to 1 ; установить переменную блокиратора в 1 removeme ; удалить себя elseif (player.gethasnote SchematicsRockItLauncherNote20 == 0) ; по другому (если) у игрока есть схема ракетки 20 player.addNote SchematicsRockItLauncherNote ; дать схему ракетки set AddOnce to 1 ; установить переменную в 1 removeme ; удалить себя endif endif END
А раз скрипт у тебя сохранился, значит все условия для его работы выполнены. Созданы все note SchematicsRockItLauncherNote SchematicsRockItLauncherNote10 SchematicsRockItLauncherNote20 И видимо перк или эффект countRockItBonus ( я не знаю что это такое), но думаю на это надо обратить внимание. Скрипт сохранится при наличии такого объекта, в любом случае, хоть правильно он сделан, хоть нет. Думаю в этом причина - сравни ещё раз, как в Fallout 3 и как у тебя. Пока.
Мы вышли из дома, когда во всех... Поздно вышли!
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №4
написано: 3 октября 2011, 08:52
| Отредактировано: Galko - 3 октября 2011, 09:01
Кирюха, countRockItBonus - глобальная переменная. Кроме этого скрипта (который ты показал нам) эта переменная используется еще в скрипте верстака, на котором "монтируется" ракетка. Ты верстак тоже задействовал?
Добавлено (03.10.2011, 12:52) --------------------------------------------- Сейчас посмотрела - схема "Ракетка" (и ее скрипт) уже есть в Вегасе, только они никем не используются. Значит нужно привязать эту схему к вегасовскому верстаку, чтобы можно было собирать. Ну и сами модели оружия "Ракетка" ввести в игру.
Подскажите как портировать оружие из Вегаса в Fallout 3, или наоборот. С броней то все ясно. А при переносе оружия нужна еще и анимация, помио моделей и текстур. Или дайте кто-нибудь ссылку на инструкцию какую-нибудь.
Я есмь Альфа и Омега, начало и конец. Жаждущему дам даром от источника воды живой.
Изменение репутации для пользователя Imperator3
Imperator3Offline
Сообщение №6
написано: 3 октября 2011, 10:35
| Отредактировано: Imperator3 - 3 октября 2011, 10:35
Imperator3, то есть если я понял, нужно выдернуть из одной игры модель и текстуры оружия и на базе существующего оружия в другой игре создать оружие. К примеру, мне нужно перетащить дробовик караванщика из Вегаса в 3, но в 3 Fallout нет похожей анимации. P. S. За туториал огромное спасибо!
Вот такой вопрос. Как создать Темпле(или как-то так) NPC? Если не понятно сказал, то я говорю о боъекте в виде буквы М со стрелкой
Выбере существующего NPC ввиде буквы M, измени его ID, нажми ок, тебе предложат создать нового на базе существующего, а дальше уже можешь менять его на своего усмотрение - имя, характеристики и т. д.
Я есмь Альфа и Омега, начало и конец. Жаждущему дам даром от источника воды живой.
Выбере существующего NPC ввиде буквы M, измени его ID, нажми ок, тебе предложат создать нового на базе существующего, а дальше уже можешь менять его на своего усмотрение - имя, характеристики и т. д.
эээм... вообще там куда-то еще нужно прописать нужных мне туда НПС...
эээм... вообще там куда-то еще нужно прописать нужных мне туда НПС...
У этих NPC в настройках прописаны уровневые характеристики и предметы, поэтому в игре они и меняются во внешности, меняется оружие и броня и т. д. Если ты это имеешь ввиду.
Я есмь Альфа и Омега, начало и конец. Жаждущему дам даром от источника воды живой.
The_Riff, если открыть NPC, в первой вкладке Traits есть пункт ActorBase, выбирай нужного, и приписывай ему характеристики с помощью галочек - поставишь галочку возле Use Inventore, то будут меняться предметы в инвенторе. Также можешь создать свой "шаблон" (приписать ему уровневые характеристики и предметы) и добавить его в ActorBase. Все эти образно говоря "шаблоны" находятся в Object Windows\Actors\LevledCharacter для NPC и Object Windows\Actors\Levled Creature для существ. Можешь также изменить уже существующий.
Я есмь Альфа и Омега, начало и конец. Жаждущему дам даром от источника воды живой.
Graf, Нашел скрипт. не знаю этот ли отвечает за езду
Code
scn DLC03PresMetroRide01AnimSCRIPT
short doOnce short handleFollowers short charonIsFollower short butchIsFollower short cloverIsFollower short dogmeatIsFollower short jerichoIsFollower short fawkesIsFollower short rl3IsFollower short crossIsFollower short autosaveReady
if (doOnce == 1) if (timer <= 0) DLC03PresMetro02TrainPopREF.enable DLC03PresMetro02ElectricLight01REF.enable 0 DLC03PresMetro02Rumble01REF.placeatme DLC03VertibirdRumble 1 playsound OBJMetroRide2D set doOnce to 2 else set timer to (timer - GetSecondsPasseD) endif
elseif (doOnce == 2) ;disablePlayerControls 1 1 1 1 1 1 1 imod DLC03MetroFadeInFromWhiteISFX02 set handleFollowers to 1 set timer to 1 set doOnce to 3
elseif (doOnce == 3) if (timer <= 0) player.moveto DLC03PresMetroRideStart01REF player.additem DLC03MetroCarArmor 1 1 player.equipitem DLC03MetroCarArmor 1 1 DLC03PresMetroRideCab01REF.disable DLC03PresMetro02Console01REF.disable player.dispel stealthboy set timer to .5 set doOnce to 4 else set timer to (timer - GetSecondsPassed) endif
elseif (doOnce == 4) if (timer <= 0) player.addscriptpackage DLC03MetroCameraPackage set timer to 18 set doOnce to 5 else set timer to (timer - GetSecondsPassed) endif
elseif (doOnce == 5) if (timer <= 0) imod DLC03FadeToBlackISFX set timer to 3 set doOnce to 6 else set timer to (timer - GetSecondsPassed) endif
elseif (doOnce == 6) if (timer <= 0) player.removeitem DLC03MetroCarArmor 1 1 player.removescriptpackage DLC03MetroCameraPackage set timer to 1 set doOnce to 7 else set timer to (timer - GetSecondsPassed) endif
elseif (doOnce == 7) if (timer <= 0) set doOnce to 0 set handleFollowers to 0
set charonIsFollower to 0 set butchIsFollower to 0 set cloverIsFollower to 0 set dogmeatIsFollower to 0 set jerichoIsFollower to 0 set fawkesIsFollower to 0 set rl3IsFollower to 0 set crossIsFollower to 0
set DLC03MetroSwitch02REF.autosaveReady to 1 DLC03PresMetroRideCab01REF.enable DLC03PresMetro02Console01REF.enable DLC03PresMetro02ElectricLight01REF.disable 0 enablePlayerControls player.moveto DLC03PresMetroRideEnd02REF else set timer to (timer - GetSecondsPassed) endif endif
;now handle any followers if (handleFollowers == 1) if ( Followers.CharonHired == 1 ) && (CharonREF.Waiting == 0) CharonRef.Moveto DLC03PresMetro03Follower01Marker set charonIsFollower to 1 set handleFollowers to 2 elseif ( Followers.ButchHired == 1 ) && (ButchREF.Waiting == 0) ButchREF.Moveto DLC03PresMetro03Follower01Marker set butchIsFollower to 1 set handleFollowers to 2 elseif ( Followers.CloverHired == 1 ) && (CloverREF.Waiting == 0) CloverREF.Moveto DLC03PresMetro03Follower01Marker set cloverIsFollower to 1 set handleFollowers to 2 elseif ( Followers.DogmeatHired == 1 ) && (DogmeatREF.Waiting == 0) DogmeatREF.Moveto DLC03PresMetro03Follower01Marker set dogmeatIsFollower to 1 set handleFollowers to 2 elseif ( Followers.JerichoHired == 1 ) && (JerichoREF.Waiting == 0) JerichoREF.Moveto DLC03PresMetro03Follower01Marker set jerichoIsFollower to 1 set handleFollowers to 2 elseif ( Followers.FawkesHired == 1 ) && (MQ08FawkesREF.Waiting == 0) MQ08FawkesREF.Moveto DLC03PresMetro03Follower01Marker set fawkesIsFollower to 1 set handleFollowers to 2 elseif ( Followers.RL3Hired == 1 ) && (RL3REF.Waiting == 0) RL3REF.Moveto DLC03PresMetro03Follower01Marker set rl3IsFollower to 1 set handleFollowers to 2 elseif ( Followers.StarPaladinCrossHired == 1 ) && (StarPaladinCrossREF.Waiting == 0) StarPaladinCrossREF.Moveto DLC03PresMetro03Follower01Marker set crossIsFollower to 1 set handleFollowers to 2 endif elseif (handleFollowers == 2) if ( Followers.CharonHired == 1 ) && (CharonREF.Waiting == 0) && (charonIsFollower == 0) CharonRef.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 elseif ( Followers.ButchHired == 1 ) && (ButchREF.Waiting == 0) && (butchIsFollower == 0) ButchREF.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 elseif ( Followers.CloverHired == 1 ) && (CloverREF.Waiting == 0) && (cloverIsFollower == 0) CloverREF.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 elseif ( Followers.DogmeatHired == 1 ) && (DogmeatREF.Waiting == 0) && (dogmeatIsFollower == 0) DogmeatREF.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 elseif ( Followers.JerichoHired == 1 ) && (JerichoREF.Waiting == 0) && (jerichoIsFollower == 0) JerichoREF.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 elseif ( Followers.FawkesHired == 1 ) && (MQ08FawkesREF.Waiting == 0) && (fawkesIsFollower == 0) MQ08FawkesREF.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 elseif ( Followers.RL3Hired == 1 ) && (RL3REF.Waiting == 0) && (rl3IsFollower == 0) RL3REF.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 elseif ( Followers.StarPaladinCrossHired == 1 ) && (StarPaladinCrossREF.Waiting == 0) && (crossIsFollower == 0) StarPaladinCrossREF.Moveto DLC03PresMetro03Follower02Marker set handleFollowers to 3 endif endif
Vi[RUS], Да, скрипт этот, как я и думал всё сделано через аи пекет, можешь дать айди предмета на котором стоял скрипт?
--------------------------------------------- Vi[RUS], Для начала создадим глобальную переменную, gameplay -> globals -> ПКМ -> new создадим с айди Var и выберем long.
Итак, вот скрипт на активатор:
Code
Short Next Short DoOnce
Float Timer
Begin OnActivate if ( DoOnce == 0 ) Set DoOnce to 1 Set Next to 1 endif End
Begin GameMode if ( Next == 1 ) DisablePlayerControls 1 1 1 1 1 1 1 Set Timer to Timer + GetSecondsPassed if ( Timer >= 1 )
Set DoOnce to 1 Set Next to 2 Set Timer to 0 endif endif
if ( Next == 2 ) Set Timer to Timer + GetSecondsPassed if ( Timer >= 7 ) Set Var to 1 Set Next to 3 Set Timer to 0 endif endif End
Далее создаёшь пути Xmarker'ами
И даёшь им Ref ссылки такого вида "Move01MarkerRef" и ставишь на маркере2 триггер со скриптом:
Code
Short DoOnce Float Timer
Begin OnTrigger Player if ( DoOnce == 0 ) Set Var to 0 Set DoOnce to 1 endif End
Begin GameMode if ( DoOnce == 1 ) Set Timer to Timer + GetSecondsPassed if ( Timer >= 1 ) ;PlaySound "можешь поставить =)" Set Timer to 0 Set DoOnce to 2 endif endif
if ( DoOnce == 2 ) Set Timer to Timer + GetSecondsPassed if ( Timer >= 5 ) Set Timer to 0 Set DoOnce to 3 endif endif
if ( DoOnce == 3 ) Set Timer to Timer + GetSecondsPassed if ( Timer >= 2 ) Set Var to 2 Set Timer to 0 Set DoOnce to -1 endif endif End
На остальные триггеры в маркерах ставишь скрипты такого вида (пример на триггере третьего маркера):
Code
SCN Move03TriggerScript
Short DoOnce
Begin OnTrigger Player if ( DoOnce == 0 ) Set Var to 3 ;Player.MoveTo "Move03MarkerRef" Set DoOnce to 1 endif End
И так далее, на последний поставь такой скрипт:
Code
SCN Move5TriggerScript
Short DoOnce
Begin OnTrigger Player if ( DoOnce == 0 ) Set Var to 5 EnablePlayerControls Set DoOnce to 1 endif End
Создай квест и повесь на него скрипт (делал тебе для примера):
Code
Float YAchsePosition Float YAchse Float XAchsePosition Float XAchse Short Next
Begin GameMode ;Move01MarkerRef if ( Var == 1 ) ;========================================= ;\ например прямо и скорость увеличивается ;=========================================== Set YAchsePosition to GetPos Y Set YAchse to YachsePosition -8 SetPos Y Yachse endif
if ( Var == 1 ) if ( Next == 0 ) TransportSoundBoxRef.MoveTo Player ;Ref ссылка активатора Set Next to 1 endif endif
;Move02MarkerRef if ( Var == 2 ) ;========================================= ;\ например влево и скорость увеличивается ;=========================================== Set XAchsePosition to GetPos X Set XAchse to XachsePosition +10 SetPos X Xachse endif
if ( Var == 2 ) if ( Next == 1 ) TransportSoundBoxRef.MoveTo Player Set Next to 2 endif endif
;Move03MarkerRef if ( Var == 3 ) ;========================================= ;\ например вправо и скорость увеличивается ;=========================================== Set YAchsePosition to GetPos Y Set YAchse to YachsePosition -10 SetPos Y Yachse endif
if ( Var == 3 ) if ( Next == 2 ) TransportSoundBoxRef.MoveTo Player Set Next to 3 endif endif
;Move04MarkerRef if ( Var == 4 ) Set XAchsePosition to GetPos X Set XAchse to XachsePosition -20 SetPos X Xachse endif
if ( Var == 4 ) if ( Next == 3 ) TransportSoundBoxRef.MoveTo Player Set Next to 4 endif endif
;Move05MarkerRef if ( Var == 5 ) Set XAchsePosition to GetPos X Set XAchse to XachsePosition +2 SetPos X Xachse endif
if ( Var == 5 ) if ( Next == 20 ) Set Next to -1 endif endif
End
Должно работать, я не проверял, так как нет обустроенной локации для проверки. Пробуй.
Может через аи пакет и легче, но я вобще почти не работал с аи пакетами на скриптах движения гг.
Добавлено (04.10.2011, 16:09) --------------------------------------------- Vi[RUS], Ещё одно но, когда гг нажимал на активатор, должны срабатывать такие строчки (добавишь их к активатору):
Code
MetroCar.disable ; поезд ищезает player.additem MetroCarArmor 1 1 ; в инвентаре появляется одежда в виде поезда player.equipitem MetroCarArmor 1 1 ; и сразу одевается
Значит в конце там где стоит EnablePlayerControls нужно добавить после этой строчки, такие строчки:
Code
MetroCar.enable ; поезд появляется в той точке откуда мы приехали player.removeitem 1 1 ; удалить из инвентаря эту одужду поезд
...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Изменение репутации для пользователя kiruhaSUPER
kiruhaSUPEROffline
Сообщение №20
написано: 4 октября 2011, 19:59
| Отредактировано: kiruhaSUPER - 4 октября 2011, 19:59
Graf, Imperator3, текструра исчезает после установки мода(оптика) ,а текстуры правильные в ГЕККе
Модификация - новая модель, а на ней за счет добавления нового элемента (оптики) текстуры могут "сползти", но только если они через TexturesSet сделаны. в ГЕКК, в разделе static д.б. две модели - одна с прицелом, другая без. Эти модели (на манер дефолтного оружия) используются для 1st person и для них применяются текстуры более высокого разрешения прикрепляемые уже в самом ГЕКК с помощью TexturesSet. Поищи эти модели и посмотри что не так... Есть ощущение, что на оптике лежат текстуры пушки, а на пушке - оптики:-)
Никак. Там все заморочено. Трава "входит в состав" текстуры ландшафта (Land Texture) . Этой текстурой красится поверхность создаваемого мира. В редакторе показывается только цвет (текстурный набор) , но не модели травы. А вот уже в самой игре движок просчитывает данные из профиля травы (плотность посадки, высоту. наклон, колебания и прочь. ) и распределяет, согласно этим данным, модели травы по поверхности ландшафта, закрашенной данной текстурой . Как-то так, в-общем