SHIRKA, PERSONALIDAD PARA EDDI EN ESPAÑOL
Hola a tod@s,
Abro hilo para darle un poco más de visibilidad, pero todo viene a partir de este hilo: https://forums.frontier.co.uk/threads/eddi-en-espanol-released.428059/post-9530682
¿Qué o quién es Shirka?
Si no la conoces... ¡Deberías!
Shirka es una personalidad para el programa EDDI, pero en español.
Si no conoces EDDI...¡Deberías!
EDDI es un programa que va leyendo el archivo journal mientras estás jugando de forma que sabe en todo momento lo que está pasando en el juego.
Cuando pasan determinados eventos se activan ciertos scripts que dan respuesta por voz. Parecido al COVAS de la nave, pero configurable.
Al conjunto de esos scripts se le llama "personalidad".
Pues bien, Shirka es eso, un conjunto de scripts que responde a eventos del juego con mensajes de voz.
Un poco de historia:
Shirka fue creada por el CMDT Altair28 tomando como base los scripts en inglés originales de EDDI. A todas todas es el papá de Shirka.
Más tarde tomaría el relevo el CMDT @Hoksilato, que con la ayuda de los CMDTs Elpiratejo y @7x5, adaptó la personalidad a la nueva versión multi-idioma de EDDI.
(Hoksilato también creó el famoso Hoksipack, que aconsejo encarecidamente que le echéis un vistazo si aún no tenéis EDDI instalado, os hará la instalación muchísimo más sencilla).
Pues bien, después de mucho tiempo sin que nadie le metiera mano a Shirka (en el buen sentido), ahora es mi turno...
Después de 7 versiones publicadas en el hilo que he puesto antes, he decidido dar el paso y presentar en sociedad a la nueva Shirka en su propio hilo, este.
Bueno, y a todo esto... ¿Qué hace esa Shirka? ¿Te hace el café?
Pues, como comentaba antes, viene a ser un ordenador de a bordo:
Nos ayuda en el día a día del juego con información varia, como por ejemplo:
- El estado de un sistema (si está en auge, si está en guerra, quien va ganando...)
- Nos avisa cuando vamos bajos de combustible o cuando nos olvidamos de comprar drones
- Nos da información de los planetas que escaneamos
- Nos avisa de los que son valiosos para que los mapeemos
- Etc.
Mi intención es que sea casi como una inteligencia artificial. Incluso le he dado cierta personalidad sarcástica y socarrona que si te saca unas risas, ya me doy por satisfecho =) .
A parte de esto, también he reparado partes que no funcionaban y he añadido cosas nuevas que eran útiles para mi:
Casi todas son relacionadas con la exploración (que es lo que más hago), pero también he añadido alguna mejora útil para bgs o farmeo.
En esta última versión he hecho los cambios más drásticos (y por eso el cambio de numeración respecto a mis versiones anteriores), entre ellos que ahora se pueden personalizar algunos aspectos de Shirka de una forma más sencilla, y que el código se ha cambiado a una forma más modular de programación.
Y no... El café no lo hace (de momento).
Basta de cháchara... ¡Enséñame la merca!
Vaaale... Aquí va la lista de cambios de la versión actual.
SHIRKA v5.1.0:
Personalidad diseñada y ajustada a los cambios introducidos en la versión de EDDI v.4.0.2
- [Mejora] Retocada la pronunciación de algunos números.
- [Fix] El aviso de detección de señales de superficie ya no se activa cuando estamos atracados en una estación.
Esto evita que te avise de las señales que tiene el planeta al que orbita la estación. - [Fix] Corregidos los mensajes de avisos de guerras al entrar en un sistema.
Ahora no dice que están empatados si el conflicto aun no ha empezado. - [Fix] Reparado el script de entrada a una señal [Entering signal source].
Por culpa de unos errores tipográficos, heredado de versiones anteriores, nunca se ha ejecutado como es debido. Mejorados algunos mensajes y añadida variedad. - [Mejora] Ahora el mensaje de bajas enemigas, es distinto si el adversario es un Thargoide.
- [Mejora] Reescrito varios trozos de código de los scripts de aviso de misiones al entrar en un sistema o en el rango de una estación.
Tambien se han repasado las respuestas al cobrar misiones. - [Fix] Cuando un compañero de equipo recoge o entrega productos en un almacén de misión ya no dirá "desconocido" para la mercancía.
- Script [Asteroid Prospected]:
- [Fix] Arreglado el script. Hasta ahora, por un error de traducción heredado de versiones anteriores, no estaba funcionando.
- [Mejora] Movidas sus Preferencias a [.Shirka Preferencias]
- [Mejora] Ahora únicamente informará si la nave está configurada como nave minera o multipropósito en "Monitor de la nave"
- [Mejora] Ahora [Swapout check] usa la función humaniza() y dice bien los plurales.
- [Mejora] Cambiada información de la gravedad del planeta al final del planeo en vez de al principio de este.
- [Mejora] Excluidos ciertos avisos mientras estamos volando de pasajeros o en un Apex.
- [Mejora] Retocado [NPC interdiction commenced] para darle variedad y quitarle la repetición.
- [Nuevo] Script [Ship interdicted] introducido en la nueva versión de EDDI. Traducido y añadido un mensaje alternativo para cuando nos dejamos ganar la interdicción, que no tenía el original.
- [Nuevo] Script [Nav route] introducido en la nueva versión de EDDI. Traducido y retocado para darle variedad (falta mover las preferencias a [.Shirka Preferencias]).
- [Fix] Reparado problemas con plurales en el script [Module retrieved].
- [Nuevo] Script [System materials report] introducido en la nueva versión de EDDI. Traducido y añadido a los eventos en los que se invoca dicho script [Discovery scan] y [System scan complete].
Este script avisa de los posibles materiales que se pueden encontrar en el sistema actual, ya sea en superficie de planetas o en señales.
(no estoy muy contento con como ha quedado después de traducirlo, lo más seguro es que le de un repaso en el futuro). - [Fix] Los avisos de mapeado de anillo también se dirán si la nave está configurada como minera. Hasta ahora sólo avisaba en naves de Exploración y Multipropósito.
- [Nuevo] El script [Touchdown] se ha adaptado con código de la nueva versión de EDDI y ahora incluye un aviso cuando las temperaturas del planeta son peligrosas para salir a pie.
Movidas las preferencias de este script a [.Shirka Preferencias] - [Nuevo] Script [Message received] introducido en la nueva versión de EDDI. Traducido y adaptado al español.
Este script nos lee los mensajes recibidos tanto por NPCs como por jugadores. En el caso de los NPC el script intentará dar una voz diferente a cada uno, siempre y cuando haya más de una voz en español en el sistema.
Falta mover sus preferencias a [.Shirka Preferencias].
Está en beta y no funciona siempre como debería. En caso de que te de problemas, quita el "tick" de activado de este script.
REQUISITOS:
El único requisito es tener instalado EDDI, pero es altamente recomendable tener desbloqueada la voz de Cortana (aka Microsoft Ana)
En caso de no tener EDDI instalado, o que no tengas la voz de Cortana desbloqueada, te aconsejo que instales el Hoksipack de nuestro compañero @Hoksilato.
Lo puedes encontrar en el primer post de este hilo: https://forums.frontier.co.uk/threads/eddi-en-espanol-released.428059/
INSTALACIÓN:
Descarga el zip adjunto a este post y con EDDI cerrado, descomprime el contenido dentro en la carpeta %APPDATA%\EDDI\Personalities (sustituyendo el fichero existente en caso que ya tuvieras una versión anterior).
Luego, abre EDDI y en la pestaña Asistente Vocal, selecciona en el desplegable la personalidad que se llama Shirka_Odyssey (confima que pone 'Shirka v5.1.0').
OPCIONAL:
De mientras, he modificado la librería que hace fallar la lectura (es por culpa de faltarle el acento) y os la dejo también en este post.
Tenéis que descomprimir el zip y poner la DLL EddiSpeechService.resources.dll en la carpeta "es".
La encontrareis en el directorio de instalación del EDDI (podéis saber donde es mirando las propiedades del icono del EDDI y mirando ahí la ruta).
En la nueva versión de EDDI (la v.4.0.2) ya está corregido este fallo y no hace falta hacer nada de lo anterior.
HISTORIAL DE CAMBIOS:
- [Mejora] Implementado un nuevo sistema para personalizar a Shirka: Todas las preferencias se encuentran en el primer script de la lista, llamado ".Shirka Preferencias".
Ese fichero se puede editar para que los mensajes se ajusten a nuestro agrado. - [Nuevo] Añadida una variable a las preferencias para desactivar la Shirka sarcástica.
Si no quieres que Shirka te sorprenda con sus salidas de tono, ahora puedes desactivar su grosería. - [Mejora] Se han movido varias funciones al script de apoyo ".Shirka Runtime".
Entre ellas están la función para el cálculo del valor actual y máximo de los cuerpos, el chequeo de si un cuerpo es terraformable, o si es valioso o no. - [Fix] Solucionado un fallo de reconocimiento de género y número en 'signal detected'.
- [Fix] Corregido un error con los multilanzadores que no eran reconocidos como tal y fallaban en "limpet check" avisando erróneamente de llevar drones en la bahía de carga y no tener ningún lanzador.
- [Fix] Corregido error en 'Search and rescue'.
- [Mejora] Variedad en los mensajes de recogida de mercancías por la escotilla de carga (ya sea por drones o a mano).
- [Mejora] Se ha creado una función para corregir la pronunciación de "cápsula de escape" entre otras mercancías. (Las voces de Microsoft se emperran en leer escape con entonación inglesa).
- [Fix] Reparado el mensaje de la densidad que se reportaba en femenino cuando "kilogramos por metro cúbico" es masculino.
- [Mejora] Actualizados, con más variedad, los mensajes informando sobre los ingenieros del sistema.
- [Nuevo] Cambio en los mensajes de primer mapeo y bono por eficiencia cuando se obtienen ambos.
Añadida opción en el fichero de preferencias para modificar la frecuencia del aviso del mensajes del bono por eficiencia (pensado para ti que siempre consigues el bono y estas harto que te lo recuerde cada vez) - [Nuevo] Selector del informe de características notables de un cuerpo según la rareza respecto a la media de su tipo. Usado al escanear un cuerpo con el ECS.
Ahora hay 3 grados de ajuste: Se puede indicar que informe únicamente de cuerpos que se desvían muchísimo de la media, se desvían bastante, o si quieres que te avise por poco que sea esa desviación. - [Nuevo] Añadidos "presets".
De momento hay sólo 2, pero son configurables por el usuario y se pueden añadir los que se quieran. Lo que hacen es poner las preferencias a un determinado valor con cambiar una única variable.
Por ejemplo, el preset de exploración "rápida" está pensado para aquellos exploradores que en cierto momento, quieren ir por faena y sólo quieren ser avisados de cuando se encuentran cuerpos valiosos y de sus valores.
Cambiando la variable presetExploracion a "rápida", automáticamente se cambiaran los valores de avisos de informes y demás. Sin tener que ir modificando una a una todas las variables y sin perder la configuración por defecto.
(Esto de los presets es una primera aproximación a un futuro nuevo comando para VoiceAttack que permita cambiar entre modos de Shirka).
- Modificaciones en la compra/venta/movimiento de módulos de la nave.
- Cuando llenas la bodega mediante una compra, se espera a que termine el aviso de "Bodega de carga a máxima capacidad" para no hablar encima de él.
- Cuando la mercancía que compras son esclavos se les nombra como lotes o grupos, no toneladas.
- Añadida una variable 'slaver' en 'commodity sold': Si está en 'false' el mensaje al vender esclavos será que los "liberas". (Pensado para los que como yo, rolean en el juego en modo anti-esclavistas).
- Arreglado un mensaje entrecortado al salir de supercrucero cerca de un planeta.
- Más variedad en los mensajes y añadido el coste del servicio en el script de transferencia de naves.
- Corregido un error en la traducción de una variable por el que no se decían unas frases al aceptar una misión.
- Más variedad en el anuncio del bloqueo de las pistas de aterrizaje cuando va a saltar tu carrier.
- Más variedad al anunciar donde está la plataforma de aterrizaje en las estaciones tipo Coriolis.
- Ahora nos avisa al salir del vuelo orbital (cuando abandonamos el pozo gravitatorio de un planeta y cambia el HUD).
- Cambiados algunos mensajes referentes a los estados de las facciones en el sistema (sobre todo en los de guerra).
- Corregida una equivocación entre 'bonos de combate' y 'recompensas'.
- Modificado el script de información de cuántos planetas quedan por escanear para que no informe en aquellos sistemas especiales que ya están escaneados por defecto.
- Añadido un easter egg en el mensaje de aviso de denegación de pista de aterrizaje. =)
- Se ha hecho un buen repaso a todo lo relacionado con las misiones:
- Avisos de misiones activas
- Avisos de tiempo de expiración
- Aviso de misiones pendientes/activas al entrar en una base/sistema
- Etc.
- Corregido un error que hacía que el script 'limpet check' no funcionara:
Ahora Shirka nos recordará comprar drones en el caso de que llevemos en la nave un lanzador, pero en la bodega de carga no tengamos ninguno. - Cambiado el orden del aviso del valor de los datos de exploración de un cuerpo al terminar su mapeado:
Ahora se dice justo después del aviso de la bonificación por eficiencia. - Fallo corregido: Ahora el valor de un cuerpo que recibimos tras un mapeado no da por sentada la bonificación por eficiencia, la aplica según convenga.
- Ahora se avisa con un mensaje diferente si el cuerpo escaneado es primer descubrimiento.
- Ahora, al completar el mapeado de un cuerpo, avisa si se ha aplicado el bono por primer mapeado.
- Añadida variedad en los mensajes de escaneado de cuerpos con el ECS.
- Reescrito casi por completo el script 'Body report summary' por tener partes que no funcionaban como deberían y para darle un poco de variedad.
También se ha dejado más claro que la rareza del cuerpo es en base a la media de su tipo: Para que mensajes como 'con una gravedad extrema de 0.49g' no suene extraña. - Creado un script exclusivo para esta personalidad que sirve como librería de funciones usadas en varios de los scripts.
Por ejemplo, la funciona sustituta de humanize() en español, y otras funciones de apoyo para los artículos (femenino, plurales).
De esta manera es mucho más fácil de editar el código y se mantiene más legible.
- Reparado un fallo en script Crime Check Station, que hacía que no informara bien de tus multas y recompensas sobre tu cabeza al acercarte a una estación. Ahora informa correctamente si la estación tiene servicios para poder limpiarte. También he añadido variedad al mismo.
- Tambien he retocado el script Crime Check System, parecido al anterior, pero este salta al entrar en un sistema.
- Se ha corregido el comportamiento y ahora vuelve a avisar de los planetas valiosos en sistemas habitados siempre y cuando la nave esté configurada como Exploración o Multiproposito (igual que antes).
Cuando implementé el NO aviso de "cuántos cuerpos quedan por explorar" en sistemas habitados, esto se desactivó también por error.
El porqué quité esos avisos es porque en los sistemas de la burbuja no puedes escanear según que planetas, pues son conocidos y ya aparecen como escaneados. EDDI no tiene forma de saber esto y se piensa que te faltan por escanear, y de ahí que te estuviera avisando de que te faltaban cuerpos por escanear cuando, en realidad, es imposible hacerlo. (@ZASCA, ya me dirás si ahora te va bien). - Se ha aplicado el mismo método de espera en los mensajes de escaneado de cuerpos para las señales (en el ECS).
Para este algoritmo, he separado los contadores de espera de la detección de señales, el de los escaneos de planetas/lunas y el de las estrellas.
(Aunque hay situaciones en las que no funciona como debería... Tengo que revisarlo más). - Corregidos errores de sintaxis en el script Search and Rescue (El que se ejecuta al entregar cajas negras y cápsulas de escape).
Seguramente nadie se ha dado cuenta, porque nadie juega a ese rol ^_^; - El mensaje de en donde nos encontramos al entrar al juego, ha sido retocado. Ahora es más natural, no se equivoca con los géneros y tiene un poco más de variedad.
- Al recoger un material, nos avisará de cuantos tenemos a bordo.
El mensaje no siempre será igual para no ser pesado. Gracias a @jcardelo por la idea. - Los mensajes informativos sobre los estados de las facciones al entrar a un sistema se han retocado.
Ahora son más fluidos y no se equivoca en los géneros ni en los plurales.
- Corregido un pequeño error que hacía que no se informara de los planetas con valores fuera de lo normal al ser escaneados.
Ya sabeis, esos con órbitas extrañas o densidades anormales. - Ahora el script de reparación de módulos tiene en cuenta el género y el número a la hora de enunciar los módulos.
No más "La hangar SVR..." o "El impulsores...". - Cambiado Percentiles por Porcentajes en el script de Community Goal.
Gracias a @ZASCA por el aviso. - Ahora los avisos de que no se ha terminado de escanear un sistema sólo se darán en sistemas no habitados.
De nuevo gracias a @ZASCA. - Se ha aplicado una espera entre avisos de escaneos de estrellas.
No más informes, uno tras otro, de todas las estrellas del sistema al entrar en él. - Más variedad en varios mensajes.
En particular en los avisos de que no se han encontrado planetas valiosos en el sistema. - Añadido un nuevo Easter Egg en exploración.
- Corregido el tema de los scripts por defecto.
Ahora no deberían de repetirse los avisos de los Community Goals, y los saltos de carrier deberían de volver a informarse. - Actualizado el script de "Bond Awarded" para que el mensaje de enemigo abatido sea más genérico y valga tanto para naves como para enemigos a pie.
Gracias a @ZASCA por el aviso.
Por supuesto, le he dado mi toque personal para que el mensaje no se repita siempre de la misma forma. Incluso le he puesto un pequeño easter egg que si os gusta, lo puedo poner en más de un script para que Shirka tenga un poco más de personalidad. - Añadido el aviso de rellenar el tanque de oxígeno al reparar el módulo de soporte vital.
Cuando se repara el soporte vital, se desactiva y empieza a gastar el oxígeno del tanque de emergencia. Dicho oxígeno no se rellena al reparar, por lo que cada vez que se repare, quedará menos. El aviso es para aquellos exploradores de largas distancias, que suelen hacer mantenimientos a la nave periódicamente, no sea que se queden sin oxígeno sin querer.
NOTA: A este script le meteré mano próximamente, fallan los géneros y plurales al mencionar los módulos que repara. - Cambiado el sistema de espera a que termine de hablar de los mensajes de planeta escaneado.
Ahora cuenta el número de caracteres del mensaje en vez de usar un valor fijo, por lo que debería ser más preciso. - Ahora Shirka nos avisará si no ha encontrado ningún planeta valioso al finalizar el escaneo del sistema.
- Se han hecho algunos ajustes para que los mensajes de escaneado y mapeado no tengan inconsistencias en casos como mapear un planeta (valioso o no) antes de haber escaneado el sistema por completo.
- Añadida la despedida al cerrar el juego en EDDI. Por defecto el script está desactivado para que no interfiera con los usuarios que usan VA.
- Limpieza de código inútil, depuración de código enrevesado y añadidos nuevos bugs aún por encontrar.
- Arreglada dicción de los números: Ahora los números se leen en masculino o fememino según se necesite.
Se ha corregido algunos pequeños errores, en particular con los decimales, y se ha limpiado el código del script Humaniza. - Se han añadido pausas aleatorias en algunas frases para que parezca más humana la pronunciación y para evitar que se repita con la misma entonación.
Es una chorrada, pero añade variedad y evita que Shirka empiece a molestarte pasadas unas horas. - Mejora drástica en el cálculo de los valores de los cuerpos: Al parecer EDDI sólo es capaz de darte el precio de los cuerpos según tu escaneado actual. Es decir, que si has escaneado un cuerpo (sin mapear) y pides el valor de ese cuerpo, en vez de darte el valor máximo (escaneo y mapeo), te da sólo el valor del escaneo.
Esto es una putada para el script Body scanned ya que en él te avisa de los cuerpos valiosos y debería decirte su valor total (para que decidas si lo mapeas o no), pero ese valor no cuenta con el mapeo (ni con primeros descubrimientos/mapeos).
Total, que he investigado y he dado con la fórmula para un cálculo mucho más exacto de los valores de los cuerpos. La fórmula la he sacado de aquí: https://forums.frontier.co.uk/threads/exploration-value-formulae.232000/ y tiene en cuenta cosas como si estás usando Odyssey (pagan más en Odyssey, cosa que no tenía ni idea), o si es un primer descubrimiento o primer mapeo (aunque no cuenta cosas como el bonus que se recibe por mapear un sistema completamente, es despreciable).
El nuevo script que se encarga de estos cálculos se llama Last scan value. Funciona de manera transparente al resto de scripts que usan el antiguo método de EDDI, simplemente añade una nueva variable global llamada eddi_context_last_scan_max_value que contiene el valor máximo obtenible del último cuerpo escaneado.
la antigua variable eddi_context_last_scan_estimated_value se sustituye por el valor actual de escaneado del cuerpo, pero pasando por la formula nueva.
En resumen, que ahora cuando escanees con el ECS un cuerpo que sea de los valiosos, el valor que te va a decir será mucho más cercano al real que cobrarás. - Limpiado código aquí y allá, y optimizado algunas cosillas (aunque se ha generado código nuevo que seguramente se podrá optimizar... Para futuras versiones).
- Corregido fallos.
- Traducción completa al español.
- Arreglado el script de Dissembark.
Mi primera release pública:
- Shirka original, con cosas reparadas, cosas de cosecha propia y con los añadidos de Odyssey (la mayor parte en inglés).
Edit: 12/02/2023 - Subida versión v5.1.0 (dejo la versión anterior como histórico de versiones).
Attachments
Last edited: