Вверх Вниз


Модератор форума: Ipatow  
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Скрипты
a3apbi4  Offline Сообщение №1 написано: 07 Декабря 2010 в 21:01 | Отредактировано: ApeX - Среда, 16 Мая 2018, 19:38


Странник


11
Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.




valambar  Offline Сообщение №1651 написано: 29 Мая 2018 в 12:35



480
Цитата Joopeeter ()
и дуковское питьё из горла.
Есть мод Animationproject, там питье из горла от первого лица есть. И кстати там вообще все анимации только от первого лица.

Joopeeter  Offline Сообщение №1652 написано: 29 Мая 2018 в 16:46


_


991
Значит, эти анимации сделаны для первого лица и неправильно работают от третьего. Насколько я понимаю, у разных лиц разные скелеты.

Bulbyan  Online Сообщение №1653 написано: 02 Июня 2018 в 22:23



1971
Я в скриптах не шарю поэтому у меня вопрос: Вот тaкой скрипт стандартный или расширенный, нужен ли для него NVSE?

scn PowerArmorTrainingManualScript

Begin OnAdd player

if player.hasPerk PowerArmorTraining == 0
player.addPerk PowerArmorTraining
endif

removeMe

End

YikxX  Offline Сообщение №1654 написано: 03 Июня 2018 в 05:26


Местный Дон Кихот Ламанчский


2434
bulbyan1986, стандартный. Нет.

Все люди - курьеры. Просто некоторые не понимают, какие сообщения они несут...

«Перед тем как начать писать, некоторое время читал». © В. Шендерович
Bulbyan  Online Сообщение №1655 написано: 03 Июня 2018 в 09:01



1971
YikxX, спасибо.

sabardfix  Offline Сообщение №1656 написано: 27 Июля 2018 в 20:20


Странник


11
Здравствуйте, прочитал такую вот штуку про айдл анимации и не понял, это получается можно сделать так, что я набираю команду и персонаж проигрывает анимацию нпс? Я знаю что можно персонажа заставить делать анимацию с помощью tfc, но это неудобно. А так, играя от третьего лица, врубать анимации, было бы здорово. Особенно было бы здорово такие скрипты поместить в инвентарь в виде предметов, чтобы на хоткеи нужные анимации цеплять. Это вообще реально? Сложно?

ApeX  Offline Сообщение №1657 написано: 27 Июля 2018 в 20:35





786
sabardfix, Уже.

Ab altero expectes, alteri quod feceris
Коммерческие заказы НЕ выполняю!
Yaroslav2018  Offline Сообщение №1658 написано: 23 Августа 2018 в 23:19 | Отредактировано: ApeX - Пятница, 24 Августа 2018, 00:19


Странник


9
Подскажите скрипт для создания своего собственного верстака/плитки (я вообще хочу кофе машинку рабочую сделать), со своими собственными рецептами. Или если есть на эту тему туториал, дайте ссылку. Я просто в скриптах полный ноль.
Примечание модератора:
... ... ... ... ... ... ... ... dash
Сообщение перенесено в соответствующую тему. ЛС автору выслано.
ApeX

ApeX  Offline Сообщение №1659 написано: 25 Августа 2018 в 21:53 | Отредактировано: ApeX - Суббота, 25 Августа 2018, 21:55





786
Yaroslav2018, если для кофе-машины, то проще добавить свой рецепт для костра. А в роли активатора(костра) выбрать другую модель. Рецепты находятся в Miscellaneous>Recipes, активаторы костра или верстака в World Objects>Activator. Открываешь ванильный костер, меняешь ID, модель, название и удаляешь амбиентный звук. И создаешь свой рецепт. Так же и для тех активаторов, которые работают как верстак и используют его скрипт, например WorkBench. Только в этом случае в рецепте надо указать не лагерный костер, а верстак.
P.S. А кофе ведь добавляется одной из DLC.
 

Добавлено (26 Августа 2018, 16:29)
---------------------------------------------
А ведь было подобное.


Ab altero expectes, alteri quod feceris
Коммерческие заказы НЕ выполняю!
КсюXa  Offline Сообщение №1660 написано: 26 Августа 2018 в 18:44 | Отредактировано: КсюXa - Воскресенье, 26 Августа 2018, 19:25


Гид по Мастерской


1089
Цитата ApeX ()
А ведь было подобное.

И даже еще подобнее, но только для Ф3

