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

  • 0
FNVFUN

RA-PlayerHomes - Гундар - перк "Мозг ящера"

Вопрос

Вынесено из этой темы.

Забаганная способность "Мозг ящера". Способность не показывается в меню способностей в Пип-Бое, также бонус к красноречию от нее то дается, то пропадает, и непонятно от чего это зависит, например, я могу открыть Пип-Бой, и бонус есть, потом закрываю и открываю снова, и его нет.

Вот скрины, показывающие изменение навыка "Красноречие" с диапазоном в 10сек. ГГ стоит в упор к Гундару

Спойлер

bandicam-2020-01-30-18-18-16-118.jpg
bandicam-2020-01-30-18-18-17-266.jpg
bandicam-2020-01-30-18-18-18-350.jpg

 

  • Нравится 2

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


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

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

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

  • 0

Ага, понял.

Вшил последний фикс.

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


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

В общем если вкратце, то ошибка скриптов была :)

Нужно сделать два пункта

1) Нужно заменить скрипт ZGundarScript с ID xx00CEB8 в RA-PlayerHomes_Patch.esp на скрипт из этого фикса

Gundar's_Perk_Fix.esp

 

2) То же самое, только для RA-PlayerHomes.esm и с другим фиксом

Gundar's_Perk_Fix_v2.esp

 

Я исправил только условия для перка в скрипте (первые строчки можно посмотреть) и все

Все работает :good:

 

Кто так пишет скрипты, и почему компилятор не выявляет такие банальные ошибки - непонятно

 

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

 

Хотелось бы еще получить ответ на один вопрос: в RA-PlayerHomes.esm есть Sound-файл с ID (xxABDB82), и он ссылается на аудио-файл по пути \sound\fx\annex\gundarhide.wav

Аудио-файла по такому пути я не нашел, это значит, что этот Sound-файл - пустышка и не нужен вообще? Просто он в скрипте используется...

 

  • Нравится 2

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


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

Хотелось бы еще получить ответ на один вопрос: в RA-PlayerHomes.esm есть Sound-файл с ID (xxABDB82), и он ссылается на аудио-файл по пути \sound\fx\annex\gundarhide.wav

Аудио-файла по такому пути я не нашел, это значит, что этот Sound-файл - пустышка и не нужен вообще? Просто он в скрипте используется...

Надо поискать в оригинальном моде этот файл. Если его нет, значит автор накосячил, и можно комментить этот звук из скрипта и удалять саму запись.

 

 

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


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

scn ZGundarScript

short f1
short f2
short f3
short pilgrim

Begin gameMode



; Gundar's Perk

short perkon

if ( ZGundarREF.getDistance Player < 2000 && Z0831GundarDialog.HasBeenHired == 1 && perkon == 0 )
	set perkon to 1
	Player.ModAV Speech 10

elseif ( ZGundarREF.getDistance Player >= 2000 && perkon == 1 )
	set perkon to 0
	Player.ModAV Speech -10

elseif (  Z0831GundarDialog.HasBeenHired == 0 && perkon == 1 )
	set perkon to 0
	Player.ModAV Speech -10

endif

; Some things make him happy!

if ( f3 == 0 && Player.getAV karma >= KarmaGood && Player.getinCell Citadel )
	set f3 to 1
	set z0831GundarDialog.friendship to z0831GundarDialog.friendship + 1
endif

if ( MQ05ColonelAutumnRef.getDead && getStage Mq11 > 30 && f1 == 0 )
	set f1 to 1
	set z0831GundarDialog.friendship to z0831GundarDialog.friendship + 1
elseif ( ColonelAutumnRef.getDead && f1 == 0 )
	set f1 to 1
	set z0831GundarDialog.friendship to z0831GundarDialog.friendship + 1
endif

if  ( getStage  MQA == 200 && f2 == 0 )
	set f2 to 1
	set z0831GundarDialog.friendship to z0831GundarDialog.friendship + 2
