Modding:Datos de gustos por regalos

De Stardew Valley Wiki
Ir a la navegación Ir a la búsqueda

Índice

Esta página explica cómo el juego calcula los gustos de regalo de cada PNJ. Esta es una guía avanzada para desarrolladores de mods.

Datos

Datos internos

Los gustos de regalo son guardados en Content\Data\NPCGiftTastes.xnb, los que pueden ser descomprimidos para editar. Como ejemplo, esta es la información (de la versión 1.5.1):

Data 
{
  "Universal_Love": "74 446 797 373 279",
  "Universal_Like": "-2 -7 -26 -75 -80 72 395 613 634 635 636 637 638 724 459 873",
  "Universal_Neutral": "194 216 262 304 815",
  "Universal_Dislike": "-4 -8 -12 -15 -16 -19 -22 -24 -25 -28 -74 78 169 246 247 305 309 310 311 403 419 423 535 536 537 725 726 749 271",
  "Universal_Hate": "0 -20 -21 92 110 111 112 142 152 153 157 178 105 168 170 171 172 374 376 378 380 397 420 684 721 766 767 772 203 308 265 909 910",
  "Robin": "¿Es para mí? ¡¡Guau, me encanta!!/224 426 636/¡Gracias! ¡Qué amable!/-6 -79 424 709/Um... ¿Cómo?/16 330/¿Pero qué...? ¡Esto es horrible!/2/Gracias. Esto podría resultarme útil.//",
  "Demetrius": "¿Me regalas esto? ¡Es genial!/207 232 233 400/¡Gracias! Es un espécimen muy interesante./-5 -79 422/¿Qué es esto...?/80 330/Es asqueroso./2/Es muy amable de tu parte./-4/",
  "Maru": "¿Eso es...? ¡Oh, guau, @! ¡Es espectacular!/72 197 190 215 222 243 336 337 400 787 910/¡Menudo regalazo! ¡Gracias!/-260 62 64 66 68 70 334 335 725 726 909/Oh... ¿Es para mí? Lo guardaré por ahí.../-4 330 414 410 404 724/¡Ecs! ¿De verdad creías que me iba a gustar esto?/340 342 2 430 416/Gracias.//",
  "Sebastian": "Esto me encanta. ¿Cómo lo has sabido?/84 227 236 575 305/Gracias, me gusta./267 614 276/¿...?/-81 30 -80/Odio esto.../-5 2 459 195 201 240 330 -26 873/Gracias, y tal.../-4/",
  "Linus": "¡Es un regalo fantástico! Me acabas de alegrar el día./88 90 234 242 280/Es un regalo genial. ¡Gracias!/-5 -6 -79 -81/Hmm... Esto no me dice gran cosa./-2 330/¿Por qué me das algo así? Que viva en una tienda de campaña no quiere decir que me guste la basura. Es horrible./2/¿Un regalo? Qué amable./-4/",
  "Pierre": "¡Me encanta! ¡Gracias!/202/Es muy amable de tu parte. Me gusta./-5 -6 -7 18 22 402 418 259/No es que me entusiasme.../-2 -81 330/Por favor, no vuelvas a traerme esto nunca./167 -4 199 270 229 248/¿Un regalo? ¡Gracias!//",
  "Caroline": "¿Me das esto... a mí? No tengo palabras./213 614 593 907/¡Oh, cielos! ¿Seguro que quieres darme esto?/-7 18 815 402 418/No, no, no.../-81 330 300 306 307/Esto es una basura. Me ofendes./80 296/Oh, qué detalle. Gracias.//",
  "Abigail": "¡Me encanta, de verdad! ¡Eres la bomba, @!/66 128 220 226 276 611 904/¡Hala! ¿Cómo sabías que me rugía la tripa? ¡Tiene una pinta deliciosa!//¿Qué se supone que voy a hacer con esto?/-5 -75 -79 16 245 246/¿En qué estabas pensando? ¡Es horrible!/330/¿Me has traído un regalo? Gracias.//",
  "Alex": "¡Guau, qué pasada! ¡Me encanta!/201 212 662 664/¡Es un regalo chulísimo! Gracias./-5/Um... Vale. Gracias./16 330/¿Estás de broma? Menuda porquería./80/¡Gracias!//",
  "George": "¡Me gusta muchísimo! Gracias./20 205/Gracias./18 195 199 200 214 219 223 231 233/Menuda birria de regalo./-80 16/Creo que es lo peor que me han regalado nunca. Gracias, ¿eh?/22 80 330/¿Un regalo? Hmm...#$e#¿Quieres algo a cambio?//",
  "Evelyn": "¡Uy! ¡Menuda maravilla!$u#$e#Acabas de hacer muy feliz a esta anciana./72 220 239 284 591 595/¡Oh, cielos! ¡Tiene un aspecto maravilloso! Es muy amable de tu parte./-6 18 402 418/Um, ¿dónde quieres que ponga esto?/16 80/Huele fatal.../225 226 227 228 219 396 397 393 372 248 296 -4 330/Qué amable. Gracias, cielo.//",
  "Lewis": "¡Guau, esto siempre me alegra el día! ¡Gracias!/200 208 235 614 260/¡Gracias, es genial!/-80 24 88 90 192 258 264 272 274 278/Bueno, supongo que lo que cuenta es la intención.../-6 16 330/Me dan ganas de vomitar. Qué regalo tan horroroso./80/Es muy amable de tu parte. Gracias.//",
  "Clint": "¡Sí! ¡Es exactamente lo que buscaba!/60 62 64 66 68 70 336 337 605 649 749/Qué regalo tan divertido. ¡Gracias!/334 335/*Sigh*/-80 2 16 80 /Este regalo me deprime./4/Gracias./-15/",
  "Penny": "¡Gracias! ¡Me encanta!/60 376 651 72 164 218 230 244 254/¡Gracias! Es un regalo muy especial./-6 20 22/Uh, ¿para mí? Gracias.../-4 80 330 456 457 444 440 422 420/Ugh... Lo siento, pero no me gusta ni siquiera un poco./446 346 348 303 304 398 459 873/Gracias, es bonito.//",
  "Pam": "¡Vaya, vaya! ¡Esto sí que es un regalo! Un millón de gracias./24 90 199 208 303 346 459 873/Has acertado de lleno. ¡Gracias!/-6 -75 -79 18 227 228 231 232 233 234 235 236 238 402 418/No es muy de mi estilo./-5 16 80 330/Es totalmente repugnante.$u#$e#(¿Será algún tipo de broma de mal gusto?)/149 151/Gracias, majo.^Gracias, maja./-4/",
  "Emily": "¡Este regalo es fantástico! ¡Muchas gracias!/60 62 64 66 68 70 241 428 440/¡Gracias! Este regalo irradia energía positiva./18 82 84 86 196 200 207 230 235 402 418/Lo siento, @. No me gusta./78 2 232 233 225 226/Este regalo desprende una energía negativa muy fuerte. No lo soporto./212 213 227 228/¡Gracias!//",
  "Haley": "¡¡Madre mía, es lo que más me gusta del mundo!!/221 421 610 88/Ah... ¿Para mí? ¡Gracias!/18 60 62 64 70 88 222 223 232 233 234 402 418/Ugh... Qué regalo tan ridículo./-5 -6 -75 -79 -81 80 -27/¡Qué asco!/-4 2 16 330 74/Gracias. Me encantan los regalos.//",
  "Jas": "Ah... ¡¡Guau!! ¡Gracias!$h/221 595 604/¡Me encantan los regalos! ¡Gracias!/18 60 64 70 88 232 233 234 222 223 340 344 402 418 903/¿Esto es un regalo? Oh...$s/-5 -81 -75 -79 80/Puaj. Qué grima.$s/253 395 459 -26 2 16 330 873/¡Gracias!//",
  "Vincent": "¡Guau, muchas gracias! ¡Es estupendo!/221 398 612 721 903/¿Para mí? ¡Guau, gracias!/18 60 64 70 88 232 233 234 222 223 340 344 402 418/No tiene gracia...$s/-5 -75 -79 -81 80/Puaj, ¿qué es esto?$s/253 395 459 -26 2 16 330 873/¡Gracias!//",
  "Jodi": "¡Oh, eres un cielo! ¡Me encanta!/72 200 211 214 220 222 225 231/¡Gracias! Me acabas de alegrar el día./-5 -6 -79 18 402 418/Hmm, bueno, supongo que puede servirme como abono.../-81 80 248 330/Puaj... No me gusta nada.../18 22 396/¡Qué amable! Gracias.//",
  "Kent": "¡Oh...! Mi madre me daba de esto cuando era pequeño. Me trae unos recuerdos maravillosos. Gracias./607 649/Ey, esto sí que es un regalo de verdad. Gracias./-5 -79 18 402 418/Ah... Es un... ¿Qué es esto, exactamente? Hmm.../80 330 416 873/Esto... solían dármelo en el campo de prisioneros del Imperio Gotoro. Prefiero olvidar todo lo relacionado con aquella época... *Brrr*/-6 2 227 229 456/Muy amable. A mi familia le gustará.//",
  "Sam": "¡Oh, yeah! ¡Esto es lo que más me gusta del mundo!/90 206 655 658 562 731/¡Gracias! Me gusta mucho./167 210 213 220 223 224 228 232 233 239 -5/Hmm... Es... interesante./-81 80 152 330 -75/No lo pillas, ¿no?/306 307 342 -15 2/¿Me has traído esto? ¡Gracias!//",
  "Leah": "¡Oh! ¡Es justo lo que quería! ¡Gracias!/196 200 348 606 651 650 426 430/¡Es un regalo muy bonito! ¡Gracias!/-5 -6 -79 -81 18 402 169 406 408 418 86/Hmm... Supongo que para gustos, colores./-2 2 152 330 221 223 229 232 233 241 209 194/Es un regalo bastante cutre, ¿eh?/305 211 210 206 216/Gracias.//",
  "Shane": "¡Oh, guau, @! ¿Cómo sabías que este es mi regalo favorito?/206 215 260 346/¡Es genial! ¡Gracias!/-5 -79 303/No me gusta demasiado./-81 152 330/¿Por qué me regalas tu basura?/80 342/Oh, ¿me has traído algo? ¡Gracias!//",
  "Marnie": "¡Es un regalo increíble! ¡¡Gracias!!/72 221 240 608/¡Gracias!/-5 -6 402 418/Oh. Supongo que me lo quedaré./16 152/Esto no vale para nada. ¿En qué estabas pensando?/330/¡Gracias! Tiene buen aspecto.//",
  "Elliott": "¡@, es un regalo precioso! ¡Gracias!/715 732 218 444 637 814/¿Es para mí? ¡Maravilloso!/727 728 -79 60 80 82 84 149 151 346 348 728/Hmm... No me gusta demasiado, que digamos./16 206 330 -79 -81 -6/Hay algo en esta cosa que me da mala espina. Tendré que deshacerme de ella./80 154 300 296/¡Oh, un regalo! ¡Gracias!/-4/",
  "Gus": "¿Me das esto... a mí? No tengo palabras./72 213 635 729 907/¡Oh, cielos! ¿Seguro que quieres darme esto?/348 303 -7 18/No, no, no.../16 330/Esto es una basura. Me ofendes./80 167 648/Oh, qué detalle. Gracias.//",
  "Dwarf": "Oye, me encanta esto. En la mina puedes encontrar cosas increíbles./554 60 62 64 66 68 70 749/Ah, esto me recuerda a mi hogar./78 82 84 86 96 97 98 99 121 122/Hmm... ¿Es esto lo que os gusta a los humanos?/-5 -6 16 -81 2 4 330/No me importa de qué especie seas. Esto no es más que basura inútil.//¡Una ofrenda! Gracias./-28/",
  "Wizard": "Ahh, esto rebosa poderosas energías arcanas. Es muy útil para mis investigaciones. ¡Gracias!/155 422 769 768/Muchas gracias. Este objeto tiene unas propiedades muy interesantes./-12 72 82 84/¿Esto...? Supongo que lo lanzaré a las llamas para ver qué ocurre./-5 -6 -81 2 16 330 766/Ughh... Este tipo de cosas son increíblemente mundanas. Por favor, procura no volver a traerme algo así en el futuro.//Gracias. Esto me resultará útil, creo.//",
  "Harvey": "¿Es para mí? Me encanta! Es como si me hubieras leído la mente./348 237 432 395 342/Qué regalo tan bonito. ¡Gracias!/-81 -79 -7 402 614 418 422 436 438 442 444 422/Hmm... ¿Seguro que esto es bueno para la salud?/-4 424 426 2 330 233 232 238 234 223 222 221 220 216 211 210 208 206 205/Creo que soy alérgico.../296 245 397 396 394 393 392/Gracias. Es muy amable de tu parte.//",
  "Sandy": "¡Oooh! Me encanta que me regalen cositas del valle. ¡Me haces muy feliz!/18 402 418 905/Esto es maravilloso. ¡Muchísimas gracias!/-75 -79 88 428 436 438 440/Oh... Um... Gracias./-4 2 330/*Snif* ¿Qué es esta cosa?//¿Es para mí? ¡Gracias!//",
  "Willy": "¡Es genial! Si mi pobre padre siguiera entre nosotros... ¡Esto le habría encantado!/72 143 149 154 276 337 698 459/Tiene un aspecto estupendo. ¡Gracias!/66 336 340 699 707 198 202 209 212 213 214 219 225 727 730 728 732 265/Hmmm... ¿Te va este tipo de cosas? Uh.../-7 -81 2 4 330/*Snif* Bueno, supongo que me valdrá como cebo.//¡Un regalo! Gracias./-4 227 228 242/",
  "Krobus": "Es un regalo increíble. Para mi raza recibir algo así es todo un honor./72 16 276 337 305 308/Muchas gracias./66 265 336 340/Los humanos tenéis... gustos curiosos./-7 -81 2 330/Oh... Um... Supongo que acepto el regalo.//Gracias.//",
  "Leo": "Me encanta. Voy a ponerlo en mi nido./444 289 834 906/¿De verdad? Es todo un detalle.../852 396 392 394 397 905/Oh... No creo que pueda digerirlo.../-7 -81 2 330 303 459 342 346 348/*olfateo* *olfateo*... ¿Por qué me das esto? ¿Quieres que lo entierre para tí?/257 253 247 271 283 304 303 346 873 348 459 167/Acepto tu regalo./-4 395/"
}

