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

  • 0
FNVFUN

Рой не убивает жителей Тенпенни-Тауэр

Вопрос

Продолжение этой темы.

Рой не убивает жителей Тенпенни-Тауэр со временем при мирном решении конфликта. Попробовал пройти квест на чистом SFW (стояли только Project Nevada и SFW RA-Master), а также с модулем RA-Factions и фиксом из другой темы.

 

Что примечательно, я переигрывал этот момент при первых фиксах из предыдущей темы с модулем RA-Factions, и все было нормально.

Скрины переменных квеста без модулей RA

Сразу после завершения квеста

Спойлер

sqv 14E9F:

bandicam-2020-01-31-14-49-39-691.jpg

bandicam-2020-01-31-14-49-42-590.jpg
bandicam-2020-01-31-14-49-44-127.jpg

 

sqv 1ce93:

bandicam-2020-01-31-14-49-45-485.jpg

 

Через три дня после завершения квеста

Спойлер

sqv 14E9F:

bandicam-2020-01-31-14-49-49-137.jpg

bandicam-2020-01-31-14-49-50-232.jpg
bandicam-2020-01-31-14-49-51-324.jpg

 

sqv 1ce93:

bandicam-2020-01-31-14-49-52-889.jpg

 

Список загрузки:

Спойлер

FalloutNV.esm
SFW-Master.esm
ThePitt.esm
Anchorage.esm
BrokenSteel.esm
PointLookout.esm
Zeta.esm
DeadMoney.esm
HonestHearts.esm
OldWorldBlues.esm
LonesomeRoad.esm
GunRunnersArsenal.esm

Project Nevada - Core.esm
Project Nevada - Extra Options.esm
Project Nevada - Equipment.esm
Project Nevada - Cyberware.esp
Project Nevada - Rebalance.esp

The Mod Configuration Menu.esp

 

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


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

17 ответов на этот вопрос

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

  • 0

Поменял строчку в скрипте 0001EEF5

if || GameDaysPassed >= ( TenpDay ) || GameDaysPassed >= ( MurderDay - 1 )

На

if GameDaysPassed >= tenpDay || GameDaysPassed >= ( murderDay - 1 )

Сам фикс

TenpFix.esp

  • Нравится 1

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


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

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

 

Условие:

MS12.FeralsReleased >= 1 ИЛИ GameDaysPassed >= murderDay

 

GameDaysPassed - это сколько дней прошло с начала игры.

murderDay - это день X. На скрине он = 21.

 

Так как я хз, как показать GameDaysPassed в игре, стоит, видимо, подождать, максимум - 11 дней.

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


Ссылка на сообщение
  • 0
20 часов назад, MagnuMspec сказал:

стоит, видимо, подождать, максимум - 11 дней.

Подождал дней 15 - ничего не поменялось.

Спойлер

sqv 14E9F:

bandicam-2020-02-03-15-53-04-961.jpg
bandicam-2020-02-03-15-53-05-745.jpg
bandicam-2020-02-03-15-53-02-265.jpg

 

sqv 1ce93:

bandicam-2020-02-03-15-53-06-454.jpg

 

Может ли быть баг из-за того, что я не убедил некоторых npc принять гулей, а обокрал их магазин - из-за этого они психанули и сами ушли из Тенпенни-Тауэр, после чего дружки Роя сразу же встали за их магазины. Может быть, если бы я их убедил, бага бы не произошло...

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


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

не знаю. Условия я перечислил. Ничего другого влиять не должно.

Если какие-то старые фиксы это исправляли, надо бы это проверить конкретно.

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


Ссылка на сообщение
  • 0
1 час назад, MagnuMspec сказал:

не знаю. Условия я перечислил. Ничего другого влиять не должно.

Если какие-то старые фиксы это исправляли, надо бы это проверить конкретно.

Проверю

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


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

Потестил со старым фиксом. Потестил с убеждением всех жителей Тенпенни-Тауэр о заселении Роя, а не через воровство магазинов. Все равно не работает.

