优化武器数据

This commit is contained in:
Atsuihsio 2024-09-23 15:13:03 +08:00
parent 3602a983f5
commit 971828241f
29 changed files with 95 additions and 94 deletions

View file

@ -155,7 +155,8 @@ public class ClientEventHandler {
} }
// 开火部分 // 开火部分
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_LEFT) == GLFW.GLFW_PRESS && player.getMainHandItem().is(ModTags.Items.NORMAL_GUN)) { if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_LEFT) == GLFW.GLFW_PRESS
&& (player.getMainHandItem().is(ModTags.Items.NORMAL_GUN) || stack.is(ModItems.MINIGUN.get()))) {
double customRpm = 0; double customRpm = 0;
@ -172,6 +173,12 @@ public class ClientEventHandler {
// cooldown in ms // cooldown in ms
double cooldown = 1000 / rps; double cooldown = 1000 / rps;
if (stack.getItem() == ModItems.MINIGUN.get()) {
if (stack.getOrCreateTag().getDouble("overheat") != 0 || player.getCooldowns().isOnCooldown(stack.getItem()) || stack.getOrCreateTag().getDouble("minigun_rotation") < 10) {
return;
}
}
if (!clientTimer.started()) { if (!clientTimer.started()) {
clientTimer.start(); clientTimer.start();
// 首发瞬间发射 // 首发瞬间发射

View file

@ -93,47 +93,6 @@ public class GunEventHandler {
} else if (tag.getDouble("minigun_rotation") > 0) { } else if (tag.getDouble("minigun_rotation") > 0) {
tag.putDouble("minigun_rotation", (tag.getDouble("minigun_rotation") - 0.5)); tag.putDouble("minigun_rotation", (tag.getDouble("minigun_rotation") - 0.5));
} }
if (tag.getDouble("overheat") == 0
&& (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).rifleAmmo > 0
&& !(player.getCooldowns().isOnCooldown(stack.getItem())) && tag.getDouble("minigun_rotation") >= 10 && player.getPersistentData().getBoolean("holdFire")) {
tag.putDouble("heat", (tag.getDouble("heat") + 0.5));
if (tag.getDouble("heat") >= 50.5) {
tag.putDouble("overheat", 40);
player.getCooldowns().addCooldown(stack.getItem(), 40);
if (!player.level().isClientSide() && player instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.MINIGUN_OVERHEAT.get(), 2f, 1f);
}
}
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
float pitch = tag.getDouble("heat") <= 40 ? 1 : (float) (1 - 0.025 * Math.abs(40 - tag.getDouble("heat")));
if (!player.level().isClientSide() && player instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.MINIGUN_FIRE_1P.get(), 2f, pitch);
player.playSound(ModSounds.MINIGUN_FIRE_3P.get(), (float) stack.getOrCreateTag().getDouble("SoundRadius") * 0.2f, pitch);
player.playSound(ModSounds.MINIGUN_FAR.get(), (float) stack.getOrCreateTag().getDouble("SoundRadius") * 0.5f, pitch);
player.playSound(ModSounds.MINIGUN_VERYFAR.get(), (float) stack.getOrCreateTag().getDouble("SoundRadius"), pitch);
if (perk == ModPerks.BEAST_BULLET.get()) {
player.playSound(ModSounds.HENG.get(), 4f, pitch);
SoundTool.playLocalSound(serverPlayer, ModSounds.HENG.get(), 4f, pitch);
}
}
stack.getOrCreateTag().putBoolean("shoot", true);
for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectile_amount"); index0++) {
gunShoot(player, 2 * stack.getOrCreateTag().getDouble("spread"));
}
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.rifleAmmo = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).rifleAmmo - 1;
capability.syncPlayerVariables(player);
});
tag.putInt("fire_animation", 2);
}
} }
/** /**

View file

@ -113,6 +113,7 @@ public class PlayerEventHandler {
&& stack.is(ModTags.Items.GUN) && stack.is(ModTags.Items.GUN)
&& !stack.getOrCreateTag().getBoolean("sentinel_is_charging") && !stack.getOrCreateTag().getBoolean("sentinel_is_charging")
&& !(player.getCooldowns().isOnCooldown(stack.getItem())) && !(player.getCooldowns().isOnCooldown(stack.getItem()))
&& stack.getOrCreateTag().getInt("draw_time") > 35
&& stack.getOrCreateTag().getInt("gun_reloading_time") == 0 && stack.getOrCreateTag().getInt("gun_reloading_time") == 0
&& stack.getOrCreateTag().getInt("ammo") == 0 && stack.getOrCreateTag().getInt("ammo") == 0
) { ) {

View file

@ -1,9 +1,14 @@
package net.mcreator.superbwarfare.network.message; package net.mcreator.superbwarfare.network.message;
import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModPerks;
import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.ParticleTool; import net.mcreator.superbwarfare.tools.ParticleTool;
import net.mcreator.superbwarfare.tools.SoundTool;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
@ -55,8 +60,11 @@ public class ShootMessage {
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (stack.is(ModTags.Items.NORMAL_GUN)) { if (stack.is(ModTags.Items.NORMAL_GUN)) {
double rpm = stack.getOrCreateTag().getDouble("rpm") + stack.getOrCreateTag().getInt("customRpm");;
int coolDownownTick = (int) Math.ceil(20 / (rpm / 60));
double mode = stack.getOrCreateTag().getInt("fire_mode"); double mode = stack.getOrCreateTag().getInt("fire_mode");
int interval = stack.getOrCreateTag().getInt("fire_interval");
if ((player.getPersistentData().getBoolean("holdFire") || stack.getOrCreateTag().getInt("burst_fire") > 0) if ((player.getPersistentData().getBoolean("holdFire") || stack.getOrCreateTag().getInt("burst_fire") > 0)
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))
@ -66,15 +74,17 @@ public class ShootMessage {
&& !player.getCooldowns().isOnCooldown(stack.getItem()) && !player.getCooldowns().isOnCooldown(stack.getItem())
&& !stack.getOrCreateTag().getBoolean("need_bolt_action")) { && !stack.getOrCreateTag().getBoolean("need_bolt_action")) {
int singleInterval = 0;
if (mode == 0) { if (mode == 0) {
player.getPersistentData().putBoolean("holdFire", false); player.getPersistentData().putBoolean("holdFire", false);
singleInterval = coolDownownTick;
} }
int burstCooldown = 0; int burstCooldown = 0;
if (mode == 1) { if (mode == 1) {
player.getPersistentData().putBoolean("holdFire", false); player.getPersistentData().putBoolean("holdFire", false);
stack.getOrCreateTag().putInt("burst_fire", (stack.getOrCreateTag().getInt("burst_fire") - 1)); stack.getOrCreateTag().putInt("burst_fire", (stack.getOrCreateTag().getInt("burst_fire") - 1));
burstCooldown = stack.getOrCreateTag().getInt("burst_fire") == 0 ? interval + 4 : 0; burstCooldown = stack.getOrCreateTag().getInt("burst_fire") == 0 ? coolDownownTick + 4 : 0;
} }
if (stack.getOrCreateTag().getDouble("animindex") == 1) { if (stack.getOrCreateTag().getDouble("animindex") == 1) {
@ -97,8 +107,8 @@ public class ShootMessage {
} }
stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1));
stack.getOrCreateTag().putInt("fire_animation", interval); stack.getOrCreateTag().putInt("fire_animation", coolDownownTick);
player.getPersistentData().putInt("noRun_time", interval + 2); player.getPersistentData().putInt("noRun_time", coolDownownTick + 2);
stack.getOrCreateTag().putDouble("flash_time", 2); stack.getOrCreateTag().putDouble("flash_time", 2);
stack.getOrCreateTag().putDouble("empty", 1); stack.getOrCreateTag().putDouble("empty", 1);
@ -126,12 +136,6 @@ public class ShootMessage {
stack.getOrCreateTag().putDouble("chamber_rot", 20); stack.getOrCreateTag().putDouble("chamber_rot", 20);
} }
int actionInterval = 0;
if (stack.getItem() == ModItems.MARLIN.get() || stack.getItem() == ModItems.M_870.get()) {
actionInterval = stack.getOrCreateTag().getInt("fire_interval");
}
int customCoolDown = 0; int customCoolDown = 0;
if (stack.getItem() == ModItems.MARLIN.get()) { if (stack.getItem() == ModItems.MARLIN.get()) {
@ -145,7 +149,7 @@ public class ShootMessage {
} }
} }
int cooldown = burstCooldown + actionInterval + customCoolDown; int cooldown = burstCooldown + singleInterval + customCoolDown;
player.getCooldowns().addCooldown(stack.getItem(), cooldown); player.getCooldowns().addCooldown(stack.getItem(), cooldown);
for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectile_amount"); index0++) { for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectile_amount"); index0++) {
@ -155,6 +159,46 @@ public class ShootMessage {
stack.getOrCreateTag().putBoolean("shoot", true); stack.getOrCreateTag().putBoolean("shoot", true);
} }
} else if (stack.is(ModItems.MINIGUN.get())) {
var tag = stack.getOrCreateTag();
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).rifleAmmo > 0) {
tag.putDouble("heat", (tag.getDouble("heat") + 0.5));
if (tag.getDouble("heat") >= 50.5) {
tag.putDouble("overheat", 40);
player.getCooldowns().addCooldown(stack.getItem(), 40);
if (!player.level().isClientSide() && player instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.MINIGUN_OVERHEAT.get(), 2f, 1f);
}
}
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
float pitch = tag.getDouble("heat") <= 40 ? 1 : (float) (1 - 0.025 * Math.abs(40 - tag.getDouble("heat")));
if (!player.level().isClientSide() && player instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.MINIGUN_FIRE_1P.get(), 2f, pitch);
player.playSound(ModSounds.MINIGUN_FIRE_3P.get(), (float) stack.getOrCreateTag().getDouble("SoundRadius") * 0.2f, pitch);
player.playSound(ModSounds.MINIGUN_FAR.get(), (float) stack.getOrCreateTag().getDouble("SoundRadius") * 0.5f, pitch);
player.playSound(ModSounds.MINIGUN_VERYFAR.get(), (float) stack.getOrCreateTag().getDouble("SoundRadius"), pitch);
if (perk == ModPerks.BEAST_BULLET.get()) {
player.playSound(ModSounds.HENG.get(), 4f, pitch);
SoundTool.playLocalSound(serverPlayer, ModSounds.HENG.get(), 4f, pitch);
}
}
stack.getOrCreateTag().putBoolean("shoot", true);
for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectile_amount"); index0++) {
gunShoot(player, 2 * stack.getOrCreateTag().getDouble("spread"));
}
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.rifleAmmo = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).rifleAmmo - 1;
capability.syncPlayerVariables(player);
});
tag.putInt("fire_animation", 2);
}
} }
} }
} }

View file

@ -9,7 +9,6 @@
"velocity": 13, "velocity": 13,
"mag": 25, "mag": 25,
"projectile_amount": 12, "projectile_amount": 12,
"fire_interval": 4,
"weight": 1, "weight": 1,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,

View file

@ -9,7 +9,6 @@
"velocity": 12, "velocity": 12,
"mag": 2, "mag": 2,
"projectile_amount": 12, "projectile_amount": 12,
"fire_interval": 2,
"weight": 0, "weight": 0,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,
@ -19,5 +18,6 @@
"normal_reload_time": 66, "normal_reload_time": 66,
"empty_reload_time": 83, "empty_reload_time": 83,
"BypassesArmor": 0.01, "BypassesArmor": 0.01,
"SoundRadius": 16 "SoundRadius": 16,
"rpm": 600
} }

View file

@ -9,7 +9,6 @@
"velocity": 22, "velocity": 22,
"mag": 30, "mag": 30,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 2,
"weight": 1, "weight": 1,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,
@ -19,5 +18,6 @@
"normal_reload_time": 54, "normal_reload_time": 54,
"empty_reload_time": 69, "empty_reload_time": 69,
"BypassesArmor": 0.2, "BypassesArmor": 0.2,
"SoundRadius": 14 "SoundRadius": 14,
"rpm": 600
} }

View file

@ -10,7 +10,6 @@
"velocity": 25, "velocity": 25,
"mag": 55, "mag": 55,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 5,
"weight": 1, "weight": 1,
"fire_mode": 2, "fire_mode": 2,
"semi": 0, "semi": 0,

View file

@ -9,7 +9,6 @@
"velocity": 16, "velocity": 16,
"mag": 17, "mag": 17,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 3,
"weight": 0, "weight": 0,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,
@ -19,5 +18,6 @@
"normal_reload_time": 30, "normal_reload_time": 30,
"empty_reload_time": 35, "empty_reload_time": 35,
"BypassesArmor": 0.15, "BypassesArmor": 0.15,
"SoundRadius": 10 "SoundRadius": 10,
"rpm": 600
} }

View file

@ -9,7 +9,6 @@
"velocity": 16, "velocity": 16,
"mag": 17, "mag": 17,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 1,
"weight": 0, "weight": 0,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,

View file

@ -9,7 +9,6 @@
"velocity": 24, "velocity": 24,
"mag": 30, "mag": 30,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 1,
"weight": 1, "weight": 1,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,

View file

@ -9,7 +9,6 @@
"velocity": 37.75, "velocity": 37.75,
"projectile_amount": 1, "projectile_amount": 1,
"mag": 5, "mag": 5,
"fire_interval": 2,
"bolt_action_time": 22, "bolt_action_time": 22,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
@ -23,5 +22,6 @@
"iterative_time": 11, "iterative_time": 11,
"finish_time": 18, "finish_time": 18,
"BypassesArmor": 0.5, "BypassesArmor": 0.5,
"SoundRadius": 18 "SoundRadius": 18,
"rpm": 100
} }

View file

@ -9,7 +9,6 @@
"velocity": 14, "velocity": 14,
"mag": 7, "mag": 7,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 3,
"weight": 0, "weight": 0,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,

View file

@ -9,7 +9,6 @@
"velocity": 24, "velocity": 24,
"mag": 30, "mag": 30,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 1,
"weight": 1, "weight": 1,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,

View file

@ -10,7 +10,6 @@
"velocity": 22, "velocity": 22,
"mag": 100, "mag": 100,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 2,
"weight": 2, "weight": 2,
"fire_mode": 2, "fire_mode": 2,
"semi": 0, "semi": 0,
@ -20,5 +19,6 @@
"normal_reload_time": 114, "normal_reload_time": 114,
"empty_reload_time": 133, "empty_reload_time": 133,
"BypassesArmor": 0.25, "BypassesArmor": 0.25,
"SoundRadius": 15 "SoundRadius": 15,
"rpm": 600
} }

View file

@ -10,7 +10,6 @@
"mag": 8, "mag": 8,
"force_stop_reloading": 1, "force_stop_reloading": 1,
"projectile_amount": 12, "projectile_amount": 12,
"fire_interval": 13,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,

View file

@ -11,7 +11,6 @@
"velocity": 47.2, "velocity": 47.2,
"projectile_amount": 1, "projectile_amount": 1,
"mag": 5, "mag": 5,
"fire_interval": 6,
"bolt_action_time": 18, "bolt_action_time": 18,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
@ -22,5 +21,6 @@
"normal_reload_time": 64, "normal_reload_time": 64,
"empty_reload_time": 86, "empty_reload_time": 86,
"BypassesArmor": 0.6, "BypassesArmor": 0.6,
"SoundRadius": 18 "SoundRadius": 18,
"rpm": 90
} }

View file

@ -10,7 +10,6 @@
"mag": 8, "mag": 8,
"force_stop_reloading": 1, "force_stop_reloading": 1,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 10,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,

View file

@ -6,10 +6,10 @@
"damage": 8, "damage": 8,
"headshot": 2, "headshot": 2,
"velocity": 24, "velocity": 24,
"fire_interval": 1,
"weight": 2, "weight": 2,
"fire_mode": 2, "fire_mode": 2,
"projectile_amount": 1, "projectile_amount": 1,
"BypassesArmor": 0.3, "BypassesArmor": 0.3,
"SoundRadius": 14 "SoundRadius": 14,
"rpm": 1200
} }

View file

@ -12,7 +12,6 @@
"velocity": 25, "velocity": 25,
"mag": 20, "mag": 20,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 2,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,
@ -22,5 +21,6 @@
"normal_reload_time": 58, "normal_reload_time": 58,
"empty_reload_time": 81, "empty_reload_time": 81,
"BypassesArmor": 0.4, "BypassesArmor": 0.4,
"SoundRadius": 16 "SoundRadius": 16,
"rpm": 600
} }

View file

@ -9,7 +9,6 @@
"velocity": 42, "velocity": 42,
"projectile_amount": 1, "projectile_amount": 1,
"mag": 5, "mag": 5,
"fire_interval": 2,
"bolt_action_time": 22, "bolt_action_time": 22,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
@ -22,5 +21,6 @@
"iterative_time": 11, "iterative_time": 11,
"finish_time": 18, "finish_time": 18,
"BypassesArmor": 0.54, "BypassesArmor": 0.54,
"SoundRadius": 18 "SoundRadius": 18,
"rpm": 90
} }

View file

@ -12,7 +12,6 @@
"velocity": 31, "velocity": 31,
"projectile_amount": 1, "projectile_amount": 1,
"mag": 3, "mag": 3,
"fire_interval": 10,
"bolt_action_time": 30, "bolt_action_time": 30,
"weight": 2, "weight": 2,
"fire_mode": 0, "fire_mode": 0,
@ -23,5 +22,6 @@
"normal_reload_time": 64, "normal_reload_time": 64,
"empty_reload_time": 87, "empty_reload_time": 87,
"BypassesArmor": 1, "BypassesArmor": 1,
"SoundRadius": 22 "SoundRadius": 22,
"rpm": 40
} }

View file

@ -9,7 +9,6 @@
"velocity": 27, "velocity": 27,
"mag": 30, "mag": 30,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 1,
"weight": 1, "weight": 1,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,

View file

@ -10,7 +10,6 @@
"velocity": 24, "velocity": 24,
"mag": 75, "mag": 75,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 2,
"weight": 1, "weight": 1,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,
@ -20,5 +19,6 @@
"normal_reload_time": 73, "normal_reload_time": 73,
"empty_reload_time": 95, "empty_reload_time": 95,
"BypassesArmor": 0.23, "BypassesArmor": 0.23,
"SoundRadius": 14 "SoundRadius": 14,
"rpm": 600
} }

View file

@ -9,7 +9,6 @@
"projectile_amount": 1, "projectile_amount": 1,
"headshot": 3, "headshot": 3,
"velocity": 39, "velocity": 39,
"fire_interval": 2,
"bolt_action_time": 22, "bolt_action_time": 22,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
@ -20,5 +19,6 @@
"normal_reload_time": 59, "normal_reload_time": 59,
"empty_reload_time": 89, "empty_reload_time": 89,
"BypassesArmor": 0.8, "BypassesArmor": 0.8,
"SoundRadius": 20 "SoundRadius": 20,
"rpm": 90
} }

View file

@ -9,7 +9,6 @@
"velocity": 23, "velocity": 23,
"mag": 20, "mag": 20,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 3,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,
@ -19,5 +18,6 @@
"normal_reload_time": 54, "normal_reload_time": 54,
"empty_reload_time": 75, "empty_reload_time": 75,
"BypassesArmor": 0.23, "BypassesArmor": 0.23,
"SoundRadius": 16 "SoundRadius": 16,
"rpm": 400
} }

View file

@ -9,7 +9,6 @@
"velocity": 25, "velocity": 25,
"mag": 10, "mag": 10,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 5,
"weight": 1, "weight": 1,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,
@ -19,5 +18,6 @@
"normal_reload_time": 56, "normal_reload_time": 56,
"empty_reload_time": 70, "empty_reload_time": 70,
"BypassesArmor": 0.45, "BypassesArmor": 0.45,
"SoundRadius": 17 "SoundRadius": 17,
"rpm": 400
} }

View file

@ -9,7 +9,6 @@
"velocity": 24, "velocity": 24,
"mag": 6, "mag": 6,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 5,
"weight": 0, "weight": 0,
"fire_mode": 0, "fire_mode": 0,
"semi": 1, "semi": 1,
@ -18,5 +17,6 @@
"burst_size": 1, "burst_size": 1,
"empty_reload_time": 65, "empty_reload_time": 65,
"BypassesArmor": 0.3, "BypassesArmor": 0.3,
"SoundRadius": 10 "SoundRadius": 10,
"rpm": 300
} }

View file

@ -4,12 +4,11 @@
"spread": 2.3, "spread": 2.3,
"recoil_x": 0.007, "recoil_x": 0.007,
"recoil_y": 0.007, "recoil_y": 0.007,
"damage": 4.5, "damage": 6,
"headshot": 1.5, "headshot": 1.5,
"velocity": 16, "velocity": 16,
"mag": 33, "mag": 33,
"projectile_amount": 1, "projectile_amount": 1,
"fire_interval": 1,
"weight": 0, "weight": 0,
"fire_mode": 2, "fire_mode": 2,
"semi": 1, "semi": 1,