重写精准度逻辑

This commit is contained in:
Atsuihsio 2024-08-06 02:00:15 +08:00
parent f205338449
commit f2a43a5ef2
36 changed files with 1965 additions and 2005 deletions

View file

@ -25,12 +25,10 @@ import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Explosion;
import net.minecraft.world.level.Level;
@ -131,45 +129,10 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity {
@Override
public boolean hurt(DamageSource source, float amount) {
if (source.getDirectEntity() instanceof ThrownPotion
|| source.getDirectEntity() instanceof AreaEffectCloud
|| source.is(DamageTypes.IN_FIRE)
|| source.is(DamageTypes.ON_FIRE)
|| source.is(DamageTypes.FALL)
|| source.is(DamageTypes.CACTUS)
|| source.is(DamageTypes.DROWN)
|| source.is(DamageTypes.LIGHTNING_BOLT)
|| source.is(DamageTypes.FALLING_ANVIL)
|| source.is(DamageTypes.DRAGON_BREATH)
|| source.is(DamageTypes.WITHER)
|| source.is(DamageTypes.WITHER_SKULL)
|| source.is(DamageTypes.GENERIC)
|| source.is(DamageTypes.MAGIC)
|| source.is(DamageTypes.ARROW)
|| source.is(DamageTypes.IN_WALL)
|| source.is(DamageTypes.MOB_ATTACK)
|| source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)
|| source.is(DamageTypes.PLAYER_ATTACK)
|| source.is(DamageTypes.THORNS)
|| source.is(DamageTypes.STING)
|| source.is(DamageTypes.SWEET_BERRY_BUSH)
|| source.is(DamageTypes.TRIDENT)
|| source.is(DamageTypes.THROWN)) {
if (amount < 32) {
return false;
}
if (source.is(ModDamageTypes.GUN_FIRE)
|| source.is(ModDamageTypes.GUN_FIRE_HEADSHOT)
|| source.is(ModDamageTypes.ARROW_IN_BRAIN)
|| source.is(ModDamageTypes.ARROW_IN_KNEE)) {
return super.hurt(source, 0.125f * amount);
}
if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) {
return false;
}
return super.hurt(source, amount);
return super.hurt(source, amount - 32);
}

View file

@ -26,12 +26,10 @@ import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Explosion;
import net.minecraft.world.level.Level;
@ -120,45 +118,10 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity {
@Override
public boolean hurt(DamageSource source, float amount) {
if (source.getDirectEntity() instanceof ThrownPotion
|| source.getDirectEntity() instanceof AreaEffectCloud
|| source.is(DamageTypes.IN_FIRE)
|| source.is(DamageTypes.ON_FIRE)
|| source.is(DamageTypes.FALL)
|| source.is(DamageTypes.CACTUS)
|| source.is(DamageTypes.DROWN)
|| source.is(DamageTypes.LIGHTNING_BOLT)
|| source.is(DamageTypes.FALLING_ANVIL)
|| source.is(DamageTypes.DRAGON_BREATH)
|| source.is(DamageTypes.WITHER)
|| source.is(DamageTypes.WITHER_SKULL)
|| source.is(DamageTypes.GENERIC)
|| source.is(DamageTypes.MAGIC)
|| source.is(DamageTypes.ARROW)
|| source.is(DamageTypes.IN_WALL)
|| source.is(DamageTypes.MOB_ATTACK)
|| source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)
|| source.is(DamageTypes.PLAYER_ATTACK)
|| source.is(DamageTypes.THORNS)
|| source.is(DamageTypes.STING)
|| source.is(DamageTypes.SWEET_BERRY_BUSH)
|| source.is(DamageTypes.TRIDENT)
|| source.is(DamageTypes.THROWN)) {
if (amount < 34) {
return false;
}
if (source.is(ModDamageTypes.GUN_FIRE)
|| source.is(ModDamageTypes.GUN_FIRE_HEADSHOT)
|| source.is(ModDamageTypes.ARROW_IN_BRAIN)
|| source.is(ModDamageTypes.ARROW_IN_KNEE)) {
return super.hurt(source, 0.125f * amount);
}
if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) {
return false;
}
return super.hurt(source, amount);
return super.hurt(source, amount - 34);
}
@ -414,7 +377,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity {
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes()
.add(Attributes.MOVEMENT_SPEED, 0)
.add(Attributes.MAX_HEALTH, 800)
.add(Attributes.MAX_HEALTH, 600)
.add(Attributes.ARMOR, 30)
.add(Attributes.ATTACK_DAMAGE, 0)
.add(Attributes.FOLLOW_RANGE, 32)

View file

@ -232,10 +232,20 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
boolean legshot = false;
float eyeHeight = entity.getEyeHeight();
float BodyHeight = entity.getBbHeight();
if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) && !(entity instanceof ClaymoreEntity || entity instanceof MortarEntity)) {
if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) && !(entity instanceof ClaymoreEntity
|| entity instanceof MortarEntity
|| entity instanceof Mle1934Entity
|| entity instanceof Mk42Entity
|| entity instanceof DroneEntity
)) {
headshot = true;
}
if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity || entity instanceof MortarEntity)) {
if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity
|| entity instanceof MortarEntity
|| entity instanceof Mle1934Entity
|| entity instanceof Mk42Entity
|| entity instanceof DroneEntity
)) {
legshot = true;
}

