From 98cd103583b3e629f6d9e979160d2fdc17347d2e Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 14 Mar 2020 15:33:08 -0500 Subject: [PATCH 1/6] closes #120 added gnome stronghold spirit tree --- Server/src/org/crandor/game/world/GameWorld.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Server/src/org/crandor/game/world/GameWorld.java b/Server/src/org/crandor/game/world/GameWorld.java index 58465cfd3..4455e8c9d 100644 --- a/Server/src/org/crandor/game/world/GameWorld.java +++ b/Server/src/org/crandor/game/world/GameWorld.java @@ -313,6 +313,7 @@ public final class GameWorld { //LandscapeParser.addGameObject(new GameObject(6097, new Location(2343, 3690, 0), 10, 0)); LandscapeParser.addGameObject(new GameObject(1317, new Location(2343, 3690, 0), 10, 3)); LandscapeParser.addGameObject(new GameObject(1814, new Location(3090, 3475, 0), 4, 0));//edgeville lever + LandscapeParser.addGameObject(new GameObject(1293, new Location(2461, 3446, 0), 10,0)); // Gnome Stronghold Spirit Tree NPC[] npcs = new NPC[]{new NPC(494, new Location(2327, 3687, 0))}; for (NPC npc : npcs) { npc.setDirection(Direction.EAST); From 8feacc254de66921d8acc8c189de38ca8bde5199 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 14 Mar 2020 15:39:19 -0500 Subject: [PATCH 2/6] closes #121 added flax to gnome stronghold --- Server/src/org/crandor/game/world/GameWorld.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Server/src/org/crandor/game/world/GameWorld.java b/Server/src/org/crandor/game/world/GameWorld.java index 4455e8c9d..d54a00d92 100644 --- a/Server/src/org/crandor/game/world/GameWorld.java +++ b/Server/src/org/crandor/game/world/GameWorld.java @@ -314,6 +314,10 @@ public final class GameWorld { LandscapeParser.addGameObject(new GameObject(1317, new Location(2343, 3690, 0), 10, 3)); LandscapeParser.addGameObject(new GameObject(1814, new Location(3090, 3475, 0), 4, 0));//edgeville lever LandscapeParser.addGameObject(new GameObject(1293, new Location(2461, 3446, 0), 10,0)); // Gnome Stronghold Spirit Tree + LandscapeParser.addGameObject(new GameObject(2646, new Location(2445, 3413, 0), 10,0)); // Gnome Stronghold flax + LandscapeParser.addGameObject(new GameObject(2646, new Location(2447, 3414, 0), 10,2)); // Gnome Stronghold flax + LandscapeParser.addGameObject(new GameObject(2646, new Location(2447, 3421, 0), 10,0));// Gnome Stronhold flax + NPC[] npcs = new NPC[]{new NPC(494, new Location(2327, 3687, 0))}; for (NPC npc : npcs) { npc.setDirection(Direction.EAST); From 9d539fb5d4366d04855233e4c189f0e3cc60a986 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 14 Mar 2020 17:19:57 -0500 Subject: [PATCH 3/6] closes #48 added casting animations to dark wizards --- Server/server.sql | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Server/server.sql b/Server/server.sql index 386217193..a4e2c2fca 100644 --- a/Server/server.sql +++ b/Server/server.sql @@ -13815,9 +13815,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level` (168, 'Gnome woman', 'A female gnome.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 191, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (169, 'Gnome woman', 'A female gnome.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 191, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (170, 'Man', 'One of RuneScape\'s many citizens', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), -(172, 'Dark wizard', 'A practicer of dark arts.', 24, 1, 1, 27, 1, 27, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(172, 'Dark wizard', 'A practicer of dark arts.', 24, 1, 1, 27, 1, 27, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), (173, 'Invrigar the Necromancer', 'An evil user of Magic powers', 42, 1, 1, 30, 1, 30, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), -(174, 'Dark wizard', 'He works evil magic.', 12, 1, 1, 24, 1, 24, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(174, 'Dark wizard', 'He works evil magic.', 12, 1, 1, 24, 1, 24, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), (175, 'Mugger', 'He jumps out and attacks people.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, 2, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (176, 'Witch', 'The hat\'s a dead give away.', 31, 1, 1, 22, 1, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 423, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (178, 'Black Knight', 'A dark-hearted knight.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), @@ -15331,10 +15331,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level` (3239, 'Rusty', NULL, 7, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (3240, 'Jeff', NULL, 7, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (3241, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), -(3242, 'Dark wizard', 'A practicer of dark arts.', 30, 1, 1, 25, 1, 25, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), -(3243, 'Dark wizard', 'A practicer of dark arts.', 38, 1, 1, 27, 1, 27, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), -(3244, 'Dark wizard', 'A practicer of dark arts.', 22, 1, 1, 16, 1, 16, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), -(3245, 'Dark wizard', 'A practicer of dark arts.', 22, 1, 1, 16, 1, 16, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3242, 'Dark wizard', 'A practicer of dark arts.', 30, 1, 1, 25, 1, 25, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3243, 'Dark wizard', 'A practicer of dark arts.', 38, 1, 1, 27, 1, 27, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3244, 'Dark wizard', 'A practicer of dark arts.', 22, 1, 1, 16, 1, 16, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3245, 'Dark wizard', 'A practicer of dark arts.', 22, 1, 1, 16, 1, 16, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), (3246, 'Barbarian', 'Alberich', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), (3247, 'Barbarian', 'Fafner', 18, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 7048, 0, 836, NULL, 7048, 7048, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), (3248, 'Barbarian', 'Fasolt', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), @@ -15860,10 +15860,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level` (4653, 'Trader Crewmember', 'First storm he is in that hat will blow away.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (4654, 'Trader Crewmember', 'She\'ll never be able to climb rigging in that.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (4655, 'Trader Crewmember', 'High heels on a ship? What is she thinking?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), -(4656, 'Trader Crewmember', 'The effect is sort of spoiled by all those tattoos.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), -(4658, 'Dark wizard', 'A wizard of the Dark Arts.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), -(4659, 'Dark wizard', 'A wizard of the Dark Arts.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), -(4660, 'Dark wizard', 'A wizard of the Dark Arts.', 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4656, 'Trader Crewmember', 'The effect is sort of spoiled by all those tattoos.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, 710, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4658, 'Dark wizard', 'A wizard of the Dark Arts.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, 710, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4659, 'Dark wizard', 'A wizard of the Dark Arts.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, 710, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4660, 'Dark wizard', 'A wizard of the Dark Arts.', 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, 710, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), (4661, 'Dark wizard', 'A wizard of the Dark Arts.', 30, 1, 1, 15, 1, 15, '30,10,10,10,10,10,10,25,0,0,0,0,0,0,0', NULL, NULL, 20, 5, NULL, NULL, NULL, 404, 9055, NULL, NULL, NULL, 2713, 2718, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), (4665, 'Baby blue dragon', 'Young but still dangerous.', 50, 40, 40, 42, 1, 40, '50,40,64,60,30,45,40,40,20,40,40,20,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 25, 26, 28, NULL, 25, 25, NULL, NULL, NULL, 3, 68, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), (4666, 'Baby blue dragon', 'Young but still dangerous.', 51, 45, 45, 48, 45, 45, '49,45,43,50,73,71,56,78,68,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 108, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), From 56972ba7ef996ea3bc07cdc63179ebf9059fcf38 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 14 Mar 2020 22:53:57 -0500 Subject: [PATCH 4/6] closes #62 fixed lumbridge dummies --- Server/server.sql | 2 ++ .../crandor/game/node/entity/combat/CombatPulse.java | 5 +++++ .../game/node/entity/combat/CombatSwingHandler.java | 10 +++++++++- .../plugin/interaction/player/AttackOptionPlugin.java | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Server/server.sql b/Server/server.sql index a4e2c2fca..a8f3bef1d 100644 --- a/Server/server.sql +++ b/Server/server.sql @@ -15763,6 +15763,7 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level` (4458, 'Ork', 'She works in the bank.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (4459, 'Ork', 'She works in the bank.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (4470, 'Tree spirit', 'A very angry nymph.', 12, 9, 9, 9, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 94, 0, 97, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4474, 'Magic dummy', 'A magic training dummy', 15, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 94, 0, 97, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (4476, 'Guardian mummy', 'Who\'s your mummy?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (4479, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), (4480, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), @@ -17513,6 +17514,7 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level` (7772, 'Lava monster', 'A monster made of magma.', 54, 28, 28, 38, 38, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 9337, 0, 9340, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (7773, 'Fire monster', 'A monster like many others', 54, 28, 28, 38, 38, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 9341, 0, 9344, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (7823, 'Wall Beast', 'A big, scary hand! ', 105, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, 6, 1, NULL, 1802, 1803, 1804, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 105, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7891, 'Melee dummy', 'A melee training dummy', 15, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 94, 0, 97, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (8133, 'Corporeal Beast', 'A vision of supernatural horror.', 2000, 95, 95, 95, 95, 95, '380,250,350,400,650,450,920,850,750,800,1500,250,250,275,200', NULL, 1, 80, 6, 64, 64, 10058, 10386, 10385, NULL, 10053, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (8149, 'Armoured zombie', 'He sure looks grave.', 62, 50, 50, 50, 50, NULL, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, 35, 6, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), (8150, 'Armoured zombie', 'This is a rotten one.', 62, 50, 50, 50, 50, NULL, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, 35, 6, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), diff --git a/Server/src/org/crandor/game/node/entity/combat/CombatPulse.java b/Server/src/org/crandor/game/node/entity/combat/CombatPulse.java index c738babee..fd34fd2ff 100644 --- a/Server/src/org/crandor/game/node/entity/combat/CombatPulse.java +++ b/Server/src/org/crandor/game/node/entity/combat/CombatPulse.java @@ -97,6 +97,7 @@ public final class CombatPulse extends Pulse { @Override public boolean pulse() { + if (victim == null || DeathTask.isDead(entity) || DeathTask.isDead(victim)) { return true; } @@ -374,6 +375,10 @@ public final class CombatPulse extends Pulse { if (victim == this.victim && isAttacking()) { return; } + //makes sure lumbridge dummies can't attack back (lol) + if (victim instanceof Player && (this.entity.getId() == 4474 || this.entity.getId() == 7891)){ + return; + } if (victim instanceof NPC) { if (entity instanceof Player && victim != this.victim && victim != lastVictim) { // Loar Shade Transformation Animation diff --git a/Server/src/org/crandor/game/node/entity/combat/CombatSwingHandler.java b/Server/src/org/crandor/game/node/entity/combat/CombatSwingHandler.java index d629c7303..16ed3ad16 100644 --- a/Server/src/org/crandor/game/node/entity/combat/CombatSwingHandler.java +++ b/Server/src/org/crandor/game/node/entity/combat/CombatSwingHandler.java @@ -33,7 +33,7 @@ public abstract class CombatSwingHandler { /** * The amount of experience to get per hit. */ - public static final double EXPERIENCE_MOD = 4; + public static double EXPERIENCE_MOD = 4; /** * The mapping of the special attack handlers. @@ -368,12 +368,20 @@ public abstract class CombatSwingHandler { * @param state The battle state. */ public void adjustBattleState(Entity entity, Entity victim, BattleState state) { + this.EXPERIENCE_MOD = 4; int totalHit = 0; if (entity instanceof Player) { ((Player) entity).getFamiliarManager().adjustBattleState(state); } entity.sendImpact(state); victim.checkImpact(state); + //Prevents lumbridge dummies from dying (true to how rs3 / runescape in 2009 does it) + if((victim.getId() == 4474 && this.type == CombatStyle.MAGIC) || (victim.getId() == 7891 && this.type == CombatStyle.MELEE)) { + this.EXPERIENCE_MOD = 0.1; + victim.fullRestore(); + if(state.getEstimatedHit() >= 15){state.setEstimatedHit(14);}; + if(state.getSecondaryHit() >= 15){state.setSecondaryHit(14);} + } if (state.getEstimatedHit() > 0) { state.setEstimatedHit(getFormatedHit(entity, victim, state, state.getEstimatedHit())); totalHit += state.getEstimatedHit(); diff --git a/Server/src/plugin/interaction/player/AttackOptionPlugin.java b/Server/src/plugin/interaction/player/AttackOptionPlugin.java index 9da2b138f..27b852d62 100644 --- a/Server/src/plugin/interaction/player/AttackOptionPlugin.java +++ b/Server/src/plugin/interaction/player/AttackOptionPlugin.java @@ -4,7 +4,9 @@ import org.crandor.cache.def.impl.NPCDefinition; import org.crandor.game.interaction.Option; import org.crandor.game.interaction.OptionHandler; import org.crandor.game.node.Node; +import org.crandor.game.node.entity.combat.CombatStyle; import org.crandor.game.node.entity.player.Player; +import org.crandor.game.node.item.Item; import org.crandor.plugin.InitializablePlugin; import org.crandor.plugin.Plugin; @@ -18,6 +20,9 @@ public final class AttackOptionPlugin extends OptionHandler { @Override public boolean handle(Player player, Node node, String option) { + //Makes sure player uses correct attack styles for lumbridge dummies + if (node.getId() == 4474 && !(player.getSwingHandler(false).getType() == CombatStyle.MAGIC)){ player.sendMessage("You can only attack this with magic."); return true; } + if (node.getId() == 7891 && !(player.getSwingHandler(false).getType() == CombatStyle.MELEE)){ player.sendMessage("You must use the training sword to attack this."); return true; } player.attack(node); return true; } From e406ea40d8f480587b658a30e4a00f45cb667f68 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 14 Mar 2020 23:18:46 -0500 Subject: [PATCH 5/6] closes #167 spirit shards now always sell for 25 each --- Server/src/org/crandor/game/content/global/shop/Shop.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Server/src/org/crandor/game/content/global/shop/Shop.java b/Server/src/org/crandor/game/content/global/shop/Shop.java index b42ed74a8..0401b9892 100644 --- a/Server/src/org/crandor/game/content/global/shop/Shop.java +++ b/Server/src/org/crandor/game/content/global/shop/Shop.java @@ -613,6 +613,9 @@ public class Shop { } double mod = (maxMod + minMod) / 2; int value = (int) (item.getDefinition().getAlchemyValue(highAlch) * mod * item.getAmount()); + if(item.getId() == 12183){ + value = 25 * item.getAmount(); + } return value; } From 6b0b177a2d5ad99f6dbe7cd03a42f82b5195890e Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sun, 15 Mar 2020 00:20:49 -0500 Subject: [PATCH 6/6] Fixed the shortcut in northeast gnome stronghold --- .../city/GnomeStrongholdPlugin.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Server/src/plugin/interaction/city/GnomeStrongholdPlugin.java b/Server/src/plugin/interaction/city/GnomeStrongholdPlugin.java index d02dca101..af49cafc8 100644 --- a/Server/src/plugin/interaction/city/GnomeStrongholdPlugin.java +++ b/Server/src/plugin/interaction/city/GnomeStrongholdPlugin.java @@ -1,14 +1,17 @@ package plugin.interaction.city; import org.crandor.cache.def.impl.ObjectDefinition; +import org.crandor.game.content.skill.Skills; import org.crandor.game.content.skill.member.agility.AgilityHandler; import org.crandor.game.interaction.OptionHandler; import org.crandor.game.node.Node; +import org.crandor.game.node.entity.impl.ForceMovement; import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.object.GameObject; import org.crandor.game.node.object.ObjectBuilder; import org.crandor.game.system.task.Pulse; import org.crandor.game.world.GameWorld; +import org.crandor.game.world.map.Direction; import org.crandor.game.world.map.Location; import org.crandor.game.world.update.flag.context.Animation; import org.crandor.plugin.InitializablePlugin; @@ -26,6 +29,8 @@ public final class GnomeStrongholdPlugin extends OptionHandler { ObjectDefinition.forId(190).getConfigurations().put("option:open", this); ObjectDefinition.forId(1967).getConfigurations().put("option:open", this); ObjectDefinition.forId(1968).getConfigurations().put("option:open", this); + ObjectDefinition.forId(9316).getConfigurations().put("option:climb",this); + ObjectDefinition.forId(9317).getConfigurations().put("option:climb",this); return this; } @@ -33,6 +38,20 @@ public final class GnomeStrongholdPlugin extends OptionHandler { public boolean handle(Player player, Node node, String option) { GameObject object = (GameObject) node; switch (object.getId()) { + case 9316: + case 9317: + final boolean scale = player.getLocation().getY() <= object.getLocation().getY(); + final Location end = object.getLocation().transform(scale ? 3 : -3, scale ? 6 : -6, 0); + if (player.getSkills().getStaticLevel(Skills.AGILITY) < 50) { + player.getPacketDispatch().sendMessage("You must be level 50 agility or higher to climb down the rocks."); + break; + } + if (!scale) { + ForceMovement.run(player, player.getLocation(), end, Animation.create(740), Animation.create(740), Direction.SOUTH, 13).setEndAnimation(Animation.RESET); + } else { + ForceMovement.run(player, player.getLocation(), end, Animation.create(1148), Animation.create(1148), Direction.SOUTH, 13).setEndAnimation(Animation.RESET); + } + break; case 1967: case 1968: openTreeDoor(player, object);