Modificações:Dados do NPC

Fonte: Stardew Valley Wiki
Revisão em 17h56min de 5 de agosto de 2020 por Zoz0207 (discussão | contribs)
Saltar para a navegação Saltar para a pesquisa

Índice

Robin building.png
“Ainda tenho muito trabalho a fazer”
— Robin

Tradução incompleta

Este artigo ou seção não foi completamente traduzido para o português. Você está convidado a ajudar na sua construção editando-o
Última edição por Zoz0207 em 2020-08-05 17:56:33.

Essa pagina é um overview sobre o que é necessário para criar um "custom NPC". Esse é um guia AVANÇADO para desenvolvedores de mods.

Antes de ler essa pagina, veja Modificações:Editing XNB files para conceitos básicos.

Arquivos para editar

Para criar um novo NPC,você precisara editar um número diferente de Saves. Enfim, Você não precisara de experiencia de programação e isso pode ser feito com Content Patcher (com algumas ajudas.)

Informação Basíca

O Arquivo \NPCDispositions ativo contem informação basíca para seu personagem, incluindo seu nome, aniversário, relações com outros personagens, personalidade, e eles também podem ser datados. O arquivo possui uma linha como a seguir:

   Abigail: "teen/rude/outgoing/neutral/female/datable/Sebastian/Town/fall 13/Caroline 'mom' Pierre 'dad'/SeedShop 1 9/Abigail"

A chave (antes dos dois pontos) é o nome interno que identifica especificamente aquele NPC. esse nome não é mostrado a jogador, mas pode ser usado para referenciar aquele NPC em outros Saves. O valor contem no campo a seguir:

