TheBestPortato24
Terrarian
Hey, anyone else know how to get the rainbow trails like on the Meowmere?
You should ether look at the games source code, just clone it or get one or find two kind good modders.TheBestPortato24 said:Hey, anyone else know how to get the rainbow trails like on the Meowmere?
float Re = (float)Main.DiscoR / 255f;
float Gr = (float)Main.DiscoG / 255f;
float Bu = (float)Main.DiscoB / 255f;
Re = (0.5f + Re) / 2f;
Gr = (0.5f + Gr) / 2f;
Bu = (0.5f + Bu) / 2f;
Lighting.AddLight(projectile.Center, Re, Gr, Bu);
int num3;
for (int num318 = 0; num318 < projectile.oldPos.Length; num318 = num3 + 1)
{
if (!(projectile.oldPos[num318] == Vector2.Zero))
{
int num319 = Dust.NewDust(projectile.oldPos[num318] + value13, 0, 0, 66, 0f, 0f, 150, Color.Transparent, 0.7f);
Main.dust[num319].color = Main.hslToRgb(Main.rand.NextFloat(), 1f, 0.5f);
Main.dust[num319].noGravity = true;
}
num3 = num318;
}
Main.rain is not a bool, rather it's an array of the individual raindrops (or rainlines, more accurately). To check if it's raining, use Main.raining.Right, what the hell is this?
error CS0019: Operator '&&' cannot be applied to operands of type 'Rain[]' and 'bool'
error CS0019: Operator '&&' cannot be applied to operands of type 'bool' and 'Rain[]'
error CS0019: Operator '==' cannot be applied to operands of type 'Rain[]' and 'bool'
error CS0019: Operator '==' cannot be applied to operands of type 'Rain[]' and 'bool'
All I did was use the Main.rain bool like I was using all the other bools, then this.
Main.rain is not a bool, rather it's an array of the individual raindrops (or rainlines, more accurately). To check if it's raining, use Main.raining.
using System;
using System.Collections.Generic;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using static Terraria.ModLoader.ModContent;
namespace Flummox.Items
{
public class kinkyboots : ModItem
{
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Kinkyboots");
Tooltip.SetDefault("Attacks have a small chance to confuse enemies");
}
public override void SetDefaults()
{
item.width = 26;
item.height = 28;
item.value = 10;
item.rare = 2;
item.accessory = true;
}
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(mod);
recipe.AddIngredient(ItemID.SpiderFang, 10);
recipe.AddIngredient(ItemID.Silk, 10);
recipe.AddTile(TileID.WorkBenches);
recipe.SetResult(this);
recipe.AddRecipe();
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
public override void OnHitNPC(Player player, NPC target, int damage, float knockBack, bool crit)
{
target.AddBuff(BuffID.Confused, 240)
}
}
}
}
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Flummox.Dusts;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using static Terraria.ModLoader.ModContent;
using System.Threading;
namespace Flummox.Items
{
public class antiqueMicrophone : ModItem
{
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Antique Microphone");
Tooltip.SetDefault("Perfect for singing old-timey songs!");
Item.staff[item.type] = true;
}
public override void SetDefaults()
{
item.damage = 34;
item.magic = true; //this make the item do magic damage
item.width = 58;
item.height = 58;
item.useTime = 30;
item.useAnimation = 30;
item.useStyle = 5; //this is how the item is holded
item.noMelee = true;
item.knockBack = 2;
item.value = 1000;
item.rare = 6;
item.mana = 5; //mana use
item.UseSound = SoundID.Item21; //this is the sound when you use the item
item.autoReuse = true;
item.shoot = mod.ProjectileType ("alastorBlast"); //this make the item shoot your projectile
item.shootSpeed = 8f; //projectile speed when shoot
}
public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
{
float numberProjectiles = 3; // This defines how many projectiles to shot
float rotation = MathHelper.ToRadians(45);
position += Vector2.Normalize(new Vector2(speedX, speedY)) * 45f; //this defines the distance of the projectiles form the player when the projectile spawns
for (int i = 0; i < numberProjectiles; i++)
{
Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedBy(MathHelper.Lerp(-rotation, rotation, i / (numberProjectiles - 1))) * .4f; // This defines the projectile roatation and speed. .4f == projectile speed
Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, player.whoAmI);
}
return false;
}
}
}
Hey! I'm newish to modding, and I have no idea what I'm doing. I have two questions. First, I have an accessory (Yes, Kinkyboots) whose effect should be to have a small chance to confuse the enemy upon hit. I'm trying to make it work, as you can see here:
C#:using System; using System.Collections.Generic; using Terraria; using Terraria.ID; using Terraria.ModLoader; using static Terraria.ModLoader.ModContent; namespace Flummox.Items { public class kinkyboots : ModItem { public override void SetStaticDefaults() { DisplayName.SetDefault("Kinkyboots"); Tooltip.SetDefault("Attacks have a small chance to confuse enemies"); } public override void SetDefaults() { item.width = 26; item.height = 28; item.value = 10; item.rare = 2; item.accessory = true; } public override void AddRecipes() { ModRecipe recipe = new ModRecipe(mod); recipe.AddIngredient(ItemID.SpiderFang, 10); recipe.AddIngredient(ItemID.Silk, 10); recipe.AddTile(TileID.WorkBenches); recipe.SetResult(this); recipe.AddRecipe(); } public override void UpdateAccessory(Player player, bool hideVisual) { public override void OnHitNPC(Player player, NPC target, int damage, float knockBack, bool crit) { target.AddBuff(BuffID.Confused, 240) } } } }
I've tried putting the OnHitNPC method outside of the UpdateAccessory method but it just does nothing, and when I put it inside the UpdateAccessory method, it gives me this log:
[23:07:57] [39/INFO] [tML]: Reading properties: Flummox
[23:07:57] [39/INFO] [tML]: Building: Flummox
[23:07:57] [39/INFO] [tML]: Compiling Flummox.XNA.dll
[23:07:57] [39/INFO] [tML]: Compilation finished with 2 errors and 0 warnings
[23:07:57] [39/ERROR] [tML]: C:\Users\Diego Tapia\Documents\My Games\Terraria\ModLoader\Mod Sources\Flummox\Items\kinkyboots.cs(35,9) : error CS1513: } expected
[23:07:57] [39/ERROR] [tML]: C:\Users\Diego Tapia\Documents\My Games\Terraria\ModLoader\Mod Sources\Flummox\Items\kinkyboots.cs(42,0) : error CS1022: Type or namespace definition, or end-of-file expected
[23:07:57] [39/ERROR] [tML]: Compiling Flummox.XNA.dll failed with 2 errors and C:\Users\Diego Tapia\Documents\My Games\Terraria\ModLoader\Mod Sources\Flummox\Items\kinkyboots.cs(35,9) : error CS1513: } expected warnings
Terraria.ModLoader.Exceptions.BuildException: Compiling Flummox.XNA.dll failed with 2 errors and C:\Users\Diego Tapia\Documents\My Games\Terraria\ModLoader\Mod Sources\Flummox\Items\kinkyboots.cs(35,9) : error CS1513: } expected warnings
en Terraria.ModLoader.Core.ModCompile.CompileMod(BuildingMod mod, String outputPath, List`1& refMods, Boolean xna)
en Terraria.ModLoader.Core.ModCompile.BuildModForPlatform(BuildingMod mod, List`1& refMods, Boolean xna)
en Terraria.ModLoader.Core.ModCompile.Build(BuildingMod mod)
en Terraria.ModLoader.Core.ModCompile.BuildAll()
en Terraria.ModLoader.UI.UIBuildMod.<>c.<BuildAll>b__6_0(ModCompile mc)
en Terraria.ModLoader.UI.UIBuildMod.BuildMod(Action`1 buildAction, Boolean reload)
[23:08:02] [1/DEBUG] [Terraria]: Device Reset, Profile: HiDef, Width: 1920, Height: 1080, Fullscreen: True, Display: \\.\DISPLAY1
[23:08:06] [1/DEBUG] [tML]: Process.Start (UseShellExecute = True): "C:\Users\Diego Tapia\Documents\My Games\Terraria\ModLoader\Logs\client.log"
So my first question is how the heck would I make that work.
My second question is a bit more complicated and I have no clue how to implement it: I have a staff, and I want it to fire three projectiles, one after the other, on a straight line. I've been looking up tutorials on the Internet and I've found a way to make it fire three projectiles at the same time, spreading out:
C#:using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Flummox.Dusts; using Terraria; using Terraria.ID; using Terraria.ModLoader; using static Terraria.ModLoader.ModContent; using System.Threading; namespace Flummox.Items { public class antiqueMicrophone : ModItem { public override void SetStaticDefaults() { DisplayName.SetDefault("Antique Microphone"); Tooltip.SetDefault("Perfect for singing old-timey songs!"); Item.staff[item.type] = true; } public override void SetDefaults() { item.damage = 34; item.magic = true; //this make the item do magic damage item.width = 58; item.height = 58; item.useTime = 30; item.useAnimation = 30; item.useStyle = 5; //this is how the item is holded item.noMelee = true; item.knockBack = 2; item.value = 1000; item.rare = 6; item.mana = 5; //mana use item.UseSound = SoundID.Item21; //this is the sound when you use the item item.autoReuse = true; item.shoot = mod.ProjectileType ("alastorBlast"); //this make the item shoot your projectile item.shootSpeed = 8f; //projectile speed when shoot } public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) { float numberProjectiles = 3; // This defines how many projectiles to shot float rotation = MathHelper.ToRadians(45); position += Vector2.Normalize(new Vector2(speedX, speedY)) * 45f; //this defines the distance of the projectiles form the player when the projectile spawns for (int i = 0; i < numberProjectiles; i++) { Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedBy(MathHelper.Lerp(-rotation, rotation, i / (numberProjectiles - 1))) * .4f; // This defines the projectile roatation and speed. .4f == projectile speed Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, player.whoAmI); } return false; } } }
I guess it didn't help that the tutorial wasn't much of a tutorial at all, and the guy didn't explain what he was doing at all. I have zero clue what most of the code or the arguments do. If y'all could help me with any of my problems, even a tiny bit, I would very much appreciate it!
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace ShinkunsAccessories
{
public class PlayerEditMod : ModPlayer
{
public bool KinkyBoots;
public override void OnHitNPC(Player player, NPC target, int damage, float knockBack, bool crit)
{
if(KinkyBoots)
{
target.AddBuff(BuffID.Confused, 240);
}
}
}
}
using System;
using System.Collections.Generic;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using static Terraria.ModLoader.ModContent;
namespace Flummox.Items
{
public class kinkyboots : ModItem
{
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Kinkyboots");
Tooltip.SetDefault("Attacks have a small chance to confuse enemies");
}
public override void SetDefaults()
{
item.width = 26;
item.height = 28;
item.value = 10;
item.rare = 2;
item.accessory = true;
}
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(mod);
recipe.AddIngredient(ItemID.SpiderFang, 10);
recipe.AddIngredient(ItemID.Silk, 10);
recipe.AddTile(TileID.WorkBenches);
recipe.SetResult(this);
recipe.AddRecipe();
}
public override void UpdateEquip(Player player)
{
Player.getModPlayer<PlayerEditMod>().KinkyBoots = true;
}
}
}
private void shoot()
{
int type = mod.ProjectileType("projectile");
Vector2 velocity = player.Center - npc.Center;
Vector2 shootFrom = new Vector2(npc.position.X + 24, npc.position.Y + 24);
Projectile.NewProjectile(shootFrom, velocity, type, npc.damage, 0.0f);
}
So i have an issue where this pops up but as you can see on the left those files are there and with the installer. can you possibly help?