elseif  ( getStage  MQA == 100 )	
	set z0831GundarDialog.friendship to z0831GundarDialog.friendship - 4
	set z0831GundarDialog.HasBeenHired to 0
	set z0831GundarDialog.GundarFired to 1
	set z0831GundarDialog.GundarFiredTaft to 1
	set z0831GundarDialog.GundarFiredAnnex to 0
	set z0831GundarDialog.IsFollowingDefault to 0
	set z0831GundarDialog.Waiting to 0
	ZGundarREF.SetPlayerTeammate 0
	ZGundarREF.RemoveFromFaction FollowerFaction
	startCombat Player
endif



; Use a stimpack if needed

if (  ZGundarREF.isInCombat && ZGundarREF.getHealthPercentage < 0.5 && ZGundarREF.getItemCount Stimpak > 0 )
	ZGundarREF.removeItem Stimpak 1
	CIOS Stimpak
	showMessage ZGundarStim

endif

; Don't charge in if PC is trying to be stealthy

if ( Z0831GundarDialog.HasBeenHired == 1 && ZGundarREF.getDistance Player < 800 && ZGundarREF.getAV aggression == 0 )
	ZGundarREF.setforcesneak 1
	ZGundarREF.addspell StealthBoyInvisibilitySpell
endif

if ( Player.isSneaking == 1 && Player.isinCombat == 0 && ZGundarREF.getAV aggression > 0 )
	ZGundarREF.setAV aggression 0

elseif ( ZGundarREF.getAV aggression == 0  && Player.isinCombat == 1 )
        ZGundarREF.setAV aggression 1
  		ZGundarREF.setforcesneak 0
	ZGundarREF.removespell StealthBoyInvisibilitySpell

elseif ( Player.isSneaking == 0 &&  ZGundarREF.getAV aggression == 0  )
    ZGundarREF.setAV aggression 1
  	ZGundarREF.setforcesneak 0
    ZGundarREF.removespell StealthBoyInvisibilitySpell
endif



; Can't go into the Pitt until quest is done...

if  ( GetQuestCompleted DLC01Quest01 == 0 && Player.getInWorldSpace DLC01PittWorld && Z0831GundarDialog.HasBeenHired == 1 ) 
	set z0831GundarDialog.HasBeenHired to 0
	set z0831GundarDialog.GundarFired to 1
	set z0831GundarDialog.GundarFiredTaft to 1
	set z0831GundarDialog.GundarFiredAnnex to 0
	set z0831GundarDialog.IsFollowingDefault to 0
	set z0831GundarDialog.Waiting to 0
	ZGundarREF.SetPlayerTeammate 0
	ZGundarREF.RemoveFromFaction FollowerFaction
	ZGundarREF.evp
	showMessage ZGundarFiredMsgTaft
endif

; Can't go into the Alien Ship until quest is done...

if  ( Player.getInCell DLC05HoldingCells && Z0831GundarDialog.HasBeenHired == 1 ) 
	set z0831GundarDialog.HasBeenHired to 0
	set z0831GundarDialog.GundarFired to 1
	set z0831GundarDialog.GundarFiredTaft to 1
	set z0831GundarDialog.GundarFiredAnnex to 0
	set z0831GundarDialog.IsFollowingDefault to 0
	set z0831GundarDialog.Waiting to 0
	ZGundarREF.SetPlayerTeammate 0
	ZGundarREF.RemoveFromFaction FollowerFaction
	ZGundarREF.evp
	showMessage ZGundarFiredMsgTaft
endif

; Can't go into Point Lookout until quest is (sort of) done...

if  ( GetStageDone DLC04MQ04 100 == 0 && Player.getInWorldSpace DLC4PointLookout && Z0831GundarDialog.HasBeenHired == 1 ) 
	set z0831GundarDialog.HasBeenHired to 0
	set z0831GundarDialog.GundarFired to 1
	set z0831GundarDialog.GundarFiredTaft to 1
	set z0831GundarDialog.GundarFiredAnnex to 0
	set z0831GundarDialog.IsFollowingDefault to 0
	set z0831GundarDialog.Waiting to 0
	ZGundarREF.SetPlayerTeammate 0
	ZGundarREF.RemoveFromFaction FollowerFaction
	ZGundarREF.evp
	showMessage ZGundarFiredMsgTaft
endif

; Will glitch scripted punga swamp door, don't let him go in

