Linha 1: |
Linha 1: |
| ← [[Modificações:Índice|Índice]] | | ← [[Modificações:Índice|Índice]] |
| {{Traduzir}} | | {{Traduzir}} |
− | Essa pagina é um overview sobre o que é necessário para criar um "custom NPC". Esse é um guia AVANÇADO para desenvolvedores de mods.
| + | Esta página é uma visão geral sobre o que é necessário para criar um Npc personalizado. Este é um guia AVANÇADO para desenvolvedores de modificações. |
| | | |
− | '''Antes de ler essa pagina''', veja [[Modificações:Editing XNB files]] para conceitos básicos. | + | '''Antes de ler essa pagina''', veja [[Modificações:Editando arquivos XNB]] para conceitos básicos. |
| | | |
| ==Arquivos para editar== | | ==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 {{nexus mod|1915|Content Patcher}} (com algumas ajudas.) | + | Para criar um novo NPC, você precisará editar vários arquivos diferentes. Enfim, Você não precisará de experiência de programação e isso pode ser feito com {{nexus mod|1915|Content Patcher}} (com algumas ajudas). |
− | | |
| ===Informação Basíca=== | | ===Informação Basíca=== |
− | O <tt>Arquivo \NPCDispositions</tt> 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 asset <samp> Data\NPCDispositions</samp> 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: | | O arquivo possui uma linha como a seguir: |
| <syntaxhighlight lang="yaml"> | | <syntaxhighlight lang="yaml"> |
Linha 17: |
Linha 16: |
| 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: | | 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: |
| | | |
− | {| class="wikitable" | + | {|class="wikitable" |
| |- | | |- |
| ! index | | ! index |
Linha 26: |
Linha 25: |
| | 0 | | | 0 |
| | Idade | | | Idade |
− | | <tt>teen</tt> | + | | <samp>teen</samp> |
− | | Quando o NPC é uma <tt>child</tt>, <tt>teen</tt>, or <tt>adult</tt>. <span color="red">TODO</span>: O que isso afeta? | + | | Quando o NPC é uma <samp>child</samp> (Criança), <samp>teen</samp> (Adolescente), ou <samp>adult</samp> (Adulto). Isso afeta as linhas de diálogo geradas (''por exemplo,'' uma criança diria ''bobo'' e um adulto diria ''deprimente''), o diálogo genérico (''por exemplo,'' uma criança responderia ao ver você vasculhar as latas de lixo com "''Eca... O que você está fazendo?''" e um adolescente diria "''Hum... Por que você está vasculhando o lixo?''"), e o presente que eles escolhem como [[Festival da Estrela Invernal|o presente secreto da troca de presentes]]. As crianças também estão excluídas das [[Missões|missões ''Precisa-se de Ajuda'']]. |
| |- | | |- |
| | 1 | | | 1 |
| | Comportamento | | | Comportamento |
− | | <tt>rude</tt> | + | | <samp>rude</samp> |
− | | Quando o NPC é <tt>polite</tt>, <tt>rude</tt>, or <tt>neutral</tt>. Isso afeta alguns diálogos. | + | | Quando o NPC é <samp>polite</samp> (Educado), <samp>rude</samp> (Grosseiro), or <samp>neutral</samp> (Neutro). Isso afeta alguns diálogos. |
| |- | | |- |
| | 2 | | | 2 |
| | Ansiedade social | | | Ansiedade social |
− | | <tt>outgoing</tt> | + | | <samp>outgoing</samp> |
− | | Quando o NPC é <tt>outgoing</tt>, <tt>shy</tt>, or <tt>neutral</tt>. Isso afeta alguns diálogos. | + | | Quando o NPC é <samp>outgoing</samp> (Extrovertido), <samp>shy</samp> (Tímido), or <samp>neutral</samp> (Neutro). Isso afeta alguns diálogos. |
| |- | | |- |
| | 3 | | | 3 |
| | Otimismo | | | Otimismo |
− | | <tt>neutral</tt> | + | | <samp>neutral</samp> |
− | | Quando o NPC é <tt>positive</tt>, <tt>negative</tt>, or <tt>neutral</tt>. <span color="red">TODO</span>: O que isso afeta? | + | | Quando o NPC é <samp>positive</samp> (Positivo), <samp>negative</samp> (Negativo), or <samp>neutral</samp> (Neutro). ''Não utilizado.'' |
| |- | | |- |
| | 4 | | | 4 |
| | Genero | | | Genero |
− | | <tt>female</tt> | + | | <samp>female</samp> |
− | |Quando o NPC é <tt>male</tt> or <tt>female</tt>. Isso afeta dialogo, quando a criança no casamento é obtida por adoção ou parto, e seus frames reservados e posições na spritesheet | + | |Quando o NPC é <samp>male</samp> (Macho) ou <samp>female</samp> (Fêmea). Isso afeta o diálogo, independentemente de os filhos serem adotados ou concebidos, e afeta as posições dos frames na spritesheet. |
| |- | | |- |
| |5 | | |5 |
| | Solteira/o | | | Solteira/o |
− | | <tt>datable</tt> | + | | <samp>datable</samp> |
− | | Quando o NPC é <tt>datable</tt> ou <tt>non-datable</tt>. Isso altera seus recursos em relações (por exemplo a etiqueta 'solteira/o no meno social, presentear buques e casamento). | + | | Quando o NPC é <samp>datable</samp> ou <samp>non-datable</samp>. Isso altera seus recursos em relações (''Por exemplo,'' a etiqueta 'solteira/o no menu social, presentear, buques e casamento). |
| |- | | |- |
| | 6 | | | 6 |
| | Interesse amoroso | | | Interesse amoroso |
− | | <tt>Sebastian</tt> | + | | <samp>Sebastian</samp> |
− | | ''Sem Uso'' | + | | ''Não utilizado.'' |
| |- | | |- |
| | 7 | | | 7 |
| | Região da casa | | | Região da casa |
− | | <tt>Town</tt> | + | | <samp>Town</samp> |
− | | Quando o NPC mora no <tt>Desert</tt>, <tt>Town</tt>, ou <tt>Other</tt>. 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 <tt>Town</tt> region). | + | | Quando o NPC mora no <samp>Desert</samp> (Deserto), <samp>Town</samp> (Cidade), ou <samp>Other</samp> (Outro). 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 região da Cidade). |
| |- | | |- |
| | 8 | | | 8 |
| | Aniversário | | | Aniversário |
− | | <tt>fall 13</tt> | + | | <samp>fall 13</samp> |
− | | A estação e dia do aniversário do NPC. | + | | Respectivamente, a estação e o dia do aniversário do NPC. |
| |- | | |- |
| | 9 | | | 9 |
| | Relações | | | Relações |
− | | <tt>Caroline 'mom' Pierre 'dad'</tt> | + | | <samp>Caroline 'mom' Pierre 'dad'</samp> |
− | | Determina dialogos genericos 'especiais' para revelar gostos e desgostos de familiares. Pode também afetar os dialogos "inlaw" do [[NPC]]. | + | | Determina diálogos 'especiais' para revelar gostos e desgostos de familiares. Pode também afetar os dialogos "inlaw_<NPC>". Pode estar vazio se não for aplicável (''Por exemplo'', <code>/fall 13//SeedShop 1 9/</code>). |
| |- | | |- |
| | 10 | | | 10 |
| | mapa padrão e posições | | | mapa padrão e posições |
− | | <tt>SeedShop 1 9</tt> | + | | <samp>SeedShop 1 9</samp> |
| | A localização e nome da onde [[Modificações:Modder Guide/Game Fundamentals#Tiles|tile position]] o NPC começa e termina cada dia. | | | A localização e nome da onde [[Modificações:Modder Guide/Game Fundamentals#Tiles|tile position]] o NPC começa e termina cada dia. |
| |- | | |- |
| | 11 | | | 11 |
| | Nome mostrado | | | Nome mostrado |
− | | <tt>Abigail</tt> | + | | <samp>Abigail</samp> |
− | | TO nome do NPC mostrado ao jogador. | + | | Para o nome do NPC mostrado ao jogador. |
| |} | | |} |
| | | |
− | ===Preferencias de presentes=== | + | ===Preferências de presentes=== |
− | A <tt>Data\NPCGiftTastes</tt> 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 asset Data\NPCGiftTastes contém as preferências de presente. (Por exemplo, os presentes que amam ou que 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: | + | O arquivo tem uma única linha por NPC, assim como a do exemplo abaixo: |
| <syntaxhighlight lang="yaml"> | | <syntaxhighlight lang="yaml"> |
| 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 | | 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 |
Linha 96: |
Linha 95: |
| | | |
| ===Sprites do mundo superior:=== | | ===Sprites do mundo superior:=== |
− | Os "sprites Overworld" estão em: <tt>Characters/NpcName</tt>, incluindo movimento e frames de animação. Cada frame é exatamente 16x32 pixels, e algumas posições são reservadas para certas ações: | + | Os "sprites Overworld" estão em: <samp>Characters/NpcName</samp>, 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); | | * 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; | | * 33 Frames (Mulher) e 35 (Homem) pode ser os Sprites beijando se eles são casáveis; |
Linha 103: |
Linha 102: |
| | | |
| ===Portraits=== | | ===Portraits=== |
− | Os retratos de dialogo estão guardados em <tt>Portraits/NpcName</tt>. 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. | + | Os retratos de dialogo estão guardados em <samp>Portraits/NpcName</samp>. 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=== | | ===Cronograma=== |
Linha 117: |
Linha 116: |
| Veja como você criaria um NPC de exemplo que chamaremos de Dobson: | | Veja como você criaria um NPC de exemplo que chamaremos de Dobson: |
| <ol> | | <ol> |
− | <li>[https://github.com/Pathoschild/StardewMods/tree/develop/ContentPatcher#create-a-content-pack Create an empty Content Patcher content pack]. By convention, we'll name the folder <tt>[CP] Dobson</tt>.</li> | + | <li>[https://github.com/Pathoschild/StardewMods/tree/develop/ContentPatcher#create-a-content-pack Crie um pacote de conteúdos Content Patcher vazio]. Por convenção, nós nomearemos a pasta <samp>[CP] Dobson</samp>.</li> |
− | <li>Create the following files: | + | <li>Crie os seguintes arquivos: |
− | * <tt>assets/dialogue.json</tt> containing the dialogue. | + | * <samp>assets/dialogue.json</samp> containing the dialogue. |
− | * <tt>assets/marriageDialogue.json</tt> containing the marriage dialogue (if applicable). | + | * <samp>assets/marriageDialogue.json</samp> containing the marriage dialogue (if applicable). |
− | * <tt>assets/sprites.png</tt> containing their overworld sprites. | + | * <samp>assets/sprites.png</samp> containing their overworld sprites. |
− | * <tt>assets/portraits.png</tt> containing their portraits. | + | * <samp>assets/portraits.png</samp> containing their portraits. |
− | * <tt>assets/schedule.json</tt> containing their schedule data. | + | * <samp>assets/schedule.json</samp> containing their schedule data. |
| </li> | | </li> |
− | <li>Edit the <tt>content.json</tt> to load the files: | + | <li>Edite o <samp>content.json</samp> para carregar os arquivos: |
| <syntaxhighlight lang="json"> | | <syntaxhighlight lang="json"> |
| { | | { |