Surfx
Pixel Pirate
how to i make a projectile like the magic missile, flamelash, etc... Ive searched literally everywhere and could not find anything. I tried using item.CloneDefaults but that adds the projectile sprite and sound, any help on the code? here's what i have
There may be 1 or 2 other errors but please don't mind them.
thanks in advance
using System;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.Graphics.Effects;
using Terraria.Graphics.Shaders;
using Terraria.ID;
using Terraria.ModLoader;
namespace Xrandia.Items.Weapons
{
public class AncientWand : ModItem
{
public override void SetDefaults()
{
//item.CloneDefaults(ItemID.RainbowRod);
item.name = "Ancient Wand"; // possibly resprite it or modify the sprite
item.magic = true;
item.mana = 30;
item.width = 30;
item.height = 32;
item.toolTip = "An old noble wand";
item.useTime = 40;
item.useAnimation = 20;
item.useStyle = 1;
//Item.staff[item.type] = true;
item.noMelee = true;
item.knockBack = 5;
item.value = 10000;
item.rare = 2;
item.UseSound = SoundID.Item20;
item.autoReuse = false;
item.shoot = mod.ProjectileType("AncientProjectile");
item.shootSpeed = 10f;
}
/*mod.ProjectileType "AncientProjectile")
{
if (Main.myPlayer == player.whoAmI)
{
int mod; Projectile; Type; ("AncientProjectile") = Projectile.NewProjectile(Main.MouseWorld.X, Main.MouseWorld.Y, speedX, speedY, type, item.damage, item.knockBack, player.whoAmI);
}
}*/
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(mod);// unobtainable
recipe.AddTile(TileID.MythrilAnvil);
recipe.SetResult(this);
recipe.AddRecipe();
}
}
}
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.Graphics.Effects;
using Terraria.Graphics.Shaders;
using Terraria.ID;
using Terraria.ModLoader;
namespace Xrandia.Items.Weapons
{
public class AncientWand : ModItem
{
public override void SetDefaults()
{
//item.CloneDefaults(ItemID.RainbowRod);
item.name = "Ancient Wand"; // possibly resprite it or modify the sprite
item.magic = true;
item.mana = 30;
item.width = 30;
item.height = 32;
item.toolTip = "An old noble wand";
item.useTime = 40;
item.useAnimation = 20;
item.useStyle = 1;
//Item.staff[item.type] = true;
item.noMelee = true;
item.knockBack = 5;
item.value = 10000;
item.rare = 2;
item.UseSound = SoundID.Item20;
item.autoReuse = false;
item.shoot = mod.ProjectileType("AncientProjectile");
item.shootSpeed = 10f;
}
/*mod.ProjectileType "AncientProjectile")
{
if (Main.myPlayer == player.whoAmI)
{
int mod; Projectile; Type; ("AncientProjectile") = Projectile.NewProjectile(Main.MouseWorld.X, Main.MouseWorld.Y, speedX, speedY, type, item.damage, item.knockBack, player.whoAmI);
}
}*/
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(mod);// unobtainable
recipe.AddTile(TileID.MythrilAnvil);
recipe.SetResult(this);
recipe.AddRecipe();
}
}
}
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Xrandia.Projectiles
{
public class AncientProjectile : ModProjectile
{
public override void SetDefaults() //this adds the flamelash skin and the ability to controll it
{
projectile.CloneDefaults(ProjectileID.Flamelash);
projectile.name = "AncientProjectile";
//aiType = ProjectileID.Flamelash;
//projectile.speed = 1f;
projectile.friendly = true;
projectile.width = 16;
projectile.height = 16;
projectile.melee = true;
projectile.damage = 114;
projectile.knockBack = 4;
projectile.magic = true;
projectile.penetrate = 1;
projectile.hostile = false;
projectile.friendly = false;
projectile.tileCollide = true;
projectile.ignoreWater = true;
projectile.alpha = 255;
projectile.timeLeft = 5000;
projectile.penetrate = 1;
projectile.aiStyle = 9;
}
public override void AI() // this may add flamelash
{
//aiType = ProjectileID.Flamelash; // noise
int dust = Dust.NewDust(projectile.position, projectile.width, projectile.height, mod.DustType("AncientBookDust"));
int num666 = 8;
int num667 = Dust.NewDust(new Vector2(projectile.position.X + (float)num666 + 6, projectile.position.Y + (float)num666), projectile.width - num666 * 2, projectile.height - num666 * 2, 66, 0f, 0f, 0, new Color(255, 255, 0), 1.5f); //projectile dust color
Main.dust[num667].velocity *= 0.5f;
Main.dust[num667].velocity += projectile.velocity * 0.5f;
Main.dust[num667].noGravity = true;
Main.dust[num667].noLight = false;
Main.dust[num667].scale = 2.4f;
projectile.localAI[0] += 1f;
}
}
}
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Xrandia.Projectiles
{
public class AncientProjectile : ModProjectile
{
public override void SetDefaults() //this adds the flamelash skin and the ability to controll it
{
projectile.CloneDefaults(ProjectileID.Flamelash);
projectile.name = "AncientProjectile";
//aiType = ProjectileID.Flamelash;
//projectile.speed = 1f;
projectile.friendly = true;
projectile.width = 16;
projectile.height = 16;
projectile.melee = true;
projectile.damage = 114;
projectile.knockBack = 4;
projectile.magic = true;
projectile.penetrate = 1;
projectile.hostile = false;
projectile.friendly = false;
projectile.tileCollide = true;
projectile.ignoreWater = true;
projectile.alpha = 255;
projectile.timeLeft = 5000;
projectile.penetrate = 1;
projectile.aiStyle = 9;
}
public override void AI() // this may add flamelash
{
//aiType = ProjectileID.Flamelash; // noise
int dust = Dust.NewDust(projectile.position, projectile.width, projectile.height, mod.DustType("AncientBookDust"));
int num666 = 8;
int num667 = Dust.NewDust(new Vector2(projectile.position.X + (float)num666 + 6, projectile.position.Y + (float)num666), projectile.width - num666 * 2, projectile.height - num666 * 2, 66, 0f, 0f, 0, new Color(255, 255, 0), 1.5f); //projectile dust color
Main.dust[num667].velocity *= 0.5f;
Main.dust[num667].velocity += projectile.velocity * 0.5f;
Main.dust[num667].noGravity = true;
Main.dust[num667].noLight = false;
Main.dust[num667].scale = 2.4f;
projectile.localAI[0] += 1f;
}
}
}
There may be 1 or 2 other errors but please don't mind them.
thanks in advance