修复了SKS的崩溃bug,将部分表示武器类型的nbt转为tag,修复了M60的弹链显示问题

This commit is contained in:
Atsuihsio 2024-05-08 15:29:16 +08:00
parent 2be6b66229
commit 5f0d51ee7c
29 changed files with 64 additions and 46 deletions

View file

@ -4,6 +4,8 @@ import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.init.TargetModTags; import net.mcreator.target.init.TargetModTags;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@ -170,26 +172,26 @@ public class PlayerEventHandler {
if (stack.getItem() == TargetModItems.MINIGUN.get()) { if (stack.getItem() == TargetModItems.MINIGUN.get()) {
return new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo) + " " + firemode; return new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo) + " " + firemode;
} }
if (stack.getOrCreateTag().getDouble("rifle") == 1) { if (stack.is(ItemTags.create(new ResourceLocation("target:rifle")))) {
stack.getOrCreateTag().putDouble("maxammo", stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo)); ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo));
return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/" return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/"
+ new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo) + " " + firemode; + new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo) + " " + firemode;
} }
if (stack.getOrCreateTag().getDouble("handgun") == 1 if (stack.is(ItemTags.create(new ResourceLocation("target:handgun")))
|| stack.getOrCreateTag().getDouble("smg") == 1) { || stack.is(ItemTags.create(new ResourceLocation("target:smg")))) {
stack.getOrCreateTag().putDouble("maxammo", stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunammo)); ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunammo));
return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/" return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/"
+ new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunammo) + " " + firemode; + new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunammo) + " " + firemode;
} }
if (stack.getOrCreateTag().getDouble("shotgun") == 1) { if (stack.is(ItemTags.create(new ResourceLocation("target:shotgun")))) {
stack.getOrCreateTag().putDouble("maxammo", stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunammo)); ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunammo));
return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/" return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/"
+ new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunammo) + " " + firemode; + new java.text.DecimalFormat("##").format((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunammo) + " " + firemode;
} }
if (stack.getOrCreateTag().getDouble("sniperguns") == 1) { if (stack.is(ItemTags.create(new ResourceLocation("target:sniperrifle")))) {
stack.getOrCreateTag().putDouble("maxammo", stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperammo)); ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperammo));
return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/" return (new java.text.DecimalFormat("##").format(stack.getOrCreateTag().getDouble("ammo"))) + "/"

View file