View file

@ -7,7 +7,6 @@ import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModMobEffects;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.network.message.ZoomMessage;
import net.minecraft.client.CameraType;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ClientLevel;
@ -154,12 +153,18 @@ public class ClientEventHandler {
}
float times = 90f / fps;
var data = entity.getPersistentData();
double spread = (float) (entity.getMainHandItem().getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread);
ItemStack stack = entity.getMainHandItem();
if (data.getDouble("crosshair") > spread) {
data.putDouble("crosshair", data.getDouble("crosshair") - 0.05 * Math.pow(spread - data.getDouble("crosshair"), 2) * times);
boolean zoom = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
double gunSpread = (float) (zoom? zoomSpread : spread);
if (data.getDouble("crosshair") > gunSpread) {
data.putDouble("crosshair", data.getDouble("crosshair") - 0.05 * Math.pow(gunSpread - data.getDouble("crosshair"), 2) * times);
} else {
data.putDouble("crosshair", data.getDouble("crosshair") + 0.05 * Math.pow(spread - data.getDouble("crosshair"), 2) * times);
data.putDouble("crosshair", data.getDouble("crosshair") + 0.05 * Math.pow(gunSpread - data.getDouble("crosshair"), 2) * times);
}
}
}

View file

@ -8,7 +8,6 @@ import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.network.message.ZoomMessage;
import net.mcreator.superbwarfare.tools.GunInfo;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.ParticleTool;
@ -347,7 +346,9 @@ public class GunEventHandler {
float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) heldItem.getOrCreateTag().getDouble("levelDamageMultiple");
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom;
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = heldItem.getOrCreateTag().getDouble("spread");
double zoomSpread = heldItem.getOrCreateTag().getDouble("zoomSpread");
ProjectileEntity projectile = new ProjectileEntity(player.level())
.shooter(player)
@ -364,7 +365,7 @@ public class GunEventHandler {
projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z);
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, 1 * (float) heldItem.getOrCreateTag().getDouble("velocity"),
(float) (heldItem.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread));
(float) (zoom? zoomSpread : spread));
player.level().addFreshEntity(projectile);
}
}

View file

@ -29,7 +29,7 @@ public class ModEntities {
public static final RegistryObject<EntityType<Mk42Entity>> MK_42 = register("mk_42",
EntityType.Builder.<Mk42Entity>of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(5124).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(3.4f, 3.5f));
public static final RegistryObject<EntityType<Mle1934Entity>> MLE_1934 = register("mle_1934",
EntityType.Builder.<Mle1934Entity>of(Mle1934Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(Mle1934Entity::new).fireImmune().sized(6f, 3.7f));
EntityType.Builder.<Mle1934Entity>of(Mle1934Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(Mle1934Entity::new).fireImmune().sized(4.5f, 2.8f));
public static final RegistryObject<EntityType<DroneEntity>> DRONE = register("drone",
EntityType.Builder.<DroneEntity>of(DroneEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.7f, 0.175f));

View file

@ -252,13 +252,17 @@ public class FireMessage {
int volt = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.VOLT_OVERLOAD.get(), stack);
int wire_length = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.LONGER_WIRE.get(), stack);
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
Level level = player.level();
if (!level.isClientSide()) {
TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt, wire_length);
taserBulletProjectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
taserBulletProjectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"),
(float) (stack.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread));
(float) (zoom? zoomSpread : spread));
level.addFreshEntity(taserBulletProjectile);
}
@ -278,6 +282,10 @@ public class FireMessage {
if (!stack.getOrCreateTag().getBoolean("reloading")) {
if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0) {
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
Level level = player.level();
if (!level.isClientSide()) {
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), stack);
@ -285,7 +293,7 @@ public class FireMessage {
gunGrenadeEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
gunGrenadeEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"),
(float) (stack.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread));
(float) (zoom? zoomSpread : spread));
level.addFreshEntity(gunGrenadeEntity);
}
@ -321,12 +329,16 @@ public class FireMessage {
if (!tag.getBoolean("reloading") && !player.getCooldowns().isOnCooldown(mainHandItem.getItem()) && tag.getInt("ammo") > 0) {
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = mainHandItem.getOrCreateTag().getDouble("spread");
double zoomSpread = mainHandItem.getOrCreateTag().getDouble("zoomSpread");
if (!level.isClientSide()) {
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem);
RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple);
rocketEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
rocketEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) tag.getDouble("velocity"),
(float) (mainHandItem.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread));
(float) (zoom? zoomSpread : spread));
level.addFreshEntity(rocketEntity);
}