if  ( Player.getInWorldSpace DLC4bog && Z0831GundarDialog.HasBeenHired == 1 ) 
	set z0831GundarDialog.HasBeenHired to 0
	set z0831GundarDialog.GundarFired to 1
	set z0831GundarDialog.GundarFiredTaft to 1
	set z0831GundarDialog.GundarFiredAnnex to 0
	set z0831GundarDialog.IsFollowingDefault to 0
	set z0831GundarDialog.Waiting to 0
	ZGundarREF.SetPlayerTeammate 0
	ZGundarREF.RemoveFromFaction FollowerFaction
	ZGundarREF.evp
	showMessage ZGundarFiredMsgTaft
endif


; Can't go into Alaska Simulator ever

if (  Player.getInWorldSpace DLC02Glacier &&  Z0831GundarDialog.HasBeenHired == 1 ) 
	set z0831GundarDialog.HasBeenHired to 0
	set z0831GundarDialog.GundarFired to 1
	set z0831GundarDialog.GundarFiredTaft to 1
	set z0831GundarDialog.GundarFiredAnnex to 0
	set z0831GundarDialog.IsFollowingDefault to 0
	set z0831GundarDialog.Waiting to 0
	ZGundarREF.SetPlayerTeammate 0
	ZGundarREF.RemoveFromFaction FollowerFaction
	ZGundarREF.evp
	showMessage ZGundarFiredMsgTaft
endif

; Can't go into Vault 87

if (  Player.getInCell Vault87c && Z0831GundarDialog.HasBeenHired == 1 ) 
	set z0831GundarDialog.HasBeenHired to 0
	set z0831GundarDialog.GundarFired to 1
	set z0831GundarDialog.GundarFiredTaft to 1
	set z0831GundarDialog.GundarFiredAnnex to 0
	set z0831GundarDialog.IsFollowingDefault to 0
	set z0831GundarDialog.Waiting to 0
	ZGundarREF.SetPlayerTeammate 0
	ZGundarREF.RemoveFromFaction FollowerFaction
	ZGundarREF.evp
	showMessage ZGundarFiredMsgTaft
endif


End

Begin onDeath

showMessage ZDeadGundar
set z0831GundarDialog.HasBeenHired to 0
if ( GetQuestCompleted ZGundarsQuest == 0 )
	SetStage ZGundarsQuest 29
endif
End

Begin onCombatEnd

restoreav health 250
restoreav perceptioncondition 100
restoreav endurancecondition 100
restoreav leftattackcondition 100
restoreav leftmobilitycondition 100
restoreav rightattackcondition 100
restoreav rightmobilitycondition 100


End

 

 

Нужно заменить скрипт ZGundarScript с ID xx00CEB8 в RA-PlayerHomes_Patch.esp на данный код

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


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

Стелс починил, теперь Гундар использует стелс-бой во время стелса.

А он юзает его, когда он у него есть, или всегда?

А то там даже по диалогам видно, что он не мастер скрытности.

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


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

А он юзает его, когда он у него есть, или всегда?

А то там даже по диалогам видно, что он не мастер скрытности.

В смысле там в скриптах у него прописано активация стелс-боя при приседании игрока) . Надо было мне приписать "теперь Гундар исправно использует стелс-бой"

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

if ( Player.isSneaking == 1 && Player.isinCombat == 0 && ZGundarREF.getAV aggression > 0 )
	setAV aggression 0
 if ( ZGundarREF.getDistance Player < 800 && comment == 0 ) 	
	ZGundarREF.PlaySound3D ZNPCGundarSneak
	set comment to 1
	setforcesneak 1
     playSound3D OBJStealthBoyActivate
	addspell StealthBoyInvisibilitySpell
 endif
elseif ( ZGundarREF.getAV aggression == 0  && Player.isinCombat == 1 )
      setAV aggression 1
	setforcesneak 0
	removespell StealthBoyInvisibilitySpell

elseif ( Player.isSneaking == 0 &&  ZGundarREF.getAV aggression == 0  )
	setAV aggression 1
	setforcesneak 0
	removespell StealthBoyInvisibilitySpell
endif

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

; Don't charge in if PC is trying to be stealthy