Вот скрины с модулем RA-Factions и последним фиксом из этой темы и полностью с нуля пройденным данным квестом

Переменная GameDaysPassed показывается командой show GameDaysPassed (тыкнул наугад команду - угадал с первой попытки :lol:)

Как мы видим, условия активации Роя-убийцы выполнены, а жители Тенпенни-Тауэр все равно живы:

Спойлер

show GameDaysPassed и sqv 14E9F:

bandicam-2020-02-04-18-57-22-595.jpg
bandicam-2020-02-04-18-57-24-154.jpg

bandicam-2020-02-04-18-57-26-340.jpg

 

sqv 1ce93

bandicam-2020-02-04-18-57-32-818.jpg

 

Черт его знает, что делать........

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


Ссылка на сообщение
  • 0
В 02.02.2020 в 19:01, MagnuMspec сказал:

Так как я хз, как показать GameDaysPassed в игре, стоит, видимо, подождать, максимум - 11 дней.

Кстати почему именно 11 дней?) Мож че упустил

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


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

Похоже нашел ошибку в скрипте 0001EEF5 в файле GunRunnersArsenal.esm. Тут какое-то непонятное условие.

				if || GameDaysPassed >= ( TenpDay ) || GameDaysPassed >= ( MurderDay - 1 )

Или так и должно быть?

 

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

 

В общем пробовал играть с исправленным скриптом (esp-фикс) на чистом SFW и со всеми модулями - все стабильно идет. Без исправленного скрипта даже если сохранения почистить - не работает.

 

Почему раньше при первых фиксах из этой темы жители Тенпенни-Тауэр умирали, не знаю. Возможно, из-за отключенной функции bNoFailedScriptLocks в плагине JIP LN NVSE, т.е. отрезок кода, где умирает Тенпенни не срабатывает и до следующего рестарта не используется, а остальной код после него срабатывает, (если это так работает)... Короче много вопросов

 

 

Исправленный код, просьба проверить, а то я не шарю, но с ним все работает.

				if GameDaysPassed >= tenpDay

Не совсем понимаю, зачем добавили в первоначальный код условие GameDaysPassed >= ( MurderDay - 1 ), ведь из кода понятно, что MurderDay равен 7, а TenpDay - трем, то есть условие GameDaysPassed >= ( MurderDay - 1 ) никогда не будет выполняться, или я что-то не понимаю... Так что, возможно, стоит добавить еще и второе условие, как в самом начале сообщения

 

Вот весь исправленный код

Спойлер

scn MS12FinScript

float repairDay			;the day the ferals were released, used to revert switch tenpenny tower back to normal

short TenpennyRepaired 	;is the Tenpenny Tower cells returned to normal state used in conditions

short TenpennyCorpse		;0 = unset, 1 = player has "seen" Tenpenny's corpse, set by MS12TenpennyDeadTriggerScript

float murderDay		;the day that the Ghouls murder the human residents after they agree to cohabitate
float tenpDay
short murdered

short BasementCorpses  ;0 = unset, 1 = player has seen corpses ;used in dialog with the ghouls