View file

@ -2,15 +2,12 @@ package net.mcreator.superbwarfare.network.message;
import net.mcreator.superbwarfare.entity.Mk42Entity;
import net.mcreator.superbwarfare.entity.Mle1934Entity;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.tools.SoundTool;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkEvent;
@ -19,7 +16,6 @@ import java.util.function.Supplier;
public class ZoomMessage {
private final int type;
public static double zoom_spread = 1;
public ZoomMessage(int type) {
this.type = type;
@ -56,18 +52,6 @@ public class ZoomMessage {
capability.syncPlayerVariables(entity);
});
ItemStack stack = entity.getMainHandItem();
if (stack.is(ModTags.Items.SNIPER_RIFLE)) {
zoom_spread = 0;
} else if (stack.is(ModTags.Items.SHOTGUN)) {
zoom_spread = 0.9;
} else if (stack.is(ModItems.MINIGUN.get())) {
zoom_spread = 1;
} else {
zoom_spread = 0.00001;
}
if (entity.isPassenger() && (entity.getVehicle() instanceof Mk42Entity || entity.getVehicle() instanceof Mle1934Entity)) {
if (entity instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.CANNON_ZOOM_IN.get(), 2, 1);
@ -84,7 +68,6 @@ public class ZoomMessage {
capability.syncPlayerVariables(entity);
});
zoom_spread = 1;
if (entity.isPassenger() && (entity.getVehicle() instanceof Mk42Entity || entity.getVehicle() instanceof Mle1934Entity)) {
if (entity instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.CANNON_ZOOM_OUT.get(), 2, 1);

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 0.95,
"zoom": 1.25,
"dev": 3.5,
"spread": 3.5,
"zoomSpread": 3,
"recoil_x": 0.006,
"recoil_y": 0.018,
"damage": 2,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.4,
"zoom": 1.25,
"dev": 5,
"spread": 5,
"zoomSpread": 4,
"recoil_x": 0.005,
"recoil_y": 0.026,
"damage": 3,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.1,
"zoom": 1.25,
"dev": 4,
"spread": 4,
"zoomSpread": 0.1,
"recoil_x": 0.0025,
"recoil_y": 0.012,
"damage": 8.5,

View file

@ -1,7 +1,6 @@
{
"zoom_speed": 1,
"zoom": 2,
"dev": 4,
"recoil_x": 0.005,
"recoil_y": 0.003,
"headshot": 1.5,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 0.9,
"zoom": 2,
"dev": 5,
"spread": 5,
"zoomSpread": 0.1,
"bipod": 1,
"recoil_x": 0.0018,
"recoil_y": 0.01,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.9,
"zoom": 1.25,
"dev": 2.5,
"spread": 2.5,
"zoomSpread": 0.2,
"recoil_x": 0.004,
"recoil_y": 0.013,
"damage": 5.5,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.9,
"zoom": 1.25,
"dev": 2.5,
"spread": 2.5,
"zoomSpread": 0.2,
"recoil_x": 0.004,
"recoil_y": 0.013,
"damage": 5.5,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.3,
"zoom": 1.25,
"dev": 4,
"spread": 3.5,
"zoomSpread": 0.1,
"recoil_x": 0.0016,
"recoil_y": 0.009,
"damage": 7.5,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1,
"zoom": 1.25,
"dev": 7,
"spread": 7,
"zoomSpread": 0.01,
"recoil_x": 0.004,
"recoil_y": 0.04,
"damage": 65,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.7,
"zoom": 1.25,
"dev": 2.7,
"spread": 2.5,
"zoomSpread": 0.2,
"recoil_x": 0.006,
"recoil_y": 0.018,
"damage": 9.5,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.15,
"zoom": 1.25,
"dev": 4,
"spread": 4,
"zoomSpread": 0.1,
"recoil_x": 0.0015,
"recoil_y": 0.011,
"damage": 7,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 0.85,
"zoom": 1.25,
"dev": 5,
"spread": 5,
"zoomSpread": 0.1,
"bipod": 1,
"recoil_x": 0.004,
"recoil_y": 0.014,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 0.95,
"zoom": 1.25,
"dev": 1,
"spread": 1.5,
"zoomSpread": 0.1,
"recoil_x": 0.004,
"recoil_y": 0.023,
"damage": 40,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.1,
"zoom": 1.25,
"dev": 3,
"spread": 3,
"zoomSpread": 2.7,
"recoil_x": 0.009,
"recoil_y": 0.04,
"damage": 3,

View file

@ -3,7 +3,8 @@
"zoom": 6,
"min_zoom": 4,
"max_zoom": 8,
"dev": 6,
"spread": 6,
"zoomSpread": 0.001,
"recoil_x": 0.007,
"recoil_y": 0.013,
"damage": 38,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.1,
"zoom": 1.25,
"dev": 2,
"spread": 2,
"zoomSpread": 0.1,
"recoil_x": 0.004,
"recoil_y": 0.031,
"damage": 16,

View file

@ -1,6 +1,7 @@
{
"zoom": 1,
"dev": 2.5,
"spread": 2.5,
"zoomSpread": 2.5,
"recoil_x": 0.012,
"recoil_y": 0.011,
"damage": 8,

View file

@ -3,7 +3,8 @@
"zoom": 4,
"min_zoom": 1.25,
"max_zoom": 6,
"dev": 6,
"spread": 5,
"zoomSpread": 0.01,
"bipod": 1,
"recoil_x": 0.006,
"recoil_y": 0.014,

View file

@ -4,7 +4,8 @@
"min_zoom": 1.3,
"max_zoom": 6,
"bipod": 1,
"dev": 6,
"spread": 8,
"zoomSpread": 0.05,
"recoil_x": 0.01,
"recoil_y": 0.038,
"damage": 100,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 0.77,
"zoom": 1.25,
"dev": 5,
"spread": 5,
"zoomSpread": 0.2,
"recoil_x": 0.008,
"recoil_y": 0.018,
"damage": 150,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1,
"zoom": 1.25,
"dev": 5,
"spread": 5.5,
"zoomSpread": 0.1,
"bipod": 1,
"recoil_x": 0.0035,
"recoil_y": 0.012,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 0.95,
"zoom": 3,
"dev": 6,
"spread": 6,
"zoomSpread": 0.001,
"recoil_x": 0.007,
"recoil_y": 0.018,
"damage": 35,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1,
"zoom": 1.25,
"dev": 5,
"spread": 4.5,
"zoomSpread": 0.1,
"recoil_x": 0.004,
"recoil_y": 0.015,
"damage": 9.5,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 0.9,
"zoom": 4,
"dev": 6,
"spread": 5.5,
"zoomSpread": 0.1,
"recoil_x": 0.008,
"recoil_y": 0.015,
"damage": 18,

View file

@ -1,5 +1,6 @@
{
"dev": 2,
"spread": 2,
"zoomSpread": 0.1,
"recoil_x": 0.0001,
"recoil_y": 0.002,
"zoom_speed": 2,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.7,
"zoom": 1.25,
"dev": 3,
"spread": 3,
"zoomSpread": 0.1,
"recoil_x": 0.005,
"recoil_y": 0.032,
"damage": 18,

View file

@ -1,7 +1,8 @@
{
"zoom_speed": 1.6,
"zoom": 1.25,
"dev": 2.3,
"spread": 2.3,
"zoomSpread": 0.15,
"recoil_x": 0.007,
"recoil_y": 0.007,
"damage": 4.5,