Standalone [1.3] tModLoader - A Modding API

public override void UpdateArmorSet(Player player)
{
player.setBonus = "Increased Melee Stats";
player.meleeDamage *= 0.3f;
player.meleeSpeed += 0.3f;
player.GetModPlayer<MyModPlayer>(mod).bubbleArmor = true;

}

Nope. Not working. Says something.

c:\Users\Devin\Documents\My Games\Terraria\ModLoader\Mod Sources\Enderuim\Items\Armor\EnderuimChest.cs(36,24) : error CS0246: The type or namespace name 'MyModPlayer' could not be found (are you missing a using directive or an assembly reference?)
 
public override void UpdateArmorSet(Player player)
{
player.setBonus = "Increased Melee Stats";
player.meleeDamage *= 0.3f;
player.meleeSpeed += 0.3f;
player.GetModPlayer<MyModPlayer>(mod).bubbleArmor = true;

}

Nope. Not working. Says something.

c:\Users\Devin\Documents\My Games\Terraria\ModLoader\Mod Sources\Enderuim\Items\Armor\EnderuimChest.cs(36,24) : error CS0246: The type or namespace name 'MyModPlayer' could not be found (are you missing a using directive or an assembly reference?)
Do try to get a better understanding of wat you're doing. Look up the function on the tModLoader wiki and try to comprehend it.
Also, errors are here to help you, not to work against you. Lets break that error down.
It's basically saying that a class type 'MyModPlayer' cannot be found. Now try to see where you can find that.
Ah look at that line:
player.GetModPlayer<MyModPlayer>(mod).bubbleArmor = true;
That has MyModPlayer in it. Now if we look that function up on the tModLoader wiki, we can see that in that spot we need to use the ModPlayer class type that contains the variable we want to access. This class instance is called EnderuimBubble in this case. You should be able to figure out the rest yourself.
 
Yes it built
[doublepost=1461753485,1461753345][/doublepost]Whats the code snippet that makes you immune to knockback?
[doublepost=1461753520][/doublepost]like
player.knockback += 0f;
 
Thanks
[doublepost=1461753759,1461753570][/doublepost]if ModPlayer.bubbleActive = true;
{
player.noKnockback = true;
}

This isnt seeming to work... do I have to do that long line of code again"
Look it up on your item? Where are you trying to pull this off?
 
Code:
using System;
using System.Collections.Generic;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace Enderuim.Items.Armor
{
    public class EnderuimChest : ModItem
    {
        public override bool Autoload(ref string name, ref string texture, IList<EquipType> equips)
        {
            equips.Add(EquipType.Body);
            return true;
        }

        public override void SetDefaults()
        {
            item.name = "Enderuim Chestplate";
            item.width = 22;
            item.height = 24;
            item.rare = 2;
            item.defense = 38;
        }
                public override bool IsArmorSet(Item head, Item body, Item legs)
        {
            return body.type == mod.ItemType("EnderuimHelm") && legs.type == mod.ItemType("EnderuimLeggings");
        }
                public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "Staying still will make you invincable and take no knockback. Melee abilities increased.";
            player.meleeDamage *= 0.3f;
            player.meleeSpeed += 0.3f;
            player.GetModPlayer<EnderuimBubble>(mod).bubbleArmor = true;

        }
                        public override void UpdateEquip(Player player)
        {
            player.meleeDamage += 0.2f;
            player.meleeSpeed += 0.2f;
        }


    }
}
 
Code:
using System;
using System.Collections.Generic;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace Enderuim.Items.Armor
{
    public class EnderuimChest : ModItem
    {
        public override bool Autoload(ref string name, ref string texture, IList<EquipType> equips)
        {
            equips.Add(EquipType.Body);
            return true;
        }

        public override void SetDefaults()
        {
            item.name = "Enderuim Chestplate";
            item.width = 22;
            item.height = 24;
            item.rare = 2;
            item.defense = 38;
        }
                public override bool IsArmorSet(Item head, Item body, Item legs)
        {
            return body.type == mod.ItemType("EnderuimHelm") && legs.type == mod.ItemType("EnderuimLeggings");
        }
                public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "Staying still will make you invincable and take no knockback. Melee abilities increased.";
            player.meleeDamage *= 0.3f;
            player.meleeSpeed += 0.3f;
            player.GetModPlayer<EnderuimBubble>(mod).bubbleArmor = true;

        }
                        public override void UpdateEquip(Player player)
        {
            player.meleeDamage += 0.2f;
            player.meleeSpeed += 0.2f;
        }


    }
}
This is the code where you check if your set is valid:
Code:
public override bool IsArmorSet(Item head, Item body, Item legs)
{
    return body.type == mod.ItemType("EnderuimHelm") && legs.type == mod.ItemType("EnderuimLeggings");
}
Note that you're trying to test the body item type to the helmet type.
 
Anyone knows why my mod items can't drop from monsters in expert? Everything works in normal but they just won't drop in expert. Here's one of my code in GlobalNPC.cs:

Code:
         if (npc.type == NPCID.GreekSkeleton && !Main.expertMode)
            {
                 if(Main.rand.Next(0, 15) == 0)
                {
                    Item.NewItem((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height, mod.ItemType("CaesarSword"));
                }
            }
 
Back
Top Bottom