Я шаурму в ларьках на улице не покупаю. Делаю дома сама. Получается как настоящая. Даже траванулась пару раз.
Vicson  Offline Сообщение №1661 написано: 05 Декабря 2018 в 20:27


Странник


15
Приветствую! Надеюсь тема еще жива...Прежде чем спросить о том, что мне надо, я поинтересуюсь, можно ли здесь размещать вопросы по скриптам
Fallout 3? Просто на форуме третьего фолыча не нашел тему со скриптами.

ApeX  Offline Сообщение №1662 написано: 05 Декабря 2018 в 20:41





786
А она там нужна, отдельная тема? Есть Помощь по моддингу и Помощь по G.E.C.K.
А так... Почему бы и не задать тут. Разницы почти и нет.

Ab altero expectes, alteri quod feceris
Коммерческие заказы НЕ выполняю!
Vicson  Offline Сообщение №1663 написано: 05 Декабря 2018 в 21:47


Странник


15
Оке! Есть мод, который может спавнить активатор (лампу). К активатору привязан скрипт, на вкл/выкл при обычной активации, и настройка цвета "лампочки" при активации из скрытности. Сразу скажу, что со скриптингом (если так можно назвать то, что я ваяю) знаком я чуть больше года, из этого времени "занимаюсь" им я дней 5. Ближе к телу! Сваял я скрипт, вышеупомянутый, и свет горит, и менюшка настройки есть, но сами "лампочки" не меняются...тыкался сам, по форумам лазил, даже по забугорским, но ни чего проясняющего для себя не нашел (может и плохо искал, но это не точно). И вот пришел к тому, что бы умные люди лично ткнули (лицом в какахи) пальцем туда, куда надо...
Ну, и сам скрипт!

P.S. Пометки на русском делал для себя...скрипт был раза в три длиннее, я начал путаться. ПРОШУ! Помогите мне, пожалуйста!

Joopeeter  Offline Сообщение №1664 написано: 06 Декабря 2018 в 00:47 | Отредактировано: Joopeeter - Четверг, 06 Декабря 2018, 00:49


_


991
Пока кнопка не нажата, функция GetButtonPressed возвращает -1. Потом, после того как кнопка была нажата, функция один раз возвращает номер кнопки и опять сбрасывается на -1. Во время работы блока OnActivate ни одна кнопка ещё не нажата. То есть в этом блоке надо оставить только проверку на скрытный режим, сам показ сообщения и выключение и удаление. Всё остальное делается в гейммоде. Активировали лампу, сработал OnActivate, показалось сообщение (игра в это время в менюмоде), нажали кнопку, игра вернулась в гейммодд (а функция помнит кнопку), в гейммоде спросили функцию и запомнили ответ в переменной, ну и так далее.

Добавлено (06 Декабря 2018, 00:48)
---------------------------------------------
GetButtonPressed

Ipatow  Offline Сообщение №1665 написано: 06 Декабря 2018 в 09:04



2320
Цитата Joopeeter ()
То есть в этом блоке надо оставить только проверку на скрытный режим, сам показ сообщения и выключение и удаление
Я бы ещё предложил не задавать вопрос про цвет, если лампе надо выключаться.

К размышлению: сама идея "активации вприсядку", то есть изменения режима активации при помощи скрытности, происходит из обливионной древности, когда не было возможности предложить на выбор несколько способов активации. В первых версиях движка третьего фолаута была проблема с деактивацией перков при отключении модов, и это замедлило распространение толкового подхода (activation choice добавляются через entry point перков)... Сегодня (да уж лет десять) всё там работает правильно, и кошерно бы прекратить приседания unsure

Vicson  Offline Сообщение №1666 написано: 06 Декабря 2018 в 18:49


Странник


15
Joopeeter, Огромное спасибо, все заработало! Просто про GetButtonPressed вскользь читал, вот и выросло непонимание...Я же говорю, надо было, что бы кто-то ткнул пальцем :)

Ipatow,
Цитата Ipatow ()
Я бы ещё предложил не задавать вопрос про цвет, если лампе надо выключаться.
Не совсем понял о чем Вы. Вопрос о цвете не появляется при выключении...да и не появлялся.
Цитата Ipatow ()
кошерно бы прекратить приседания
Как это можно сделать в моем случае? Надо что бы активация была отдельно, смена цвета отдельно. Я насоображал только такой вариант. Напоминаю, что опыт скриптинга 5 дней.

Ipatow  Offline Сообщение №1667 написано: 06 Декабря 2018 в 22:56



