В процессе отбирания / возвращения инвентаря слетает счетчик DCDialogueSnowglobes.iDCSnowglobeTotal в DCSnowglobeDisplayScript [SCPT:0B300001] в результате чего перк коллекционер получается досрочно и теряется возможность дособрать шары на стенды. Предлагаю оторвать его нафиг, а проверять состояния рефов на эталонном стенде в Мегатонне примерно так:
Вместо
Спойлер
begin onActivate player
if Player.HasPerk AASnowglobCollection == 0
if DCDialogueSnowglobes.iDCSnowglobeTotal < 12
startQuest DCSnowglobeEnabler
elseif DCDialogueSnowglobes.iDCSnowglobeTotal == 12
startQuest DCSnowglobeEnabler
Player.addperk AASnowglobCollection
if Once == 0
ShowMessage DCAddPerkMessage
ShowMessage DCSnowglobeFinalMessage
set Once to 1
endif
endif
else
if Act == 0
Set Act to 1
endif
endif
end
Заменить на
Спойлер
begin onActivate player
if HD01MonumGlobeREF.GetDisabled || HD01TenpGlobeREF.GetDisabled || HD01PentagGlobeREF.GetDisabled || HD01CapitolGlobeREF.GetDisabled || HD01RooseveltGlobeREF.GetDisabled || HD01ParadiseGlobeREF.GetDisabled || HD01LamplightGlobeREF.GetDisabled || HD01PittGlobeREF.GetDisabled || HD01PointLookoutGlobeREF.GetDisabled || HD01AdamsGlobeREF.GetDisabled || HD01AnchGlobeREF.GetDisabled || HD01MothershipGlobeREF.GetDisabled
' если шары не все удаляем ошибочный перк и добавляем шары из инвентаря
player.RemovePerk AASnowglobCollection
startQuest DCSnowglobeEnabler
endif
if HD01MonumGlobeREF.GetDisabled || HD01TenpGlobeREF.GetDisabled || HD01PentagGlobeREF.GetDisabled || HD01CapitolGlobeREF.GetDisabled || HD01RooseveltGlobeREF.GetDisabled || HD01ParadiseGlobeREF.GetDisabled || HD01LamplightGlobeREF.GetDisabled || HD01PittGlobeREF.GetDisabled || HD01PointLookoutGlobeREF.GetDisabled || HD01AdamsGlobeREF.GetDisabled || HD01AnchGlobeREF.GetDisabled || HD01MothershipGlobeREF.GetDisabled
' если шары не все ничего не делаем (чтобы не страдать фигней с инверсиями условий)
elseif Player.HasPerk AASnowglobCollection == 0
Player.AddPerk AASnowglobCollection
ShowMessage DCAddPerkMessage
ShowMessage DCSnowglobeFinalMessage
else
if Act == 0
Set Act to 1
endif
endif
end
В процессе отбирания / возвращения инвентаря слетает счетчик DCDialogueSnowglobes.iDCSnowglobeTotal в DCSnowglobeDisplayScript [SCPT:0B300001] в результате чего перк коллекционер получается досрочно и теряется возможность дособрать шары на стенды. Предлагаю оторвать его нафиг, а проверять состояния рефов на эталонном стенде в Мегатонне примерно так:
Вместо
begin onActivate player if Player.HasPerk AASnowglobCollection == 0 if DCDialogueSnowglobes.iDCSnowglobeTotal < 12 startQuest DCSnowglobeEnabler elseif DCDialogueSnowglobes.iDCSnowglobeTotal == 12 startQuest DCSnowglobeEnabler Player.addperk AASnowglobCollection if Once == 0 ShowMessage DCAddPerkMessage ShowMessage DCSnowglobeFinalMessage set Once to 1 endif endif else if Act == 0 Set Act to 1 endif endif end
Заменить на
begin onActivate player if HD01MonumGlobeREF.GetDisabled || HD01TenpGlobeREF.GetDisabled || HD01PentagGlobeREF.GetDisabled || HD01CapitolGlobeREF.GetDisabled || HD01RooseveltGlobeREF.GetDisabled || HD01ParadiseGlobeREF.GetDisabled || HD01LamplightGlobeREF.GetDisabled || HD01PittGlobeREF.GetDisabled || HD01PointLookoutGlobeREF.GetDisabled || HD01AdamsGlobeREF.GetDisabled || HD01AnchGlobeREF.GetDisabled || HD01MothershipGlobeREF.GetDisabled ' если шары не все удаляем ошибочный перк и добавляем шары из инвентаря player.RemovePerk AASnowglobCollection startQuest DCSnowglobeEnabler endif if HD01MonumGlobeREF.GetDisabled || HD01TenpGlobeREF.GetDisabled || HD01PentagGlobeREF.GetDisabled || HD01CapitolGlobeREF.GetDisabled || HD01RooseveltGlobeREF.GetDisabled || HD01ParadiseGlobeREF.GetDisabled || HD01LamplightGlobeREF.GetDisabled || HD01PittGlobeREF.GetDisabled || HD01PointLookoutGlobeREF.GetDisabled || HD01AdamsGlobeREF.GetDisabled || HD01AnchGlobeREF.GetDisabled || HD01MothershipGlobeREF.GetDisabled ' если шары не все ничего не делаем (чтобы не страдать фигней с инверсиями условий) elseif Player.HasPerk AASnowglobCollection == 0 Player.AddPerk AASnowglobCollection ShowMessage DCAddPerkMessage ShowMessage DCSnowglobeFinalMessage else if Act == 0 Set Act to 1 endif endif end
Вроде работает, но лучше проверить
DCGlobeFix.esp
Поделиться сообщением
Ссылка на сообщение