Перейти к содержанию

Sazan's Theme

Вопросы по моддингу Fallout 3 и New Vegas

Рекомендуемые сообщения

13 минут назад, ShadowSharkAlive сказал:

Кто нибудь знает почему до сих пор нет мода на реплейсер слайдов концовок игры? Сложно ли в реализации такого мода?

Смотря что из себя будет представлять этот реплейсер, перерисовка слайдов, замена озвучки?

Поделиться сообщением


Ссылка на сообщение
1 час назад, Паха007 сказал:

Смотря что из себя будет представлять этот реплейсер, перерисовка слайдов, замена озвучки?

Замена слайдов, я имею ввиду картинок. 

Просто обычно когда я прохожу Вегас, моя графика очевидно отличается от ванильной. Я бы мог переделать каждую сцену из конечных слайдов, только на новой графике. Другое дело - я не знаю как из этого сделать мод. Если бы мне кто то посодействовал - было бы очень круто. Я уверен - многим это понравится.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
9 часов назад, ShadowSharkAlive сказал:

Замена слайдов, я имею ввиду картинок. 

Просто обычно когда я прохожу Вегас, моя графика очевидно отличается от ванильной. Я бы мог переделать каждую сцену из конечных слайдов, только на новой графике. Другое дело - я не знаю как из этого сделать мод. Если бы мне кто то посодействовал - было бы очень круто. Я уверен - многим это понравится.

Самое сложное, пожалуй - это сами картинки сделать. А внедрить в игру не трудно, они там в качестве текстур находятся, в формате dds. По сути тут даже редактор не нужен, достаточно поменять ресурсы. Делайте красивые картинки, сделать из этого мод поможем.

Поделиться сообщением


Ссылка на сообщение
2 часа назад, Паха007 сказал:

Самое сложное, пожалуй - это сами картинки сделать. А внедрить в игру не трудно, они там в качестве текстур находятся, в формате dds. По сути тут даже редактор не нужен, достаточно поменять ресурсы. Делайте красивые картинки, сделать из этого мод поможем.

Благодарю! Как только у меня наладится со временем, сделаю все скриншоты и спишемся.

Поделиться сообщением


Ссылка на сообщение
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

 

Поделиться сообщением


Ссылка на сообщение
В 30.04.2021 в 15:05, RaggaL сказал:

Вроде бы все просто, надо переиначить кусок ванильного скрипта под свои REF ID. Но что там и за что отвечает-не понимаю. Интуитивно выделил вот такое:

В этом куске скрипта нет никаких рефID, я могу конечно написать что примерно означает каждая строчка скрипта, но надо ли оно?

Поделиться сообщением


Ссылка на сообщение
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

 

 

Поделиться сообщением


Ссылка на сообщение

Тогда можно так:

scn BioReactorScript

Begin OnActivate
    if IsActionRef player == 1 
        If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1
            setTalkingActivatorActor BioReactorNPC
            activate
        else
            ShowMessage NVDLC03HQBuddiesNoTalkMSG
    endif
End

 

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
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

Поделиться сообщением


Ссылка на сообщение
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

 

 

Поделиться сообщением


Ссылка на сообщение
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

А вообще, скинул бы ты исходник скрипта, с которого ты это скопировал, чтобы знать, что ты там поменял.

Поделиться сообщением


Ссылка на сообщение
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

Поделиться сообщением


Ссылка на сообщение
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

 

Поделиться сообщением


Ссылка на сообщение
10 часов назад, Паха007 сказал:

Просто сменил ссылку... Да уж. Точнее сказать просто отодрал от скрипта маленький кусок...

 

Так а в чем сейчас-то проблема? Вот это не компилируется или не работает так как ты задумал? Или что?

  Показать контент

 

Не сохраняется. 

Поделиться сообщением


Ссылка на сообщение
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

 

 

9999.png

Поделиться сообщением


Ссылка на сообщение

Может точку с запятой в конце строки поставить?

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Сотри строчку целиком, сохрани скрипт и закрой его. Затем открой скрипт, впиши ее снова и попробуй сохранить.

 

Почему скрипт ругается на "to" не понятно, единственное, что приходит на ум - o прописана по-русски. Если кто-то помнит, похожая проблема была у Allnart,ы когда-то давно, скрипт ругался на абсолютно правильную строчку. Как тогда решили это, я уже не помню.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Есть, стер-вписал и все сохранилось. Менюшечка появляется, но кнопка 1 не работает. Должно появляться мое recipe menu, в скрипте прописано по аналогии с оригиналом.

Поделиться сообщением


Ссылка на сообщение

Скриншот мессадж-бокса с менюшкой в студию.

 

Что происходит при нажатии второй кнопки менюшки?

Поделиться сообщением


Ссылка на сообщение

В игре и в редакторе.

 

Спойлер

Безымянный.pngScreenshot_1.png

 

Поделиться сообщением


Ссылка на сообщение

Видимо не работает твой блок MenuMode в скрипте. Скорее всего потому, что у тебя стоит условие If ( bAwaitingInput == 1 ), а сама переменная стоит на 0, вот блок и не срабатывает. Я не вижу, чтобы она где-то в скрипте начислялась. Она где-то начисляется вне скрипта? И какая у нее задача вообще? Зачем она нужна?

 

А само окно активируется. Его активация прописана в блоке OnActivate, и этот блок работает.

Поделиться сообщением


Ссылка на сообщение
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

Поделиться сообщением


Ссылка на сообщение
19 часов назад, Паха007 сказал:

А само окно активируется. Его активация прописана в блоке OnActivate, и этот блок работает.

Это хорошо, что работает. Потому что я не понимаю,как это работает. В чужом скрипте-работает. А здесь-нет.

Так а что же мне делать? пробовал переписывать скрипт вручную (Ранее копировал-вставлял), раз в прошлый раз помогло. Но результата нет.

Поделиться сообщением


Ссылка на сообщение
В 08.05.2021 в 02:53, RaggaL сказал:

Так а что же мне делать? пробовал переписывать скрипт вручную (Ранее копировал-вставлял), раз в прошлый раз помогло. Но результата нет.

Володя написал выше. Добавить строчку set bAwaitingInput to 1 выше строчки активации мессадж-бокса.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×
×
  • Создать...