2320
Цитата Князь_Далик ()
Вопрос о цвете не появляется при выключении...да и не появлялся.
Правда? Мне показалось, что скрипт исполняет
If player.isSneaking
ShowMessage FSLightColor

до того, как интересуется состоянием LightON. Возможно, автор скрипта просто не пробовал выключать лампу вприсядку?

К вопросу об оптимизации. Если заменить все
If LightCol != 1
Set LightCol to 1
EndIf

на просто
Set LightCol to 1
то результат будет тот же, только скрипт окажется короче и работать быстрее будет...

Цитата Князь_Далик ()
Как это можно сделать в моем случае? Надо что бы активация была отдельно, смена цвета отдельно.
В предъявленном скрипте смена цвета исполняется внутри блока OnActivate, так что она никак не отдельно от активации.

Для элегантного управления лампой через один активатор следует создать перк и использовать первую строчку в таблице Entry Point. В условиях появления вариантов активации кроме очевидного GetIsID уместно использовать GetScriptVariable.

Vicson  Offline Сообщение №1668 написано: 06 Декабря 2018 в 23:56


Странник


15
Ipatow,
Цитата Ipatow ()
до того, как интересуется состоянием LightON
Пардон, забыл, да была такая проблема, автор я, вприсядку выключал, появлялось меню, но я ей не придавал значения, так на тот момент она не была приоритетной. А так уже все поправлено.
Цитата Ipatow ()
скрипт окажется короче и работать быстрее будет
Спасибо за совет, но я уже это все убрал. Эти "отрицания", так сказать, следы от самостоятельных попыток заставить все работать как надо.
Цитата Ipatow ()
следует создать перк
Подумаю об этом, но пока для меня это сложновато...Спасибо за совет!

Blacksun  Offline Сообщение №1669 написано: 22 Марта 2019 в 16:52 | Отредактировано: Blacksun - Пятница, 22 Марта 2019, 18:04


Странник


3
В соседней теме уже задавал вопрос о весе химии и проч.,


в общем цель задать вес всем невесомым предметам в игре, но только при режиме "Хардкор". Опыта 0. Скажите ход мыслей ниже правильный не? Пока не могу попробовать сам.

1) Запуск nvse_loader.exe с параметром -editor (Так с помощью скрипт. расширения получим доступ к функции SetWeight)
2) С помощью функции IsHardcore и SetWeight установить вес невесомым предметам

Если верно, то можно пример для одного предмета?

OtecZoper  Offline Сообщение №1670 написано: 06 Мая 2019 в 21:17



17
Здравствуйте, господа! Хочу вот написать скрипт, который бы после убийства непися призывал на его место на N - количество секунд союзное существо, которое по истечении времени умирало бы ( что-то вроде заклинания призыва из TES), а в нем ( скрипте), как я понимаю, не обойтись без переменной timer ( это же переменная, да?). Кто-то может объяснить как этот timer работает?

Ipatow  Offline Сообщение №1671 написано: 07 Мая 2019 в 01:46



2320
Цитата OtecZoper ()
существо, которое по истечении времени умирало бы ( что-то вроде заклинания призыва из TES), а в нем ( скрипте), как я понимаю, не обойтись без переменной timer ( это же переменная, да?). Кто-то может объяснить как этот timer работает?
Наверное, удобнее всего, поскольку это существо, дать ему врождённую способность со скриптованным эффектом (говорили, что это нестабильно... но я бы попробовал). Причём там весь скрипт будет по сути

SCRIPTNAME SuicideIn60Seconds
FLOAT TimeLived
BEGIN ScriptEffectUpdate
SET TimeLived TO TimeLived + ScriptEffectElapsedSeconds
IF TimeLived > 60
Kill
ENDIF
END

OtecZoper  Offline Сообщение №1672 написано: 11 Мая 2019 в 15:47



17
Привязал скриптовый эффект к существу, но ничего не сработало. Проблема в самом скрипте или я что-то не то делаю?

Veldion  Offline Сообщение №1673 написано: 12 Мая 2019 в 07:27



268
Цитата OtecZoper ()
Привязал скриптовый эффект к существу, но ничего не сработало. Проблема в самом скрипте или я что-то не то делаю?


Рискну предположить что дело именно в скрипте:  существо согласно скрипта должно умереть через 60 секунд,  но при этом не заданы условия начала отсчета времени.  Часики просто не начинают тикать...

