Esta guía puede brindarle información sobre lo que sucede o puede suceder cuando un NPC único muere en el juego y cómo se almacena esta información en sus archivos guardados. Este será un trabajo en progreso durante algún tiempo, ya que tengo que revisar las misiones, los diálogos, las escenas y los guiones. Los eventos de muerte solo estarán relacionados con el juego estándar, sus DLC y el parche de edición especial no oficial de Skyrim (USSEP). Para esta guía estoy usando Oldrim (Skyrim Legendary Edition) y Skyrim Special Edition versión 1.6.353 (actualización completa de Anniversary Edition), pero sin prestar atención al contenido del Creation Club.
Introducción
Ha habido muchas discusiones sobre la muerte de NPC únicos y también sobre su posible resurrección mediante el uso de la consola o los mods. Esta guía mostrará lo que le sucede a un NPC cuando muere, pero solo en relación con el juego estándar (Skyrim.esm, Update.esm, Dawnguard.esm, HearthFires.esm, Dragonborn.esm) y el parche de edición especial no oficial de Skyrim (USSEP ). La versión utilizada es Skyrim SE 1.6.353.
¡AHORRE CON FRECUENCIA!
Guarde su juego con frecuencia y solo use el guardado manual (duro). No use guardado automático o guardado rápido. Debe desactivar esta configuración en el menú principal, debido a la confiabilidad limitada.
Nodos de eventos del administrador de historias
¿Qué sucede realmente en el juego cuando se mata a un NPC único?
Cada muerte de NPC únicos es administrada por el nodo de eventos del administrador de historias utilizando el evento Kill Actor. El evento Kill Actor consta de 10 nodos de búsqueda apilados y 1 nodo de rama apilado que consta de 2 nodos de búsqueda apilados. Cada uno de los eventos es monitoreado y/o gestionado por 15 misiones:
- DA02KillFriend: supervisa el sacrificio de un seguidor en el santuario de Boethiah
- DA08FriendKill: supervisa la muerte de un amigo con Ebony Blade
- DLC1RV01KillActorMonitor: supervisa una muerte en la búsqueda radiante de Dawnguard "The Hunt"
- DLC1RV03KillActorMonitor: monitorea una muerte en la búsqueda radiante de Dawnguard "Engañando a la manada"
- MGSuspensionQuest: supervisa una muerte en la misión "Suspensión universitaria"
- MQVoiceoftheSkyMonitor: monitorea la muerte de un animal cuando el jugador tiene Voice of the Sky activo
- TG01KillMonitor: supervisa una muerte durante la misión del gremio de ladrones "Cuidar de los negocios"
- TG03KillMonitor: supervisa una muerte durante la misión del gremio de ladrones "Espíritus amortiguados"
- TG04KillMonitor: supervisa una muerte durante la misión del gremio de ladrones "Scoundrel's Folly"
- WIKill01 – gestiona el luto temporal de familiares y amigos del difunto (7 en días de juego)
- WIKill02: gestiona la persecución temporal de familiares por parte del difunto (2 en días de juego)
- WIKill03 – gestiona una herencia si el jugador tiene una relación con el difunto (1 o superior)
- WIKill04 – gestiona la gratitud de un enemigo del difunto
- WIKill05 – gestiona las reacciones de amigos y familiares del difunto
- WIKill06: gestiona la venganza enviando matones a sueldo
Matar eventos de actores
Los nodos de misiones de Kill Actor Events pueden proporcionar una o más condiciones para activar o no una misión. Si las misiones comparten varias condiciones iguales, esas misiones se pueden agregar a un nodo de rama y agregar las condiciones al nivel del nodo de rama. Si las misiones del nodo de rama necesitan condiciones adicionales que no están cubiertas por las condiciones del nodo de rama, se pueden agregar condiciones adicionales a nodos de búsqueda específicos, que formarán parte de un nodo de rama.
Las condiciones establecidas en los nodos de rama y/o búsqueda no son realmente de interés, ya que no tienen un significado específico para la muerte en sí. De mayor interés son los guiones adjuntos a las misiones, de cualquier manera:
- scripts adjuntos a la búsqueda en general (en la pestaña Scripts de la búsqueda, no scripts con el prefijo QF_)
- scripts de fragmentos de búsqueda (también se encuentran en la pestaña Scripts de la búsqueda, con el prefijo QF_); cada fragmento pertenece a una etapa de la búsqueda
- scripts de fragmentos de información de temas de diálogo (con el prefijo TIF_)
- scripts de fragmentos de paquete (con el prefijo PF_)
- guiones de fragmentos de escena (con el prefijo SF_)
Los scripts de fragmentos de información de temas de diálogo se pueden adjuntar al inicio y al final de la respuesta de un NPC cuando el jugador se dirige a un NPC.
Los scripts de fragmentos de paquetes se pueden adjuntar al inicio, al final y al cambio de la ejecución del paquete AI.
Las escenas son un poco más complicadas. Los guiones se pueden adjuntar al inicio y al final de una fase de escena, y también se pueden adjuntar a una acción del temporizador, en cuyo caso el guión se ejecutará cuando se complete la acción del temporizador.
Los scripts de fragmentos pueden tener un prefijo adicional si esos scripts pertenecen a un DLC oficial (por ejemplo, DLC1_ o DLC2_), si corresponde.
Se agregaron guiones a las misiones de Kill Actor Events.
DA02Búsqueda KillFriend
DA02KillFriendGuión
Guiones: QF_DA02KillFriend_0004D917
Este guión es un fragmento de guión de misión de la única etapa de esta misión, y solo establecerá un escenario en la misión "La llamada de Boethiah" (DA02) después de que el jugador haya sacrificado a un amigo en el santuario de Boethiah.
Búsqueda DA08FriendKill
Guiones: QF_DA08FriendKill_0010FABE
Al igual que con la misión anterior, este script solo rastrea si el jugador ha matado a un amigo con Ebony Blade. En una búsqueda de seguimiento separada y el script adjunto, se monitorea la cantidad de amigos asesinados. Una vez que el jugador haya matado a 10 amigos usando la espada, se restaurará a su máxima potencia.
DLC1RV01KillActorMonitor búsqueda
Scripts: DLC1_QF_DLC1RV01KillActorMoni_xx004C2E, DLC1RadiantCrimeMonitorScript
El script de fragmento de búsqueda no tiene ninguna función ya que todas las líneas de código están comentadas. La secuencia de comandos externa se usa para monitorear las muertes realizadas por el jugador en la misión "La caza" (que da la misión: Fura Bloodmouth) para otorgar al jugador una recompensa, si el jugador se ha unido al clan de vampiros Volkihar en el DLC Dawnguard.
DLC1RV03KillActorMonitor búsqueda
Scripts: DLC1_QF_DLC1RV03KillActorMoni_xx009C12, DLC1RV03KillActorMonitorScript
El guión del fragmento de misión es un guión vacío ya que la misión no tiene etapas de misión. La secuencia de comandos externa se utiliza para controlar las muertes realizadas por el jugador en la misión "Engañando a la manada" (que da la misión: Feran Sadri) para otorgar al jugador una recompensa, si el jugador se ha unido al clan de vampiros Volkihar en el DLC Dawnguard.
misión MGSuspensionQuest
Guiones: QF_MGSuspensionQuest_0005B5DC
Este guión de fragmento de búsqueda simplemente inicia la búsqueda para volver a unirse al Colegio de Winterhold después de que el jugador haya matado a un compañero del Colegio.
Misión MQVoiceoftheSkyMonitor
Guiones: QF_MQVoiceoftheSkyMonitor_0010D9F1
Este script de fragmento de búsqueda tiene una etapa de búsqueda. Cuando el jugador ha matado a un animal, depredador o presa, cuando tiene Voice of the Sky activo, el script disipará Voice of the Sky.
TG01Búsqueda KillMonitor
Guiones: QF_TG01AssaultMonitor_000B882F
Este script de fragmento de misión supervisa si el jugador ha matado a Keerava, Bersi Honey-Hand o Haelga durante la misión del gremio de ladrones "Cuidar de los negocios". Según las instrucciones de Brynjolf, el jugador no debe matar a ninguno de los deudores y no es admitido en el gremio de ladrones hasta que tenga hasta la última moneda.
TG03Búsqueda KillMonitor
Guiones: QF_TG03AssaultMonitor_000B8830
Este script de fragmento de misión monitorea si el jugador ha matado a Sabjorn o Mallus Maccius durante la misión de Thieves Guild "Dampened Spirits". Si uno de ellos ha sido asesinado por el jugador, no recibirá la recompensa.
TG04Búsqueda KillMonitor
Guiones: QF_TG04AssaultMonitor_000B8831
Este script de fragmento de misión supervisa si el jugador ha matado a Gulum-Ei durante la misión del gremio de ladrones "La locura del sinvergüenza". Si es así, el jugador no recibirá una recompensa.
misión WIKill01
Guiones: QF_WIKill01_000289E2, WIKill01Script
Ambos scripts solo se usan para agregar amigos y familiares del NPC fallecido a una facción de luto, por lo que tendrán un diálogo apropiado durante 7 días de juego.
misión WIKill02
Guiones: QF_WIKill02_0002694B, WIKill02Script
Estos guiones se utilizan para que el difunto persiga a un pariente durante 2 días de juego, en cuyo caso el pariente tendrá un diálogo adicional.
misión WIKill03
Guiones: QF_WIKill03_0001BFF2, WIKill03Script
Estos scripts se ocupan de una posible herencia si el jugador tiene un rango de relación de 1 o superior con la víctima. El monto de la herencia depende del estado de riqueza de la víctima y el rango de la relación. No importa si el jugador es el asesino o no (un poco raro, ¿no crees?)
misión WIKill04
Guiones: QF_WIKill04_00071441, WIKill04Script
Esta búsqueda también tiene scripts de fragmentos de información de temas de diálogo adjuntos, pero estos scripts solo establecen una etapa de búsqueda.
misión WIKill05
Guiones: QF_WIKill05_000ADC8C
Esta misión maneja las reacciones de los familiares de la víctima hacia el jugador. En pocas palabras: no hay tiempo o no está de humor para hablar con el jugador. El script del fragmento de búsqueda está vacío.
misión WIKill06
Guiones: QF_WIKill06_0004EEF5, WIKill06Script
Estos guiones tratan sobre la contratación de matones para vengarse del jugador.
WIDeadBodyCleanupScript
El WIDeadBodyCleanupScript se adjunta al objeto base de muchos NPC únicos, pero solo si esos NPC residen en las principales ciudades (Markarth, Riften, Solitude, Whiterun y Windhelm) o en sus respectivas bodegas, y solo si se conserva un ataúd o urna para ellos en el Salón de los Muertos. Este script se encarga de un cadáver al mover el cadáver a WIDeadBodyCleanupCell, también llamada "celda de la muerte", después de 12 días de juego, a menos que esos NPC estén en WINoBodyCleanupFaction, en cuyo caso nunca se mueven a la "celda de la muerte". . ¡Solo las pertenencias de los NPC fallecidos se almacenarán en los ataúdes o urnas, NO sus cuerpos!
Resucita a un NPC
Esta secuencia de comandos de limpieza no verifica si el NPC está vivo o muerto, y sea cual sea el estado, ese NPC aún se moverá a la celda de la muerte después de 12 días de juego, vivo o muerto. Todas las demás misiones aplicables serán activadas por los nodos de eventos del administrador de historias, como la misión WIKill01 si el NPC asesinado tiene amigos y/o familiares.
¿Cuál es el uso de la "célula de la muerte"
Tanto la consola como el lenguaje de programación Papyrus tienen un comando/función llamado GetDeathCount. La función Papyrus solo se usa en unas pocas ocasiones en el juego: en Gulum-Ei durante la misión "Scoundrel's Folly" y en Mirri y Tilisu Severin durante la misión Dragonborn "Served Cold". ¿Por qué esta función solo se utiliza en estas ocasiones? Simplemente porque la misión relacionada necesita saber en cierto punto durante la misión si esos NPC han muerto. En el caso de Gulum-Ei, su confesión escrita estará en un cofre si no lo matan, pero en su cuerpo, si lo matan. ¡Las misiones relacionadas ya se están ejecutando!
Para muchas otras misiones, esta función no se puede usar ya que es posible que esas misiones aún no se estén ejecutando (esas misiones no están habilitadas para iniciar el juego) o esas misiones aún no están activadas. Por ejemplo, la misión "En mi momento de necesidad" está habilitada para iniciar el juego (se está ejecutando), pero aún no está activada, solo después de que el jugador haya hablado con los guerreros A'likr cerca de la puerta principal de Whiterun. Si mataran a Saadia antes de ingresar a Whiterun por primera vez, ¡esta misión fallaría instantáneamente! Pero, la misión también fallará si Saadia muere después de activar la misión.
En otros casos, el juego se basa en la “celda de la muerte”, como afirman los desarrolladores en uno de los guiones: “era lo más fácil de hacer”. Una vez que un NPC está en la "celda de la muerte", una misión no puede completar los alias requeridos. Entonces, ¿por qué no deshabilitar y eliminar esos NPC después de la muerte para eliminarlos del juego por completo? Eso proporcionaría a los desarrolladores otro problema ya que el juego usa la función Resurrect en algunas ocasiones. En la misión daédrica "La casa de los horrores", Logrolf the Wilfull morirá dos veces. Probablemente nunca lo notará porque la función resucitar está oculta por animaciones borrosas, que duran solo 1.5 segundos.
Scripts que gestionan la muerte de NPC únicos específicos
Guión USKP_ClearAliasOnDeath
Este script se agrega en USSEP. Este script simplemente borra el alias de un NPC asesinado en una misión en curso, lo que evita que el cadáver persista para siempre.
WIDeadBodyCleanupScript
Además de la sección anterior, este script no solo mueve un NPC único muerto a la "celda de la muerte" después de 12 días en el juego, sino que también habilita un ataúd o urna en el Salón de los Muertos y almacena todas las pertenencias del NPC en ese ataúd o urna, a menos que ese NPC se agregue a WINoBodyCleanupFaction. El cuerpo de un NPC fallecido NUNCA se mueve a un ataúd o urna en el Salón de los Muertos.
Intercambio de secuencias de comandos de AliasOnDeath
Este script se adjunta a un alias con un reemplazo de respaldo, como comerciantes, posaderos y herreros. El alias de respaldo se fuerza en el alias eliminado, lo que significa que el alias de respaldo se forzará en los datos de alias del alias original (facciones, hechizos, palabras clave, paquetes de IA e inventario), si está definido. Los alias de copia de seguridad se encuentran principalmente en las misiones genéricas de Dialogue, que están habilitadas para iniciar el juego y nunca se detendrán, como las misiones DialogueDawnstar y DialogueWhiterun.
Los jarls y sus stewards y housecarls también pueden tener un reemplazo de respaldo, pero se reemplazan en función del resultado de la guerra civil, no en función de su muerte.
Reemplazo de cadáver
Varios NPC únicos serán reemplazados después de la muerte por un cadáver, como Vantus Loreius, Curwe, Kodlak Whitemane y Savos Aren. El cadáver es una copia del actor base original, pero la referencia en el juego de la copia está marcada como Starts Dead e Initially Disabled. Un script deshabilitará el original y habilitará el cadáver. En el caso de Kodlak, es una muerte con guión, el original se desactiva después de la muerte y el cadáver de reemplazo se habilita. BlockActivation se aplica al cadáver para evitar que el jugador saquee el cadáver de Kodlak.
Uso de la función Resurrect en scripts
Como se mencionó anteriormente, la función Papyrus Resurrect se usa en scripts para NPC únicos (marcados con un asterisco) y no únicos, en misiones cuando los NPC están en su alias de búsqueda, o de otra manera:
- Skyrim, misión "La llamada de Boethiah" (*Conducto de Boethiah)
- Skyrim, misión "La casa de los horrores" (*Logrolf the Wilfull)
- Skyrim, misión "Inmunidad diplomática" (guardias)
- Skyrim, serie de misiones de la Hermandad Oscura (*objetivos recurrentes)
- Skyrim, Hag's End (batalla de hagraven)
- Skyrim, campamento Karthspire (gigante)
- Skyrim, Reachwater Rock (jefe de batalla: Jyrik, Mikrul y Sigdis)
- Skyrim, pozo ciego (chaurus)
- Dawnguard (relámpago aleatorio)
- Dawnguard, misión "Más allá de la muerte" (Durnehvir)
- Dragonborn, misión "Deathbrand"
Si desea ver cómo se usa este comando en los distintos scripts, puede crear un archivo por lotes con los siguientes contenidos:
findstr /S /I /N "resucitar()" *.psc > resucitar.txt
Guarde el archivo por lotes en la carpeta donde extrajo los scripts de origen (*.psc) y actívelo en el Explorador de Windows. El archivo debe tener la extensión .BAT. ¡No active el archivo por lotes usando el comando "bat" en la consola!
Se comentan algunas de las funciones de Resurrect, como el esqueleto en las batallas contra jefes en Ilinalta's Deep.
NOTA: WIKill02Script.psc contiene el mensaje "WIKill02Script: usando Reset() en lugar de Resurrect() porque esa función aún no existe. Esto tiene que cambiar cuando Resurrect() esté en marcha”.
¿Por qué es peligroso resucitar a un NPC?
En todos los foros, puede leer que es peligroso usar los comandos de la consola en general, al menos si no sabe lo que está haciendo. También puede leer que es seguro usar el comando resucitar de la consola. Sin embargo, nunca encontrará una razón por la que sea seguro o no, además de lo obvio, ¡y nadie parece ser capaz de dar una respuesta definitiva!
La muerte, SOLO LA MUERTE, de un NPC único, puede causar problemas
- si ese NPC está en su alias de referencia en una misión que está Activada para Iniciar juego y marcada para Ejecutar una vez; tal búsqueda puede fallar instantáneamente y nunca se puede reiniciar
- si ese NPC está en su alias de referencia en una misión que no está activada para Iniciar juego y no está marcada como Ejecutar una vez, principalmente misiones radiantes, de diálogos y escenas recurrentes, en cuyo caso solo esa misión en particular (una de posiblemente muchas) no se ejecutará como esperado
También marca la diferencia cómo se define un NPC como un alias de referencia en una búsqueda. Si el NPC está marcado como Opcional, no importa si el NPC está vivo o muerto. Si está muerto, su alias de referencia no se completará y el NPC no participará en la búsqueda. El juego simplemente omitirá llenar el alias.
Cuando se mata a un NPC único, se pueden activar varias otras misiones:
- la búsqueda para agregar amigos y familiares a sus respectivas facciones de luto, si las hay, durante 7 días en el juego
- el cadáver será trasladado a la "celda de la muerte" después de 12 días en el juego, vivo o muerto
- sus pertenencias serán trasladadas a un ataúd o urna en el Salón de los Muertos, si hay un ataúd o urna conservado ese NPC
- un mensajero puede buscar instantáneamente al jugador con una herencia
- un mensajero puede buscar instantáneamente al jugador con una recompensa de gratitud
Evita que maten a PNJ únicos
Muchos NPC en Skyrim.esm no están marcados como esenciales o protegidos, por lo que son vulnerables a ser asesinados por ataques de dragones o vampiros. Un método para evitar que los vampiros maten a esos NPC es no ingresar a una ciudad después del atardecer, simplemente porque una celda y las celdas circundantes deben cargarse en 3D antes de que esto suceda. En otras palabras, el jugador tiene que estar ingresando a esas celdas desde otra celda exterior o interior.
Una forma más fácil es marcar los NPC como esenciales usando la consola o creando un archivo por lotes del juego, usando el siguiente formato para cada línea de comando:
esencial 1
Dicho archivo por lotes se puede crear con cualquier editor de texto disponible, como el Bloc de notas:
seesencial 13BB9 1 ; Adrianne Avenicci es esencial 13BA1 1 ; Belethor es esencial 13BA4 1 ; Arcadia
Guarde el archivo como un archivo de texto sin formato en la carpeta Skyrim (SE), por ejemplo, whiterun.txt. En el juego abre la consola y ejecuta el siguiente comando:
murciélago carrera blanca
Tenga en cuenta que agregar demasiadas líneas de comando puede hacer que la consola omita una o más líneas de comando en el archivo por lotes mientras se ejecuta, lo que he experimentado en algunas pruebas. Por lo tanto, podría ser una buena idea limitar el número de PNJ a cada una de las nueve bodegas. No agregue NPC que ya hayan sido marcados como protegidos, ya que estos NPC pueden haber sido marcados como protegidos intencionalmente. La mayoría de los NPC de Dragonborn están marcados como protegidos desde el inicio del juego. Puede encontrar una descripción general de todos los NPC únicos en el juego en este página.
Muertes registradas en el archivo guardado
Las muertes de NPC únicos y no únicos se registran en su archivo guardado, de diferentes maneras. Esos datos se registran en una sección del archivo guardado conocida como Tabla de formularios de cambio. Como su nombre ya sugiere, los datos de esta tabla se pueden cambiar y cambiarán continuamente. Esta tabla contiene un registro para cada actor base, y el registro para cada actor base contiene un campo que registra el número de muertes para ese actor base. Este campo se puede cambiar tanto para NPC únicos como no únicos. Para NPC no únicos como guardias, bandidos, arañas congeladas, etc., hay un "contador de muertes" genérico para cada tipo específico de actor base. Para cada NPC único, solo hay un único "contador de muerte". Para NPC únicos, este "contador de muertes" solo se puede configurar en el archivo guardado como 0 (vivo) o 1 (muerto), mientras que para NPC no únicos, el valor puede ser mayor que 1, y este valor indica el número de actores base. de un tipo específico que han sido asesinados, por ejemplo, la cantidad de animales, criaturas y actores no únicos como guardias, bandidos, brujos, etc.
Nota importante
Todos los datos que terminan en la Tabla de formas de cambio después de guardar, también se pueden cambiar durante el juego antes de guardar. Esta tabla no registrará ningún cambio realizado durante el juego. Si un NPC muere y resucita y el NPC está vivo al guardar, el guardado solo registrará que el NPC está vivo. Sin embargo, ya se han puesto en marcha otras acciones sobre ese NPC.
Técnico
El estado de las muertes de NPC únicos y no únicos se registra en el archivo guardado en el registro ACHR de la Tabla de formularios de cambio. El juego puede cambiar los datos en los campos de este registro y se cambiarán continuamente con cada cambio de un NPC, como el contenido del inventario, la propiedad, el contenido del contenedor del comerciante, la posición en una celda, la disposición, etc. El " contador de muertes” es uno de esos campos modificables en el registro ACHR y su valor puede ser leído por el comando de consola GetDeadCount (usando el BaseID) o la función Papyrus (usando el EditorID):
Consola:
haz la cuenta muerta 23A8B
Papiro:
Actor Propiedad CaveBear Auto Int i = CaveBear.GetDeadCount()
Ya se ha demostrado que este "contador de muertes" puede y será cambiado para NPC únicos y no únicos, tanto durante el juego como después de guardar.
Eso es todo lo que estamos compartiendo hoy para este The Elder Scrolls V: Skyrim guía. Esta guía fue originalmente creada y escrita por Alberto. En caso de que no actualicemos esta guía, puede encontrar la última actualización siguiendo este liga.