Formato

El archivo contiene dos tipos de datos:

  • Gustos Universales aplican a PNJs en general. Usan la clave Universal_Gusto, y su valor es un conjunto de IDs separadas por espacio (objeto item ID si es ≥0, ID de categoría si es <0). Por ejemplo, considera esta entrada:
      "Universal_Like": "-2 -7 -26 -75 -80 72 395 613 634 635 636 637 638 724 459"
    
    Significa que todo PNJ tendría un gusto universal por la categoría -2, el objeto 72, etc.
  • Gustos Personales se aplican a un PNJ específico. La clave es el nombre interno de un PNJ (como Abigail), y su valor alterna texto (o respuesta) e IDs en este orden: amado, gustado, disgustado, odio, y neutral. Por ejemplo, considera los gustos de Abigail:
      "Abigail": "¡Me encanta, de verdad! ¡Eres la bomba, @!/66 128 220 226 276 611 904/¡Hala! ¿Cómo sabías que me rugía la tripa? ¡Tiene una pinta deliciosa!//¿Qué se supone que voy a hacer con esto?/-5 -75 -79 16 245 246/¿En qué estabas pensando? ¡Es horrible!/330/¿Me has traído un regalo? Gracias.//",
    

    Al separar el texto con / como delimitador, obtenemos estos datos:

    index gusto diálogo de reacción IDs de referencia
    0, 1 amado ¡Me encanta, de verdad! ¡Eres la bomba, @! 66 128 220 226 276 611
    2, 3 gustado ¡Hala! ¿Cómo sabías que me rugía la tripa? ¡Tiene una pinta deliciosa! none
    4, 5 disgustado ¿Qué se supone que voy a hacer con esto? -5 -75 -79 16 245 246
    6, 7 odiado ¿En qué estabas pensando? ¡Es horrible! 330
    8, 9 neutral ¿Me has traído un regalo? Gracias. none
    Esto significa que, como gusto personal, ama el item 66 (Ametista), le disgusta la categoría -5 (huevos), etc.

