修复了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.network.TargetModVariables;
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.item.ItemStack;
import net.minecraft.world.level.Level;
@ -170,26 +172,26 @@ public class PlayerEventHandler {
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;
}
if (stack.getOrCreateTag().getDouble("rifle") == 1) {
if (stack.is(ItemTags.create(new ResourceLocation("target:rifle")))) {
stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleammo));
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;
}
if (stack.getOrCreateTag().getDouble("handgun") == 1
|| stack.getOrCreateTag().getDouble("smg") == 1) {
if (stack.is(ItemTags.create(new ResourceLocation("target:handgun")))
|| stack.is(ItemTags.create(new ResourceLocation("target:smg")))) {
stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunammo));
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;
}
if (stack.getOrCreateTag().getDouble("shotgun") == 1) {
if (stack.is(ItemTags.create(new ResourceLocation("target:shotgun")))) {
stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunammo));
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;
}
if (stack.getOrCreateTag().getDouble("sniperguns") == 1) {
if (stack.is(ItemTags.create(new ResourceLocation("target:sniperrifle")))) {
stack.getOrCreateTag().putDouble("maxammo",
((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperammo));
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.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
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.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraft.tags.ItemTags;
import javax.annotation.Nullable;
@ -51,35 +53,35 @@ public class DamageReduceProcedure {
if (damagesource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire")))) {
stack = (sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
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) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.05 * (distanse - 20)))));
damage = amount / (1 + 0.05 * (distanse - 20));
} else {
damage = amount;
}
} else if (stack.getOrCreateTag().getDouble("sniperguns") == 1) {
} else if (stack.is(ItemTags.create(new ResourceLocation("target:sniperrifle")))) {
if (distanse > 200) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.001 * (distanse - 200)))));
damage = amount / (1 + 0.001 * (distanse - 200));
} else {
damage = amount;
}
} else if (stack.getOrCreateTag().getDouble("handgun") == 1) {
} else if (stack.is(ItemTags.create(new ResourceLocation("target:handgun")))) {
if (distanse > 40) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.04 * (distanse - 40)))));
damage = amount / (1 + 0.04 * (distanse - 40));
} else {
damage = amount;
}
} else if (stack.getOrCreateTag().getDouble("smg") == 1) {
} else if (stack.is(ItemTags.create(new ResourceLocation("target:smg")))) {
if (distanse > 50) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.03 * (distanse - 50)))));
damage = amount / (1 + 0.03 * (distanse - 50));
} else {
damage = amount;
}
} else if (stack.getOrCreateTag().getDouble("rifle") == 1) {
} else if (stack.is(ItemTags.create(new ResourceLocation("target:rifle")))) {
if (distanse > 100) {
((LivingHurtEvent) event).setAmount(((float) (amount / (1 + 0.005 * (distanse - 100)))));
} else {

View file

@ -6,6 +6,7 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Entity;
import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.init.TargetModItems;
public class WeapondrawhaveyProcedure {
public static void execute(Entity entity, ItemStack itemstack) {
@ -28,6 +29,9 @@ public class WeapondrawhaveyProcedure {
}
if (entity instanceof Player _player)
_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 (itemstack.getOrCreateTag().getDouble("drawtime") < 29) {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,9 +1,7 @@
{
"zoomspeed": 1.6,
"zoom": 1.25,
"autorifle": 1,
"dev": 3.5,
"smg": 1,
"recoilx": 0.011,
"recoily": 0.004,
"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"
]
}