Begin GameMode
	
	;handles the ghoul mask clearing faction crime so once player drops out of combat he can wear the mask to not aggro ferals again
	if player.IsInCombat
		ClearFactionPlayerEnemyFlag feralGhoulFaction


	endif



	;Ghouls into Tenpenny attack version:
	if MS12.GhoulsOk == 2
		if player.IsInInterior == 0
			BessieLynnRef.moveto xMS12AttackLobby
			MichaelMastersRef.moveto xMS12AttackLobby
			set repairDay to GameDaysPassed + 3
			set MS12.GhoulsOk to 3
			setQuestDelay MS12Fin 1
		endif

	endif
	
	;Swap Cells
	if MS12.GhoulsOk == 3
		if GameDaysPassed > repairDay
			if player.IsInInterior == 0
				MS12DoorToggle.enable			;toggles off the door to the "attack scene" interior, and toggles on the door to the normal interior
				setStage MS12Fin 2	;moves followers out of the attack version interior into the courtyard
				MS12FollowerEscapeHatchExteriorRef.enable
				MS12FollowerEscapeHatchInteriorRef.enable

				set TenpennyRepaired to 1
				set MS12.GhoulsOk to 4
				AllistairTenpennyDoorRef.unlock
			endif
		endif
	endif

	;Move into Tenpenny regular non-attack version
	If MS12.GhoulsOk == 4
		if player.IsInInterior == 0

			if RoyPhillipsRef.getDead == 0
				RoyPhillipsRef.moveto TenpennyLobby
			endif

			if MichaelMastersRef.getDead == 0
				MichaelMastersRef.moveto TenpennyLobby			
				VendorContainerMichaelMastersRef.enable
				VendorContainerLydiaMontenegroRef.disable
			endif

			if BessieLynnRef.getDead == 0
				BessieLynnRef.moveto TenpennyLobby			
				VendorContainerBessieLynnRef.enable
				VendorContainerAnthonyLingRef.disable
			endif

			if ShakesRef.getDead == 0
				ShakesRef.moveto xShakesStandHere
			endif

			if RoyPhillipsRef.getDead == 0
				set tenpDay to GameDaysPassed + 3
				set murderDay to GameDaysPassed + 7
				set MS12.GhoulsOk to 5
				setQuestDelay MS12Fin 0
			endif

			if RoyPhillipsRef.getDead == 1
				set murderDay to 65535
				set MS12.GhoulsOk to 10
				setQuestDelay MS12Fin 0
			endif

		endif
	Endif

if MS12.GhoulsOk == 5
	if RoyPhillipsRef.getDead != 0
		set 	MS12.GhoulsOk to 10
		set murderDay to 65535
	endif
endif

if MS12.GhoulsOk == 5
	if RoyPhillipsRef.getDead == 0
		
		;if the attack scene happened OR they've been cohabitating for a few days, then put the corpses in the basement
		if murdered == 0

; check if we kill Tenpenny
			if AllistairTenpennyRef.getDead == 0
				if GameDaysPassed >= TenpDay
					AllistairTenpennyRef.kill
					AllistairTenpennyRef.disable
					MS12TenpennyDeadTriggerRef.enable
				endif
			endif
