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

RaggaL

Модмейкер [FL]
  • Публикаций

    1 223
  • Пожертвование

    0,00 ₽ 
  • Зарегистрирован

  • Посещение

  • Победитель дней

    51

Сообщения, опубликованные RaggaL


  1. Нашел на нексусе мод, позволяющий вылечить свои руки после замеса с Марко. Но не понравилось,что там сделано через скрипт, что приводит к несовместимости с другими модами, которые затрагивают Автодок из OWB. Сляпал свою версию, все делается через реплику. Но присобачить чужую иконку не удалось, ни в какую она в игре появляться не хочет. Извините, я правда пытался.
    Все равно как для мода изменений мало и ставить его никто не будет. А вот если будет обновление модуля работ someguy2000, то может и пригодилось бы.
     Прилагаю свой плагин и иконку.
    Автор плагина, который подал идею: https://www.nexusmods.com/newvegas/mods/69057?tab=description
    Мод,откуда взята иконка: https://www.nexusmods.com/newvegas/mods/65046

    Спойлер

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

     

     

    NoScars.esp

    perk_scarred.dds

    • Спасибо! 1

  2. В 22.05.2021 в 00:14, MagnuMspec сказал:

    В черный экран:

    IMod FadeToBlackISFX

     

    Обратно, точно не знаю, но можно попробовать:
    IMod    FadeInFromBlack2sISFX

    1)Вот так работает, но я не могу сообразить, как сделать правильно. Вписал обе команды в result script одного топика, поднявшись,что экран сначала станет черным, а потом обратно. Но получилось такое, как на скриншоте. Экран светлеет после выбора реплики.
    То есть дополнительно нужно прерывать диалог, вешать черный экран, потом его снимать и начинать диалог снова. А как? Делать топик goodbye, а дальше? Нужен пакет AI?
     

    Спойлер

    image.png


     

    Поясню, что это вообще такое и зачем нужно: ГГ говорит с неписем, не имеющим озвучки. ГГ задаст вопрос и будет должен получить ответ, но ввиду вышеуказанных причин это нужно оставить за кадром. То есть поле черного экрана, как бы выслушав ответ, ГГ ответит "ааа, понятно", а потом то,что на скриншоте. Я придумал так, но может, есть варианты получше?

    2)Попытался воспользоваться моддерским ресурсом Gallows and Nooses , но там нет инструкции. Действовал по аналогии с крестом. Эдитом скопировал виселицу в свой плагин, разместил виселицу в мире. Рядом поставил непися и сделал ему Вот такой пакет AI:
     

    Спойлер

    image.pngimage.png

     

    Но он не хочет вешаться на виселицу, а торчит из нее.

    Также мне не понятно, как сделать из этой виселицы активатор, чтобы при использовании появлялся message box. Это надо размещать триггер, и к нему цеплять activator? Или можно как-то к самому объекту?

    3) Как придать неписю имя, аналогичное имени ГГ? 


  3. И снова я с вопросами.
    1.Как сделать так,чтобы при входе в определенную локацию вывелся message box (С задержкой на несколько секунд), а при его закрытии стартовал квест?

    2. Как сделать,чтобы посреди диалога вывелся черный экран, а потом снова начался диалог? Типа как с Джоаной или Блестящей. Их я изучал, но не нашел ничего.


  4. 5 часов назад, Rexschwert сказал:

    Помочиться? Dude, на него cumming и в конце на нём a lot of semen других dudes. Если переводить, то что-то вроде "Спеченье", как что-то близкое к печенью или процессу выпекания (что в общем-то является процессом готовки, ведь в этой игре его готовят) и в то же время отдалённое напоминание о сперме или процессу "спускания". "Спученье" или "Спусченье", что практически тоже самое, но в большую сторону к глаголу "спускать". Можно так же попробовать и "Спусель", что напоминает о карусели, потому что в оригинальной игре там спускают по кругу, или уж совсем странное слово "Спусельченье" или "Спусеченье", что является химерой предыдущих  вариантов но с некой отсылкой на то, что это "развлеченье". К тому же, в зависимости от контекста, это может быть музыкальная группа (что мало вероятно) или "вялый пенис", что можно обозвать как "вялый". Но я хочу посмотреть, как это переведёт 65 летний дед.

    Это нужно высечь в граните.


  5. 19 часов назад, Паха007 сказал:

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

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

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


  6. 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


  7. 10 часов назад, Паха007 сказал:

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

     

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

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

     

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


  8. 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


  9. 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

     

     


  10. 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

     

     


  11. 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

     


  12. Вспомнил, что в моде про биореактор не сделал отключение личностного модуля, как у всех ванильных обитателей Стока. Потыкался в их реплики, но не до конца понял,как это работает.
    Есть квест NVDLC03DialogueHQBuddies, есть переменная bBuddiesTalk. Есть message box-ы с кнопками, открывающие меню рецептов био-станции или Магги.  А дальше как? Куда смотреть?


  13. 8 часов назад, Паха007 сказал:

    Галочку надо поставить Persisdent Reference (постоянная ссылка) в окне креста. И вообще это галочка должна стоять на всех объектах, которым ты даешь референс ID. Далее, надо нажать "окей" в окне, тем самым сохранить результат.

    Заработало, спасибо. С переключением появления непися тоже разобрался.

    • Нравится 1

  14. Скажите пожалуйста, что я делаю не так?
    НПС не вешается на крест. Я подглядел, что у ванильных все делает пакет ИИ. Скопировал и себе такой, разместил в мире объект мебели, но вот указать его как цель путешествия не могу, его нет в выпадающем списке. Пробовал делать через linked reference и у креста, и у непися, и у обоих сразу.

    Прилагаю скриншот, наверное неинформативный.
     

    Спойлер

    Screenshot_1.png


    Забегая вперед, спрошу. Если удастся его подвесить, возможно ли будет переключать enable/disable этого непися через GetScriptVariable?


  15. 12 часов назад, Паха007 сказал:

    Set RGLfollowerREF.RGLWeap to 0

    RGLfollowerREF.EVP

    Скрипты и диалоги сделаны, настал черед пакетов AI. Моррисон нанимается в отряд, появляется колесо компаньона. Но следовать за ГГ или менять оружие по команде не хочет. А еще нападает сразу после первой же атаки на него,чего у компаньона быть не должно. куда копать теперь?
     

    Спойлер

    Screenshot_5.png

     


  16. 38 минут назад, Паха007 сказал:

    Нет, потому, что ты переместил скрипт с квеста на NPC, и теперь условие GetQuestVariable надо сменить на GetScriptVariable, в нем найдешь своего NPC и его переменные.

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

    Условие GetQuestVariable используется для переменных скриптов, которые привязаны к квестам. Условие GetScriptVariable используется для переменных скриптов, которые привязаны к NPC и прочим объектам. 

    Я вроде бы понял, условия переделал. Естественно, это не работает. Выскакивает ошибка о невозможности сохранения result script. Ну я же понятливый, сменил квест на скрипт, как это видно в окне result script.  Но где же очередной косяк?
     

    Спойлер

    Screenshot_3.png
    Screenshot_4.png

     


  17. 2 часа назад, Паха007 сказал:

     

    Вот так должно сохраниться. Но будет-ли написанное тобой работать корректно в связки с какими-то твоими диалогами, которые я не знаю как реализованы, я не знаю. Какая-то это странная реализация.

    Хе, не думал,что так быстро вернусь.
    После внесения правок скрипт не захотел сохраняться. Оказалось, что его нужно цеплять не к квесту (Я так сделал), а к NPC. Сменил тип квеста с quest на object, сохранил и повесил на НПС. И это сломало все-все условия в диалогах, а новые создать не удается, так как в списке GetQuestVariable нет моего квеста.
    Немного бомбит.


  18. 1 час назад, Паха007 сказал:

    Вот так должно сохраниться. Но будет-ли написанное тобой работать корректно в связки с какими-то твоими диалогами, которые я не знаю как реализованы, я не знаю. Какая-то это странная реализация.

    Да куда мне самому сочинить...Пока не научился.
    Подрезал здесь: ВИДЕО, в описании оригинал скрипта. Там все было сделано как надо, это я в процессе внедрения своих переменных увлекся. 
    Спасибо за разъяснения, очень скоро вернусь с новыми вопросами.:crazy:


  19. 46 минут назад, Паха007 сказал:

    Во-первых, на что наложен этот скрипт? На NPC или квест? И что он должен делать по твоей задумке?

     

    Во-вторых, что это за бред сивой кобылы? Что ты хочешь сделать этими строчками?

    На квест. 

    Хочу топиками диалога переключать оружие npc с дальнего на ближний и обратно. 


  20. В 13.04.2021 в 03:23, Паха007 сказал:

    Главное не забывать компилировать все вписанные скриптовые строчки, кнопка находится рядом с окном. Если скриптовые строчки прописаны правильно, они сохраняться без проблем. Вот тут как раз, во время начисления нужного значения переменной (если это значение для запуска пакета), и нужно запускать процедуру пересмотра пакетов NPC. Тогда NPC начнет исполнять пакет незамедлительно. Например:

     

    Set RaggalQuest.RaggalValue to 1

    RaggalREF.evp

     

    В данном тексте - RaggalQuest - это твой квест, RaggalValue - это прописанная в скрипте квеста переменная, 1 - это значение, которое мы начисляем. А RaggalREF - это рееренс ID NPC, который выполняет пакет.

    Итак, я сделал нечто такое:
     

    Спойлер
    
    scn RGLfollowerScript2
    
    short RGLFollow ; 0=NO 1=YES
    short RGLWeap ; 0=range 1=melee
    short RGLDist ; 0=long 1=close
    short RGLWait ; 0=NO 1=Yes
    short RGLAgression ; 0=default 1=agressive 2=passive
    
    Begin OnLoad
    
    If RGLWeap ==0
       RGLfollowerREF.SetRGLWeap FollowersCombatStyleRanged
    Else
    If RGLWeap ==1
       RGLfollowerREF.SetRGLWeap FollowersCombatStyleMelee
    EndIf
    
    END

     

     

    Конечно же, скрипт не хочет сохраняться. Но почему?
    Если я правильно понимаю, то выше BeginOnLoad у меня мои личные переменные, которые я сам задаю и переключаю как хочу. Это даже работает, если писать в консоль sqv <Мой квест>, то я вижу смену этих переменных. Персонаж начинает следовать за ГГ вполне исправно, но вот ждать или увольняться не хочет, хотя пакеты AI с условиями есть. Ой, отвлекся.

    А ниже BeginOnLoad у меня пересекаются мои переменные и переменные самой игры, FollowersCombatStyleRanged я видел и переключал в окне создания NPC. Верно?


  21. 5 часов назад, Паха007 сказал:

    Тебе, похоже, вообще непонятен принцип работы скриптовых переменных. Значение всех переменных по умолчанию - 0. А ты уже сам начисляешь им значения. Начислять значения переменных можно где угодно и какие угодно. Приставка short говорит о том, что значения могут быть только целочисленные, не дробные.

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

    Хуже, он мне был понятен неправильно.  Я думал,что заранее должен прописать, какие у меня значения могут быть.
    Разъяснения в картинках хороши, помогло доделать скрипт, прописать переключения переменных через диалоги.
    Отпишусь, как только разберусь с работой диалогов и смогу проверить скрипт в деле.

    Страшно подумать,что будет дальше...Еще будет колесо компаньона, уникальный перк, который еще стоит придумать.


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