Прежде чем задавать вопрос - посмотрите в >> КАРТОТЕКЕ << Возможно, там уже есть готовый ответ.
Тема предназначена для общих вопросов. Прежде, чем тут что-то написать, посмотрите другие темы этого раздела. Вполне возможно, что они больше соответствуют тематике вашего вопроса.
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №1921
написано: 17 октября 2012, 13:42
| Отредактировано: Galko - 17 октября 2012, 13:41
Добавлено (17.10.2012, 18:53) --------------------------------------------- Родные мои, дорогие мои, я вас всех так люблю! Заработало! Ура! Как оказалось - прикольно, ага - ФНВ ест мп3 файлы только если они пользуются в радиостанции. А для заметок, или триггеров как мой, нужны файлы в ВАВ формате, с форматированием, которое указал rizys-mod. Жесть, иначе и не скажешь)))
Изменение репутации для пользователя Вис
ВисOffline
Сообщение №1926
написано: 17 октября 2012, 17:28
| Отредактировано: Вис - 17 октября 2012, 17:28
Привет всем! Такой вопрос: как изменить этот скрипт, чтобы человек не умирал во время путешествия при включённом хардкоре? Время должно пройти.
Code
scn RFCWTrainEngineDisableLinkOnActivateSCRIPT ; basic script that enables linked reference on activate
short Doonce short playerTravel ref myLink float timer
BEGIN OnActivate
if ( IsActionRef Player == 1) if RFCWTrainSide == 0 if player.GetItemCount RFCWTicket02 >= 1 showmessage TTWTrainTravelNVtoDC else showmessage TTWTrainTravelNVtoDCNoTicket endif else if player.GetItemCount RFCWTicket01 >= 1 showmessage TTWTrainTravelDCtoNV else showmessage TTWTrainTravelDCtoNVNoTicket endif endif endif
END
BEGIN GameMode
if ( playerTravel < 1 && GetButtonPressed == 1 ) set PlayerTravel to 1 set Timer to 7 DisablePlayerControls 1 0 0 0 0 0 activate player 0 set myLink to getLinkedRef if Player.GetInCell RFCWTrainEngine01a myLink.disable elseif player.getincell RFCWTrainEngine01c myLink.disable endif set doOnce to 0 endif
if ( PlayerTravel == 1 ) set Timer to Timer - GetSecondsPassed if (Timer <= 5) && doOnce == 0 set doOnce to 1 IMod FadeToWhiteISFX Player.Playsound QSTEndPowerUpTurbine endif if ( Timer <= 0 ) if Player.GetInCell RFCWTrainEngine01a myLink.disable elseif player.getincell RFCWTrainEngine01c myLink.disable endif IMod FadeInFromWhiteISFX EnablePlayerControls if RFCWTrainSide == 0 player.MoveTo RFCWCWXMarker set RFCWTrainSide to 1 player.removeitem RFCWTicket02 1 Set GameHour to GameHour + 168 showmessage RFCWSevenDays else if GetStageDone VCG00 0 player.MoveTo RFCWNVXMarker else StartQuest VCG00 setstage VCG00 0 endif set RFCWTrainSide to 0 player.removeitem RFCWTicket01 1 Set GameHour to GameHour + 168 showmessage RFCWSevenDays01 endif set PlayerTravel to 0 endif endif
Привет всем! Такой вопрос: как изменить этот скрипт, чтобы человек не умирал во время путешествия при включённом хардкоре? Время должно пройти.
Попробуйте обнулить все три хардкоровские переменные (сон, еда, вода) после окончания путешествия: player.setAV Dehydration 0 player.setAV Hunger 0 player.setAV SleepDeprevation 0 По идее, должен выжить. Если нужно, чтобы за время путешествия состояние организма не изменилось, тогда "до того" запомните эти три переменные, например: set [еда] to player.getAV Hunger а после путешествия верните им прежние значения: player.setAV Hunger [еда]
====================== Мод "Нью-Йорк" на русском: 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
Изменение репутации для пользователя FuriousFighter
По началу затвор у оружия занимает нормальное положение, но после перезарядки, оно отодвигается в сторону... В НифСкопе пробовал настраивать, и вроде бы настроил, но проблема осталась. Если затвор не уходит в одну сторону, то уходит в другую, но упорно не желает оставаться на своем законном месте. Как решить эту проблему?
Про сообщения с изменяемыми фрагментами - спасибо за советы!
Получил желаемое с переходом на нвсе-функцию вывода. Скрипт присваивает реф-переменным ссылки на фиктивные "ammo", in-game имена которых (могут состоять из более чем одного слова!) подставляются в генерируемую фразу.
Code
MessageEx "Veronica %n when stranger %n %n his %n in her %n %n ?.." tcm_tone tcm_how tcm_verb tcm_obj tcm_which tcm_where
Другая странность - отладочная версия с переходом с showmessage на messageEx
Я не профи и не спец... поэтому такой вопрос: Можно ли как-то воспроизвести звуки ходьбы по разным текстурам поверхности? И если можно то как создать? подскажите...
Begin GameMode If (bDo) Else Set iInterval to 3.5 Set bDo to 1 EndIf If (fTimer > (60 * iInterval)) PurgeCellBuffers Set fTimer to 0 Else Set fTimer to (fTimer + GetSecondsPassed) EndIf End
Скрипт завязан на квест. Задача: сделать так, чтобы скрипт работал/ не работал после нажатия на горячую клавишу, с выводом соотв. сообщения типа "Скрипт теперь работает" или "Скрипт теперь не работает". Сообщение должно выводится сразу как начинается игра (например после загрузки сэйва), чтобы игрок сразу знал, работает сейчас скрипт или нет. Реализуемо?
Все люди - курьеры. Просто некоторые не понимают, какие сообщения они несут...
Изменение репутации для пользователя rizys-mod
rizys-modOffline
Сообщение №1933
написано: 20 октября 2012, 14:05
| Отредактировано: rizys-mod - 20 октября 2012, 14:40
сделать так, чтобы скрипт работал/ не работал после нажатия на горячую клавишу, с выводом соотв. сообщения типа "Скрипт теперь работает" или "Скрипт теперь не работает". Сообщение должно выводится сразу как начинается игра (например после загрузки сэйва), чтобы игрок сразу знал, работает сейчас скрипт или нет.
Так а при чем тут горячая клавиша? Ведь сразу должно появится сообщение. Просто не пойму что нужно. Чтобы сразу было используй блок OnLoad.
Можно попробовать что-то в духе:
Code
Float fTimer Int bDo Int iInterval Short DoOnce Short DoOnce2
Begin OnLoad Set bDo to 0 Set DoOnce to 0 Set DoOcne2 to 0 End
Begin GameMode If (bDo) && (DoOnce) && (DoOnce2) Else Set iInterval to 3.5 Set bDo to 1 EndIf
If (fTimer > (60 * iInterval)) PurgeCellBuffers Set DoOnce to 1 Set fTimer to 0 Else Set fTimer to (fTimer + GetSecondsPassed) Endif
If DoOnce to 1 Set DoOnce2 to 1 else EndIf
If DoOnce2 == 1 ShowMessage IdMessage ;мод работает Set DoOnce2 to 2 Else ShowMessage IdMessage2 ;мод не работает Set DoOnce2 to 2 End
Команда "Rizys-mod" - разработка плагинов на Fallout.
Изменение репутации для пользователя YikxX
YikxXOffline
Сообщение №1934
написано: 20 октября 2012, 16:39
| Отредактировано: YikxX - 20 октября 2012, 16:42
Как при чем? При нажатии на клавишу выводится сообщение "Скрипт работает" и выполняется вот эта секция
Code
If (bDo) Else Set iInterval to 3.5 Set bDo to 1 EndIf If (fTimer > (60 * iInterval)) PurgeCellBuffers Set fTimer to 0 Else Set fTimer to (fTimer + GetSecondsPassed) EndIf
Как видно из скрипта - каждые 3,5 минуты. При повторном нажатии на горячую клавишу - выводится сообщение "Скрипт не работает" и указанная секция больше не выполняется.
Смысл - заставлять работать/не работать указанный скрипт когда нужно игроку, а не постоянно, как в оригинальном плагине. Так как постоянное выполнение вызывает рандомные вылеты в модовых локациях, например таких как Арсенал в UHNV или локации мода AWOP.
Все люди - курьеры. Просто некоторые не понимают, какие сообщения они несут...
Смысл - заставлять работать/не работать указанный скрипт когда нужно игроку, а не постоянно, как в оригинальном плагине. Так как постоянное выполнение вызывает рандомные вылеты в модовых локациях, например таких как Арсенал в UHNV или локации мода AWOP.
Если не секрет, а зачем оно вообще нужно - очистка буфера? Проще настройки уменьшить, если видеокарта не тянет. Мне кажется, держать в голове где можно, где нельзя и запускать самому - слишком много мороки при весьма сомнительном результате. Если тот мод, из которого этот скрипт, без него не работает, тогда можно в качестве условия его фунциоирования объявить присутствиее ГГ только в тех ячейках, где он нужен, я не думаю, что их там так уж много. А для того, чтобы завести запуск любого скрипта на горячие клавиши, могу предложить создать какой нибудь костюм, на который повесить скрипт, который бы менял какую-нибудь переменную в Вашем скрипте, которая бы его отключала-запускала. Ну, а одевание-раздевание уже привязать к "горячей" клавише. То же самое можно соорудить и через эффект при поедании какого-нибудь виртуального фрукта.
====================== Мод "Нью-Йорк" на русском: 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
Изменение репутации для пользователя YikxX
YikxXOffline
Сообщение №1936
написано: 20 октября 2012, 18:38
| Отредактировано: YikxX - 20 октября 2012, 18:40
Ну, а одевание-раздевание уже привязать к "горячей" клавише. То же самое можно соорудить и через эффект при поедании какого-нибудь виртуального фрукта.
Насчет фрукта не знаю, но ARMO точно не вариант - горячую клавишу нужно нажимать 2 раза, что лично меня страшно бесит. Да и вообще хотелось бы большей универсальности, а не только 1, 3-8
Наверное проще сделать так - при нажатии на гор. клавишу выполняется PurgeCellBufers, выводится сообщение "Буферы успешно очищены" и все. Просто чтобы в консоль не лезть и pcb не набирать.
Все люди - курьеры. Просто некоторые не понимают, какие сообщения они несут...
Изменение репутации для пользователя Demolir
DemolirOffline
Сообщение №1937
написано: 20 октября 2012, 21:24
| Отредактировано: Demolir - 20 октября 2012, 21:33
В итоге сделал так (точнее - подсмотрел и переделал ):
Code
scn PCBYHotkeySetupSCRIPT
short PCBYmainKey short PCBYchangeKey short PCBYchangeKeyMesg
begin GameMode
if (getKeyPress 0 == PCBYmainKey)
PurgeCellBuffers showmessage PCBYClearMessage
endif
if (PCBYchangeKey == 0) if (PCBYchangeKeyMesg == 0) showmessage PCBYHotkeyChangeMessage set PCBYchangeKeyMesg to 1 endif if (getNumKeysPressed == 1) set PCBYmainKey to getKeyPress 0 set PCBYchangeKey to 1 set PCBYchangeKeyMesg to 0 endif endif
end
При первой загрузке плагина делается запрос на горячую клавишу, потом при каждом ее нажатии очищаются буферы и выводится месседж.
Цитата Demolir
Честно говоря, такого никогда не наблюдал у себя...
Значит повезло или модов мало или комп космической эры за 10000 вечнозеленых.
Все люди - курьеры. Просто некоторые не понимают, какие сообщения они несут...
Я имел дело с моддингом на сталкер, вот хочу на фоллаут попробывать. Знаю только как в гекке новый эффект создать. А как например создать простой квест? Я тутор нашел один, но ссылка битая.
Вопрос: хотелось бы при этом иметь "в фокусе" конкретную (запланированую) цель, но как? SetVatsTarget вроде бы не про то ("turns VATS targeting on or off for a destructible object").
Вопрос: хотелось бы при этом иметь "в фокусе" конкретную (запланированую) цель, но как?
Теоретически никак. VATS цепляет ближайшую цель в раоне курсора. Практически можно скриптом изменить позицию ГГ, чтобы навести курсор на нужную мишень - но при этом нет никакой гарантии, что эта мишень окажется ближайшей. К тому же будут явные сложности с определением координат мишени, если в этот момент она в виде ragdoll (например, летит подброшенная взрывом)... Однако если сцена не случайная, а создана руками - вполне можно добиться того, что VATS схватит именно того, кого надо.