; back to vanilla

			if player.IsInInterior == 0

				if MS12.FeralsReleased >= 1 || GameDaysPassed >= murderDay

					;set up radio station rumors
					set MS12GhoulsMovedIn to 1
					Set RadioGalaxyNewsQuest.MS12Clear to ( GameDaysPassed + 1 )	
					Set RadioGalaxyNewsQuest.ExploitReady to 1

					set murdered to 1

					;enable corpses and feral ghoul in basement
					MS12TenpennyCorpseBasementTriggerRef.enable

					;make sure everyone is dead and disabled
					AllistairTenpennyRef.kill
					AllistairTenpennyRef.disable
					AnthonyLingRef.kill
					AnthonyLingRef.disable
					ChiefGustavoRef.kill
					ChiefGustavoRef.disable
					DoctorBanfieldRef.kill
					DoctorBanfieldRef.disable
					EdgarWellingtonIIRef.kill
					EdgarWellingtonIIRef.disable
					HerbertDashwoodRef.kill
					HerbertDashwoodRef.disable	
					IrvingChengRef.kill
					IrvingChengRef.disable
					LydiaMontenegroRef.kill
					LydiaMontenegroRef.disable
					MargaretPrimroseRef.kill
					MargaretPrimroseRef.disable
					MichaelHawthorneRef.kill
					MichaelHawthorneRef.disable
					MillicentWellingtonRef.kill
					MillicentWellingtonRef.disable
					SusanLancasterRef.kill
					SusanLancasterRef.disable
					TiffanyChengRef.kill
					TiffanyChengRef.disable
	
					TenpennyGuardDay1Ref.kill
					TenpennyGuardDay1Ref.disable
					TenpennyGuardDay2Ref.kill
					TenpennyGuardDay2Ref.disable
					TenpennyGuardDay3Ref.kill
					TenpennyGuardDay3Ref.disable
					JoJoRef.kill
					JoJoRef.disable
					TenpennyGuardDay5Ref.kill
					TenpennyGuardDay5Ref.disable	
					TenpennyGuardNight1Ref.kill
					TenpennyGuardNight1Ref.disable
					TenpennyGuardNight3Ref.kill
					TenpennyGuardNight3Ref.disable
					TenpennyGuardNight5Ref.kill
					TenpennyGuardNight5Ref.disable	
	
					TenpennyResidentFemaleA1TEMPLATERef.disable
					TenpennyResidentFemaleA2Ref.disable
					TenpennyResidentFemaleB1TEMPLATERef.disable
					TenpennyResidentMaleA1Ref.disable
					TenpennyResidentMaleA2Ref.disable
					TenpennyResidentMaleB1Ref.disable
					TenpennyResidentMaleC1Ref.disable
					TenpennyResidentFemaleC1TEMPLATERef.disable
					TenpennyResidentFemaleD1TEMPLATERef.disable
					;TenpennyResidentFemaleD2Ref.disable
					TenpennyResidentMaleD1Ref.disable
					;TenpennyResidentMaleD2Ref.disable

				endif		;if MS12.FeralsReleased != 0
			endif		 ;murdered == 0
		endif		;if player.IsInInterior == 0
	endif		;if RoyPhillipsRef.getDead == 0
endif		;if MS12.GhoulsOk == 5


End

 

 

Получается, что концовки из этой темы не соответствуют действительности, т.к., чтобы спасти всех жителей от смерти, у ГГ есть 7 дней, а чтобы спасти Алистера Тенпенни - 3 дня. Или же этот файл до сих пор не вшит в SFW?

 

Вроде все расписал

 

Скрин с исправленной игрой

Спойлер

bandicam-2020-02-07-14-34-13-744.jpg

 

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


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

MurderDay - это по идее как раз фатальный день убийства жильцов гулями. И убийство происходит тогда, когда GameDaysPassed становится больше этого значения.

А GameDaysPassed  - это хз как в игре увидеть, т.к. это фактическое кол-во дней в игре.

 

TenpDay фиг знает что за переменная.

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


Ссылка на сообщение
  • 0
1 час назад, MagnuMspec сказал:

MurderDay - это по идее как раз фатальный день убийства жильцов гулями. И убийство происходит тогда, когда GameDaysPassed становится больше этого значения.

Да. Только в том месте кода, которое я скинул, эта переменная является одним из условий смерти Алистера Тенпенни, а не жителей Тенпенни-Тауэр. Про убийства жильцов нет речи.

Вот этот отрывок кода:

Спойлер

if MS12.GhoulsOk == 5
    if RoyPhillipsRef.getDead == 0
        
        ;if the attack scene happened OR they've been cohabitating for a few days, then put the corpses in the basement
        if murdered == 0

; check if we kill Tenpenny
            if AllistairTenpennyRef.getDead == 0
                if || GameDaysPassed >= ( TenpDay ) || GameDaysPassed >= ( MurderDay - 1 )
                    AllistairTenpennyRef.kill
                    AllistairTenpennyRef.disable
                    MS12TenpennyDeadTriggerRef.enable
                endif

            endif
; back to vanilla

 

А вот отрывок кода, где переменным MurderDay и TenpDay присваиваются значения

Спойлер

If MS12.GhoulsOk == 4
        if player.IsInInterior == 0      

   

        (тут пропущены не интересующие нас скрипты)

 

         if RoyPhillipsRef.getDead == 0
                set tenpDay to GameDaysPassed + 3
                set murderDay to GameDaysPassed + 7

                set MS12.GhoulsOk to 5
                setQuestDelay MS12Fin 0

 