OtecZoper  Offline Сообщение №1674 написано: 12 Мая 2019 в 20:03



17
А какого рода условие должно быть и куда его вписать? Я просто в таймерах не сильно разбираюсь. Вообще не разбираюсь точнее.

Ipatow  Offline Сообщение №1675 написано: 13 Мая 2019 в 16:41



2320
Цитата Veldion ()
не заданы условия начала отсчета времени. Часики просто не начинают тикать...
Отсчёт от запуска скрипта... Можно то же самое изобразить, заменив ScriptEffectUpdate на GameMode, а ScriptEffectElapsedSeconds на GetSecondsPassed... Может быть, тут найдутся грабли, если за минуту существо не успело сотвориться или если оно умирает так медленно, что KIll его раз за разом бьёт по голове издыхающего... Проверять, как именно оно там косячит, можно добавив отладочные сообщения в скрипт - хотя я бы начал с того, что... оно ведь как спелл оформлено? вот взять и AddSpell его на кого попало - помрёт или нет?

OtecZoper  Offline Сообщение №1676 написано: 13 Мая 2019 в 21:42



17
Переделал скрипт вот таким образом:
scn aaaSuicideIn60Seconds

float TimeLived

begin gamemode
if TimeLived < 60
set TimeLived TO TimeLived + GetSecondsPassed
else
Kill
endif
end

 Привязал его напрямую к существу и все заработало. Благодарю всех за помощь.

Ipatow  Offline Сообщение №1677 написано: 23 Мая 2019 в 14:49 | Отредактировано: Ipatow - Четверг, 23 Мая 2019, 14:51



2320
Цитата OtecZoper ()
begin ScriptEffectStart
if GetLastHitCritical && GetDead == 1

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

Теперь что не так со скриптом. Функция GetLastHitCritical может выдать единичку только в блоках OnHit и OnHitWith. Но в этих блоках GetDead никогда не даст единицы (а GetCauseofDeath не скажет причину), потому что во время работы этих блоков пациент ещё жив.

Напрашивается выход - передать критовость из блока в блок через переменную:

SHORT LuckyShot
SHORT DiedOnce
BEGIN OnHit
SET LuckyShot TO GetLastHitCritical
END
BEGIN GameMode
IF DiedOnce
RETURN
ENDIF
IF GetDead
SET DiedOnce TO 1
IF LuckyShot
PlaceAtMe кого следует
ENDIF
Disable
ENDIF
END

OtecZoper  Offline Сообщение №1678 написано: 27 Мая 2019 в 22:23 | Отредактировано: OtecZoper - Понедельник, 27 Мая 2019, 22:29



17
Всех приветствую, появилось еще 2 вопроса. Первый - возможно ли внутри одного скрипта вызывать другой скрипт? Второй - как можно написать скрипт, который будет проверять кем является NPC (гулем, животным, человеком и т. д.)?

Ipatow  Offline Сообщение №1679 написано: 28 Мая 2019 в 05:56



2320
Цитата OtecZoper ()
возможно ли внутри одного скрипта вызывать другой скрипт?
Долго не думаю, два способа. Первый - использовать Activate с флагом "использовать скрипт". В этом случае весь блок OnActivate того скрипта выполнится перед тем, как вызывающий скрипт прочитает следующую строчку. Второй способ - использовать SetStage. В этом случае скрипт стадии квеста также будет выполнен немедленно, прежде следующей строки вызывающего скрипта.

Цитата OtecZoper ()
как можно написать скрипт, который будет проверять кем является NPC (гулем, животным, человеком и т. д.)?
Сначала GetIsCreature, а дальнейшее различение существ при помощи GetIsCreatureType, неписей при помощи GetIsRace и GetIsSex.

OtecZoper  Offline Сообщение №1680 написано: 29 Мая 2019 в 12:31



17
Цитата
Сначала GetIsCreature, а дальнейшее различение существ при помощи GetIsCreatureType, неписей при помощи GetIsRace и GetIsSex.


С командами-то все ясно. Мой косяк, не так проблему описал. Нужно чтобы скрипт проверял каждое убитое существо или непися из определенного оружия. То есть, убиваешь какого-то рейдера, скрипт определяет его как нпц и что-то делает, а если убиваешь кротокрыса, то скрипт определяет его как животное и ничего не делает. Как-то так.

Добавлено (31 Мая 2019, 19:59)
---------------------------------------------
Все хорошо, удалось все решить самому.


Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Поиск: