Closed Gurigraphics closed 7 years ago
Esse foi mais complicado descobrir, mas foi...
O segredo está aqui:
public override void SetupStartInventory(IList
Item item = new Item();
item.SetDefaults(mod.ItemType("Item")); // Seleciona o Item de exemplo
item.stack = 5;
items.Add(item); // Adiciona o Item para o inventário
Item obj1 = new Item();
obj1.SetDefaults("Wooden Sword"); // Adiciona um ítem qualquer pelo nome
obj1.Prefix(-1);
items.Add(obj1); // Adiciona o Item para o inventário
}
Colocando esta linha, todos os itens do inventário são removidos.
items.Clear(); // Remove os 3 ítens iniciais de cobre
Depois basta adicionar os itens:
Item item = new Item();
item.SetDefaults(mod.ItemType("Item")); // Seleciona o Item de exemplo
item.stack = 5;
items.Add(item); // Adiciona o Item para o inventário
Também encontrei esta função, mas não testei: globalItems.Clear(); Talvez remova os acessórios também.
Esse código funciona quando um novo personagem é criado.
Bom seria obrigar o jogador a criar um novo personagem. Por exemplo, adicionar um item X quando o personagem é criado. Depois, no mapa, verificar se o personagem possui o item X. Se ele não possui, colocar dia e soltar um Skeletron Prime. kkk
Ou então, criar um item essencial para avançar no jogo, como a ideia da poção de lava. E só disponibilizar este item quando um Novo Jogador é criado.
Por exemplo, o mapa pode iniciar com o jogador cercado por um quadrado de blocos inquebráveis, como aquelas bolas de aço giratórias. E o item para sair dali pode ser um teleporte para o inicio do jogo.
O problema seria os mais espertos. Eles podem pegar o item, e sair do jogo e entrar com outro personagem. Para resolver isso, após o teleporte todos os itens teriam que ser novamente deletados. Contudo, o código acima funciona apenas quando o personagem é criado.
De qualquer forma, alguém capaz de fazer isso não representa nem 1%.
Atualizei esse código com aquela definição da vida para iniciar com 50.
player.statLifeMax = 50; // define a quantidade máxima de vida
player.statLife = 50; // define a quantidade atual de vida
Também testei isso: player.head = 20; Ele fica com um aquário na cabeça. kkk Eu ainda não tinha visto isso. ^ ^
Ele fica com um aquário na cabeça. kkk
O Equipamento favorito do @LukanPEIXE HUAHAUHAUHA não tem graça, desculpa u_u Obrigado @Gurigraphics, agora eu estou bem sem tempo, mas depois de botar as ideias no lugar, eu te digo se vou precisar de mais alguma coisa neste ponto =D
Adicionado na versão 0.106 (vide #42 ) Por enquanto a função funciona de forma satisfatória. Se caso necessário alterações posteriores, torno a abrir esta issue no futuro.
Arquivo: ## ExamplePlayer.cs