То есть есть два условия, при которых старикан умирает это GameDaysPassed >= ( TenpDay ) или GameDaysPassed >= ( MurderDay - 1 ), но второе условие (MurderDay) всегда будет больше, чем первое (TenpDay), а значит первое условие будет выполняться РАНЬШЕ, и Алистер Тенпенни будет умирать, а второе условие так и не будет никогда выполняться, поэтому непонятно, зачем вообще его добавили. Но на всякий случай можно его оставить, и тогда то исправленное место, что я скидывал  в начале примет на такой вид

               if GameDaysPassed >= TenpDay || GameDaysPassed >= ( MurderDay - 1 )

Только круглые скобки нужны или нет, я не знаю, т.к. не в курсе, какой тут синтаксис и что это за язык программирования...

 

Тогда получится такой код:

Спойлер

scn MS12FinScript

float repairDay			;the day the ferals were released, used to revert switch tenpenny tower back to normal

short TenpennyRepaired 	;is the Tenpenny Tower cells returned to normal state used in conditions

short TenpennyCorpse		;0 = unset, 1 = player has "seen" Tenpenny's corpse, set by MS12TenpennyDeadTriggerScript

float murderDay		;the day that the Ghouls murder the human residents after they agree to cohabitate
float tenpDay
short murdered

short BasementCorpses  ;0 = unset, 1 = player has seen corpses ;used in dialog with the ghouls

Begin GameMode
	
	;handles the ghoul mask clearing faction crime so once player drops out of combat he can wear the mask to not aggro ferals again
	if player.IsInCombat
		ClearFactionPlayerEnemyFlag feralGhoulFaction


	endif



	;Ghouls into Tenpenny attack version:
	if MS12.GhoulsOk == 2
		if player.IsInInterior == 0
			BessieLynnRef.moveto xMS12AttackLobby
			MichaelMastersRef.moveto xMS12AttackLobby
			set repairDay to GameDaysPassed + 3
			set MS12.GhoulsOk to 3
			setQuestDelay MS12Fin 1
		endif

	endif
	
	;Swap Cells
	if MS12.GhoulsOk == 3
		if GameDaysPassed > repairDay
			if player.IsInInterior == 0
				MS12DoorToggle.enable			;toggles off the door to the "attack scene" interior, and toggles on the door to the normal interior
				setStage MS12Fin 2	;moves followers out of the attack version interior into the courtyard
				MS12FollowerEscapeHatchExteriorRef.enable
				MS12FollowerEscapeHatchInteriorRef.enable

				set TenpennyRepaired to 1
				set MS12.GhoulsOk to 4
				AllistairTenpennyDoorRef.unlock
			endif
		endif
	endif

	;Move into Tenpenny regular non-attack version
	If MS12.GhoulsOk == 4
		if player.IsInInterior == 0

			if RoyPhillipsRef.getDead == 0
				RoyPhillipsRef.moveto TenpennyLobby
			endif

			if MichaelMastersRef.getDead == 0
				MichaelMastersRef.moveto TenpennyLobby			
				VendorContainerMichaelMastersRef.enable
				VendorContainerLydiaMontenegroRef.disable
			endif

			if BessieLynnRef.getDead == 0
				BessieLynnRef.moveto TenpennyLobby			
				VendorContainerBessieLynnRef.enable
				VendorContainerAnthonyLingRef.disable
			endif

			if ShakesRef.getDead == 0
				ShakesRef.moveto xShakesStandHere
			endif

			if RoyPhillipsRef.getDead == 0
				set tenpDay to GameDaysPassed + 3
				set murderDay to GameDaysPassed + 7
				set MS12.GhoulsOk to 5
				setQuestDelay MS12Fin 0
			endif

			if RoyPhillipsRef.getDead == 1
				set murderDay to 65535
				set MS12.GhoulsOk to 10
				setQuestDelay MS12Fin 0
			endif

		endif
	Endif