Cómo se determina el gusto

Este formato permite resolver problemas entre gustos

  • Entre una item ID y una ID de categoría;
  • Entre gusto universal y personal;
  • Entre valores contradictorios (e.g., Jodi ama y odia los narcisos (item ID 18));
  • Y cualquier combinación de estas (e.g., entre un item universal y una categoria personal).

El juego usa un algoritmo algo complicado para determinar cuánto un PNJ le gusta un regalo (ve NPC::getGiftTasteForThisItem). Aquí hay una versión limpia del algoritmo en pseudo-código:

considera "if" como "si [condición]", y "else if" como "si lo anterior no funciona, revisa [condición]". "return" es el valor que devuelve.

var GUSTO = neutral
bool TIENE_ID_UNIVERSAL = false
bool TIENE_ID_UNIVERSAL_NEUTRAL = false

// parte I: gusto universal por categoría
if categoría es universalmente amado:
   GUSTO = amor
else if categoría es universalmente odiado:
   GUSTO = odio
else if categoría es universalmente gustado:
   GUSTO = gusto
else if categoría es universalmente disgustado:
   GUSTO = disgusto

// parte II: gusto universal por item ID
if itemID es universalmente amado:
   GUSTO = amor
   TIENE_ID_UNIVERSAL = true
else if itemID es universalmente odiado:
   GUSTO = odio
   TIENE_ID_UNIVERSAL = true
