From b3fd58a4fb5f271eafb5d0a2246420f8f9cc3bda Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 5 Jul 2021 09:47:42 -0500 Subject: [PATCH 1/9] Force IPv4 through client From 46771f9901b472e7848c3492c305c7381ed02f6d Mon Sep 17 00:00:00 2001 From: Moth Date: Mon, 5 Jul 2021 14:48:32 +0000 Subject: [PATCH 2/9] Updated Kree'arra drop table. --- Server/data/configs/drop_tables.json | 334 +++++++++++++-------------- 1 file changed, 155 insertions(+), 179 deletions(-) diff --git a/Server/data/configs/drop_tables.json b/Server/data/configs/drop_tables.json index a2b457b08..323d12673 100644 --- a/Server/data/configs/drop_tables.json +++ b/Server/data/configs/drop_tables.json @@ -50901,195 +50901,171 @@ "main": [ { "minAmount": "1", - "weight": "500.0", - "id": "9185", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "200.0", - "id": "224", - "maxAmount": "36" - }, - { - "minAmount": "1", - "weight": "150.0", - "id": "6050", - "maxAmount": "24" - }, - { - "minAmount": "1", - "weight": "100.0", - "id": "6052", - "maxAmount": "16" - }, - { - "minAmount": "1", - "weight": "200.0", - "id": "244", - "maxAmount": "40" - }, - { - "minAmount": "1", - "weight": "150.0", - "id": "246", - "maxAmount": "24" - }, - { - "minAmount": "1", - "weight": "150.0", - "id": "3139", - "maxAmount": "40" - }, - { - "minAmount": "1", - "weight": "150.0", - "id": "248", - "maxAmount": "32" - }, - { - "minAmount": "1", - "weight": "100.0", - "id": "6694", - "maxAmount": "24" - }, - { - "minAmount": "1", - "weight": "125.0", - "id": "6019", - "maxAmount": "24" - }, - { - "minAmount": "18", - "weight": "500.0", - "id": "9144", - "maxAmount": "25" - }, - { - "minAmount": "500", - "weight": "250.0", - "id": "558", - "maxAmount": "601" - }, - { - "minAmount": "2", - "weight": "250.0", - "id": "9244", - "maxAmount": "15" - }, - { - "minAmount": "1", - "weight": "500.0", - "id": "2503", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "16.0", - "id": "11718", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "16.0", - "id": "11720", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "16.0", - "id": "11722", - "maxAmount": "1" - }, - { - "minAmount": "3", - "weight": "250.0", - "id": "163", - "maxAmount": "3" - }, - { - "minAmount": "18000", - "weight": "500.0", - "id": "995", - "maxAmount": "21000" - }, - { - "minAmount": "5", - "weight": "500.0", - "id": "218", - "maxAmount": "22" - }, - { - "minAmount": "3", - "weight": "500.0", - "id": "5303", - "maxAmount": "3" - }, - { - "minAmount": "1", - "weight": "250.0", - "id": "10977", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "250.0", - "id": "10976", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "250.0", - "id": "2743", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "100.0", - "id": "5315", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.0", - "id": "11710", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.0", - "id": "11712", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.0", - "id": "11714", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "100.0", - "id": "989", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "12.0", - "id": "11702", + "weight": "25.0", + "id": "1319", "maxAmount": "1" }, { "minAmount": "1", "weight": "50.0", - "id": "31", + "id": "9185", + "maxAmount": "1" + }, + { + "minAmount": "15", + "weight": "50.0", + "id": "9144", + "maxAmount": "25" + }, + { + "minAmount": "80", + "weight": "25.0", + "id": "892", + "maxAmount": "100" + }, + { + "minAmount": "1", + "weight": "50.0", + "id": "9244", + "maxAmount": "15" + }, + { + "minAmount": "500", + "weight": "25.0", + "id": "558", + "maxAmount": "600" + }, + { + "minAmount": "1", + "weight": "50.0", + "id": "2503", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.96", + "id": "11718", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.96", + "id": "11720", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.96", + "id": "11722", + "maxAmount": "1" + }, + { + "minAmount": "3", + "weight": "25.0", + "id": "5302", + "maxAmount": "3" + }, + { + "minAmount": "3", + "weight": "25.0", + "id": "5303", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "5315", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.17", + "id": "11702", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.932", + "id": "11710", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.932", + "id": "11712", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.932", + "id": "11714", + "maxAmount": "1" + }, + { + "minAmount": "3", + "weight": "25.0", + "id": "169", + "maxAmount": "3" + }, + { + "minAmount": "3", + "weight": "25.0", + "id": "163", + "maxAmount": "3" + }, + { + "minAmount": "5", + "weight": "5.0", + "id": "218", + "maxAmount": "20" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "989", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "10976", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "10977", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "25.0", + "id": "385", + "maxAmount": "20" + }, + { + "minAmount": "18000", + "weight": "50.0", + "id": "617", + "maxAmount": "20000" + }, + { + "minAmount": "1", + "weight": "20.0", + "id": "12070", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "75.0", "id": "0", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "20.0", + "id": "31", + "maxAmount": "1" } ] }, @@ -63943,4 +63919,4 @@ } ] } -] +] \ No newline at end of file From 4cc7aaf499dad6d1a5459112c95c6e103a8ad444 Mon Sep 17 00:00:00 2001 From: skelsoft <9147770-skelsoft@users.noreply.gitlab.com> Date: Mon, 5 Jul 2021 14:48:43 +0000 Subject: [PATCH 3/9] Fix: All Shades of Mort'ton Shades/Shadows stat rebalance --- Server/data/configs/npc_configs.json | 100 +++++++++++++-------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Server/data/configs/npc_configs.json b/Server/data/configs/npc_configs.json index e82b67b61..30e7d0ae5 100644 --- a/Server/data/configs/npc_configs.json +++ b/Server/data/configs/npc_configs.json @@ -12800,210 +12800,210 @@ "slayer_task": "73", "melee_animation": "0", "range_animation": "0", - "magic_level": "42", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "0", "name": "Loar Shadow", - "defence_level": "42", + "defence_level": "26", "safespot": null, - "lifepoints": "60", - "strength_level": "31", + "lifepoints": "38", + "strength_level": "30", "id": "1240", "aggressive": "true", "range_level": "1", - "attack_level": "31" + "attack_level": "45" }, { "examine": "The shadowy remains of a long departed soul.", "slayer_task": "73", "melee_animation": "1283", "range_animation": "0", - "magic_level": "42", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "1284", "weakness": "3", "magic_animation": "0", "death_animation": "1308", "name": "Loar Shade", - "defence_level": "42", + "defence_level": "26", "safespot": null, - "lifepoints": "60", - "strength_level": "31", + "lifepoints": "38", + "strength_level": "30", "id": "1241", "aggressive": "true", "range_level": "1", - "attack_level": "31" + "attack_level": "45" }, { "examine": "A shadowy sort of entity", "slayer_task": "73", "melee_animation": "0", "range_animation": "0", - "magic_level": "43", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "0", "name": "Phrin Shadow", - "defence_level": "43", + "defence_level": "42", "safespot": null, - "lifepoints": "61", - "strength_level": "32", + "lifepoints": "56", + "strength_level": "47", "id": "1243", "aggressive": "true", "range_level": "1", - "attack_level": "32" + "attack_level": "64" }, { "examine": "The shadowy remains of a long departed soul.", "slayer_task": "73", "melee_animation": "1283", "range_animation": "0", - "magic_level": "43", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "1287", "name": "Phrin Shade", - "defence_level": "43", + "defence_level": "42", "safespot": null, - "lifepoints": "61", - "strength_level": "32", + "lifepoints": "56", + "strength_level": "47", "id": "1244", "aggressive": "true", "range_level": "1", - "attack_level": "32" + "attack_level": "64" }, { "examine": "A shadowy sort of entity", "slayer_task": "73", "melee_animation": "0", "range_animation": "0", - "magic_level": "45", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "0", "name": "Riyl Shadow", - "defence_level": "45", + "defence_level": "60", "safespot": null, - "lifepoints": "64", - "strength_level": "33", + "lifepoints": "76", + "strength_level": "55", "id": "1245", "aggressive": "true", "range_level": "1", - "attack_level": "33" + "attack_level": "88" }, { "examine": "The shadowy remains of a long departed soul.", "slayer_task": "73", "melee_animation": "1283", "range_animation": "0", - "magic_level": "45", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "1287", "name": "Riyl Shade", - "defence_level": "45", + "defence_level": "60", "safespot": null, - "lifepoints": "64", - "strength_level": "33", + "lifepoints": "76", + "strength_level": "55", "id": "1246", "aggressive": "true", "range_level": "1", - "attack_level": "33" + "attack_level": "88" }, { "examine": "A shadowy sort of entity", "slayer_task": "73", "melee_animation": "0", "range_animation": "0", - "magic_level": "47", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "0", "name": "Asyn Shadow", - "defence_level": "47", + "defence_level": "70", "safespot": null, - "lifepoints": "67", - "strength_level": "35", + "lifepoints": "90", + "strength_level": "84", "id": "1247", "aggressive": "true", "range_level": "1", - "attack_level": "35" + "attack_level": "102" }, { "examine": "The shadowy remains of a long departed soul.", "slayer_task": "73", "melee_animation": "1283", "range_animation": "0", - "magic_level": "47", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "1287", "name": "Asyn Shade", - "defence_level": "47", + "defence_level": "70", "safespot": null, - "lifepoints": "67", - "strength_level": "35", + "lifepoints": "90", + "strength_level": "84", "id": "1248", "aggressive": "true", "range_level": "1", - "attack_level": "35" + "attack_level": "102" }, { "examine": "A shadowy sort of entity", "slayer_task": "73", "melee_animation": "0", "range_animation": "0", - "magic_level": "49", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "0", "name": "Fiyr Shadow", - "defence_level": "49", + "defence_level": "85", "safespot": null, - "lifepoints": "70", - "strength_level": "36", + "lifepoints": "110", + "strength_level": "100", "id": "1249", "aggressive": "true", "range_level": "1", - "attack_level": "36" + "attack_level": "120" }, { "examine": "The shadowy remains of a long departed soul.", "slayer_task": "73", "melee_animation": "1283", "range_animation": "0", - "magic_level": "49", + "magic_level": "1", "respawn_delay": "60", "defence_animation": "0", "weakness": "3", "magic_animation": "0", "death_animation": "1287", "name": "Fiyr Shade", - "defence_level": "49", + "defence_level": "85", "safespot": null, - "lifepoints": "70", - "strength_level": "36", + "lifepoints": "110", + "strength_level": "100", "id": "1250", "aggressive": "true", "range_level": "1", - "attack_level": "36" + "attack_level": "120" }, { "examine": "A local villager of Mort'ton.", From 8a231f1898916338380e37ab98c6020eafc54028 Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 5 Jul 2021 13:24:29 -0500 Subject: [PATCH 4/9] Revert "Another potential fix for construction" This reverts commit cf6fbf23 --- .../game/node/entity/skill/construction/HouseManager.java | 6 +----- .../core/game/node/entity/skill/construction/HouseZone.java | 6 ------ 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java b/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java index c343257dd..ed39f3893 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java @@ -267,9 +267,6 @@ public final class HouseManager { int diffX = player.getLocation().getX() - r.getBaseLocation().getX(); int diffY = player.getLocation().getY() - r.getBaseLocation().getY(); int diffZ = player.getLocation().getZ() - r.getBaseLocation().getZ(); - RegionManager.getRegionCache().remove(r); - region.flagInactive(); - dungeon.flagInactive(); region = null; dungeon = null; enter(player, buildingMode, false); @@ -381,8 +378,7 @@ public final class HouseManager { Region.load(from, true); RegionChunk defaultChunk = from.getPlanes()[style.getPlane()].getRegionChunk(1, 0); ZoneBorders borders = DynamicRegion.reserveArea(8, 8); - //region = DynamicRegion.create(from.getRegionId()); - region = new DynamicRegion(from.getRegionId(), borders.getSouthWestX() >> 6, borders.getSouthWestY() >> 6); + region = new DynamicRegion(-1, borders.getSouthWestX() >> 6, borders.getSouthWestY() >> 6); region.setBorders(borders); region.setUpdateAllPlanes(true); RegionManager.addRegion(region.getId(), region); diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java b/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java index fc630513b..9d578623d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java @@ -3,7 +3,6 @@ package core.game.node.entity.skill.construction; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.world.map.RegionManager; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneRestriction; @@ -71,11 +70,6 @@ public final class HouseZone extends MapZone { if (e instanceof Player) { Player p = (Player) e; HouseManager.leave(p); - if(house.getRegion() == p.getHouseManager().getRegion()){ - house.getRegion().flagActive(); - house.getDungeonRegion().flagActive(); - RegionManager.getRegionCache().remove(house.getRegion()); - } return true; } } From 26a2d5d51a949d80e69001d988180a47989402b6 Mon Sep 17 00:00:00 2001 From: Von Hresvelg Date: Mon, 5 Jul 2021 16:13:05 -0400 Subject: [PATCH 5/9] Metallic/Chromatic Dragon Drop Table Clean-Up --- Server/data/configs/drop_tables.json | 166 +++++++++++++-------------- 1 file changed, 80 insertions(+), 86 deletions(-) diff --git a/Server/data/configs/drop_tables.json b/Server/data/configs/drop_tables.json index 323d12673..c69f7b104 100644 --- a/Server/data/configs/drop_tables.json +++ b/Server/data/configs/drop_tables.json @@ -2649,13 +2649,13 @@ }, { "minAmount": "1", - "weight": "5.0", + "weight": "6.0", "id": "1303", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "6.0", "id": "1113", "maxAmount": "1" }, @@ -2679,31 +2679,31 @@ }, { "minAmount": "75", - "weight": "5.0", + "weight": "8.0", "id": "556", "maxAmount": "75" }, { "minAmount": "15", - "weight": "5.0", + "weight": "8.0", "id": "565", "maxAmount": "15" }, { "minAmount": "50", - "weight": "5.0", + "weight": "8.0", "id": "554", "maxAmount": "50" }, { "minAmount": "10", - "weight": "5.0", + "weight": "4.0", "id": "563", "maxAmount": "10" }, { "minAmount": "10", - "weight": "5.0", + "weight": "8.0", "id": "562", "maxAmount": "10" }, @@ -2714,52 +2714,52 @@ "maxAmount": "2" }, { - "minAmount": "176", + "minAmount": "170", "weight": "50.0", "id": "995", - "maxAmount": "176" - }, - { - "minAmount": "330", - "weight": "50.0", - "id": "995", - "maxAmount": "330" + "maxAmount": "690" }, { "minAmount": "1", - "weight": "5.0", + "weight": "6.0", "id": "1897", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", - "id": "2739", + "weight": "4.0", + "id": "12070", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "4.0", "id": "12480", "maxAmount": "1" }, { "minAmount": "1", - "weight": "15.5", + "weight": "12.6", "id": "31", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.126", + "weight": "0.12", "id": "11286", "maxAmount": "1" }, { "minAmount": "1", - "weight": "150.0", + "weight": "75.0", "id": "0", "maxAmount": "1" + }, + { + "minAmount": "3", + "weight": "4.0", + "id": "563", + "maxAmount": "3" } ] }, @@ -2815,7 +2815,7 @@ }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "1069", "maxAmount": "1" }, @@ -2851,19 +2851,13 @@ }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "1213", "maxAmount": "1" }, - { - "minAmount": "1", - "weight": "5.0", - "id": "1247", - "maxAmount": "1" - }, { "minAmount": "75", - "weight": "25.0", + "weight": "50.0", "id": "555", "maxAmount": "75" }, @@ -2958,14 +2952,8 @@ "maxAmount": "1" }, { - "minAmount": "320", - "weight": "50.0", - "id": "995", - "maxAmount": "320" - }, - { - "minAmount": "440", - "weight": "50.0", + "minAmount": "10", + "weight": "100.0", "id": "995", "maxAmount": "440" }, @@ -2984,7 +2972,7 @@ { "minAmount": "1", "weight": "5.0", - "id": "2735", + "id": "12070", "maxAmount": "1" }, { @@ -2995,7 +2983,7 @@ }, { "minAmount": "1", - "weight": "150.0", + "weight": "125.0", "id": "0", "maxAmount": "1" } @@ -24309,13 +24297,13 @@ "main": [ { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "1317", "maxAmount": "1" }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "1371", "maxAmount": "1" }, @@ -24339,31 +24327,31 @@ }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "1432", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "1147", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "1163", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.7", + "weight": "0.75", "id": "4585", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.7", + "weight": "0.75", "id": "4087", "maxAmount": "1" }, @@ -24375,7 +24363,7 @@ }, { "minAmount": "2", - "weight": "25.0", + "weight": "8.0", "id": "9144", "maxAmount": "12" }, @@ -24417,19 +24405,19 @@ }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "161", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "145", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "165", "maxAmount": "1" }, @@ -24465,21 +24453,27 @@ }, { "minAmount": "1", - "weight": "17.5", + "weight": "19.35", "id": "31", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.14", + "weight": "0.145", "id": "11286", "maxAmount": "1" }, { "minAmount": "1", - "weight": "150.0", + "weight": "100.0", "id": "0", "maxAmount": "1" + }, + { + "minAmount": "4", + "weight": "50.0", + "id": "830", + "maxAmount": "4" } ] }, @@ -24529,13 +24523,13 @@ "main": [ { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "1317", "maxAmount": "1" }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "1371", "maxAmount": "1" }, @@ -24559,37 +24553,37 @@ }, { "minAmount": "1", - "weight": "25.0", + "weight": "8.0", "id": "1359", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "1432", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "1147", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "8.0", "id": "1163", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.41", + "weight": "1.4", "id": "4585", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.41", + "weight": "1.4", "id": "4087", "maxAmount": "1" }, @@ -24601,7 +24595,7 @@ }, { "minAmount": "2", - "weight": "25.0", + "weight": "8.0", "id": "9144", "maxAmount": "12" }, @@ -24613,7 +24607,7 @@ }, { "minAmount": "7", - "weight": "25.0", + "weight": "8.0", "id": "868", "maxAmount": "7" }, @@ -24625,7 +24619,7 @@ }, { "minAmount": "5", - "weight": "25.0", + "weight": "8.0", "id": "566", "maxAmount": "5" }, @@ -24637,19 +24631,19 @@ }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "161", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "12.0", "id": "145", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "12.0", "id": "165", "maxAmount": "1" }, @@ -24673,31 +24667,31 @@ }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "9431", "maxAmount": "1" }, { "minAmount": "1", "weight": "5.0", - "id": "2729", + "id": "12070", "maxAmount": "1" }, { "minAmount": "1", - "weight": "21.1", + "weight": "21.3", "id": "31", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.141", + "weight": "0.14", "id": "11286", "maxAmount": "1" }, { "minAmount": "1", - "weight": "150.0", + "weight": "100.0", "id": "0", "maxAmount": "1" } @@ -45626,19 +45620,19 @@ "main": [ { "minAmount": "20", - "weight": "25.0", + "weight": "8.0", "id": "810", "maxAmount": "20" }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "1373", "maxAmount": "1" }, { "minAmount": "1", - "weight": "25.0", + "weight": "50.0", "id": "1432", "maxAmount": "1" }, @@ -45656,13 +45650,13 @@ }, { "minAmount": "14", - "weight": "25.0", + "weight": "50.0", "id": "811", "maxAmount": "14" }, { "minAmount": "8", - "weight": "25.0", + "weight": "50.0", "id": "830", "maxAmount": "12" }, @@ -45692,7 +45686,7 @@ }, { "minAmount": "10", - "weight": "25.0", + "weight": "8.0", "id": "566", "maxAmount": "10" }, @@ -45722,7 +45716,7 @@ }, { "minAmount": "600", - "weight": "50.0", + "weight": "75.0", "id": "995", "maxAmount": "3000" }, @@ -45741,7 +45735,7 @@ { "minAmount": "1", "weight": "25.0", - "id": "2743", + "id": "12070", "maxAmount": "1" }, { @@ -45751,8 +45745,8 @@ "maxAmount": "1" }, { - "minAmount": "1", - "weight": "25.0", + "minAmount": "2", + "weight": "8.0", "id": "2363", "maxAmount": "2" }, @@ -45770,13 +45764,13 @@ }, { "minAmount": "1", - "weight": "0.0235", + "weight": "0.03", "id": "11335", "maxAmount": "1" }, { "minAmount": "1", - "weight": "150.0", + "weight": "100.0", "id": "0", "maxAmount": "1" } From cfc2d1708342c0d12676cae7b88aea4f8454399c Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 5 Jul 2021 17:05:22 -0500 Subject: [PATCH 6/9] Award ranged XP when damage is calculated instead of when it's applied --- .../main/java/core/game/node/entity/combat/ImpactHandler.java | 4 +++- .../game/node/entity/combat/handlers/RangeSwingHandler.kt | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java b/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java index 843f31d78..1ad6d326b 100644 --- a/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java +++ b/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java @@ -171,7 +171,9 @@ public final class ImpactHandler { if (fam && player.getFamiliarManager().hasFamiliar() && !(player.getFamiliarManager().getFamiliar() instanceof Pet)) { source.setAttribute("fam-exp", true); } - style.getSwingHandler().addExperience(source, entity, state); + if(style != CombatStyle.RANGE) { + style.getSwingHandler().addExperience(source, entity, state); + } source.removeAttribute("fam-exp"); } boolean dead = false; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt index 59e85f6fc..5382702b1 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt @@ -94,6 +94,7 @@ open class RangeSwingHandler return -1 } useAmmo(entity, state, victim.location) + addExperience(entity, victim, state) return 1 + ceil(entity.location.getDistance(victim.location) * 0.3).toInt() } From 2ef549b50f8d596e7ed91a70d81f96089d8ef3ed Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 5 Jul 2021 17:10:54 -0500 Subject: [PATCH 7/9] Award combat xp on calculation instead of on impact --- .../main/java/core/game/node/entity/combat/ImpactHandler.java | 3 --- .../rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt | 1 + .../rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt | 1 + 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java b/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java index 1ad6d326b..f173c4ed7 100644 --- a/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java +++ b/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java @@ -171,9 +171,6 @@ public final class ImpactHandler { if (fam && player.getFamiliarManager().hasFamiliar() && !(player.getFamiliarManager().getFamiliar() instanceof Pet)) { source.setAttribute("fam-exp", true); } - if(style != CombatStyle.RANGE) { - style.getSwingHandler().addExperience(source, entity, state); - } source.removeAttribute("fam-exp"); } boolean dead = false; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt index bf743c2e4..99862dc15 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt @@ -86,6 +86,7 @@ open class MagicSwingHandler if (spell!!.type === SpellType.BLITZ) { ticks++ } + addExperience(entity, victim, state) return ticks } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt index edbc81127..ec435e6c6 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt @@ -75,6 +75,7 @@ open class MeleeSwingHandler hit = RandomFunction.random(max) } state.estimatedHit = hit + addExperience(entity, victim, state) return 1 } From 74dadf2c99842f8c79c4f24dff08fbd5c42bde8e Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 5 Jul 2021 19:00:30 -0500 Subject: [PATCH 8/9] Emergency job hotfix --- Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt | 3 --- .../rs09/game/content/jobs/WorkForInteractionListener.kt | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt b/Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt index 713ac01cb..b405d407c 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt +++ b/Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt @@ -90,8 +90,5 @@ object JobManager { player.removeAttribute("jobs:type") player.incrementAttribute("/save:jobs:dailyAmt",1) System.out.println("Complete amount: ${player.getAttribute("jobs:dailyAmt",0)}") - if(player.getAttribute("jobs:dailyAmt",0) == 3){ - player.setAttribute("/save:jobs:reset_time",System.currentTimeMillis() + TimeUnit.HOURS.toMillis(24)) - } } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/WorkForInteractionListener.kt b/Server/src/main/kotlin/rs09/game/content/jobs/WorkForInteractionListener.kt index e11f1aff5..2f7ace650 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/WorkForInteractionListener.kt +++ b/Server/src/main/kotlin/rs09/game/content/jobs/WorkForInteractionListener.kt @@ -8,6 +8,7 @@ import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.Item import org.rs09.consts.Items import rs09.game.interaction.InteractionListener +import java.util.concurrent.TimeUnit /** * Handles the work-for actions for the NPCs @@ -59,6 +60,7 @@ class WorkForInteractionListener : InteractionListener() { if(player.getAttribute("jobs:reset_time",Long.MAX_VALUE) < System.currentTimeMillis()){ player.setAttribute("/save:jobs:dailyAmt",0) + player.setAttribute("/save:jobs:reset_time",System.currentTimeMillis() + TimeUnit.HOURS.toMillis(24)) } if(player.getAttribute("jobs:id",-1) != -1){ From 4760629f7ebe68b9de26da8972dc140938a345e2 Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 5 Jul 2021 19:14:42 -0500 Subject: [PATCH 9/9] Ensure damage can never exceed victim's remaining HP --- .../game/node/entity/combat/handlers/MagicSwingHandler.kt | 2 ++ .../game/node/entity/combat/handlers/MeleeSwingHandler.kt | 4 ++++ .../game/node/entity/combat/handlers/RangeSwingHandler.kt | 2 ++ 3 files changed, 8 insertions(+) diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt index 99862dc15..84455411b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt @@ -86,6 +86,8 @@ open class MagicSwingHandler if (spell!!.type === SpellType.BLITZ) { ticks++ } + if(state.estimatedHit > victim.skills.lifepoints) state.estimatedHit = victim.skills.lifepoints + if(state.estimatedHit + state.secondaryHit > victim.skills.lifepoints) state.secondaryHit -= ((state.estimatedHit + state.secondaryHit) - victim.skills.lifepoints) addExperience(entity, victim, state) return ticks } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt index ec435e6c6..6128d4b84 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt @@ -75,6 +75,10 @@ open class MeleeSwingHandler hit = RandomFunction.random(max) } state.estimatedHit = hit + if(victim != null) { + if (state.estimatedHit > victim.skills.lifepoints) state.estimatedHit = victim.skills.lifepoints + if (state.estimatedHit + state.secondaryHit > victim.skills.lifepoints) state.secondaryHit -= ((state.estimatedHit + state.secondaryHit) - victim.skills.lifepoints) + } addExperience(entity, victim, state) return 1 } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt index 5382702b1..777833444 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt @@ -93,6 +93,8 @@ open class RangeSwingHandler if (entity == null || victim!!.location == null) { return -1 } + if(state.estimatedHit > victim.skills.lifepoints) state.estimatedHit = victim.skills.lifepoints + if(state.estimatedHit + state.secondaryHit > victim.skills.lifepoints) state.secondaryHit -= ((state.estimatedHit + state.secondaryHit) - victim.skills.lifepoints) useAmmo(entity, state, victim.location) addExperience(entity, victim, state) return 1 + ceil(entity.location.getDistance(victim.location) * 0.3).toInt()