Open SamuelDeboni opened 7 years ago
10000 de defesa, que coisa humilde haha Obrigado manolo, se tiver algum problema com ele eu aviso :)
O que eu ainda não consegui é fazer o Spawn deste NPC ocorrer uma única vez. Nos exemplos, este NPC é criado após ser gerado um mundo novo. E nós precisamos inserir o NPC em um mundo que foi editado no Tedit. Por exemplo, quando o usuário entrar no jogo seria preciso matar esse NPC se ele já existe, e criar ele de novo. E não apenas criar.
Para matar o NPC coloquei o " npc.lifeMax = 0; ". Para fazer o spawn deste NPC, usei esse código:
int num = NPC.NewNPC((Main.spawnTileX + 5) * 16, Main.spawnTileY * 16, mod.NPCType("Example Person"), 0, 0f, 0f, 0f, 0f, 255);
Main.npc[num].homeTileX = Main.spawnTileX + 5;
Main.npc[num].homeTileY = Main.spawnTileY;
Main.npc[num].direction = 1;
Main.npc[num].homeless = true;
Este código precisa ser executado uma única vez. Do contrário, vai encher a tela de NPC. kkk
Fazer ele ficar parado também não consegui. Uma solução é colocar esse NPC em uma pequena ilha flutuante, e fazer uma loja tipo a casa lá do cara de cogumelo.
Já falei isso en outro tópico, mas só para atualizar o assunto no local correto:
Alterar os itens do NPC eu acho que poderei fazer sozinho (vi um tutorial sobre isso em algum canto/arquivo) e o Spawn não será necessário, basta colocar ele manualmente via heromod/cheat sheet e deixar ele lá.
O NPC também não precisara mais ficar imóvel, posso fazer uma sala de uma forma que ele não saia de onde esta.
Script de um npc personalizável baseado no exempleMod do tModLoader, apenas adicionar no projeto. Não consegui fazer ficar imóvel
`using System.Linq; using Terraria; using Terraria.ID; using Terraria.ModLoader;
namespace Castleroid.NPCs { public class ExamplePerson : ModNPC { public override bool Autoload(ref string name, ref string texture, ref string[] altTextures) { name = "Example Person"; altTextures = new string[] { "Castleroid/NPCs/ExamplePerson_Alt_1" }; return mod.Properties.Autoload; }
}`