lukanpeixe / projetocastleroid

Trabalhando em códigos para o mod/mapa de aventura para Terraria produzido pelo Idealizador e seguidores do canal Press key to play.
Apache License 2.0
8 stars 7 forks source link

4 - Impedir regeneração e manipular HP do personagem para 40 #24

Closed lukanpeixe closed 7 years ago

lukanpeixe commented 7 years ago
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.ObjectData;

namespace Castleroid.Items
{
    public class Poison : ModItem
    {
        public override void SetDefaults()
        {
            item.name = "Poison";
            item.width = 20;
            item.height = 20;
            item.useStyle = 2;
            item.maxStack = 1;
            item.useAnimation = 17;
            item.useTime = 1;
            item.consumable = true;
            item.useTurn = true;
            AddTooltip("PRE-RI-GO"); // Referência
            item.value = 60606; // Medo
            item.rare = 4;
            item.buffType = 1; // ID do Buff da Obsidian Skin
            item.buffTime = 36000; // Tempo de duração

        }

        public override bool UseItem(Player player)
        {
            player.statLifeMax = 40;

        }

    }
}

Estou errando alguma coisa ai, o LifeMax = 40 funciona de boa, mas não estou conseguindo adicionar o efeito da Obsidian Skin. Sei que o ID dela é 1.

Tentei colocar como "player." no segundo bloco, e volta um erro de int / int [] (não sei que raio é isso). Do jeito que esta, antecedido por "item." no primeiro bloco, volta o erro de "Nem todos os caminhos de código retorna um valor".

ghost commented 7 years ago

Creio que eu sei o que é tente setar em uma linha fora: Player p = new Player(); e dai você usa "p.", pelo que me lembro em mod de mine se usa isso pra definir a cast.

lukanpeixe commented 7 years ago

Creio que eu sei o que é tente setar em uma linha fora: Player p = new Player(); e dai você usa "p.", pelo que me lembro em mod de mine se usa isso pra definir a cast.

Depois eu tento colocar em um "Bloco" novo, porém já pensei em outra solução mais inteligente para o começo da aventura.

Sobre a permissão, eu não sei como configurar ela, se alguém souber onde altero estas coisas, para que vocês possam adicioanr arquivos, por favor me avise.

Do jeito que esta, eu tenho que revisar e permitir as alterações, acho que é uma boa assim, mas aceito outras opiniões :smile:

Gurigraphics commented 7 years ago

Nesse teu código falta apenas o return true:

public override bool UseItem(Player player)
{
            player.statLifeMax = 40;

            return true;

}   
Gurigraphics commented 7 years ago

Quando a função é bool, retorna true ou false int, retorna um número inteiro string, retorna um texto float, retorna um número quebrado 1.1f, 1.5f void não retorna nada.

lukanpeixe commented 7 years ago

Nesse teu código falta apenas o return true:

Desculpa, ele estava antes, pois tinha pegado em partes o código do item de teletransporte do @Kemado só que eu tirei pensando que poderia resolver o bug que estava dando rs

lukanpeixe commented 7 years ago

Testei agora e realmente esta tudo certo, não sei o que eu errei antes de tirar o código "true" acho que estava atribuindo as linhas do buff como player. no bloco de baixo e não item.