если нужен скрипт для двери, то так
Да именно для двери, спасибо буду пробывать.
Форум «Лабортории Mod-Tec» |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Форум «Лабортории Mod-Tec» » G.E.C.K. Community » Помощь по скриптам Fallout 3 и Fallout: New Vegas
если нужен скрипт для двери, то так
Да именно для двери, спасибо буду пробывать.
Тут было огроменное письмо об закладке Challenge и скриптовых ссылках в этои форме, за ночь разобрался, любопытнейшая закладка однако. Беседке РЕСПЕКТ!
Если правильно понимаю приведенная далее строчка зипишет показания "счетчика" в журнал GetChallengeCompleted NVChallengeKaboom
Остановит StopChallengeCompleted NVChallengeKaboom или LockChallengeCompleted NVChallengeKaboom ???
В оригинале не один "счетчик" не останавливается.
Отредактировано Gvinpin (11.03.11 08:01:43)
Еще вопрос - почему не работает этот скрипт?
Код:scn LDoorIntSCRIPT Begin onActivate Player if Player.AddAllItems MyContainerRef return else Player.AddAllItems MyContainerRef endif Activate End
Вот что вылазит: http://s002.youpic.su/pictures/12997800 … bc4f2a.png
Команда по взятию игроком всех вещей из контейнера неправильная значит... ХЗ
По идее если игрок при активации двери не взял все вещи из ящика, то скрипт добавит все вещи, а если игрок вещи взял, то ничего не будет делать. Хотя не знаю чем это может закончиться, ведь игрок может взять например одну вещь
Еще небольшой вопрос: какой скрипт проверки наличия определенного предмета в инвертаре игрока? GetContainer?
Отредактировано collapse (11.03.11 14:06:24)
Если правильно понимаю приведенная далее строчка запишет показания "счетчика" в журнал GetChallengeCompleted NVChallengeKaboom
Нет, данное условие проверяет, закончен ли конкретный challenge. Т.е. переменная возвращает "1", если закончено, но "0", если испытание (challenge) до сих пор активно.
Остановит StopChallengeCompleted NVChallengeKaboom или LockChallengeCompleted NVChallengeKaboom ???
Обеих команд не существует. Зато существует команда
RemoveRecurringFromChallenge ИмяИспытания
, которая останавливает конкретное испытание.
В оригинале не один "счетчик" не останавливается.
Останавливается, например, в скриптах "ChallengeRobotSCRIPT", "ChallengeMutantScript", "ChallengeBugSCRIPT" и других.
collapse, скрипт не работает, потому что неправильно заданы условия. Опишите подробнее, что вам нужно, и я напишу подходящий скрипт, объяснив, что было неверно в вашем.
Все вещи игрока в ящике в доме. Он может их брать. При выходе из дома (то есть при нажатии на дверь) вещи должны возвращаться игроку. Условие - если игрок взял все вещи из ящика сам, то скрипт не выполняется
Еще небольшой вопрос: какой скрипт проверки наличия определенного предмета в инвертаре игрока? Возможно ли встроить его в этот скрипт?
scn LDoorSCRIPT Begin onActivate Player Player.RemoveAllItems MyContainerRef Player.AddItem OutfitPrewarSpring 1 Player.EquipItem OutfitPrewarSpring Activate End
То есть перед тем как удалить все предметы, скрипт проверяет есть ли в инвертаре OutfitPrewarSpring и если есть то не удаляет и сразу одевает его... Как-то так
Отредактировано collapse (11.03.11 15:36:46)
collapse, вот скрипт для "выходной" (через которую выходят) двери:
scn aaaModTecDoorSCRIPT Begin onActivate Player ИмяКонтейнераREF.RemoveAllItems Player Activate End
Условие на проверку пустоты контейнера не требуется. Да и проверить это не так просто, как кажется.
Скрипт для удаления всех вещей из инвентаря и экипировки повседневной одежды:
scn LDoorSCRIPT Begin onActivate Player Player.RemoveAllItems MyContainerRef if (Player.GetItemCount OutfitPrewarSpring > 0) Player.AddItem OutfitPrewarSpring 1 Player.EquipItem OutfitPrewarSpring MyContainerRef.RemoveItem OutfitPrewarSpring 1 else Player.AddItem OutfitPrewarSpring 1 Player.EquipItem OutfitPrewarSpring endif Activate End
переменная возвращает "1", если закончено, но "0", если испытание (challenge) до сих пор активно.
Что то я совсем заблудился, испытание законченно "1" (Да) - запускает выполнение, "0" (нет) продолжает выполнение. А каким образом оно может быть остановленно? В испытании - NVChallengeEnergetic (Энергетик) - if (GetChallengeCompleted NVChallengeShootEmUp)-подобная проверка условий для испытания - NVChallengeShootemUp (перестреляй их всех)
scn ChallengeShootEmUpSCRIPT ; скрипт испытания NVChallengeShootemUp
begin ScriptEffectStart
UnlockChallenge NVChallengeShootemUpAgain ; запуск испытания
UnlockChallenge NVChallengeShotgun ; запуск испытания
player.RewardXP 75
if (GetChallengeCompleted NVChallengeEnergetic) ; взаимная проверка энергетика
... ; итд, проверка ряда пакетов
endif
end
Однозначно чего-то недопонимаю, проверили друг друга, смысл этой проверки? Если не каких предпосылок к завершению испытания в условия не заложено?
Отредактировано Gvinpin (12.03.11 01:05:52)
А вот какой скрипт например мне нужно что бы когда у гг появлялось в инвентаре 10 пива стадия квеста менялась на следующую, какой нужен скрипт ? И ещё на что этот скрипт мне вешать если мне нужно что бы этот файл был с игры (со стандартным id) ?
у гг появлялось в инвентаре 10 пива стадия квеста менялась
Скрипт взят с форума по "Обливилону"
СКРИПТ перехода сдадии квеста при наличии определённого кол-ва Чего-то
scn myScript
Begin GameMode
if ( GetItemCount MyObject == 10) ; MyObject - объект котрый тебе нужно подсчитать, 10 - количество
SetStage MyQuest 30 ; 30 - это стадия, MyQuest - имя квеста.
endif
End
А каким образом оно может быть остановленно?
Функцией "RemoveRecurringFromChallenge". Испытание завершается, и строчка, отображающая название испытания, становится тусклой (как прочитанные записи или выполненный квест).
смысл этой проверки?
Вы кое-что забыли. Строчка:
;AddAchievement 23
не просто так там стоит. Тут два варианта: либо строчка исполняется движком игры, не смотря на знак ";", либо ее закомментировали в самый последний момент, не желая переделывать весь скрипт.
Серёга, скрипт будет такой:
scn aaaModTecItemCounterSCRIPT short DoOnce Begin GameMode if (DoOnce == 0) if (Player.GetItemCount ИмяПредмета >= 10) SetStage ИмяКвеста СтадияКвеста set DoOnce to 1 endif endif End
что бы этот файл был с игры (со стандартным id) ?
В смысле? В имеете ввиду изменение стандартных объектов? Без создания новых. Так?
///////////////// Добавлено /////////////////
СКРИПТ перехода сдадии квеста при наличии определённого кол-ва Чего-то
Скрипт не совсем корректен. Условие "GetItemCount MyObject == 10" не имеет параметра "Player", а ведь мы инвентарь игрока проверяем, не так ли? Также это условие вносит ограничение на исполнение скрипта. Представим, что у ГГ было 9 предметов, он открыл контейнер и забрал оттуда 2 предмета. Скрипт не выполнится, так как объектов в инвентаре будет 11.
И еще в скрипте нет "стопора". Стадия будет переключаться все время, когда у ГГ 10 предметов. А это нехорошо.
Функцией "RemoveRecurringFromChallenge
Обозначенная команда не используется ни одним из скриптов с условиями взаимной проверки.
scn ChallengeFistfulSCRIPT
scn ChallengeEnergeticSCRIPT
scn ChallengeUpCloseSCRIPT
scn ChallengeKaboomSCRIPT
scn ChallengeShootEmUpSCRIPT
все они имеют запись - ;AddAchievement 23
AddAchievement - Добавляет указанное достижение в профиль игрока (OSFM) но обработки его (условий Challenge) не прекращает.
Или добавленное в профиль достижение прекращается по умолчанию?
Если так то AddAchievement своего рода эквивалент RemoveRecurringFromChallenge только с разным, визуальным эффектом завершения?
Отредактировано Gvinpin (12.03.11 23:19:55)
Gvinpin, как я уже говорил, про испытания я вообще ничего не знаю. Не довелось мне еще поработать в редакторе Вегаса. А строить предположения, не опираясь на опыт, в случае GECKа, как-то некультурно. Надо читать, нужно экспериментировать. Только так можно докопаться до истины.
Только так можно докопаться до истины
Вернулся подтереть сообщение, но вижу опоздал.
Не скажу что докопался, но видение механизма обозначенного прояснилось.
За терпение, понимание и помощь, Огромное Спасибо, Удачи!
Отредактировано Gvinpin (22.03.11 21:43:40)
где бы взять тутор для создания торговца и тутор на врача?
зарание спасибо
Andr, Привет!
Вот по этой ссылке есть урок по созданию торговца.
http://modder.ucoz.ru/load/7-1-0-92
А врача можно сделать по примеру из вот этот урока по созданию компаньона.
http://modder.ucoz.ru/load/7-1-0-128
Пока.
Отредактировано K.A.I.N.48 (21.03.11 15:41:37)
Andr, Поищи в нете, тутор по созданию торговца точно есть, а торговца или доктора разница небольшая. Там скрипт разный. Глянь на диалог любого торговца в игре и глянь на его скрипт.
Отредактировано Серёга (21.03.11 15:40:36)
спасибо, сорри что немного не в тему
как зделать так чтобы перс спал ночью, а днем сидел на стуле? или просто гулял ато стоит на местье
если есть тутор на эту тему дайте ссылку
Andr, Ищи туторы по AI пакетам.
спасибо, этот сайт то что нада, порылся нашол стока туторов, за неделю не перечитаю.
какой скрипт отвечает за исчезновение персонажа? типа KILL но чтобы он проста исчез? ешё нужен скрипт чтобы персонаж ставл врагом.
ЗЫ всмысле результативные скрипты
какой скрипт отвечает за исчезновение персонажа?
Disable
Синтаксис:
[ObjectID|ActorID.]Disable
Функция Disable отключает вызывающий объект. Отключенные объекты не загружаются в мир, отключенные актеры не обрабатывают свой ИИ, но скрипты на отключенных объектах ВЫПОЛНЯЮТСЯ.
Функция Disable не удаляет объекты из игры, она просто прекращает их отрисовку. Не полагайтесь на Disable, чтобы увеличить производительность путём удаления объектов.
Чтобы вновь появился:
Enable
Синтаксис:
[ObjectID.]Enable
Функция Enable включает вызывающий объект ObjectID, заблокированный ранее функцией Disable.
Все объекты включены в игре по умолчанию, а это означает, что они рендерятся в игре и, если они актеры, то отрабатываются их пакеты AI.
Это всё, кстати, из OSFM - учебнику по скриптингу для Обливиона. Большая его часть актуальна и для Фоллаутов, так что, качай его обязательно и изучай: http://www.wiki.rumor.ru/index.php?title=Категория:Oblivion_Scripting_for_Modmakers_(OSFM)
ешё нужен скрипт чтобы персонаж ставл врагом.
StartCombat
Синтаксис:
[ActorID.]StartCombat TargetActorID
Пример:
StartCombat SuperGuard
Функция StartCombat принуждает вызывающего актёра (ActorID) начать бой с указанным в виде параметра TargetActorID вторым актером. Вызывающий актёр будет всегда держать целевого актёра первым в своем списке целей (target list).
Если не хочет нападать, добавь его в какую-нибудь враждебную игроку фракцию, например во фракцию рейдеров:
[Actor ID].AddToFaction RaiderFaction 1
Здраствуйте, такой вопрос как сделать так чтобы определенные аи пакеты действовали на определенного нпц до прохождения квеста, а после прохождения квеста на него действовали другие аи пакеты ? И вопрос про disable и enable, как сделать так чтоб после прохождения квеста предмет стал disable ?
Серёга, Привет!
Я делал так.
IDпредметаREF.Disable
А записать это нужно в поле ResultScript(End) нужного Topic
В тот в котором ты прописываешь что квест выполнен
SetStage IDквеста 30 CompleteAllObjectives IDквеста CompleteQuest IDквеста IDпредметаREF.Disable
Кстати этой точно по такому
же принципу, можно убирать и возвращать предметы.
Например вот эта команда записанная в первое приветствие GREETHING удалит у NPC шлем до начала диалога
Если будет вписана в поле ResultScript (Begin)
AAAKainFreeGarrusREF.RemoveItem HelmetNVNCRRangerCombat 1
А в поле ResultScript(End) прощального Topic вернёшь его обратно
AAAKainFreeGarrusREF.AddItem HelmetNVNCRRangerCombat 1
Мелочь но приятно и сделает мод чуть чуть лучше.
То же самое и с пакетами AI
IDNPC.AddScriptPackage [packageID] добавить пакет АI
Это я так делал. Не факт что правильно, но работало.
А вот скрипт для выполнения AI пакета в заданном интерьере
scn QuestScriptName short doOnce If IDNPC.getincell [cellID] && doOnce == 0 IDNPC.AddScriptPackage [packageID] set doOnce to 1 endif end
А вот тоже самое но с триггером
scn (название скрипта) short DoOnce Begin OnTriggerEnter ID NPC if DoOnce == 0 IDNPC.addScriptPackage [packageID] Set DoOnce to 1 endif End
В этом случае тебе надо Enable триггер в нужной ветке диалога. И командой
IDNPCREF.Moveto ID триггер направить туда NPC где он и получит новый пакет AI и начнёт выполнять. А если накрыть триггером всё помещещение то и Moveto не надо. NPC сразу же после включения триггера будет в нём.
Это самые простые варианты и не факт, что правильные. Но работающие. Скрипты мне давал в своё время человек с другого сайта вот с таким ником SpalnyVagon. Но я использовал их для выполнения перемещения NPC с одного места в другое. И мне не надо было менять пакеты AI
Пока.
Отредактировано K.A.I.N.48 (24.03.11 16:04:09)
спс, а есть ли вообще список всех скриптовых команд с пояснением?
Серега, можеш в условиях пакета (Conditions) выставить условие (тип условия GetStage) там из списка где по умалчанию INVALID указываеш ID своего квеста.
в value выбираеш стадию квеста например 20
теперь если стадия тваего квеста равна(или больше или меньше и т.д взависемости что выбереш в Comparsion) 20(Двадцати) Пакет будет работать.
ЗЫ еще возможно уж совсем тупой вопрос: Как привизать навык красноречие или какой-нибудь перк к ветке диалога? (срадостью приму тутор если есть)
Отредактировано Andr (24.03.11 18:37:51)
Andr, Ну во первых я спрашивал скрипт а ты мне написал привязку к диалогу. Во вторых у всех по разному может быть и не 20 а 10 например. И вот еще что == это выполнить квест а < это чтобы диалог после начала квеста неповторялся если при начале квеста вписать скрипт начала самого квеста. Я умею делать квесты но в гекк фола нв немного подругому.
Andr, Ну я понял что ты имел ввиду на аи пакет это поставить, но вопрос тогда такой а как сделать так чтоб предыдущие пакеты перестали работать ? Твоя версия недаработанная.
пакеты прасчитываются сверху вниз, если условие первого пакета не выполнены выполняется второй пакет если и его условия не выполнены значит третий.
так например пакеты которые ты ставиш по сюжету должны быть наверху, иначе будут выполнятся второстипенные пакеты т.к. их условия выполняются всегда
Во вторых у всех по разному может быть и не 20 а 10 например
например 20
И вот еще что == это выполнить квест а < это чтобы диалог после начала квеста неповторялся
?????
Ну во первых я спрашивал скрипт а ты мне написал привязку к диалогу
я написал тебе привязку пакета к стадии квеста
я просто имел в виду ту стадию на которой квест завершается
Вы здесь » Форум «Лабортории Mod-Tec» » G.E.C.K. Community » Помощь по скриптам Fallout 3 и Fallout: New Vegas