else if itemID es universalmente gustado:
   GUSTO = gusto
   TIENE_ID_UNIVERSAL = true
else if itemID es universalmente disgustado:
   GUSTO = disgusto
   TIENE_ID_UNIVERSAL = true
else if itemID es universalmente neutral:
   GUSTO = neutral
   TIENE_ID_UNIVERSAL = true
   TIENE_ID_UNIVERSAL_NEUTRAL = true

// parte III: anular neutral si es de categoría universal
if GUSTO es neutral y no TIENE_ID_UNIVERSAL_NEUTRAL:
   if item es comestible pero sabe mal (-300 > comestibilidad < 0):
      GUSTO = odio
   else if item vale < 20g:
      GUSTO = disgusto

// parte IV: a veces se anula por gustos personales
if ((npc ama itemID O (item tiene categoría Y npc ama categoría)) Y (item no tiene categoría O npc no tiene amor por categoría O no hay gusto universal para itemID)
   return amor
if ((npc odia itemID O (item tiene categoría Y npc odia categoría)) Y (item no tiene categoría O npc no tiene odio por categoría O no hay gusto universal para itemID)
   return hate
if ((npc le gusta itemID O (item tiene categoría Y npc le gusta categoría)) Y (item no tiene categoría O npc no tiene gusto por categoría O no hay gusto universal para itemID)
   return gusto
if ((npc le disgusta itemID O (item tiene categoría Y npc le disgusta categoría)) Y (item no tiene categoría O npc no tiene disgusto por categoría O no hay gusto universal para itemID)
   return disgusto
if ((npc neutrals itemID O (item tiene categoría Y npc neutrals categoría)) Y (item no tiene categoría O npc no tiene neutral por categoría O no hay gusto universal para itemID)
   return neutral

// parte V: devuelve el gusto si no fue anulado
return GUSTO