Паха007 545 Опубликовано 29 апреля, 2021 13 минут назад, ShadowSharkAlive сказал: Кто нибудь знает почему до сих пор нет мода на реплейсер слайдов концовок игры? Сложно ли в реализации такого мода? Смотря что из себя будет представлять этот реплейсер, перерисовка слайдов, замена озвучки? Поделиться сообщением Ссылка на сообщение
ShadowSharkAlive 508 Опубликовано 29 апреля, 2021 1 час назад, Паха007 сказал: Смотря что из себя будет представлять этот реплейсер, перерисовка слайдов, замена озвучки? Замена слайдов, я имею ввиду картинок. Просто обычно когда я прохожу Вегас, моя графика очевидно отличается от ванильной. Я бы мог переделать каждую сцену из конечных слайдов, только на новой графике. Другое дело - я не знаю как из этого сделать мод. Если бы мне кто то посодействовал - было бы очень круто. Я уверен - многим это понравится. 1 Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 30 апреля, 2021 9 часов назад, ShadowSharkAlive сказал: Замена слайдов, я имею ввиду картинок. Просто обычно когда я прохожу Вегас, моя графика очевидно отличается от ванильной. Я бы мог переделать каждую сцену из конечных слайдов, только на новой графике. Другое дело - я не знаю как из этого сделать мод. Если бы мне кто то посодействовал - было бы очень круто. Я уверен - многим это понравится. Самое сложное, пожалуй - это сами картинки сделать. А внедрить в игру не трудно, они там в качестве текстур находятся, в формате dds. По сути тут даже редактор не нужен, достаточно поменять ресурсы. Делайте красивые картинки, сделать из этого мод поможем. Поделиться сообщением Ссылка на сообщение
ShadowSharkAlive 508 Опубликовано 30 апреля, 2021 2 часа назад, Паха007 сказал: Самое сложное, пожалуй - это сами картинки сделать. А внедрить в игру не трудно, они там в качестве текстур находятся, в формате dds. По сути тут даже редактор не нужен, достаточно поменять ресурсы. Делайте красивые картинки, сделать из этого мод поможем. Благодарю! Как только у меня наладится со временем, сделаю все скриншоты и спишемся. Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 30 апреля, 2021 18 часов назад, Паха007 сказал: Я не понимаю, что такое личностный модуль, так как не знаком с модом про биреактор. Переменная bBuddiesTalk - это, видимо, какая-то переменная, которую ввел автор мода для чего-то. Что касается message box-а с кнопками - все действия, которые он выполняет прописываются в скрипте, есть такая внутриигровая переменная - Button, она как раз и завязана с вариантами выбора и их последствиями при выборе вариантов из message box-а. Личностный модуль- это я про ванильных "персонажей" из OWB, тостер, автодок и прочие обитатели Стока. В оригинале сделано так, что с ними либо есть диалоги, либо по переключению переменной вместо диалогов при активации вышеперечисленных talking activator появляется message box с кнопками, ведущими в определенные меню. Например, можно попросить у автодока провести пластическую операцию через диалог. А если личностные модули (bBuddiesTalk=0) отключены, то это делается через message box. Вроде бы все просто, надо переиначить кусок ванильного скрипта под свои REF ID. Но что там и за что отвечает-не понимаю. Интуитивно выделил вот такое: Спойлер BEGIN OnActivate If (IsActionRef Player == 1) If ( bBiologyUnlocked == 1 ) If ( NVDLC03DialogueHQBuddies.bBuddiesTalk == 0 ) ShowMessage NVDLC03HQBuddiesNoTalkMSG; Set bAwaitingInput to 1; ShowMessage NVDLC03HQBioResearchStationMSG; Elseif ( NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 ) Set bTalkAfterMessage to 1; Endif Else If ( Player.GetHasNote NVDLC03HQBuddyBiologyNOTE == 0 ) ShowMessage NVDLC03HQBuddyLockedMSG; Elseif ( Player.GetHasNote NVDLC03HQBuddyBiologyNOTE == 1 ) Player.RemoveNote NVDLC03HQBuddyBiologyNOTE; Set bBiologyUnlocked to 1; Set NVDLC03HQBuddy.iBio to 1; ;SPW ;SetObjectiveDisplayed NVDLC03HQBuddySamples 20 1; ;SPW - Gives the objective to find the seeds. 3/11 This quest now starts after everything has been upgraded. Set NVDLC03DialogueHQBuddies.bBiologyUnlocked to 1; ShowMessage NVDLC03HQBuddyUnlockMSG; IncrementScriptedChallenge NVDLC03AchievementMakingFriends; Set bTalkAfterMessage to 1; Endif Endif Endif END; onactivate Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 3 мая, 2021 В 30.04.2021 в 15:05, RaggaL сказал: Вроде бы все просто, надо переиначить кусок ванильного скрипта под свои REF ID. Но что там и за что отвечает-не понимаю. Интуитивно выделил вот такое: В этом куске скрипта нет никаких рефID, я могу конечно написать что примерно означает каждая строчка скрипта, но надо ли оно? Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 3 мая, 2021 3 часа назад, Паха007 сказал: В этом куске скрипта нет никаких рефID, я могу конечно написать что примерно означает каждая строчка скрипта, но надо ли оно? Да наверное, я постараюсь понять. Просто я хотел сделать так: в зависимости от ванильной переменной bBuddiesTalk при активации одного и того же talking activator либо запускался бы диалог с неписем, либо message box. А в диалогах и в кнопке в message box-е одинаковая команда на открытие меню верстака Player.ShowRecipeMenu BioReactor Сейчас на непися, с которым ГГ говорит через talking activator (интерком) повешен нижеприложенный скрипт. Я догадываюсь, что туда просто нужно вписать условие, проверяющее значение bBuddiesTalk и дающее команду открытия меню верстака, но свои потуги писать теперь стесняюсь, они все равно не работают. Скрипт на неписе: Спойлер scn BioReactorScript Begin OnActivate if IsActionRef player == 1 setTalkingActivatorActor BioReactorNPC activate endif End Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 455 Опубликовано 4 мая, 2021 Тогда можно так: scn BioReactorScript Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage NVDLC03HQBuddiesNoTalkMSG endif End 2 Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 4 мая, 2021 2 часа назад, MagnuMspec сказал: Тогда можно так: scn BioReactorScript Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage NVDLC03HQBuddiesNoTalkMSG endif End Один Endif забыл: scn BioReactorScript Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage NVDLC03HQBuddiesNoTalkMSG endif endif End 4 Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 4 мая, 2021 5 часов назад, Вис691 сказал: Один Endif забыл: scn BioReactorScript Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage NVDLC03HQBuddiesNoTalkMSG endif endif End Спасибо, эта часть работает как надо. я попытался изобразить message box с кнопками, но со скриптом снова беда. Извините, если утомил,я скоро уймусь. За основу брал скрипт от биологической исследовательской станции, просто сменил открываемое меню и ссылку на мой message box. Спойлер scn BioReactorScript Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage BioReactorNoTalk endif endif End. BEGIN MenuMode 1001 If ( bAwaitingInput == 1 ) Set nButton to GetButtonPressed; If ( nButton > -1 ) Set bAwaitingInput to 0; ; ------------------------------------------------------------------- BUTTON 0 ---------------------------------------------- \/ ; "Go away" If ( nButton == 0 ) Set nButton to -1; Return; ; ------------------------------------------------------------------- BUTTON 1 ---------------------------------------------- \/ ; "Charge" Elseif ( nButton == 2 ) Set nButton to -1; Player.ShowRecipeMenu BioReactor Endif Endif Else Return; Endif END; menumode 1001 Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 4 мая, 2021 16 минут назад, RaggaL сказал: За основу брал скрипт от биологической исследовательской станции, просто сменил открываемое меню и ссылку на мой message box. В блоке BEGIN MenuMode присутствуют как минимум две переменные - nButton, которая отвечает за строки в меню и bAwaitingInput. Но почему-то в скрипте они не прописаны. scn BioReactorScript short nButton short bAwaitingInput Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage BioReactorNoTalk endif endif End. BEGIN MenuMode 1001 If ( bAwaitingInput == 1 ) Set nButton to GetButtonPressed; If ( nButton > -1 ) Set bAwaitingInput to 0; ; ------------------------------------------------------------------- BUTTON 0 ---------------------------------------------- \/ ; "Go away" If ( nButton == 0 ) Set nButton to -1; Return; ; ------------------------------------------------------------------- BUTTON 1 ---------------------------------------------- \/ ; "Charge" Elseif ( nButton == 2 ) Set nButton to -1; Player.ShowRecipeMenu BioReactor Endif Endif Else Return; Endif END; menumode 1001 А вообще, скинул бы ты исходник скрипта, с которого ты это скопировал, чтобы знать, что ты там поменял. Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 4 мая, 2021 52 минуты назад, Паха007 сказал: А вообще, скинул бы ты исходник скрипта, с которого ты это скопировал, чтобы знать, что ты там поменял. Исходник скрипта: Спойлер SCN NVDLC03SinkBioResearchStationSCRIPT ; Talking Activator script for Bio-Research Station ; tls 01/19/2011 ; SPW 02/24/11 - Adding vars for HQ Buddy quest ; SPW 03/01/11 - Removing line that kicked off the samples quest ; ETB 03/24/11 - Added gamemode start conversation routine (to get conversation to start directly after a message box pop-up). Short bBiologyUnlocked ; 1 = Player has turned in the unlock holodisk: "NVDLC03HQBuddyBiologyNOTE". Short bAwaitingInput ; Message box variable (menumode). Short bCallBiologyUI ; Message box variable (gamemode). Short nButton ; Which message box option the player has pressed. Short bTalkAfterMessage Short nSetAnyTimer ; ------------------------------------------ Short bSetBananaYuccaTimer Float fBananaYuccaCurrentDay Float fBananaYuccaLastDay ; ------------------------------------------ Short bSetBarrelCactusTimer Float fBarrelCactusCurrentDay Float fBarrelCactusLastDay ; ------------------------------------------ Short bSetBrocFlowerTimer Float fBrocFlowerCurrentDay Float fBrocFlowerLastDay ; ------------------------------------------ Short bSetHoneyMesquiteTimer Float fHoneyMesquiteCurrentDay Float fHoneyMesquiteLastDay ; ------------------------------------------ Short bSetJalapenoTimer Float fJalapenoCurrentDay Float fJalapenoLastDay ; ------------------------------------------ Short bSetMaizeTimer Float fMaizeCurrentDay Float fMaizeLastDay ; ------------------------------------------ Short bSetNevadaAgaveTimer Float fNevadaAgaveCurrentDay Float fNevadaAgaveLastDay ; ------------------------------------------ Short bSetPintoBeanPodTimer Float fPintoBeanPodCurrentDay Float fPintoBeanPodLastDay ; ------------------------------------------ Short bSetPricklyPearTimer Float fPricklyPearCurrentDay Float fPricklyPearLastDay ; ------------------------------------------ Short bSetXanderRootTimer Float fXanderRootCurrentDay Float fXanderRootLastDay ; ------------------------------------------ Short bSetWhiteHorseNettleTimer Float fWhiteHorseNettleCurrentDay Float fWhiteHorseNettleLastDay BEGIN OnLoad SetTalkingActivatorActor NVDLC03SinkBioResearchLabTalkerREF; END BEGIN OnActivate If (IsActionRef Player == 1) If ( bBiologyUnlocked == 1 ) If ( NVDLC03DialogueHQBuddies.bBuddiesTalk == 0 ) ShowMessage NVDLC03HQBuddiesNoTalkMSG; Set bAwaitingInput to 1; ShowMessage NVDLC03HQBioResearchStationMSG; Elseif ( NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 ) Set bTalkAfterMessage to 1; Endif Else If ( Player.GetHasNote NVDLC03HQBuddyBiologyNOTE == 0 ) ShowMessage NVDLC03HQBuddyLockedMSG; Elseif ( Player.GetHasNote NVDLC03HQBuddyBiologyNOTE == 1 ) Player.RemoveNote NVDLC03HQBuddyBiologyNOTE; Set bBiologyUnlocked to 1; Set NVDLC03HQBuddy.iBio to 1; ;SPW ;SetObjectiveDisplayed NVDLC03HQBuddySamples 20 1; ;SPW - Gives the objective to find the seeds. 3/11 This quest now starts after everything has been upgraded. Set NVDLC03DialogueHQBuddies.bBiologyUnlocked to 1; ShowMessage NVDLC03HQBuddyUnlockMSG; IncrementScriptedChallenge NVDLC03AchievementMakingFriends; Set bTalkAfterMessage to 1; Endif Endif Endif END; onactivate BEGIN GameMode If ( bCallBiologyUI == 1 ) Set bAwaitingInput to 1; ShowMessage NVDLC03HQBioResearchStationMSG; Set bCallBiologyUI to 0; Endif If ( bTalkAfterMessage == 1 ) Set bTalkAfterMessage to 0; ;SetTalkingActivatorActor NVDLC03SinkBioResearchLabTalkerREF; Activate; Endif ; ------------ Biological Research Center Day-Timer ----------- \/ If ( bBiologyUnlocked == 1 && nSetAnyTimer > 0 && nSetAnyTimer <= 11 ) ; ---------------- Banana Yucca Timer --------------- \/ If ( bSetBananaYuccaTimer == 1 ) Set fBananaYuccaCurrentDay to GameDaysPassed; If ( ( fBananaYuccaCurrentDay - fBananaYuccaLastDay ) >= 1 ) NVDLC03SinkBananaYucca01REF.Enable; NVDLC03SinkBananaYucca02REF.Enable; Set bSetBananaYuccaTimer to 0; Endif Endif ; ---------------- Barrel Cactus Timer ----------------- \/ If ( bSetBarrelCactusTimer == 1 ) Set fBarrelCactusCurrentDay to GameDaysPassed; If ( ( fBarrelCactusCurrentDay - fBarrelCactusLastDay ) >= 1 ) NVDLC03SinkBarrelCactus01REF.Enable; Set bSetBarrelCactusTimer to 0; Endif Endif ; ---------------- Broc Flower Timer -------------------- \/ If ( bSetBrocFlowerTimer == 1 ) Set fBrocFlowerCurrentDay to GameDaysPassed; If ( ( fBrocFlowerCurrentDay - fBrocFlowerLastDay ) >= 1 ) NVDLC03SinkBrocFlower01REF.Enable; NVDLC03SinkBrocFlower02REF.Enable; Set bSetBrocFlowerTimer to 0; Endif Endif ; ---------------- Honey Mesquite Timer ------------- \/ If ( bSetHoneyMesquiteTimer == 1 ) Set fHoneyMesquiteCurrentDay to GameDaysPassed; If ( ( fHoneyMesquiteCurrentDay - fHoneyMesquiteLastDay ) >= 1 ) NVDLC03SinkHoneyMesquite01REF.Enable; Set bSetHoneyMesquiteTimer to 0; Endif Endif ; --------------------- Jalapeno Timer ------------------- \/ If ( bSetJalapenoTimer == 1 ) Set fJalapenoCurrentDay to GameDaysPassed; If ( ( fJalapenoCurrentDay - fJalapenoLastDay ) >= 1 ) NVDLC03SinkJalapeno01REF.Enable; NVDLC03SinkJalapeno02REF.Enable; NVDLC03SinkJalapeno03REF.Enable; Set bSetJalapenoTimer to 0; Endif Endif ; --------------------- Maize Timer ------------------------ \/ If ( bSetMaizeTimer == 1 ) Set fMaizeCurrentDay to GameDaysPassed; If ( ( fMaizeCurrentDay - fMaizeLastDay ) >= 1 ) NVDLC03SinkMaize01REF.Enable; NVDLC03SinkMaize02REF.Enable; NVDLC03SinkMaize03REF.Enable; Set bSetMaizeTimer to 0; Endif Endif ; --------------------- Nevada Agave Timer ----------- \/ If ( bSetNevadaAgaveTimer == 1 ) Set fNevadaAgaveCurrentDay to GameDaysPassed; If ( ( fNevadaAgaveCurrentDay - fNevadaAgaveLastDay ) >= 1 ) NVDLC03SinkNevadaAgave01REF.Enable; NVDLC03SinkNevadaAgave02REF.Enable; NVDLC03SinkNevadaAgave03REF.Enable; Set bSetNevadaAgaveTimer to 0; Endif Endif ; --------------------- Pinto Bean Pod Timer --------- \/ If ( bSetPintoBeanPodTimer == 1 ) Set fPintoBeanPodCurrentDay to GameDaysPassed; If ( ( fPintoBeanPodCurrentDay - fPintoBeanPodLastDay ) >= 1 ) NVDLC03SinkPintoBean01REF.Enable; NVDLC03SinkPintoBean02REF.Enable; NVDLC03SinkPintoBean03REF.Enable; Set bSetPintoBeanPodTimer to 0; Endif Endif ; --------------------- Prickly Pear Timer --------------- \/ If ( bSetPricklyPearTimer == 1 ) Set fPricklyPearCurrentDay to GameDaysPassed; If ( ( fPricklyPearCurrentDay - fPricklyPearLastDay ) >= 1 ) NVDLC03SinkPricklyPear01REF.Enable; NVDLC03SinkPricklyPear02REF.Enable; NVDLC03SinkPricklyPear03REF.Enable; Set bSetPricklyPearTimer to 0; Endif Endif ; --------------------- Xander Root Timer--------------- \/ If ( bSetXanderRootTimer == 1 ) Set fXanderRootCurrentDay to GameDaysPassed; If ( ( fXanderRootCurrentDay - fXanderRootLastDay ) >= 1 ) NVDLC03SinkXanderRoot01REF.Enable; NVDLC03SinkXanderRoot02REF.Enable; Set bSetXanderRootTimer to 0; Endif Endif ; ---------------- White Horse Nettle Timer -------- \/ If ( bSetWhiteHorseNettleTimer == 1 ) Set fWhiteHorseNettleCurrentDay to GameDaysPassed; If ( ( fWhiteHorseNettleCurrentDay - fWhiteHorseNettleLastDay ) >= 1 ) NVDLC03SinkWhiteHorseNettle01REF.Enable; NVDLC03SinkWhiteHorseNettle02REF.Enable; Set bSetWhiteHorseNettleTimer to 0; Endif Endif Endif END; gamemode BEGIN MenuMode 1001 If ( bAwaitingInput == 1 ) Set nButton to GetButtonPressed; If ( nButton > -1 ) Set bAwaitingInput to 0; ; ------------------------------------------------------------------- BUTTON 0 ---------------------------------------------- \/ ; "Do Nothing" If ( nButton == 0 ) Set nButton to -1; Return; ; ------------------------------------------------------------------- BUTTON 1 ---------------------------------------------- \/ ; "Process Seed into planter" Elseif ( nButton == 1 ) Set nButton to -1; If ( Player.GetItemCount NVDLC03DriedBananaYuccaMISC == 1 ) Player.RemoveItem NVDLC03DriedBananaYuccaMISC 1; Set NVDLC03HQBuddy.bYucca to 1; ; SPW Set fBananaYuccaLastDay to GameDaysPassed; Set bSetBananaYuccaTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedBarrelCactusMISC == 1 ) Player.RemoveItem NVDLC03DriedBarrelCactusMISC 1; Set NVDLC03HQBuddy.bCactus to 1; ; SPW Set fBarrelCactusLastDay to GameDaysPassed; Set bSetBarrelCactusTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedBrocFlowerMISC == 1 ) Player.RemoveItem NVDLC03DriedBrocFlowerMISC 1; Set NVDLC03HQBuddy.bBroc to 1; ; SPW Set fBrocFlowerLastDay to GameDaysPassed; Set bSetBrocFlowerTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedHoneyMesquiteMISC == 1 ) Player.RemoveItem NVDLC03DriedHoneyMesquiteMISC 1; Set NVDLC03HQBuddy.bMesquite to 1; ; SPW Set fHoneyMesquiteLastDay to GameDaysPassed; Set bSetHoneyMesquiteTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedJalapenoMISC == 1 ) Player.RemoveItem NVDLC03DriedJalapenoMISC 1; Set NVDLC03HQBuddy.bJalapeno to 1; ; SPW Set fJalapenoLastDay to GameDaysPassed; Set bSetJalapenoTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedMaizeMISC == 1 ) Player.RemoveItem NVDLC03DriedMaizeMISC 1; Set NVDLC03HQBuddy.bMaize to 1; ; SPW Set fMaizeLastDay to GameDaysPassed; Set bSetMaizeTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedNevadaAgaveMISC == 1 ) Player.RemoveItem NVDLC03DriedNevadaAgaveMISC 1; Set NVDLC03HQBuddy.bAgave to 1; ; SPW Set fNevadaAgaveLastDay to GameDaysPassed; Set bSetNevadaAgaveTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedPintoBeanPodMISC == 1 ) Player.RemoveItem NVDLC03DriedPintoBeanPodMISC 1; Set NVDLC03HQBuddy.bPinto to 1; ; SPW Set fPintoBeanPodLastDay to GameDaysPassed; Set bSetPintoBeanPodTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedPricklyPearMISC == 1 ) Player.RemoveItem NVDLC03DriedPricklyPearMISC 1; Set NVDLC03HQBuddy.bPear to 1; ; SPW Set fPricklyPearLastDay to GameDaysPassed; Set bSetPricklyPearTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedXanderRootMISC == 1 ) Player.RemoveItem NVDLC03DriedXanderRootMISC 1; Set NVDLC03HQBuddy.bXander to 1; ; SPW Set fXanderRootLastDay to GameDaysPassed; Set bSetXanderRootTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif If ( Player.GetItemCount NVDLC03DriedWhiteHorseNettleMISC == 1 ) Player.RemoveItem NVDLC03DriedWhiteHorseNettleMISC 1; Set NVDLC03HQBuddy.bNettle to 1; ; SPW Set fWhiteHorseNettleLastDay to GameDaysPassed; Set bSetWhiteHorseNettleTimer to 1; If ( nSetAnyTimer < 11 ) Set nSetAnyTimer to ( nSetAnyTimer + 1 ); Endif Endif ; ------------------------------------------------------------------- BUTTON 2 ---------------------------------------------- \/ ; "Convert organic matter into Salient" Elseif ( nButton == 2 ) Set nButton to -1; Player.showRecipeMenu p20RecipeCategorySinkBioStation Endif Endif Else Return; Endif END; menumode 1001 Стоит отметить, что этот скрипт не полностью ванильный. Я брал за основу чужой мод и тамошний автор мог внести свои изменения. Также, наверное к делу относится топик, который должен включать такое же меню, что и кнопка в message box. В result script этого топика написана такая команда: SinkBioResearchStationREF.bCallBiologyUI to 1; При ее срабатывании открывается меню, как у верстака, но там только следующая recipe category: p20RecipeCategorySinkBioStation Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 5 мая, 2021 18 часов назад, RaggaL сказал: За основу брал скрипт от биологической исследовательской станции, просто сменил открываемое меню и ссылку на мой message box. Просто сменил ссылку... Да уж. Точнее сказать просто отодрал от скрипта маленький кусок... Так а в чем сейчас-то проблема? Вот это не компилируется или не работает так как ты задумал? Или что? Спойлер scn BioReactorScript short nButton short bAwaitingInput Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage BioReactorNoTalk endif endif End. BEGIN MenuMode 1001 If ( bAwaitingInput == 1 ) Set nButton to GetButtonPressed; If ( nButton > -1 ) Set bAwaitingInput to 0; ; ------------------------------------------------------------------- BUTTON 0 ---------------------------------------------- \/ ; "Go away" If ( nButton == 0 ) Set nButton to -1; Return; ; ------------------------------------------------------------------- BUTTON 1 ---------------------------------------------- \/ ; "Charge" Elseif ( nButton == 2 ) Set nButton to -1; Player.ShowRecipeMenu BioReactor Endif Endif Else Return; Endif END; menumode 1001 Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 5 мая, 2021 10 часов назад, Паха007 сказал: Просто сменил ссылку... Да уж. Точнее сказать просто отодрал от скрипта маленький кусок... Так а в чем сейчас-то проблема? Вот это не компилируется или не работает так как ты задумал? Или что? Показать контент scn BioReactorScript short nButton short bAwaitingInput Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage BioReactorNoTalk endif endif End. BEGIN MenuMode 1001 If ( bAwaitingInput == 1 ) Set nButton to GetButtonPressed; If ( nButton > -1 ) Set bAwaitingInput to 0; ; ------------------------------------------------------------------- BUTTON 0 ---------------------------------------------- \/ ; "Go away" If ( nButton == 0 ) Set nButton to -1; Return; ; ------------------------------------------------------------------- BUTTON 1 ---------------------------------------------- \/ ; "Charge" Elseif ( nButton == 2 ) Set nButton to -1; Player.ShowRecipeMenu BioReactor Endif Endif Else Return; Endif END; menumode 1001 Не сохраняется. Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 455 Опубликовано 6 мая, 2021 10 часов назад, RaggaL сказал: Не сохраняется. Поставь https://www.nexusmods.com/newvegas/mods/64888 Будет хотя бы писаться, почему. Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 6 мая, 2021 6 часов назад, MagnuMspec сказал: Поставь https://www.nexusmods.com/newvegas/mods/64888 Будет хотя бы писаться, почему. С ним дело пошло бодрее, пару ошибок выкорчевал. Застопорился на этом: "to" присутствует, но почему-то редактор продолжает его требовать. И без него тоже не работает,проверил на всякий случай. Новый скрипт выглядит вот так: Спойлер scn BioReactorScript short nButton short bAwaitingInput Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage BioReactorNoTalk endif endif End BEGIN MenuMode 1001 If ( bAwaitingInput == 1 ) Set nButton to GetButtonPressed; If ( nButton > -1 ) Set bAwaitingInput to 0 If ( nButton == 0 ) Set nButton to -1; Return; Elseif ( nButton == 2 ) Set nButton to -1; Player.ShowRecipeMenu BioReactor Endif Endif Else Return; Endif END; menumode 1001 Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 455 Опубликовано 6 мая, 2021 Может точку с запятой в конце строки поставить? 1 Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 6 мая, 2021 Сотри строчку целиком, сохрани скрипт и закрой его. Затем открой скрипт, впиши ее снова и попробуй сохранить. Почему скрипт ругается на "to" не понятно, единственное, что приходит на ум - o прописана по-русски. Если кто-то помнит, похожая проблема была у Allnart,ы когда-то давно, скрипт ругался на абсолютно правильную строчку. Как тогда решили это, я уже не помню. 1 Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 6 мая, 2021 Есть, стер-вписал и все сохранилось. Менюшечка появляется, но кнопка 1 не работает. Должно появляться мое recipe menu, в скрипте прописано по аналогии с оригиналом. Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 6 мая, 2021 Скриншот мессадж-бокса с менюшкой в студию. Что происходит при нажатии второй кнопки менюшки? Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 6 мая, 2021 В игре и в редакторе. Спойлер Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 7 мая, 2021 Видимо не работает твой блок MenuMode в скрипте. Скорее всего потому, что у тебя стоит условие If ( bAwaitingInput == 1 ), а сама переменная стоит на 0, вот блок и не срабатывает. Я не вижу, чтобы она где-то в скрипте начислялась. Она где-то начисляется вне скрипта? И какая у нее задача вообще? Зачем она нужна? А само окно активируется. Его активация прописана в блоке OnActivate, и этот блок работает. Поделиться сообщением Ссылка на сообщение
Вис691 663 Опубликовано 7 мая, 2021 11 часов назад, Паха007 сказал: Она где-то начисляется вне скрипта? И какая у нее задача вообще? Зачем она нужна? Вот по идее она должна быть там, где сообщение вызывается, т.е.: Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else set bAwaitingInput to 1 ShowMessage BioReactorNoTalk endif endif End. А смысл у неё простой - сказать, мол, вот мы вам менюшку вывели, ждём, что же вы выберете. Это чтобы не крутить целиком блок в MenuMode 1001 постоянно, когда он активен. 1 Поделиться сообщением Ссылка на сообщение
RaggaL 740 Опубликовано 7 мая, 2021 19 часов назад, Паха007 сказал: А само окно активируется. Его активация прописана в блоке OnActivate, и этот блок работает. Это хорошо, что работает. Потому что я не понимаю,как это работает. В чужом скрипте-работает. А здесь-нет. Так а что же мне делать? пробовал переписывать скрипт вручную (Ранее копировал-вставлял), раз в прошлый раз помогло. Но результата нет. Поделиться сообщением Ссылка на сообщение
Паха007 545 Опубликовано 10 мая, 2021 В 08.05.2021 в 02:53, RaggaL сказал: Так а что же мне делать? пробовал переписывать скрипт вручную (Ранее копировал-вставлял), раз в прошлый раз помогло. Но результата нет. Володя написал выше. Добавить строчку set bAwaitingInput to 1 выше строчки активации мессадж-бокса. 1 Поделиться сообщением Ссылка на сообщение