tModLoader i need help

Magi∆

Skeletron Prime
so im tryin to mod for my mod team, and it's a pet. and i get this one error.
1601080432655.png

pet projectile code:
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace ANewAdventure.Projectile
{
public class JohnPetProjectile : ModProjectile
{
public override void SetStaticDefaults() {
DisplayName.SetDefault("John");
Main.projFrames[projectile.type] = 4;
Main.projPet[projectile.type] = true;
}

public override void SetDefaults() {
projectile.CloneDefaults(112);
aiType = 112;
}

public override bool PreAI() {
Player player = Main.player[projectile.owner];
return true;
}

public override void AI() {
Player player = Main.player[projectile.owner];
ANewAdventureplayer modPlayer = player.GetModPlayer<ANewAdventureplayer>();
if (player.dead) {
modPlayer.JohnPetProjectile = false;
}
if (modPlayer.JohnPetProjectile) {
projectile.timeLeft = 2;
}
}
}
}

pet buff code:
using Terraria;
using Terraria.ModLoader;
using static Terraria.ModLoader.ModContent;

namespace ANewAdventure.Buffs
{
public class John : ModBuff
{
public override void SetDefaults() {
// DisplayName and Description are automatically set from the .lang files, but below is how it is done normally.
DisplayName.SetDefault("Paper Airplane");
Description.SetDefault("\"Let this pet be an example to you!\"");
Main.buffNoTimeDisplay[Type] = true;
Main.vanityPet[Type] = true;
}

public override void Update(Player player, ref int buffIndex) {
player.buffTime[buffIndex] = 18000;
player.GetModPlayer<ANewAdventureplayer>().JohnPetProjectile= true;
bool petProjectileNotSpawned = player.ownedProjectileCounts[ProjectileType<Projectile.JohnPetProjectile>()] <= 0;
if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer) {
Projectile.JohnPetProjectile(player.position.X + (float)(player.width / 2), player.position.Y + (float)(player.height / 2), 0f, 0f, ProjectileType<Projectiles.Pets.ExamplePet>(), 0, 0f, player.whoAmI, 0f, 0f);
}
}
}
}

pet item:
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using static Terraria.ModLoader.ModContent;

namespace ANewAdventure.Items
{
public class ExamplePet : ModItem
{
public override void SetStaticDefaults() {
// DisplayName and Tooltip are automatically set from the .lang files, but below is how it is done normally.
DisplayName.SetDefault("Paper Airplane");
Tooltip.SetDefault("Summons a Paper Airplane to follow aimlessly behind you");
}

public override void SetDefaults() {
item.CloneDefaults(ItemID.ZephyrFish);
item.shoot = ProjectileType<Projectile.JohnPetProjectile>();
item.buffType = BuffType<Buffs.John>();
}

public override void UseStyle(Player player) {
if (player.whoAmI == Main.myPlayer && player.itemTime == 0) {
player.AddBuff(item.buffType, 3600, true);
}
}
}
}
 
Taking a quick look, it looks like the error is here:
Code:
Projectile.JohnPetProjectile(player.position.X + (float)(player.width / 2), player.position.Y + (float)(player.height / 2), 0f, 0f, ProjectileType<Projectiles.Pets.ExamplePet>(), 0, 0f, player.whoAmI, 0f, 0f);
Looks like you were trying to call Projectile.NewProjectile? You can't change NewProjectile as that's the actual method that's being used (Unless you have written a completely new method). What you want to change instead is the ProjectileType<Projectiles.Pets.ExamplePet>() part of the line.
 
Back
Top Bottom