index campo Exemplo Objetivo
0 Idade teen Quando o NPC é uma child, teen, or adult. TODO: O que isso afeta?
1 Comportamento rude Quando o NPC é polite, rude, or neutral. Isso afeta alguns diálogos.
2 Ansiedade social outgoing Quando o NPC é outgoing, shy, or neutral. Isso afeta alguns diálogos.
3 Otimismo neutral Quando o NPC é positive, negative, or neutral. TODO: O que isso afeta?
4 Genero female Quando o NPC é male or female. Isso afeta dialogo, quando a criança no casamento é obtida por adoção ou parto, e seus frames reservados e posições na spritesheet
5 Solteira/o datable Quando o NPC é datable ou non-datable. Isso altera seus recursos em relações (por exemplo a etiqueta 'solteira/o no meno social, presentear buques e casamento).
6 Interesse amoroso Sebastian Sem Uso
7 Região da casa Town Quando o NPC mora no Desert, Town, ou Other. Isso é usado para aumentar os pontos de amizade de todos os NPCs de determinada região, atualmente apenas usado no Luau (Que apenas afeta os NPCs na Town region).
8 Aniversário fall 13 A estação e dia do aniversário do NPC.
9 Relações Caroline 'mom' Pierre 'dad' Determina dialogos genericos 'especiais' para revelar gostos e desgostos de familiares. Pode também afetar os dialogos "inlaw" do NPC.
10 mapa padrão e posições SeedShop 1 9 A localização e nome da onde tile position o NPC começa e termina cada dia.
11 Nome mostrado Abigail TO nome do NPC mostrado ao jogador.

Preferencias de presentes

A Data\NPCGiftTastes configuração padrão contem suas preferencias de presentes. (Por exemplo que presentes eles amam ou odeiam), "E suas respostas ao receber um. Veja Modificações:Dados dos gostos do presente Para mais informações.

O arquivo tem uma linha por NPC como esta:

   Abigail: "I seriously love this! You're the best, @!/66 128 220 226 276 611/Hey, how'd you know I was hungry? This looks delicious!//What am I supposed to do with this?/-5 -75 -79 16 245 246/What were you thinking? This is awful!/330/You brought me a present? Thanks.// " #!String

A linha pode ser separada em 5 pares de dialogos + IDs de itens em ordem: Ama, Gosta, Neutro, Não gosta, Odeia. Se o campo de dialogo está vazio, o game vai usar um texto de dialogo genérico. Veja Modificações:Object data para Itens IDs.

Overworld sprites

Os "Overworld sprites" Estão em Characters/NpcName, incluindo movimento e frames de animação. Cada frame é exatamente 16x32 pixels, e algumas posições são reservadas para certas ações:

  • Os primeiros 16 Frames são para sprites genricos andando (Quatro frames por direção);
  • 33 Frames (Mulher) e 35 (Homem) pode ser os Sprites beijando se eles são casáveis;
  • 40 Frames–47 (Mulher) e 44–47 (Homem) pode ser a dança das flores, se eles são participantes;
  • 36 Frames–38 (Mulher) e 48–50 (Homem) São reservados aos Spites de casamento.

Portraits

Os retratos de dialogo estão guardados em Portraits/NpcName. Cada Sprite tem 64x64 pixels. Os primeiros 6 representam expressões especificas (Veja Modificações:Diálogo#Portrait commands), Seguido pelo número dos retratos customizáveis. O primeiro retrato é usado quando o dialogo não representa nenhuma expressão especifica. Cada NPC tem até 12 retratos.

Cronograma

Seus arquivos de cronograma contam pro jogo onde o NPC tem que começar o dia, e os movimentos baseados no tempo. Você precissa adicionar "strings" para separar arquivos de cronogramas, encontrados na pasta "strings" para seguir com o dialogo customizável. Veja Modificações:Schedule data para mais informações.

Diálogos e Eventos

Os dialogos de NPC e eventos estão guardados no arquivo "several"; veja Modificações:Diálogo e Modificações:Dados de Eventos para mais informações.

Festivais

Festivais são difíceis de modificar. Todos os NPCs do jogo "Vanilla" é adicionado nos mapas de festivais selecionandocamadas no "Set-Up" e nas camadas no mapa de"MainEvent" character tilesheet that draws from NPCDispositions to get exactly who to place. This is not ideal for custom NPCs, since you have no way of knowing where on the NPCDispositions data list your NPC goes when a player is using multiple custom NPCs. For this reason, it is recommended to use TMXLoader, as it has a festival addition function to add your character to the Festival Maps, since it will draw upon your character's internal name instead of their position on the list. It's fairly easy to do, and there's an explanation on the TMXLoader Nexus Description.

Adding your NPC

Here's how you'd create an example NPC we'll name Dobson:

  1. Create an empty Content Patcher content pack. By convention, we'll name the folder [CP] Dobson.
  2. Create the following files:
    • assets/dialogue.json containing the dialogue.
    • assets/marriageDialogue.json containing the marriage dialogue (if applicable).
    • assets/sprites.png containing their overworld sprites.
    • assets/portraits.png containing their portraits.
    • assets/schedule.json containing their schedule data.
  3. Edit the content.json to load the files:
    {
      "Format": "1.5",
      "Changes": [
        {
          "LogName": "Sprites", 
          "Action": "Load",
          "Target": "Characters/Dobson",
          "FromFile": "assets/sprites.png",
        },
        {
          "LogName": "Portraits",
          "Action": "Load",
          "Target": "Portraits/Dobson",
          "FromFile": "assets/portraits.png",
        },
        {
          "LogName": "Dialogue",
          "Action": "Load",
          "Target": "Characters/Dialogue/Dobson",
          "FromFile": "assets/dialogue.json",
        },
        {
          "LogName": "Marriage Dialogue",
          "Action": "Load",
          "Target": "Characters/Dialogue/MarriageDialogueDobson",
          "FromFile": "assets/marriageDialogue.json",
        },
        {
          "LogName": "Schedule",
          "Action": "Load",
          "Target": "Characters/schedules/Dobson",
          "FromFile": "assets/schedule.json",
        },
        {
          "LogName": "NPC Dispositions",
          "Action": "EditData",
          "Target": "Data/NPCDispositions",
          "Entries": {
            "Dobson": "adult/rude/neutral/positive/male/datable//Town/summer 7//BusStop 19 4/Dobson"
          },
        },
        {
          "LogName": "Gift tastes",
          "Action": "EditData",
          "Target": "Data/NPCGiftTastes",
          "Entries": {
            "Dobson": "You're giving this to me? This is amazing!/207 232 233 400/Thank you! This is a very interesting specimen./-5 -79 422/...What is this?/80 330/This is disgusting./2/That was very thoughtful of you./-4/ ",
          },
        },
      ]
    }
    

That's it! If you load your game, the NPC should appear. If you want to create events, don't forget to add that file too.