Для того чтобы создать дробовик, убедитесь что у вас уже есть готовые json и png файлы оружия.
- Если вы не знаете, как создать огнестрельное оружие, обратитесь к статье: Cоздание Огнестрельного оружия.
А теперь давайте приступим к созданию оружия, которое будет стрелять несколькими снарядами сразу.
Для начала необходимо создать cs файл для это вставьте в ваш редактор следующий код, а затем сохраните как Файл.cs:
using System; using System.Diagnostics; using Microsoft.Xna.Framework;
using TAPI; using Terraria;
namespace TheZMod.Items { public class HellstoneShotgun : ModItem { public override bool PreShoot(Player player,Vector2 ShootPos,Vector2 ShootVelocity,int projType,int Damage,float knockback) { int ShotAmt = 3; // Amount of shots fired int spread = 30; // Shot spread float spreadMult = 0.05f; // Spread multiplier for(int i = 0; i < ShotAmt; i++) { float vX = ShootVelocity.X+(float)Main.rand.Next(-spread,spread+1) * spreadMult; float vY = ShootVelocity.Y+(float)Main.rand.Next(-spread,spread+1) * spreadMult; Projectile.NewProjectile(ShootPos.X,ShootPos.Y,vX,vY,projType,Damage,knockback,Main.myPlayer); } return false; } } }
Теперь давайте разберём этот код.
using System; using System.Diagnostics; using Microsoft.Xna.Framework;
using TAPI; using Terraria;
namespace Название модификации.Items { public class Название вашего оружия : ModItem { public override bool PreShoot(Player player,Vector2 ShootPos,Vector2 ShootVelocity,int projType,int Damage,float knockback) { int ShotAmt = 3; // Количество пуль за один выстрел int spread = 30; // Расброс пуль float spreadMult = 0.05f; // Spread multiplier for(int i = 0; i < ShotAmt; i++) { float vX = ShootVelocity.X+(float)Main.rand.Next(-spread,spread+1) * spreadMult; float vY = ShootVelocity.Y+(float)Main.rand.Next(-spread,spread+1) * spreadMult; Projectile.NewProjectile(ShootPos.X,ShootPos.Y,vX,vY,projType,Damage,knockback,Main.myPlayer); } return false; } } }
Готово! Теперь осталось только компилировать ваш мод, и наслаждаться новым дробовиком в игре!