Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.
Изменение репутации для пользователя Steady
SteadyOffline
Сообщение №541
написано: 3 ноября 2011, 21:21
| Отредактировано: Straight - 3 ноября 2011, 21:22
Может ли функция AddPerk работать в скрипте quest типа? А то я добавляю ее в блок Begin GameMode а скритт не сохраняется. Или она работает только в effect скриптах?
Может ли функция AddPerk работать в скрипте quest типа? А то я добавляю ее в блок Begin GameMode а скритт не сохраняется. Или она работает только в effect скриптах?
Может работать в любых.
====================== Мод "Нью-Йорк" на русском: 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
Дайте, пожалуйста, совет по изменению скрипта, который регулирует урон всего оружия в игре. Я видел подобные моды в Нексусе, но они нубовские - так как там тупо просто изменен урон конкретного оружия, даже я такое могу сделать. Мне же нужно изменить скрипт, чтобы все оружие в игре, в том числе и добавляемое ДЛЦ и модами, без какого-либо редактирования наносило тройной урон.
Красота спасет мир...
Изменение репутации для пользователя Vi[RUS]
Vi[RUS]Offline
Сообщение №546
написано: 4 ноября 2011, 23:39
| Отредактировано: Vi[RUS] - 4 ноября 2011, 23:39
Создал лифт (как при входе на Аванпост Изгоев в Operation Anchorage) Лифт нормально едет вниз, как только приезжаю на нужный этаж, войти в дверной проем я не могу, ибо мне мешает Нечто недоступное человеческому глазу. Но если я поеду наверх, то лифт проедет 2-3 этажа и остановится и застрянет (навечно), хотя меня должно было телепортнуть в другую локацию. Что делать????
Вот скрипт:
Code
scn DLC02ElevatorSCRIPT
; this script contrls the elevator on the DLC02VSS01 side of things
short state ; 0 = not running, at top ; 1 = going down ; 2 = not running, at bottom ; 3 = going UP ref actronaut
begin onActivate
set actronaut to getActionRef
if actronaut == player if state == 2 set state to 3 DLC02ElevShaft.playgroup backward 0 DLC02ElevGate.playgroup backward 0 .playgroup forward 0 else ; do nothing endif else ; if not the player actronaut.activate ElevTeleportREF
endif
end
begin gameMode
if state == 0 DLC02ElevShaft.playgroup forward 0 DLC02ElevGate.playgroup forward 0 set state to 1 endif
if DLC02ElevShaft.isAnimPlaying forward == 0 set state to 2
endif
endif
if state == 3 if DLC02ElevShaft.isAnimPlaying backward == 0 ElevTeleportREF.activate player endif endif
Vi[RUS], может стоит локацию с лифтом отдельную сделать... и двери расставить на те уровни, где лифт останавливается. Т.к. теперь двери служат телепортами, то в проем входить нет надобности.
З.Ы. Рабочий лифт из Акориджа - это круто. Молодец.
По-английски в ГЕККе оно как значится и где его можно найти?
Делаешь новый перк. Ставишь там Perk Entries: 1. Entry Point - выбираешь modify damage treshold (attaker) и ставь multiply value 0.3 2. Entry Point - выбираешь modify damage treshold (defender) и ставь multiply value 0.3 Данный перк присваиваешь своему ГГ.
Только учти, что это будет работать только в отношении ГГ и его противников. При разборках неписей/кричеров между собой оно работать не будет.
<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a> Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Изменение репутации для пользователя Fossy
FossyOffline
Сообщение №552
написано: 5 ноября 2011, 10:39
| Отредактировано: Fossy - 5 ноября 2011, 10:40
Только учти, что это будет работать только в отношении ГГ и его противников. При разборках неписей/кричеров между собой оно работать не будет.
Спасибо! Мне это и было нужно. А то бегаю, как Терминатор в детском саде, и всех убиваю, а меня и целая обойма остановить не может. В Ф3 у меня был подобный мод, но без перка, вот там действительно было жарко и смертельно опасно(выстрел по мне из трехлучевки или хедшот из снайперки - 100% труп), а здесь - детский сад, даже на очень сложном.
А как сделать так, чтобы при использовании активатора появлялось окно ну и там были варианты типа "Подняться наверх", "Спуститься вниз", "Отойти" (Знаю, что надо создавать Message и в скрипте вписывать showmessage id), но как сделать, чтобы ГГ телепортировался, выбирая эти варианты действий?
Мне надо чтобы у лифта сначала закрылись ворота (DLC02ElevGate.playgroup backward 1) затем вкл анимация шахты лифта (DLC02ElevShaft.playgroup backward 1) а затем ГГ телепортировался к нужному маркеру (Player.moveto ToRB01Ref) Но у меня ни одна анимация не включается, сразу телепортирует к маркеру.
Скрипт:
Code
scn ElevatorButtonUpScript
short Button
begin OnActivate if IsActionRef player == 1 ShowMessage RaiderBaseElevatorMessage02 endif end
Но у меня ни одна анимация не включается, сразу телепортирует к маркеру.
Она включается, но без ГГ, он переносится на новое место и поэтому ничего не видит. Надо сделать задержку по времени, тогда будет видна работа двери и кабины.
====================== Мод "Нью-Йорк" на русском: 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
Ну, я бы вместо переноса игрока (Player.moveto ToRB01Ref) вставил бы какую-нибудь еще одну переменную (set EnyVar to 1). А потом сделал бы еще один блок: if EnyVar == 1 if DLC02ElevGate.isAnimPlaying == 0 ;дверь закончила анимацию. Player.moveto ToRB01Ref set set EnyVar to 0 endif endif Там у Вас, кстати, и дверь и лифт начинают анимацию одновременно.
====================== Мод "Нью-Йорк" на русском: 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
а мне кажется, что ошибка где-то тут... начинается блок (begin) а следом идет команда elseif (иначе если) А что - Иначе, если не указано предыдущее Если (if)
Ведь построение скрипта идет по принципу: if (если) данное условие верно сделать что-то elseif (иначе если) если предыдущее условие неверно, то проверяется другое условие и если оно верно, то сделать то-то или то-то endif (конец)
PS. (с акцентом) лично я тааак думаю.. Хотя, да.. несоответствие на линии 23 - это ак раз конец скрипта, как и указал ID
Хочу делать скрипт, чтобы использовании активатора был выстрел, как у Бомбистов, когда они обстреливали игрока (делаю гаубицу) Но, чтобы при второй активации гаубицы снаряд уже летел по другой траектории и в другую точку.