if MS12.GhoulsOk == 5
	if RoyPhillipsRef.getDead != 0
		set 	MS12.GhoulsOk to 10
		set murderDay to 65535
	endif
endif

if MS12.GhoulsOk == 5
	if RoyPhillipsRef.getDead == 0
		
		;if the attack scene happened OR they've been cohabitating for a few days, then put the corpses in the basement
		if murdered == 0

; check if we kill Tenpenny
			if AllistairTenpennyRef.getDead == 0
				if GameDaysPassed >= TenpDay || GameDaysPassed >= ( MurderDay - 1 )
					AllistairTenpennyRef.kill
					AllistairTenpennyRef.disable
					MS12TenpennyDeadTriggerRef.enable
				endif
			endif
; back to vanilla

			if player.IsInInterior == 0

				if MS12.FeralsReleased >= 1 || GameDaysPassed >= murderDay

					;set up radio station rumors
					set MS12GhoulsMovedIn to 1
					Set RadioGalaxyNewsQuest.MS12Clear to ( GameDaysPassed + 1 )	
					Set RadioGalaxyNewsQuest.ExploitReady to 1

					set murdered to 1

					;enable corpses and feral ghoul in basement
					MS12TenpennyCorpseBasementTriggerRef.enable

					;make sure everyone is dead and disabled
					AllistairTenpennyRef.kill
					AllistairTenpennyRef.disable
					AnthonyLingRef.kill
					AnthonyLingRef.disable
					ChiefGustavoRef.kill
					ChiefGustavoRef.disable
					DoctorBanfieldRef.kill
					DoctorBanfieldRef.disable
					EdgarWellingtonIIRef.kill
					EdgarWellingtonIIRef.disable
					HerbertDashwoodRef.kill
					HerbertDashwoodRef.disable	
					IrvingChengRef.kill
					IrvingChengRef.disable
					LydiaMontenegroRef.kill
					LydiaMontenegroRef.disable
					MargaretPrimroseRef.kill
					MargaretPrimroseRef.disable
					MichaelHawthorneRef.kill
					MichaelHawthorneRef.disable
					MillicentWellingtonRef.kill
					MillicentWellingtonRef.disable
					SusanLancasterRef.kill
					SusanLancasterRef.disable
					TiffanyChengRef.kill
					TiffanyChengRef.disable
	
					TenpennyGuardDay1Ref.kill
					TenpennyGuardDay1Ref.disable
					TenpennyGuardDay2Ref.kill
					TenpennyGuardDay2Ref.disable
					TenpennyGuardDay3Ref.kill
					TenpennyGuardDay3Ref.disable
					JoJoRef.kill
					JoJoRef.disable
					TenpennyGuardDay5Ref.kill
					TenpennyGuardDay5Ref.disable	
					TenpennyGuardNight1Ref.kill
					TenpennyGuardNight1Ref.disable
					TenpennyGuardNight3Ref.kill
					TenpennyGuardNight3Ref.disable
					TenpennyGuardNight5Ref.kill
					TenpennyGuardNight5Ref.disable	
	
					TenpennyResidentFemaleA1TEMPLATERef.disable
					TenpennyResidentFemaleA2Ref.disable
					TenpennyResidentFemaleB1TEMPLATERef.disable
					TenpennyResidentMaleA1Ref.disable
					TenpennyResidentMaleA2Ref.disable
					TenpennyResidentMaleB1Ref.disable
					TenpennyResidentMaleC1Ref.disable
					TenpennyResidentFemaleC1TEMPLATERef.disable
					TenpennyResidentFemaleD1TEMPLATERef.disable
					;TenpennyResidentFemaleD2Ref.disable
					TenpennyResidentMaleD1Ref.disable
					;TenpennyResidentMaleD2Ref.disable

				endif		;if MS12.FeralsReleased != 0
			endif		 ;murdered == 0
		endif		;if player.IsInInterior == 0
	endif		;if RoyPhillipsRef.getDead == 0
