From a01e81c52e792da371143f18ea06234db3986928 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Fri, 10 May 2024 15:13:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E6=B3=A2=E5=A1=9E?= =?UTF-8?q?=E5=85=8B=E7=9A=84=E6=95=B0=E6=8D=AE=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/event/GunEventHandler.java | 15 ++++++ .../target/procedures/AbkrfireProcedure.java | 49 ------------------- .../target/procedures/BowlooseProcedure.java | 2 +- .../procedures/BulletFireNormalProcedure.java | 2 +- .../target/procedures/PressFireProcedure.java | 1 - .../resources/data/target/guns/abekiri.json | 1 + .../resources/data/target/guns/bocek.json | 2 +- .../target/tags/items/normal_mag_gun.json | 1 + 8 files changed, 20 insertions(+), 53 deletions(-) delete mode 100644 src/main/java/net/mcreator/target/procedures/AbkrfireProcedure.java diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index 0e977c689..a9e598b89 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -6,12 +6,16 @@ import net.mcreator.target.init.TargetModAttributes; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; +import net.minecraft.commands.CommandSource; +import net.minecraft.commands.CommandSourceStack; import net.minecraft.core.Holder; import net.minecraft.network.protocol.game.ClientboundSoundPacket; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraftforge.event.TickEvent; @@ -149,6 +153,17 @@ public class GunEventHandler { stack.getOrCreateTag().putDouble("fire_increase", stack.getOrCreateTag().getDouble("fire_increase") + 0.334); } + if (player.getMainHandItem().getItem() == TargetModItems.ABEKIRI.get()) { + stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(InteractionHand.MAIN_HAND)); + if (!player.level().isClientSide() && player.getServer() != null) { + player.getServer().getCommands().performPrefixedCommand( + new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), player.level() instanceof ServerLevel ? (ServerLevel) player.level() : null, 4, player.getName().getString(), player.getDisplayName(), + player.level().getServer(), player), + ("particle minecraft:cloud" + (" " + (player.getX() + 1.8 * player.getLookAngle().x)) + (" " + (player.getY() + player.getBbHeight() - 0.1 + 1.8 * player.getLookAngle().y)) + + (" " + (player.getZ() + 1.8 * player.getLookAngle().z)) + " 0.4 0.4 0.4 0.005 30 force @s")); + } + } + int cooldown = (int) stack.getOrCreateTag().getDouble("fire_interval") + (int) stack.getOrCreateTag().getDouble("fire_sequence") - (int) stack.getOrCreateTag().getDouble("fire_increase"); player.getCooldowns().addCooldown(stack.getItem(), cooldown); diff --git a/src/main/java/net/mcreator/target/procedures/AbkrfireProcedure.java b/src/main/java/net/mcreator/target/procedures/AbkrfireProcedure.java deleted file mode 100644 index 7c3170563..000000000 --- a/src/main/java/net/mcreator/target/procedures/AbkrfireProcedure.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; - -public class AbkrfireProcedure { - public static void execute(Entity entity) { - if (entity == null) return; - if (entity instanceof Player player && !player.isSpectator()) { - ItemStack usehand = player.getMainHandItem(); - if (usehand.getItem() == TargetModItems.ABEKIRI.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) - && usehand.getOrCreateTag().getDouble("ammo") > 0) { - for (int index0 = 0; index0 < 8; index0++) { - BulletFireNormalProcedure.execute(entity); - } - - usehand.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(InteractionHand.MAIN_HAND)); - - if (!entity.level().isClientSide() && entity.getServer() != null) { - entity.getServer().getCommands().performPrefixedCommand( - new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, entity.getName().getString(), entity.getDisplayName(), - entity.level().getServer(), entity), - ("particle minecraft:cloud" + (" " + (entity.getX() + 1.8 * entity.getLookAngle().x)) + (" " + (entity.getY() + entity.getBbHeight() - 0.1 + 1.8 * entity.getLookAngle().y)) - + (" " + (entity.getZ() + 1.8 * entity.getLookAngle().z)) + " 0.4 0.4 0.4 0.005 30 force @s")); - } - player.getCooldowns().addCooldown(usehand.getItem(), 2); - - if (!entity.level().isClientSide() && entity.getServer() != null) { - entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, - entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "playsound target:abekiri_fire_1p player @s ~ ~ ~ 2 1"); - entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, - entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "playsound target:abekiri_fire_3p player @a ~ ~ ~ 4 1"); - entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, - entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "playsound target:abekiri_far player @a ~ ~ ~ 12 1"); - entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, - entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "playsound target:abekiri_veryfar player @a ~ ~ ~ 24 1"); - } - usehand.getOrCreateTag().putDouble("fireanim", 2); - usehand.getOrCreateTag().putDouble("ammo", (usehand.getOrCreateTag().getDouble("ammo") - 1)); - } - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java b/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java index 5e7ff0cdb..1fba74833 100644 --- a/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java @@ -48,7 +48,7 @@ public class BowlooseProcedure { entityToSpawn.pickup = AbstractArrow.Pickup.ALLOWED; return entityToSpawn; } - }.getArrow(projectileLevel, entity, (float) (0.5 * (1 + 0.05 * usehand.getOrCreateTag().getDouble("level"))), 0, (byte) 2); + }.getArrow(projectileLevel, entity, (float) (0.02 * (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("damage") * (1 + 0.05 * (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("level"))), 0, (byte) 2); _entityToSpawn.setPos(entity.getX(), entity.getEyeY() - 0.1, entity.getZ()); _entityToSpawn.shoot(entity.getLookAngle().x, entity.getLookAngle().y, entity.getLookAngle().z, (float) (4 * power), (float) 0.02); projectileLevel.addFreshEntity(_entityToSpawn); diff --git a/src/main/java/net/mcreator/target/procedures/BulletFireNormalProcedure.java b/src/main/java/net/mcreator/target/procedures/BulletFireNormalProcedure.java index e74d0e0d3..7979c7d1f 100644 --- a/src/main/java/net/mcreator/target/procedures/BulletFireNormalProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/BulletFireNormalProcedure.java @@ -41,7 +41,7 @@ public class BulletFireNormalProcedure { if (heldItem.getItem() == TargetModItems.BOCEK.get()) { - damage = 0.2f * (float) heldItem.getOrCreateTag().getDouble("speed") * (float) heldItem.getOrCreateTag().getDouble("damageadd"); + damage = 0.008333333f * (float) heldItem.getOrCreateTag().getDouble("damage") * (float) heldItem.getOrCreateTag().getDouble("speed") * (float) heldItem.getOrCreateTag().getDouble("damageadd"); ProjectileEntity projectile = new ProjectileEntity(entity.level(), living, damage, headshot); diff --git a/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java b/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java index 5e2109918..b660329c4 100644 --- a/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java @@ -18,7 +18,6 @@ public class PressFireProcedure { return; TaserfireProcedure.execute(entity); M79fireProcedure.execute(entity); - AbkrfireProcedure.execute(entity); M98bfireProcedure.execute(entity); RpgfireProcedure.execute(entity); KraberfireProcedure.execute(entity); diff --git a/src/main/resources/data/target/guns/abekiri.json b/src/main/resources/data/target/guns/abekiri.json index ab658b8e7..9b043fc95 100644 --- a/src/main/resources/data/target/guns/abekiri.json +++ b/src/main/resources/data/target/guns/abekiri.json @@ -8,5 +8,6 @@ "headshot": 1.5, "velocity": 15, "mag": 2, + "projectileamount": 8, "fire_interval": 2 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/bocek.json b/src/main/resources/data/target/guns/bocek.json index 6a56fa234..66c1dd2cc 100644 --- a/src/main/resources/data/target/guns/bocek.json +++ b/src/main/resources/data/target/guns/bocek.json @@ -5,5 +5,5 @@ "recoilx": 0.005, "recoily": 0.003, "headshot": 1.5, - "damage": 9.5 + "damage": 24 } \ No newline at end of file diff --git a/src/main/resources/data/target/tags/items/normal_mag_gun.json b/src/main/resources/data/target/tags/items/normal_mag_gun.json index 52d01d896..b7d27de43 100644 --- a/src/main/resources/data/target/tags/items/normal_mag_gun.json +++ b/src/main/resources/data/target/tags/items/normal_mag_gun.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "target:abekiri", "target:ak_47", "target:svd", "target:m_60",