Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.
Я не знаю, что конкретно Вы хотите проверить. Как пишется функция, с помощью которой можно проверить, висит ли на ком-либо какой-нибудь эффект (любой, а не только actor-effect), я уже показал в сообщении #881. А звучит примерно так: "из спел тагет".
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
В общем, продолжил я поиски. Сначала попробовал наложить скрипт на вещь. Оказалось, что сохраняется скрипт только при употреблениии функции GetDisease SleepDeprivation600 (это я для примера взял). В общем, суть скрипта выглядела так:
if player.GetDisease SleepDeprivation600 == 1 player.UnequipItem IDmyitem endif
Все это было в блоке Gamemode
Скрипт сохранился, но в игре ничего не срабатвывало - как вещь была надета, так и осталась.
Попробовал сделать это частью квестового скрипта - то же самое, другие команды этого скрипта срабатывали, а это - нет.
Попробовал всунут этот блок в базовый эффект с ассоциированным итемом Скрипт в блоке ScriptEffectUpdate, добавил его в актор-эффект самой депривации сна - тоже не работало.
valambar, не понятно что именно нужно, сурипт будет с разными функциями работать. Тебе при какой нужно снятие брони? Что должно произойти для снятия одежды?
...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
valambar, не понятно что именно нужно, сурипт будет с разными функциями работать. Тебе при какой нужно снятие брони? Что должно произойти для снятия одежды?
Определенный уровень потребности в сне - конкретно критическая депривация.
Добрый вечер! Возможно ли сделать так, чтобы на существо (Босса) не действовали консольные команды, такие как Kill, Disable и прочие? Хочу сделать что-то вроде защиты от читов для определенного босса
if GetDead if GetAV health>0 ResurrectActor 1 endif endif
End
Но этот способ также оживит убитого или развоплощённого не с консоли, а каким-либо скриптом. Ещё можно было сделать, чтобы после оживления здоровье сбрасывалось на тот уровень, который был до применения Kill, но я намеренно не стал - смерть читерам!
float Timer float timerLimit short step short timerOn short doShockwave1x short doGlassBurst1x short controlsLocked float controlsTimer
begin onLoad
set timerLimit to 20
end
begin onActivate if IsActionRef player == 1 if step == 0 playgroup forward 0 set step to 1 Activate
elseif step == 2 set controlsTimer to 30 set controlsLocked to 1 DisablePlayerControls playgroup backward 0 set step to 3 endif endif end
begin gameMode
if controlsLocked == 1 if controlsTimer <= 0 set controlsLocked to -1 EnablePlayerControls else set controlsTimer to controlsTimer - getSecondsPassed endif endif
if step == 1 && isAnimPlaying == 0 playgroup left 0 set step to 2 elseif step == 3 && isAnimPlaying == 0 MarkerRef.placeatme 40mmGrenadeExplosion imod MegatonNukeISFX playgroup backward 1 set timerOn to 1 set Timer to 0
player.playIdle MS11ShieldsEyes
set step to 4
endif
if timerOn == 1
if Timer >= timerLimit set timerOn to 0 player.stoplook
elseif Timer > 4.11 && doGlassburst1x == 0 set doGlassBurst1x to 1
elseif Timer > 4.9 && doShockwave1x == 0 MarkerRef.placeAtMe RGreExpl player.playIdle MS11MTHitHeadA set doShockwave1x to 1
elseif Timer > 8
elseif Timer < timerLimit set Timer to (Timer + getSecondsPassed) endif
endif
end
Скажите в чем проблема? Пытаюсь сохранить-никак. Делал по совету графа... RGreExpl имя маркера 40mmGrenadeExplosion имя взрыва.
Как сделать триггер перемещения: входишь в триггер, выходишь в другом месте?
Если ругается именно на эту строку, значит либо MarkerRef отсутствует в списке persistent reference, либо RGreExpl в списке базовых имен. Скорее всего, последнее.
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
А реф стоит на Xmarkerheading в который по моим расчетам должна произойти телепортация. Может я просто неправильно делаю тригер? Но я не умею его делать.
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №892
написано: 3 января 2013, 18:57
| Отредактировано: Galko - 3 января 2013, 19:33
Может я просто неправильно делаю тригер? Но я не умею его делать.
Грузишь в рендер ту локацию, куда должен телепортироваться игрок. Скидываешь туда и размещаешь, где задумал, маркер, хоть х-маркер, хоть маркер хединг. Разница между ними только в направлении взгляда игрока, когда он переместится к этому маркеру. Если стоит Х-маркер, то игрок после попадания на этот маркер будет по умолчанию обращен лицом к Мекке к северу. А если стоит хединг-маркер - то будет обращен лицом туда, куда указывает стрелка на маркере. Короче: скинул маркер - дал ему реф-имя ToLAA как у тебя в скрипте (правда, обычно сначала создают\размещают и дают имена реф-объектам, а уж потом их начинают прописывать\указывать в создаваемых скриптах, но раз уж у тебя уже есть скрипт...). Потом грузишь в рендер ту локацию, откуда будет телепортироваться игрок. Выбираешь место, приближаешь поближе. После на панели инструментов выбираешь кнопку создания триггеров, эта та кнопка, на которой нарисован куб с буквой Т внутри. В рендере очерчиваешь курсором при нажатой ЛКМ квадрат на земле, отпускаешь кнопку, и слегка двигаешь мышью вверх, чтобы квадрат вытянулся до куба. Снова клик ЛКМ - выскакивает окно с предложением выбрать активатор для этого триггера. Отмечаешь там чек-пойнт New, вписываешь в строку ID своё любое новое имя (на инглиш) затем в строке Script этого активатора (там будет стоять слово NONE) справа от неё жмешь кнопку с нарисованными тремя точками, т.е. - создать новый скрипт. Откроется редактор скриптов. Пишешь скрипт, как у тебя описан выше: scn AAARFromLa
Begin OnTriggerEnter player player.moveto ToLAA End Сохраняешь скрипт, потом жмешь ОК в окне активатора. Окно закроется. Затем тут же, в рендере, в локации с этим новым триггером кликаешь дважды на этом триггере (курсор должен иметь вид простого крестика, но не крестика в рамке!!) и в открывшемся окне настроек этого триггера жмешь кнопку Edit Base. Откроется окно твоего нового активатора и в этом окне в строчке Script выбираешь в выпадающем списке свой, только что созданный, скрипт AAARFromLa. Закрываешь все окна, сохраняешь плагин. Все должно работать, я только что проверила.
Видимо проблема как раз в том, что создается не триг с буквой т. А вот рафы первоначально созданы по принципу: в тоннель, из тоннеля, в город, в городе. Проверю-отпишусь. Скрипт-все-же идея намного лучше, чем у обсидианов с невидимыми дверьми.
Не поняла... Создаваться должен обычный полупрозрачный куб или параллелепипед, в зависимости от того, как ты его "растянешь". Без всяких букв Т на нем. Это только на кнопочке создания триггеров нарисована буква Т, чтобы отметить, что эта кнопочка служит для создания именно Триггеров.
Всем привет! Не поможете со скриптом? В общем задумка не много необычная. Нужно чтобы существо на грани смерти, к примеру когда здоровье меньше или равно 1 не умирало, а проиграло анимацию (Например падает на землю) и становится неуязвимым. Далее идет таймер на 60 секунд, после чего здоровье существа восстанавливается до максимума и он проигрывает вторую анимацию (Встает в свою обычную Idle позу). И далее продолжает заниматься своими делами. Если, что анимация есть.
Graf, Так при воскрешении существо появляется заново т.е. игроку будет видно как он создается из воздуха Я хочу чтобы он при воскрешении проигрывал анимацию "вставания с земли", а не тупо появлялся в Idle позе, когда он секунду назад не земле лежал. Я тут подумал: а что если сделать его просто не убиваемым т.е. при смерти он будет без сознания, но при этом мне все еще нужно, чтобы он проиграл анимацию "А" когда он теряет сознание. А когда он приходит в сознание, то чтобы проигрывал анимацию "B". В итоге получаем: игрок его убивает, монстр падает на землю (Анимация "А") без сознания, проходит время и он встает(Анимация "B"). Можно-ли в скрипте задать проверку на состояние "без сознания"? И можно-ли увеличить время нахождения в состоянии "без сознания"? Я в скриптах бум-бум, но хочу реализовать свою задумку
rizys-mod, стадия, на на то и стадия, что временная по завершение квеста, квест копликт думаю сделать по завершению пару квестов разных сторон сделать определение...