endif		;if MS12.GhoulsOk == 5


End

 

 

 

 

 

1 час назад, MagnuMspec сказал:

А GameDaysPassed  - это хз как в игре увидеть, т.к. это фактическое кол-во дней в игре.

В 04.02.2020 в 19:04, FNVFUN сказал:

Переменная GameDaysPassed показывается командой show GameDaysPassed (тыкнул наугад команду - угадал с первой попытки :lol:)

У меня на последних игровых скринах GameDaysPassed указан в консоли

 

 

 

1 час назад, MagnuMspec сказал:

TenpDay фиг знает что за переменная.

TenpDay - это час X для Алистера Тенпенни. Он умирает именно тогда, когда GameDaysPassed будет больше либо равен TenpDay. А сам TenpDay равен GameDaysPassed + 3, то есть через три дня после срабатывания скрипта умирает Алистер Тенпенни. Еще через 4 дня умирают жители, отсчет смерти которых определяет переменная MurderDay.

 

 

 

В общем я могу скинуть фикс скрипта. Мне нужна лишь информация, в каком виде его скидывать. В FNVEDIT в esp-файле должен быть только сам скрипт без чего-либо еще?

И в каком виде скидывать: с исправленным скриптом таким образом?

				if GameDaysPassed >= tenpDay

Или таким?

               if GameDaysPassed >= TenpDay || GameDaysPassed >= ( MurderDay - 1 )

 

И нужно ли заносить в скобки "( MurderDay - 1 )"?

 

И вообще та часть скрипта, про которую я написал, является неправильной или я несу бред? Там после if стоит логическое ИЛИ, так ведь не должно быть.

				if || GameDaysPassed >= ( TenpDay ) || GameDaysPassed >= ( MurderDay - 1 )

 

Дурдом в общем :lol:

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


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

Синтаксис мне и самому не до конца ясен, потому в непонятных местах стараюсь делать без таких мудростей.)

 

Я не пойму. Смотри.

Кусок скрипта про GhouldOk=5 такой:

 

if MS12.GhoulsOk == 5
	if RoyPhillipsRef.getDead == 0
		
		;if the attack scene happened OR they've been cohabitating for a few days, then put the corpses in the basement
		if murdered == 0

; check if we kill Tenpenny
			if AllistairTenpennyRef.getDead == 0
				if || GameDaysPassed >= ( TenpDay ) || GameDaysPassed >= ( MurderDay - 1 )
					AllistairTenpennyRef.kill
					AllistairTenpennyRef.disable
					MS12TenpennyDeadTriggerRef.enable
				endif
			endif