if ( Z0831GundarDialog.HasBeenHired == 1 && ZGundarREF.getDistance Player < 800 && ZGundarREF.getAV aggression == 0 )
	ZGundarREF.setforcesneak 1
	ZGundarREF.addspell StealthBoyInvisibilitySpell
endif

if ( Player.isSneaking == 1 && Player.isinCombat == 0 && ZGundarREF.getAV aggression > 0 )
	ZGundarREF.setAV aggression 0

elseif ( ZGundarREF.getAV aggression == 0  && Player.isinCombat == 1 )
    ZGundarREF.setAV aggression 1
  	ZGundarREF.setforcesneak 0
	ZGundarREF.removespell StealthBoyInvisibilitySpell

elseif ( Player.isSneaking == 0 &&  ZGundarREF.getAV aggression == 0  )
  	ZGundarREF.setAV aggression 1
	ZGundarREF.removespell StealthBoyInvisibilitySpell
  	ZGundarREF.setforcesneak 0
endif

 

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

 

Признаю, что по задумке автора, судя по коду, Гундар должен использовать стелс-бой "для понтов", когда Гундар находится в бою, а ГГ - нет и двигается в скрытности, то у Гундара сбрасывается агрессия и для показухи срабатывает стелс-бой, из которого он сразу же выходит.

Могу исправить оригинальный код, но с учетом задумки автора)

  • Нравится 2

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


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

Могу исправить оригинальный код, но с учетом задумки автора)

Да фиг знает, как лучше.

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


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

Да фиг знает, как лучше.

На твое усмотрение.

По задумке автора должно быть так: После каждого боя, если ГГ присядет, то у Гундара активируется стелс-бой и будет звуковое сопровождение активации стелс-боя. Т.е. можно убить кого-то, выйти из боя, пойти в Ривет-Сити и там случайно присесть, и Гундар активирует стелс-бой.

 

По моей задумке: Гундар активирует стелс-бой, когда ГГ в режиме скрытности и не в бою. Я просто подумал сперва, что так и было задумано, ибо логично, что Гундар немаленький и поэтому активирует стелс-бой при скрытности. Возможно, автор так тоже задумал, просто по коду этого не видно, но у него там куча косеков в коде...

  • Нравится 1

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


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

Кстати если будешь еще что-то править в модуле, достаточно править только тот вариант, что в esp-патче. Он все равно рано или поздно зашьется в мастер.

  • Нравится 1

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


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

Кстати если будешь еще что-то править в модуле, достаточно править только тот вариант, что в esp-патче. Он все равно рано или поздно зашьется в мастер.

Ок. Я тогда финальный фикс еще выложу, надо одну вещь исправить (стелс-бой активируется каждую секунду, пока ГГ в скрытности судя по скрипту, а не 1 раз за скрытность, как должно быть в идеале) и потестировать. Попробую eps-фикс выложить

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


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

Финальный фикс

 

Gundar's_Perk_Fix_v3.esp

 

Нужно заменить скрипт ZGundarScript с ID xx00CEB8 в RA-PlayerHomes_Patch.esp на скрипт из данного фикса.

 

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


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

Еще более финальная версия скрипта (чуть поправил стелс)

Gundar's_Perk_Fin.esp

 

В итоге нужно либо этим фиксом изменить ZGundarScript с ID xx00CEB8 в RA-PlayerHomes_Patch.esp

 

Либо фиксом с самого первого поста (там только исправлен перк)

 

RA-PlayerHomes.esm с первого поста править не нужно

  • Нравится 1

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


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

Еще более финальная версия скрипта (чуть поправил стелс)

в фиксе битая ссылка:

[0D8B875F] <Error: Could not be resolved>

 

Этот объект откуда нужно взять?

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


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

в фиксе битая ссылка:

[0D8B875F] <Error: Could not be resolved>

 

Этот объект откуда нужно взять?

Это табличка (Message) из RA-PlayerHomes_Patch.esp  ZGundarFiredMsgTaft

Используется командой в скрипте showMessage ZGundarFiredMsgTaft

Почему-то в отдельном фиксе битая ссылка. Если в RA-PlayerHomes_Patch.esp скрипт использовать, то все нормально, и в игре тоже, когда Гундар покидает героя, появляется эта табличка

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


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

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

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

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

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

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

Войти

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

Войти


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