@ -4,6 +4,7 @@ import net.mcreator.target.init.TargetModItems;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
@ -13,6 +14,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent;
import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.eventbus.api.Event;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraft.tags.ItemTags;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -51,35 +53,35 @@ public class DamageReduceProcedure {
if (damagesource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire")))) { if (damagesource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire")))) {
stack = (sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); stack = (sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
distanse = (entity.position()).distanceTo((sourceentity.position())); distanse = (entity.position()).distanceTo((sourceentity.position()));
if (stack.getOrCreateTag().getDouble("shotgun") == 1 || stack.getItem() == TargetModItems.BOCEK.get()) { if (stack.is(ItemTags.create(new ResourceLocation("target:shotgun"))) || stack.getItem() == TargetModItems.BOCEK.get()) {
if (distanse > 20) { if (distanse > 20) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.05 * (distanse - 20))))); ((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.05 * (distanse - 20)))));
damage = amount / (1 + 0.05 * (distanse - 20)); damage = amount / (1 + 0.05 * (distanse - 20));
} else { } else {
damage = amount; damage = amount;
} }
} else if (stack.getOrCreateTag().getDouble("sniperguns") == 1) { } else if (stack.is(ItemTags.create(new ResourceLocation("target:sniperrifle")))) {
if (distanse > 200) { if (distanse > 200) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.001 * (distanse - 200))))); ((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.001 * (distanse - 200)))));
damage = amount / (1 + 0.001 * (distanse - 200)); damage = amount / (1 + 0.001 * (distanse - 200));
} else { } else {
damage = amount; damage = amount;
} }
} else if (stack.getOrCreateTag().getDouble("handgun") == 1) { } else if (stack.is(ItemTags.create(new ResourceLocation("target:handgun")))) {
if (distanse > 40) { if (distanse > 40) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.04 * (distanse - 40))))); ((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.04 * (distanse - 40)))));
damage = amount / (1 + 0.04 * (distanse - 40)); damage = amount / (1 + 0.04 * (distanse - 40));
} else { } else {
damage = amount; damage = amount;
} }
} else if (stack.getOrCreateTag().getDouble("smg") == 1) { } else if (stack.is(ItemTags.create(new ResourceLocation("target:smg")))) {
if (distanse > 50) { if (distanse > 50) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.03 * (distanse - 50))))); ((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.03 * (distanse - 50)))));
damage = amount / (1 + 0.03 * (distanse - 50)); damage = amount / (1 + 0.03 * (distanse - 50));
} else { } else {
damage = amount; damage = amount;
} }
} else if (stack.getOrCreateTag().getDouble("rifle") == 1) { } else if (stack.is(ItemTags.create(new ResourceLocation("target:rifle")))) {
if (distanse > 100) { if (distanse > 100) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.005 * (distanse - 100))))); ((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.005 * (distanse - 100)))));
} else { } else {

View file

@ -6,6 +6,7 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.init.TargetModItems;
public class WeapondrawhaveyProcedure { public class WeapondrawhaveyProcedure {
public static void execute(Entity entity, ItemStack itemstack) { public static void execute(Entity entity, ItemStack itemstack) {
@ -28,6 +29,9 @@ public class WeapondrawhaveyProcedure {
} }
if (entity instanceof Player _player) if (entity instanceof Player _player)
_player.getCooldowns().addCooldown(itemstack.getItem(), 32); _player.getCooldowns().addCooldown(itemstack.getItem(), 32);
if (itemstack.getItem() == TargetModItems.M_60.get() && itemstack.getOrCreateTag().getDouble("ammo") <= 5) {
itemstack.getOrCreateTag().putDouble("empty", 1);
}
} }
if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == itemstack.getItem()) { if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == itemstack.getItem()) {
if (itemstack.getOrCreateTag().getDouble("drawtime") < 29) { if (itemstack.getOrCreateTag().getDouble("drawtime") < 29) {

View file

@ -1,9 +1,7 @@
{ {
"zoomspeed": 0.95, "zoomspeed": 0.95,
"zoom": 1.25, "zoom": 1.25,
"autorifle": 1,
"dev": 3.5, "dev": 3.5,
"shotgun": 1,
"recoilx": 0.016, "recoilx": 0.016,
"recoily": 0.007, "recoily": 0.007,
"damage": 1.5, "damage": 1.5,

View file

@ -2,7 +2,6 @@
"zoomspeed": 1.4, "zoomspeed": 1.4,
"zoom": 1.25, "zoom": 1.25,
"dev": 5, "dev": 5,
"shotgun": 1,
"recoilx": 0.005, "recoilx": 0.005,
"recoily": 0.026, "recoily": 0.026,
"damage": 2.5, "damage": 2.5,

View file

@ -1,8 +1,6 @@
{ {
"zoomspeed": 1.1, "zoomspeed": 1.1,
"zoom": 1.25, "zoom": 1.25,
"rifle": 1,
"autorifle": 1,
"dev": 4, "dev": 4,
"recoilx": 0.0025, "recoilx": 0.0025,
"recoily": 0.012, "recoily": 0.012,

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 1, "zoomspeed": 1,
"zoom": 2, "zoom": 2,
"autorifle": 1,
"dev": 4, "dev": 4,
"recoilx": 0.005, "recoilx": 0.005,
"recoily": 0.003, "recoily": 0.003,

View file

@ -1,9 +1,6 @@
{ {
"zoomspeed": 0.9, "zoomspeed": 0.9,
"zoom": 2, "zoom": 2,
"rifle": 1,
"autorifle": 1,
"mg": 1,
"dev": 5, "dev": 5,
"bipod": 1, "bipod": 1,
"recoilx": 0.0018, "recoilx": 0.0018,

View file

@ -1,8 +1,6 @@
{ {
"zoomspeed": 1.3, "zoomspeed": 1.3,
"zoom": 1.25, "zoom": 1.25,
"rifle": 1,
"autorifle": 1,
"dev": 4, "dev": 4,
"recoilx": 0.0016, "recoilx": 0.0016,
"recoily": 0.009, "recoily": 0.009,

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 1, "zoomspeed": 1,
"zoom": 1.25, "zoom": 1.25,
"sniperguns": 1,
"dev": 7, "dev": 7,
"recoilx": 0.004, "recoilx": 0.004,
"recoily": 0.03, "recoily": 0.03,

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 0.8, "zoomspeed": 0.8,
"zoom": 3, "zoom": 3,
"sniperguns": 1,
"bipod": 1, "bipod": 1,
"dev": 6, "dev": 6,
"recoilx": 0.008, "recoilx": 0.008,

View file

@ -1,8 +1,6 @@
{ {
"zoomspeed": 1.15, "zoomspeed": 1.15,
"zoom": 1.25, "zoom": 1.25,
"rifle": 1,
"autorifle": 1,
"dev": 4, "dev": 4,
"recoilx": 0.0015, "recoilx": 0.0015,
"recoily": 0.011, "recoily": 0.011,

View file

@ -1,9 +1,6 @@
{ {
"zoomspeed": 0.85, "zoomspeed": 0.85,
"zoom": 1.25, "zoom": 1.25,
"rifle": 1,
"autorifle": 1,
"mg": 1,
"dev": 5, "dev": 5,
"bipod": 1, "bipod": 1,
"recoilx": 0.004, "recoilx": 0.004,

View file

@ -2,7 +2,6 @@
"zoomspeed": 1.1, "zoomspeed": 1.1,
"zoom": 1.25, "zoom": 1.25,
"dev": 3, "dev": 3,
"shotgun": 1,
"recoilx": 0.009, "recoilx": 0.009,
"recoily": 0.03, "recoily": 0.03,
"damage": 2, "damage": 2,

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 0.85, "zoomspeed": 0.85,
"zoom": 4, "zoom": 4,
"sniperguns": 1,
"dev": 6, "dev": 6,
"recoilx": 0.007, "recoilx": 0.007,
"recoily": 0.013, "recoily": 0.013,

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 1.1, "zoomspeed": 1.1,
"zoom": 1.25, "zoom": 1.25,
"rifle": 1,
"dev": 2, "dev": 2,
"recoilx": 0.004, "recoilx": 0.004,
"recoily": 0.011, "recoily": 0.011,

View file

@ -1,8 +1,5 @@
{ {
"zoom": 1, "zoom": 1,
"rifle": 1,
"autorifle": 1,
"mg": 1,
"dev": 5, "dev": 5,
"recoilx": 0.024, "recoilx": 0.024,
"recoily": 0.005, "recoily": 0.005,

View file

@ -1,8 +1,6 @@
{ {
"zoomspeed": 0.9, "zoomspeed": 0.9,
"zoom": 3.4, "zoom": 3.4,
"rifle": 1,
"autorifle": 1,
"dev": 6, "dev": 6,
"bipod": 1, "bipod": 1,
"recoilx": 0.006, "recoilx": 0.006,

View file

@ -1,9 +1,6 @@
{ {
"zoomspeed": 1, "zoomspeed": 1,
"zoom": 1.25, "zoom": 1.25,
"rifle": 1,
"autorifle": 1,
"mg": 1,
"dev": 5, "dev": 5,
"bipod": 1, "bipod": 1,
"recoilx": 0.0035, "recoilx": 0.0035,

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 0.95, "zoomspeed": 0.95,
"zoom": 3, "zoom": 3,
"sniperguns": 1,
"dev": 6, "dev": 6,
"recoilx": 0.007, "recoilx": 0.007,
"recoily": 0.018, "recoily": 0.018,

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 1, "zoomspeed": 1,
"zoom": 1.25, "zoom": 1.25,
"rifle": 1,
"dev": 5, "dev": 5,
"recoilx": 0.004, "recoilx": 0.004,
"recoily": 0.015, "recoily": 0.015,
@ -9,5 +8,5 @@
"headshot": 1.75, "headshot": 1.75,
"velocity": 40, "velocity": 40,
"mag": 20, "mag": 20,
v "projectileamount": 1
} }

View file

@ -1,7 +1,6 @@
{ {
"zoomspeed": 0.9, "zoomspeed": 0.9,
"zoom": 4, "zoom": 4,
"sniperguns": 1,
"dev": 6, "dev": 6,
"recoilx": 0.008, "recoilx": 0.008,
"recoily": 0.015, "recoily": 0.015,

View file

@ -2,7 +2,6 @@
"zoomspeed": 1.7, "zoomspeed": 1.7,
"zoom": 1.25, "zoom": 1.25,
"dev": 3, "dev": 3,
"handgun": 1,
"recoilx": 0.005, "recoilx": 0.005,
"recoily": 0.022, "recoily": 0.022,
"damage": 18, "damage": 18,

View file

@ -1,9 +1,7 @@
{ {
"zoomspeed": 1.6, "zoomspeed": 1.6,
"zoom": 1.25, "zoom": 1.25,
"autorifle": 1,
"dev": 3.5, "dev": 3.5,
"smg": 1,
"recoilx": 0.011, "recoilx": 0.011,
"recoily": 0.004, "recoily": 0.004,
"damage": 4.5, "damage": 4.5,

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"target:trachelium"
]
}

View file

@ -0,0 +1,15 @@
{
"replace": false,
"values": [
"target:devotion",
"target:m_4",
"target:hk_416",
"target:rpk",
"target:sks",
"target:minigun",
"target:mk_14",
"target:m_60",
"target:marlin",
"target:ak_47"
]
}

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"target:abekiri",
"target:aa_12",
"target:m_870"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"target:vector"
]
}

View file

@ -0,0 +1,10 @@
{
"replace": false,
"values": [
"target:hunting_rifle",
"target:kraber",
"target:sentinel",
"target:svd",
"target:m_98b"
]
}