; back to vanilla

			if player.IsInInterior == 0

				if MS12.FeralsReleased >= 1 || GameDaysPassed >= murderDay

					;set up radio station rumors
					set MS12GhoulsMovedIn to 1
					Set RadioGalaxyNewsQuest.MS12Clear to ( GameDaysPassed + 1 )	
					Set RadioGalaxyNewsQuest.ExploitReady to 1

					set murdered to 1

					;enable corpses and feral ghoul in basement
					MS12TenpennyCorpseBasementTriggerRef.enable

					;make sure everyone is dead and disabled
					AllistairTenpennyRef.kill
					AllistairTenpennyRef.disable
					AnthonyLingRef.kill
					AnthonyLingRef.disable
					ChiefGustavoRef.kill
					ChiefGustavoRef.disable
					DoctorBanfieldRef.kill
					DoctorBanfieldRef.disable
					EdgarWellingtonIIRef.kill
					EdgarWellingtonIIRef.disable
					HerbertDashwoodRef.kill
					HerbertDashwoodRef.disable	
					IrvingChengRef.kill
					IrvingChengRef.disable
					LydiaMontenegroRef.kill
					LydiaMontenegroRef.disable
					MargaretPrimroseRef.kill
					MargaretPrimroseRef.disable
					MichaelHawthorneRef.kill
					MichaelHawthorneRef.disable
					MillicentWellingtonRef.kill
					MillicentWellingtonRef.disable
					SusanLancasterRef.kill
					SusanLancasterRef.disable
					TiffanyChengRef.kill
					TiffanyChengRef.disable
	
					TenpennyGuardDay1Ref.kill
					TenpennyGuardDay1Ref.disable
					TenpennyGuardDay2Ref.kill
					TenpennyGuardDay2Ref.disable
					TenpennyGuardDay3Ref.kill
					TenpennyGuardDay3Ref.disable
					JoJoRef.kill
					JoJoRef.disable
					TenpennyGuardDay5Ref.kill
					TenpennyGuardDay5Ref.disable	
					TenpennyGuardNight1Ref.kill
					TenpennyGuardNight1Ref.disable
					TenpennyGuardNight3Ref.kill
					TenpennyGuardNight3Ref.disable
					TenpennyGuardNight5Ref.kill
					TenpennyGuardNight5Ref.disable	
	
					TenpennyResidentFemaleA1TEMPLATERef.disable
					TenpennyResidentFemaleA2Ref.disable
					TenpennyResidentFemaleB1TEMPLATERef.disable
					TenpennyResidentMaleA1Ref.disable
					TenpennyResidentMaleA2Ref.disable
					TenpennyResidentMaleB1Ref.disable
					TenpennyResidentMaleC1Ref.disable
					TenpennyResidentFemaleC1TEMPLATERef.disable
					TenpennyResidentFemaleD1TEMPLATERef.disable
					;TenpennyResidentFemaleD2Ref.disable
					TenpennyResidentMaleD1Ref.disable
					;TenpennyResidentMaleD2Ref.disable

				endif		;if MS12.FeralsReleased != 0
			endif		 ;murdered == 0
		endif		;if player.IsInInterior == 0
	endif		;if RoyPhillipsRef.getDead == 0
endif		;if MS12.GhoulsOk == 5

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

 

Если так, что полагаю нужно убрать || после if, они там лишние. Мне кажется.

 

*Фикс можно в виде esp, рабочий вариант вошью да и всё.)

 

 

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


Ссылка на сообщение
  • 0
56 минут назад, MagnuMspec сказал:

Если так, что полагаю нужно убрать || после if, они там лишние. Мне кажется.

Да. Насчет скобок ( ) прочитал вроде они не нужны и используются для более удобного выделения текста. Меня смущает вот это условие GameDaysPassed >= ( MurderDay - 1 ) - фактически оно просто никогда не будет использоваться в игре. Возможно, используется как затычка для чего-то или это я туплю...

Я тестил с фиксом, в котором не только убрал || после if, но и убрал это условие, но на всякий случай, наверно, лучше только убрать || после if, а все остальное оставить как есть, вреда не должно быть.

 

Скину esp-файл, просто когда я из GunRunnersArsenal.esm пытаюсь создать esp-файл, который правит только нужный скрипт, в этом esp-файле все равно появляются какие-то другие переменные (типа block, cell) помимо исправленного скрипта...

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


Ссылка на сообщение
  • 0
20 минут назад, MagnuMspec сказал:

работает?

Ну да... Но на всякий случай проверил - работает

  • Нравится 1

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


Ссылка на сообщение
  • 0
2 часа назад, MagnuMspec сказал:

работает?

К сожалению, данный скрипт также задействован в фиксе из этой темы, и если его в будущем вшить в RA-Factions, то он будет перезаписывать плагин GunRunnersArsenal.esm.

Данный скрипт необходимо либо удалить из фикса из другой темы, т.к. там скрипт аналогичен оригинальному GunRunnersArsenal.esm, либо заменить на фикс из этой темы. :)

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


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

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

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

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

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

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

Войти

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

Войти


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