Este guia pode fornecer informações sobre o que acontece ou pode acontecer quando um NPC exclusivo é morto no jogo e como essas informações são armazenadas em seus arquivos salvos. Este será um trabalho em andamento por algum tempo, pois tenho que verificar missões, diálogos, cenas e roteiros. Os eventos de morte serão relacionados apenas ao jogo vanilla, seus DLCs e o Unofficial Skyrim Special Edition Patch (USSEP). Para este guia, estou usando Oldrim (Skyrim Legendary Edition) e Skyrim Special Edition versão 1.6.353 (atualização completa da Edição de Aniversário), mas sem prestar atenção ao conteúdo do Creation Club.
Introdução
Tem havido muitas discussões sobre a morte de NPCs únicos e também sobre sua possível ressurreição pelo uso do console ou mods. Este guia mostrará o que acontece com um NPC quando morto, mas apenas no que diz respeito ao jogo vanilla (Skyrim.esm, Update.esm, Dawnguard.esm, HearthFires.esm, Dragonborn.esm) e ao Patch Unofficial Skyrim Special Edition (USSEP ). A versão utilizada é Skyrim SE 1.6.353.
ECONOMIZE COM FREQUÊNCIA!
Salve seu jogo com frequência e use apenas o salvamento manual (difícil). Não use o salvamento automático ou o salvamento rápido. Você deve desativar essas configurações no menu principal, devido à confiabilidade limitada.
Nós de evento do gerenciador de histórias
O que realmente acontece no jogo quando um NPC único é morto?
Cada morte de NPCs únicos é gerenciada pelo Story Manager Event Node usando o Kill Actor Event. O evento Kill Actor consiste em 10 nós de missão empilhados e 1 nó de ramal empilhado que consiste em 2 nós de missão empilhados. Cada um dos eventos é monitorado e/ou gerenciado por 15 missões:
- DA02KillFriend – monitora o sacrifício de um seguidor no santuário de Boethiah
- DA08FriendKill – monitora a morte de um amigo com a Ebony Blade
- DLC1RV01KillActorMonitor – monitora uma morte na missão radiante de Dawnguard “The Hunt”
- DLC1RV03KillActorMonitor – monitora uma morte na missão radiante de Dawnguard “Enganando o rebanho”
- MGSuspensionQuest – monitora uma morte na missão “College Suspension”
- MQVoiceoftheSkyMonitor – monitora a morte de um animal quando o jogador tem Voice of the Sky ativo
- TG01KillMonitor – monitora uma morte durante a missão da Guilda dos Ladrões “Cuidando dos Negócios”
- TG03KillMonitor – monitora uma morte durante a missão da Guilda dos Ladrões “Dampened Spirits”
- TG04KillMonitor – monitora uma morte durante a missão da Guilda dos Ladrões “Scoundrel's Folly”
- WIKill01 – gerencia o luto temporário de parentes e amigos do falecido (7 em dias de jogo)
- WIKill02 – gerencia a assombração temporária de parentes pelo falecido (2 em dias de jogo)
- WIKill03 – gerencia uma herança se o jogador tiver um relacionamento com o falecido (1 ou superior)
- WIKill04 – gerencia a gratidão de um inimigo do falecido
- WIKill05 – gerencia reações de amigos e parentes do falecido
- WIKill06 – administra a vingança enviando bandidos contratados
Matar eventos de ator
Os Nós de Missão de Eventos de Matar Atores podem fornecer uma ou mais condições para ativar ou não uma missão. Se as missões compartilharem várias das mesmas condições, essas missões podem ser adicionadas a um nó de ramificação e adicionar as condições ao nível de nó de ramificação. Se as missões de nó de ramificação precisarem de condições adicionais não cobertas pelas condições de nó de ramificação, condições adicionais podem ser adicionadas a nós de missão específicos, que farão parte de um nó de ramificação.
As condições definidas na ramificação e/ou nos nós da missão não são realmente de interesse, pois não têm significado específico para a morte em si. De mais interesse são os scripts anexados às missões, de qualquer forma:
- scripts anexados à missão em geral (na guia Scripts da missão, não scripts prefixados com QF_)
- scripts de fragmentos de missão (também encontrados na guia Scripts da missão, prefixados com QF_); cada fragmento pertence a um estágio da missão
- scripts de fragmentos de informações de tópicos de diálogo (prefixados com TIF_)
- scripts de fragmento de pacote (prefixado com PF_)
- scripts de fragmentos de cena (prefixados com SF_)
Scripts de fragmentos de informações de tópicos de diálogo podem ser anexados ao início e ao final da resposta de um NPC quando o jogador se dirige a um NPC.
Os scripts de fragmento de pacote podem ser anexados ao início, ao fim e à alteração da execução do pacote AI.
As cenas são um pouco mais complicadas. Os scripts podem ser anexados ao início e ao final de uma fase de cena e também podem ser anexados a uma ação do temporizador, caso em que o script será executado quando a ação do temporizador for concluída.
Os scripts de fragmentos podem ser prefixados adicionalmente se esses scripts pertencerem a um DLC oficial (por exemplo, DLC1_ ou DLC2_), se houver.
Scripts adicionados às missões do Kill Actor Events
Missão DA02KillFriend
DA02KillFriendScript
Scripts: QF_DA02KillFriend_0004D917
Este script é um script de fragmento de missão do único estágio nesta missão, e só definirá um estágio na missão “Bothiah's Calling” (DA02) após o jogador ter sacrificado um amigo no santuário de Boethiah.
Missão DA08FriendKill
Scripts: QF_DA08FriendKill_0010FABE
Assim como na missão anterior, este script apenas rastreia se o jogador matou um amigo com a Ebony Blade. Em uma missão de rastreamento separada e no script anexado, o número de amigos mortos é monitorado. Uma vez que o jogador tenha matado 10 amigos usando a lâmina, ela será restaurada ao seu poder total.
Missão DLC1RV01KillActorMonitor
Scripts: DLC1_QF_DLC1RV01KillActorMoni_xx004C2E, DLC1RadiantCrimeMonitorScript
O script do fragmento da missão não tem função, pois todas as linhas de código são comentadas. O script externo é usado para monitorar as mortes feitas pelo jogador na missão “The Hunt” (questgiver: Fura Bloodmouth) para conceder ao jogador uma recompensa, se o jogador se juntou ao clã de vampiros Volkihar no DLC Dawnguard.
Missão DLC1RV03KillActorMonitor
Scripts: DLC1_QF_DLC1RV03KillActorMoni_xx009C12, DLC1RV03KillActorMonitorScript
O script do fragmento da missão é um script vazio, pois a missão não possui estágios de missão. O script externo é usado para monitorar as mortes feitas pelo jogador na missão “Enganando o rebanho” (questgiver: Feran Sadri) para conceder ao jogador uma recompensa, caso o jogador tenha se juntado ao clã de vampiros Volkihar no DLC Dawnguard.
Quest MGS SuspensionQuest
Scripts: QF_MGSuspensionQuest_0005B5DC
Este script de fragmento de missão apenas inicia a missão para se juntar ao Colégio de Winterhold depois que o jogador matou um colega do Colégio.
Missão MQVoiceoftheSkyMonitor
Scripts: QF_MQVoiceoftheSkyMonitor_0010D9F1
Este script de fragmento de missão tem um estágio de missão. Quando o jogador matar um animal, preditor ou presa, quando tiver a Voz do Céu ativa, o script dissipará a Voz do Céu.
Missão TG01KillMonitor
Scripts: QF_TG01AssaultMonitor_000B882F
Este script de fragmento de missão monitora se o jogador matou Keerava, Bersi Honey-Hand ou Haelga durante a missão da Guilda dos Ladrões “Cuidando dos Negócios”. Conforme instruído por Brynjolf, o jogador não deve matar nenhum dos devedores e não é admitido na Guilda dos Ladrões até que tenha todas as moedas.
Missão TG03KillMonitor
Scripts: QF_TG03AssaultMonitor_000B8830
Este script de fragmento de missão monitora se o jogador matou Sabjorn ou Mallus Maccius durante a missão “Dampened Spirits” da Guilda dos Ladrões. Se um deles for morto pelo jogador, ele não receberá a recompensa.
Missão TG04KillMonitor
Scripts: QF_TG04AssaultMonitor_000B8831
Este script de fragmento de missão monitora se o jogador matou Gulum-Ei durante a missão “Scoundrel's Folly” da Guilda dos Ladrões. Se assim for, o jogador não receberá uma recompensa.
Missão WIKill01
Scripts: QF_WIKill01_000289E2, WIKill01Script
Ambos os scripts são usados apenas para adicionar amigos e parentes do NPC falecido a uma facção enlutada, então eles terão um diálogo apropriado por 7 dias de jogo.
Missão WIKill02
Scripts: QF_WIKill02_0002694B, WIKill02Script
Esses scripts são usados para fazer o falecido assombrar um parente por 2 dias de jogo, caso em que o parente terá um diálogo adicional.
Missão WIKill03
Scripts: QF_WIKill03_0001BFF2, WIKill03Script
Esses scripts lidam com uma possível herança se o jogador tiver um nível de relacionamento de 1 ou superior com a vítima. A quantidade de herança depende do status de riqueza da vítima e do nível de relacionamento. Não importa se o jogador é o assassino ou não (um pouco estranho, você não acha?)
Missão WIKill04
Scripts: QF_WIKill04_00071441, WIKill04Script
Esta missão também tem scripts de fragmentos de informações de tópicos de diálogo anexados, mas esses scripts apenas definem um estágio de missão.
Missão WIKill05
Scripts: QF_WIKill05_000ADC8C
Esta missão lida com as reações dos parentes da vítima em relação ao jogador. Simplificando: sem tempo ou sem vontade de falar com o jogador. O script do fragmento da missão está vazio.
Missão WIKill06
Scripts: QF_WIKill06_0004EEF5, WIKill06Script
Esses scripts lidam com a contratação de bandidos para se vingar do jogador.
WIDeadBodyCleanupScript
O WIDeadBodyCleanupScript é anexado ao objeto base de muitos NPCs exclusivos, mas somente se esses NPCs residirem nas principais cidades (Markarth, Riften, Solitude, Whiterun e Windhelm) ou em seus respectivos porões, e somente se um caixão ou urna for preservado para eles no Salão dos Mortos. Este script cuida de um cadáver movendo o cadáver para a WIDeadBodyCleanupCell, também chamada de “célula da morte”, após 12 dias de jogo, a menos que esses NPCs estejam na WINoBodyCleanupFaction, caso em que eles nunca são movidos para a “célula da morte” . Apenas pertences de NPCs falecidos serão armazenados nos caixões ou urnas, NÃO seus corpos!
Ressuscite um NPC
Este script de limpeza não verifica se o NPC está morto ou vivo, e qualquer que seja o status, esse NPC ainda será movido para a cela da morte após 12 dias de jogo, morto ou vivo. Todas as outras missões aplicáveis serão ativadas pelos Nodos de Evento do Gerenciador de Histórias, como a missão WIKill01 se o NPC morto tiver amigos e/ou parentes.
Para que serve a “célula da morte”
Tanto o console quanto a linguagem de script Papyrus possuem um comando/função chamado GetDeathCount. A função Papyrus é usada apenas em algumas ocasiões no jogo: em Gulum-Ei durante a missão “Scoundrel's Folly” e em Mirri e Tilisu Severin durante a missão Dragonborn “Served Cold”. Por que essa função é usada apenas nessas ocasiões? Simplesmente porque a missão relacionada precisa saber em um certo ponto durante a missão se esses NPCs morreram. No caso de Gulum-Ei, sua confissão escrita estará em um baú se ele não for morto, mas em seu corpo, se ele for morto. As missões relacionadas já estão em execução!
Para muitas outras missões, esta função não pode ser usada, pois essas missões podem não estar sendo executadas ainda (essas missões não estão habilitadas para iniciar o jogo) ou essas missões ainda não estão ativadas. Por exemplo, a missão “In My Time of Need” está habilitada para iniciar o jogo (está em execução), mas ainda não está ativada, somente após o jogador ter falado com os guerreiros A'likr perto do portão principal de Whiterun. Se Saadia fosse morto antes de entrar em Whiterun pela primeira vez, essa missão falharia instantaneamente! Mas, a missão também falhará se Saadia for morto depois que a missão for ativada.
Em outros casos, o jogo conta com a “célula da morte” como os desenvolvedores afirmaram em um dos scripts: “foi a coisa mais fácil de fazer”. Uma vez que um NPC está na “cela da morte”, uma missão é incapaz de preencher os aliases necessários. Então, por que não apenas desabilitar e excluir esses NPCs após a morte para removê-los completamente do jogo? Isso forneceria aos desenvolvedores outro problema, pois o jogo usa a função Resurrect em algumas ocasiões. Na missão Daedric “The House of Horrors”, Logrolf the Willfull morrerá duas vezes. Você provavelmente nunca notará isso porque a função de ressuscitação está oculta por animações de desfoque, que duram apenas 1.5 segundos.
Scripts gerenciando a morte de NPCs únicos específicos
script USKP_ClearAliasOnDeath
Este script é adicionado no USSEP. Este script simplesmente limpa o alias de um NPC morto em uma missão em execução, o que impede que o cadáver persista para sempre.
WIDeadBodyCleanupScript
Além da seção anterior, este script não apenas move um NPC único morto para a “célula da morte” após 12 dias no jogo, mas também habilita um caixão ou urna no Salão dos Mortos e armazena todos os pertences do NPC nesse local. caixão ou urna, a menos que esse NPC seja adicionado ao WINoBodyCleanupFaction. O corpo de um NPC falecido NUNCA é movido para um caixão ou urna no Salão dos Mortos.
script SwapAliasOnDeath
Esse script é anexado a um alias com um substituto de backup, como comerciantes, estalajadeiros e ferreiros. O alias de backup é forçado no alias morto, o que significa que o alias de backup será forçado nos dados de alias do alias original (facções, feitiços, palavras-chave, pacotes de IA e inventário), se definido. Os aliases de backup são encontrados principalmente nas missões genéricas do Diálogo, que são habilitadas para iniciar o jogo e nunca pararão, como as missões DialogueDawnstar e DialogueWhiterun.
Os jarls e seus intendentes e housecarls também podem ter um substituto de backup, mas eles são substituídos com base no resultado da guerra civil, não com base em sua morte.
Substituição de cadáver
Vários NPCs únicos serão substituídos após a morte por um cadáver, como Vantus Loreius, Curwe, Kodlak Whitemane e Savos Aren. O cadáver é uma cópia do ator base original, mas a referência no jogo da cópia é marcada como Starts Dead e Initial Disabled. Um script desabilitará o original e habilitará o cadáver. No caso de Kodlak, é uma morte com script, o original é desabilitado após a morte e o cadáver de substituição é habilitado. BlockActivation é aplicado ao cadáver para evitar que o jogador saqueie o cadáver de Kodlak.
Uso da função Resurrect em scripts
Como mencionado anteriormente, a função Papyrus Resurrect é usada em scripts para NPCs únicos (marcados com um asterisco) e não únicos, em missões quando os NPCs estão em seu alias de missão ou de outra forma:
- Skyrim, missão "Boethiah's Calling" (*conduta de Boethiah)
- Skyrim, missão “A Casa dos Horrores” (*Logrolf, o Intencional)
- Skyrim, missão “Imunidade Diplomática” (guardas)
- Skyrim, Dark Brotherhood questline (* alvos recorrentes)
- Skyrim, Hag's End (batalha hagraven)
- Skyrim, acampamento Karthspire (gigante)
- Skyrim, Reachwater Rock (batalha de chefe: Jyrik, Mikrul e Sigdis)
- Skyrim, Poço Cego (chaurus)
- Dawnguard (relâmpago aleatório)
- Dawnguard, missão “Além da Morte” (Durnehvir)
- Dragonborn, missão “Deathbrand”
Se você quiser ver como esse comando é usado nos vários scripts, você pode criar um arquivo em lote com o seguinte conteúdo:
findstr /S /I /N "resurrect()" *.psc > resurrect.txt
Salve o arquivo de lote na pasta onde você extraiu os scripts de origem (*.psc) e ative-o no Windows Explorer. O arquivo deve ter a extensão .BAT. Não ative o arquivo de lote usando o comando “bat” no console!
Algumas das funções de Ressurreição são comentadas, como o esqueleto nas batalhas contra chefes em Ilinalta's Deep.
NOTA: O WIKill02Script.psc contém a mensagem “WIKill02Script: using Reset() no lugar de Resurrect() porque essa função ainda não existe. Isso precisa mudar quando Resurrect() estiver em.”.
Por que é perigoso ressuscitar um NPC?
Em todos os fóruns, você pode ler que é perigoso usar comandos de console em geral, pelo menos se você não souber o que está fazendo. Você também pode ler que é seguro usar o comando ressuscitar console. No entanto, você nunca encontrará uma razão pela qual é seguro ou não, além do óbvio, e ninguém parece ser capaz de dar uma resposta definitiva!
A morte, SOMENTE A MATA, de um NPC único, pode causar problemas
- se esse NPC estiver em seu alias de referência em uma missão que está Habilitada para Iniciar Jogo e marcada para Executar Uma Vez; tal missão pode falhar instantaneamente e nunca pode ser reiniciada
- se esse NPC estiver em seu alias de referência em uma missão que não está Habilitada para Iniciar Jogo e não marcada para Executar Uma Vez, principalmente diálogos recorrentes, cenas e missões radiantes, nesse caso apenas essa missão em particular (uma dentre possivelmente muitas) não será executada como esperado
Também faz diferença como um NPC é definido como um alias de referência em uma missão. Se o NPC estiver marcado como Opcional, não faz diferença se o NPC está morto ou vivo. Se morto, seu alias de referência não será preenchido e o NPC não participará da missão. O jogo simplesmente pulará o preenchimento do alias.
Quando um NPC único é morto, várias outras missões podem ser ativadas:
- a missão de adicionar amigos e parentes às suas respectivas facções de luto, se houver, durante 7 dias no jogo
- o cadáver será movido para a “cela da morte” após 12 dias de jogo, morto ou vivo
- seus pertences serão movidos para um caixão ou urna no Salão dos Mortos, se houver um caixão ou urna preservada nesse NPC
- um mensageiro pode procurar instantaneamente o jogador com uma herança
- um mensageiro pode procurar instantaneamente o jogador com uma recompensa de gratidão
Impedir que NPCs únicos sejam mortos
Muitos NPCs em Skyrim.esm não são marcados como essenciais ou protegidos e, portanto, são vulneráveis a serem mortos por ataques de dragões ou vampiros. Um método para evitar que esses NPCs sejam mortos por vampiros é não entrar em uma cidade após o pôr do sol, simplesmente porque uma célula e as células vizinhas precisam ser carregadas em 3D antes que isso aconteça. Em outras palavras, o jogador deve estar entrando nessas células de outra célula externa ou interna.
Uma maneira mais fácil é marcar NPCs como essenciais usando o console ou criando um arquivo de lote de jogo, usando o seguinte formato para cada linha de comando:
essencial 1
Esse arquivo em lote pode ser criado com qualquer editor de texto disponível, como o Bloco de Notas:
setessential 13BB9 1 ; Adrianne Avenicci setessential 13BA1 1 ; Belethor setessential 13BA4 1 ; Arcádia
Salve o arquivo como um arquivo de texto simples na pasta Skyrim (SE), por exemplo, whiterun.txt. No jogo abra o console e execute o seguinte comando:
corrida branca de morcego
Esteja ciente de que adicionar muitas linhas de comando pode fazer com que o console pule uma ou mais linhas de comando no arquivo em lote durante a execução, o que experimentei em alguns testes. Portanto, pode ser uma boa ideia limitar o número de NPCs para cada um dos nove porões. Não adicione NPCs que já foram marcados como protegidos, pois esses NPCs podem ter sido marcados como protegidos intencionalmente. A maioria dos NPCs Dragonborn são marcados como protegidos desde o início do jogo. Uma visão geral de todos os NPCs únicos no jogo pode ser encontrada neste página.
Mortes registradas no arquivo salvo
Mortes de NPCs únicos e não únicos são registradas em seu arquivo salvo, de maneiras diferentes. Esses dados são registrados em uma seção no arquivo de salvamento conhecido como Change Forms Table. Como o nome já sugere, os dados nesta tabela podem ser alterados e serão alterados continuamente. Esta tabela contém um registro para cada ator base e o registro para cada ator base contém um campo que registra o número de mortes para aquele ator base. Este campo pode ser alterado para NPCs únicos e não únicos. Para NPCs não únicos como guardas, bandidos, aranhas congeladas, etc. existe um “contador de morte” genérico para cada tipo específico de ator base. Para cada NPC único, há apenas um único “contador de morte”. Para NPCs únicos este “contador de mortes” só pode ser definido no arquivo salvo como 0 (vivo) ou 1 (morto), onde para NPCs não únicos o valor pode ser maior que 1, e este valor indica o número de atores base de um tipo específico que foi morto, por exemplo, o número de animais, criaturas e atores não únicos como guardas, bandidos, feiticeiros, etc.
Nota Importante
Todos os dados que terminam na Tabela de Formulários de Alteração após salvar também podem ser alterados durante a reprodução antes de salvar. Esta tabela não registrará nenhuma alteração feita durante o jogo. Se um NPC for morto e ressuscitado e o NPC estiver vivo ao salvar, o salvamento apenas registrará que o NPC está vivo. No entanto, outras ações nesse NPC já foram iniciadas.
Dados Técnicos:
O status das mortes de NPCs únicos e não únicos é registrado no arquivo salvo no registro ACHR da Tabela de Formulários de Mudança. Os dados nos campos deste registro podem ser alterados pelo jogo e serão alterados continuamente a cada alteração de um NPC, como conteúdo do inventário, propriedade, conteúdo do contêiner do comerciante, posição em uma célula, disposição, etc. O “ death counter” é um desses campos alteráveis no registro ACHR e seu valor pode ser lido pelo comando do console GetDeadCount (usando o BaseID) ou pela função Papyrus (usando o EditorID):
Console:
obter contagem de mortos 23A8B
Papiro:
Propriedade do ator CaveBear Auto Int i = CaveBear.GetDeadCount()
Já foi demonstrado que esse “contador de morte” pode e será alterado para NPCs únicos e não únicos, tanto durante o jogo quanto após os salvamentos.
Isso é tudo o que estamos compartilhando hoje para isso The Elder Scrolls V: Skyrim guia. Este guia foi originalmente criado e escrito por Altberto. Caso não consigamos atualizar este guia, você pode encontrar a atualização mais recente seguindo este link.