From 8262512bf69564540202d196241e2e5fcd8c449a Mon Sep 17 00:00:00 2001 From: Danial Date: Mon, 28 Oct 2019 07:15:12 +1300 Subject: [PATCH] Add Shield of Arrav (#120) * change it up * eh * Add Shield of Arrav quest * Add comment --- 2006Redone Server/data/cfg/item.cfg | 3 +- 2006Redone Server/data/cfg/npc.cfg | 4 +- 2006Redone Server/data/cfg/spawn-config.cfg | 5 + .../game/content/quests/QuestAssistant.java | 15 +- .../game/content/quests/QuestRewards.java | 16 +- .../content/quests/impl/PiratesTreasure.java | 2 +- .../game/content/quests/impl/ShieldArrav.java | 113 +++++ .../content/quests/impl/VampyreSlayer.java | 88 ++-- .../game/dialogues/DialogueHandler.java | 391 +++++++++++++++++- .../src/redone/game/npcs/NpcActions.java | 36 ++ .../src/redone/game/npcs/NpcHandler.java | 5 + .../redone/game/objects/ObjectsActions.java | 28 +- .../src/redone/game/players/Client.java | 2 +- .../src/redone/game/players/Player.java | 2 +- .../src/redone/game/players/PlayerSave.java | 7 + .../net/packets/impl/ClickingButtons.java | 9 + 16 files changed, 655 insertions(+), 71 deletions(-) create mode 100644 2006Redone Server/src/redone/game/content/quests/impl/ShieldArrav.java diff --git a/2006Redone Server/data/cfg/item.cfg b/2006Redone Server/data/cfg/item.cfg index 767a3208..c8347d52 100644 --- a/2006Redone Server/data/cfg/item.cfg +++ b/2006Redone Server/data/cfg/item.cfg @@ -1,3 +1,4 @@ +// itemID itemName itemExamine item = 0 Dwarf_remains The_body_of_a_Dwarf_savaged_by_Goblins. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 item = 1 Tool_kit These_could_be_handy. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 item = 2 Cannonball Ammo_for_the_Dwarf_Cannon. 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 @@ -755,7 +756,7 @@ item = 757 Book The_Shield_of_Arrav_by_A_R_Wright. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 item = 758 Key The_key_to_get_into_the_Phoenix_Gang_HQ. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 item = 759 Key The_key_to_the_Phoenix_Gang's_weapons_store. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 item = 760 Key Swap_this_note_at_any_bank_for_the_equivalent_item. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -item = 761 Scroll An_intelligence_report. 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 +item = 761 Intel_report An_intelligence_report. 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 item = 762 Scroll Swap_this_note_at_any_bank_for_the_equivalent_item. 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 item = 763 Broken_shield Half_of_the_Shield_of_Arrav. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 item = 764 Broken_shield Swap_this_note_at_any_bank_for_the_equivalent_item. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/2006Redone Server/data/cfg/npc.cfg b/2006Redone Server/data/cfg/npc.cfg index 0dd86efd..842daa15 100644 --- a/2006Redone Server/data/cfg/npc.cfg +++ b/2006Redone Server/data/cfg/npc.cfg @@ -687,8 +687,8 @@ npc = 642 Katrine 0 0 npc = 643 Weaponsmaster 23 0 //------------------------Not In DB------------------------ -npc = 644 Straven 23 20 -npc = 645 Jonny_the_beard 0 0 +npc = 644 Straven 0 0 +npc = 645 Jonny_the_beard 2 10 npc = 646 Curator 0 0 npc = 647 Reldo 0 0 npc = 648 King_Roald 0 0 diff --git a/2006Redone Server/data/cfg/spawn-config.cfg b/2006Redone Server/data/cfg/spawn-config.cfg index 4c2f5bca..22213aa9 100644 --- a/2006Redone Server/data/cfg/spawn-config.cfg +++ b/2006Redone Server/data/cfg/spawn-config.cfg @@ -2440,4 +2440,9 @@ spawn = 604 3000 3144 0 1 0 0 0 Thurgo spawn = 647 3209 3496 0 1 0 0 0 Reldo spawn = 9 3204 3496 0 1 0 0 0 Guard spawn = 606 2977 3343 0 1 0 0 0 Squire +//PHEONIX GANG HIDEOUT +spawn = 644 3246 9780 0 0 0 0 0 Straven +spawn = 645 3224 3398 0 1 1 2 2 Jonny the beard +//VARROCK MUSEUM +spawn = 646 3256 3448 0 1 0 0 0 Curator Haig Halen [ENDOFSPAWNLIST] diff --git a/2006Redone Server/src/redone/game/content/quests/QuestAssistant.java b/2006Redone Server/src/redone/game/content/quests/QuestAssistant.java index 079a6302..bce501cf 100644 --- a/2006Redone Server/src/redone/game/content/quests/QuestAssistant.java +++ b/2006Redone Server/src/redone/game/content/quests/QuestAssistant.java @@ -1,6 +1,7 @@ package redone.game.content.quests; import redone.game.content.quests.impl.KnightsSword; +import redone.game.content.quests.impl.ShieldArrav; import redone.game.players.Client; /** @@ -10,7 +11,7 @@ import redone.game.players.Client; public class QuestAssistant { - public static final int MAXIMUM_QUESTPOINTS = 22; + public static final int MAXIMUM_QUESTPOINTS = 23; public static void sendStages(Client client) { client.getPlayerAssistant().sendFrame126("QP: " + client.questPoints + " ", 3985); @@ -112,6 +113,13 @@ public class QuestAssistant { } else { client.getPlayerAssistant().sendFrame126("@yel@Black Knights' Fortress", 7332); } + if (client.shieldArrav == 0) { + client.getPlayerAssistant().sendFrame126("Shield of Arrav", 7345); + } else if (client.shieldArrav == 8) { + client.getPlayerAssistant().sendFrame126("@gre@Shield of Arrav", 7345); + } else { + client.getPlayerAssistant().sendFrame126("@yel@Shield of Arrav", 7345); + } } public enum Quests { @@ -130,7 +138,7 @@ public class QuestAssistant { ROMEO_JULIET(28175, 7343, "Romeo Juliet", false), RUNE_MYSTERIES(28167, 7335, "Rune Mysteries", true), SHEEP_SHEARER(28176, 7344, "Sheep Shearer", true), - SHIELD_OF_ARRAV(28177, 7345, "Shield of Arrav", false), + SHIELD_OF_ARRAV(28177, 7345, "Shield of Arrav", true), VAMPYRE_SLAYER(28179, 7347, "Vampyre Slayer", true), WITCHS_POTION(28180, 7348, "Witchs Potion", true), BETWEEN_A_ROCK(49228, 12772, "Between A Rock", false), @@ -284,6 +292,9 @@ public class QuestAssistant { case 28176: client.getSheepShearer().showInformation(); break; + case 28177: + ShieldArrav.showInformation(client); + break; case 28178: KnightsSword.showInformation(client); break; diff --git a/2006Redone Server/src/redone/game/content/quests/QuestRewards.java b/2006Redone Server/src/redone/game/content/quests/QuestRewards.java index 73a7a683..9dde3b9a 100644 --- a/2006Redone Server/src/redone/game/content/quests/QuestRewards.java +++ b/2006Redone Server/src/redone/game/content/quests/QuestRewards.java @@ -39,7 +39,7 @@ public class QuestRewards { } public static void gertFinish(Client client) { - QuestReward(client, "Gertrude's Cat", "1 Quest Point", "1,525 Cooking XP", "A kitten!", "Ability to raise cats", "A choclate cake", "A bowl of stew", 1897); + QuestReward(client, "Gertrude's Cat", "1 Quest Point", "1,525 Cooking XP", "A kitten!", "Ability to raise cats", "A chocolate cake", "A bowl of stew", 1897); QUEST_NAME = "Gertrude's Cat"; client.getPlayerAssistant().sendFrame126("@gre@" + QUEST_NAME + "", 7360); client.getItemAssistant().addItem(1897, 1); @@ -95,7 +95,7 @@ public class QuestRewards { } public static void runeFinish(Client client) { - QuestReward(client, "Rune Mysteries", "1 Quest Points", "Air Talisman", "", "", "", "", 1438); + QuestReward(client, "Rune Mysteries", "1 Quest Point", "Air Talisman", "", "", "", "", 1438); QUEST_NAME = "Rune Mysteries"; client.getPlayerAssistant().sendFrame126("@gre@" + QUEST_NAME + "", 7335); client.getItemAssistant().addItem(1438, 1); @@ -142,12 +142,22 @@ public class QuestRewards { client.questPoints++; client.cookAss = 3; } + public static void blackKnightReward(Client client) { - QuestReward(client, "Black Knights' Fortress", "3 Quest Point", "2500 Coins", "", "", "", "", 0); + QuestReward(client, "Black Knights' Fortress", "3 Quest Points", "2,500 Coins", "", "", "", "", 0); QUEST_NAME = "Black Knights' Fortress"; client.getPlayerAssistant().sendFrame126("@gre@" + QUEST_NAME + "", 7332); client.getItemAssistant().addItem(995, 2500); client.questPoints += 3; client.blackKnight = 3; } + + public static void shieldArravReward(Client client) { + QuestReward(client, "Shield of Arrav", "1 Quest Point", "1,200 Coins", "", "", "", "", 767); + QUEST_NAME = "Shield of Arrav"; + client.getPlayerAssistant().sendFrame126("@gre@" + QUEST_NAME + "", 7345); + client.getItemAssistant().addItem(995, 1200); + client.questPoints++; + client.shieldArrav = 8; + } } diff --git a/2006Redone Server/src/redone/game/content/quests/impl/PiratesTreasure.java b/2006Redone Server/src/redone/game/content/quests/impl/PiratesTreasure.java index a2ff3f6e..04d1ca9f 100644 --- a/2006Redone Server/src/redone/game/content/quests/impl/PiratesTreasure.java +++ b/2006Redone Server/src/redone/game/content/quests/impl/PiratesTreasure.java @@ -93,7 +93,7 @@ public class PiratesTreasure { "@str@I went to falador and killed the gardener", 8150); client.getPlayerAssistant().sendFrame126("@str@I found the casket ", 8181); - client.getPlayerAssistant().sendFrame126("@red@ QUEST COMPLETE", + client.getPlayerAssistant().sendFrame126("@red@QUEST COMPLETE", 8152); client.getPlayerAssistant().sendFrame126( "As a reward, I gained a casket.", 8153); diff --git a/2006Redone Server/src/redone/game/content/quests/impl/ShieldArrav.java b/2006Redone Server/src/redone/game/content/quests/impl/ShieldArrav.java new file mode 100644 index 00000000..390a3873 --- /dev/null +++ b/2006Redone Server/src/redone/game/content/quests/impl/ShieldArrav.java @@ -0,0 +1,113 @@ +package redone.game.content.quests.impl; + +import redone.game.players.Client; + +/** + * Shield of Arrav + * @author RedSparr0w + */ + +public class ShieldArrav { + + Client client; + + private static String[] lines = new String[]{}; + + public ShieldArrav(Client client) { + this.client = client; + } + + public static void showInformation(Client client) { + // Clear all lines + for (int i = 8144; i < 8195; i++) client.getPlayerAssistant().sendFrame126("", i); + // Set the title + client.getPlayerAssistant().sendFrame126("Shield of Arrav", 8144); + // Add content + if (client.shieldArrav == 0) { + lines = new String[]{ + "I can start this quest by speaking to @red@Reldo @bla@in @red@Varrock's", + "@red@Palace Library@bla@, or by speaking to @red@Charlie the Tramp @bla@near", + "the @red@Blue Moon Inn @bla@in @red@Varrock.", + "I will need a friend to help me and some combat experience", + "may be an advantage.", + }; + } else if (client.shieldArrav == 1) { + lines = new String[]{ + "I need to find @red@'The Shield of Arrav' @bla@book", + "in @red@Varrock's Palace Library", + }; + } else if (client.shieldArrav == 2) { + lines = new String[]{ + "@str@I found 'The Shield of Arrav' book", + "I should speak to @red@Reldo", + }; + } else if (client.shieldArrav == 3) { + lines = new String[]{ + "@str@I found 'The Shield of Arrav' book", + "@str@I've spoken with Raldo", + "Lets go speak with @red@Baraek", + }; + } else if (client.shieldArrav == 4) { + lines = new String[]{ + "@str@I found 'The Shield of Arrav' book", + "@str@I've spoken with Raldo", + "@str@I've spoken with Baraek", + "He told me where I can find the Phoenix Gang hideout,", + "He said it was located in the South Eastern side of Varrock,", + "I should check it out.", + }; + } else if (client.shieldArrav == 5) { + lines = new String[]{ + "@str@I found 'The Shield of Arrav' book", + "@str@I've spoken with Raldo", + "@str@I've spoken with Baraek", + "@str@I found the hideout", + "I need to goto the @red@Blue Moon Inn", + "and obtain the intelligence report.", + }; + } else if (client.shieldArrav == 6) { + lines = new String[]{ + "@str@I found 'The Shield of Arrav' book", + "@str@I've spoken with Raldo", + "@str@I've spoken with Baraek", + "@str@I found the hideout", + "@str@I obtained the intelligence report", + "I need to find the Shield", + "and take it to @red@Curator Haig Halen", + "he should be at @red@Varrock Museum" + }; + } else if (client.shieldArrav == 7) { + lines = new String[]{ + "@str@I found 'The Shield of Arrav' book", + "@str@I've spoken with Raldo", + "@str@I've spoken with Baraek", + "@str@I found the hideout", + "@str@I obtained the intelligence report", + "@str@I turned in the shield", + "I need to take this certificate", + "to @red@King Roald @bla@for my reward", + }; + } else if (client.shieldArrav == 8) { + lines = new String[]{ + "@str@I found 'The Shield of Arrav' book", + "@str@I've spoken with Raldo", + "@str@I've spoken with Baraek", + "@str@I found the hideout", + "@str@I obtained the intelligence report", + "@str@I turned in the shield", + "@str@I got a certificate and", + "@str@turned it in for my reward", + "", + "@red@QUEST COMPLETE", + "", + "REWARDS:", + "1,200 coins", + "1 Quest Point", + }; + } + // Send the lines to the client + int lineNumber = 8147; + for (String line : lines) client.getPlayerAssistant().sendFrame126(line, lineNumber++); + client.getPlayerAssistant().showInterface(8134); + } +} diff --git a/2006Redone Server/src/redone/game/content/quests/impl/VampyreSlayer.java b/2006Redone Server/src/redone/game/content/quests/impl/VampyreSlayer.java index eb5bf3c9..1f4e4ec0 100644 --- a/2006Redone Server/src/redone/game/content/quests/impl/VampyreSlayer.java +++ b/2006Redone Server/src/redone/game/content/quests/impl/VampyreSlayer.java @@ -11,59 +11,65 @@ public class VampyreSlayer { Client client; + public String[] lines = new String[]{}; + public VampyreSlayer(Client client) { this.client = client; } public void showInformation() { - for (int i = 8144; i < 8195; i++) { - client.getPlayerAssistant().sendFrame126("", i); - } - client.getPlayerAssistant().sendFrame126("@dre@Vampyre Slayer", 8144); - client.getPlayerAssistant().sendFrame126("", 8145); + // Clear all lines + for (int i = 8144; i < 8195; i++) client.getPlayerAssistant().sendFrame126("", i); + // Set the title + client.getPlayerAssistant().sendFrame126("Vampyre Slayer", 8144); + // Add content if (client.vampSlayer == 0) { - client.getPlayerAssistant().sendFrame126("Vampyre Slayer", 8144); - client.getPlayerAssistant().sendFrame126("I can start this quest by speaking to Morgan in", 8147); - client.getPlayerAssistant().sendFrame126("Draynor Village.", 8148); - client.getPlayerAssistant().sendFrame126("Minimum Requirments:", 8149); - client.getPlayerAssistant().sendFrame126("Be able to kill a level 37 monster.", 8150); + lines = new String[]{ + "I can start this quest by speaking to Morgan in", + "Draynor Village.", + "Minimum Requirements:", + "Be able to kill a level 37 monster.", + }; } else if (client.vampSlayer == 1) { - client.getPlayerAssistant().sendFrame126("Vampyre Slayer", 8144); - client.getPlayerAssistant().sendFrame126("@str@I've talked to the Morgan", 8147); - client.getPlayerAssistant().sendFrame126("I should speak to Doctor Harlow", 8148); + lines = new String[]{ + "@str@I've talked to Morgan", + "I should speak to Doctor Harlow", + }; } else if (client.vampSlayer == 2) { - client.getPlayerAssistant().sendFrame126("Vampyre Slayer", 8144); - client.getPlayerAssistant().sendFrame126("@str@I've talked to Doctor Harlow", 8147); - client.getPlayerAssistant().sendFrame126("I need to him a beer.", 8148); - client.getPlayerAssistant().sendFrame126("I should speak to the bartender", 8149); + lines = new String[]{ + "@str@I've talked to Doctor Harlow", + "I need to bring him a beer.", + "I should speak to the bartender", + }; } else if (client.vampSlayer == 3) { - client.getPlayerAssistant().sendFrame126("Vampyre Slayer", 8144); - client.getPlayerAssistant().sendFrame126( - "@str@I've talked to the bartender", 8147); - client.getPlayerAssistant().sendFrame126( - "@str@I gave Doctor Harlow the beer", 8148); - client.getPlayerAssistant().sendFrame126( - "@str@Doctor Harlow talked to me and", 8149); - client.getPlayerAssistant().sendFrame126( - "@str@Gave me a stake and hammer.", 8150); - client.getPlayerAssistant().sendFrame126("Get everything you need and go to Draynor Village.", 8151); - client.getPlayerAssistant().sendFrame126("Begin your battle.", 8152); + lines = new String[]{ + "@str@I've talked to the bartender", + "@str@I gave Doctor Harlow the beer", + "@str@Doctor Harlow talked to me and", + "@str@Gave me a stake and hammer.", + "Get everything you need and go to Draynor Village.", + "Begin your battle.", + }; } else if (client.vampSlayer == 4) { - client.getPlayerAssistant().sendFrame126("Vampyre Slayer", 8144); - client.getPlayerAssistant().sendFrame126("@str@I've killed the Vampire", 8147); - client.getPlayerAssistant().sendFrame126("I need to talk to Morgan to complete the quest.", 8148); + lines = new String[]{ + "@str@I've killed the Vampire", + "I need to talk to Morgan to complete the quest.", + }; } else if (client.vampSlayer == 5) { - client.getPlayerAssistant().sendFrame126("Vampyre Slayer", 8144); - client.getPlayerAssistant().sendFrame126( - "@str@I've Talked to Morgan", 8148); - client.getPlayerAssistant().sendFrame126("@red@ QUEST COMPLETE", - 8150); - client.getPlayerAssistant().sendFrame126( - "As a reward, I gained 4825 Attack Exp.", 8151); - client.getPlayerAssistant().sendFrame126("And 1 Quest Point", 8152); - client.getPlayerAssistant().sendFrame126("", 8152); + lines = new String[]{ + "@str@I've killed the Vampire", + "@str@I've Talked to Morgan", + "", + "@red@QUEST COMPLETE", + "", + "REWARDS:", + "4,825 Attack Exp.", + "1 Quest Point", + }; } + // Send the lines to the client + int lineNumber = 8147; + for (String line : lines) client.getPlayerAssistant().sendFrame126(line, lineNumber++); client.getPlayerAssistant().showInterface(8134); } - } diff --git a/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java b/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java index e9447490..40e43df0 100644 --- a/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java +++ b/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java @@ -2950,8 +2950,8 @@ public class DialogueHandler { case 575: if (player.getItemAssistant().playerHasItem(431, 1)) { sendStatement("Frank happily takes the rum... and hands you a key"); - player.getItemAssistant().addOrDropItem(432, 1); player.getItemAssistant().deleteItem2(431, 1); + player.getItemAssistant().addOrDropItem(432, 1); player.nextChat = 576; } else { sendPlayerChat1("I still need to get some rum."); @@ -3206,7 +3206,7 @@ public class DialogueHandler { // reldo starts here case 626: sendNpcChat1("Hello stranger.", player.talkingNpc, "Reldo"); - player.nextChat = 630; + player.nextChat = 627; break; case 627: sendOption3("Do you have anything to trade?", "What do you do?", "What do you know about the Imcando Dwarves?"); @@ -3417,24 +3417,17 @@ public class DialogueHandler { } break; case 671: - if (player.knightS == 7) { + if (player.knightS == 7 || player.knightS == 8) { sendStatement2("You give the blurite ore and two bars to Thurgo. Thurgo starts", "to make the sword. Thurgo hands you a sword."); player.getItemAssistant().deleteItem2(2351, 1); player.getItemAssistant().deleteItem2(2351, 1); player.getItemAssistant().deleteItem2(668, 1); + player.getItemAssistant().addItem(667, 1); player.knightS = 8; - player.getItemAssistant().addItem(667, 1); - player.nextChat = 672; - } else if (player.knightS == 8) { - sendStatement2("You give the blurite ore and two bars to Thurgo. Thurgo starts", "to make the sword. Thurgo hands you a sword."); - player.getItemAssistant().deleteItem2(2351, 1); - player.getItemAssistant().deleteItem2(2351, 1); - player.getItemAssistant().deleteItem2(668, 1); - player.getItemAssistant().addItem(667, 1); player.nextChat = 672; } else { sendNpcChat1("You are not on this part of the quest right now.", player.talkingNpc, "Thurgo"); - player.nextChat = 0;/*DIALOGUE ACTION*/ + player.nextChat = 0; } break; case 672: @@ -3515,6 +3508,380 @@ public class DialogueHandler { QuestRewards.knightsReward(player); break; + //Shield of Arrav Quest line: + //Reldo + case 690: + sendOption3("Do you have anything to trade?", "What do you do?", "I'm in search of a quest."); + player.dialogueAction = 186;/*DIALOGUE ACTION*/ + break; + case 691: + sendNpcChat1("Hmmm. I don't... believe there are any here...", player.talkingNpc, "Reldo"); + player.nextChat = 692; + break; + case 692: + sendNpcChat1("Let me think actually...", player.talkingNpc, "Reldo"); + player.nextChat = 693; + break; + case 693: + sendNpcChat2("Ah yes. I know. If you look in a book called 'The Shield", "of Arrav', you'll find a quest in there.", player.talkingNpc, "Reldo"); + player.nextChat = 694; + break; + case 694: + sendNpcChat2("I'm not sure where the book is mind you... but I'm", "sure it's around here somewhere.", player.talkingNpc, "Reldo"); + player.nextChat = 695; + break; + case 695: + sendPlayerChat1("Thank you."); + player.shieldArrav = 1; + player.nextChat = 0; + break; + //bookcase + case 696: + sendPlayerChat2("Aha! 'The Shield of Arrav'! Exactly what I was looking", "for"); + player.getItemAssistant().addOrDropItem(757, 1); + player.shieldArrav = 2; + player.nextChat = 0; + break; + //reldo + case 697: + sendPlayerChat2("Ok. I've read the book. Do you know where I can find", "the Phoenix Gang?"); + player.nextChat = 698; + break; + case 698: + sendNpcChat2("No, I don't. I think I know someone who might", "however.", player.talkingNpc, "Reldo"); + player.nextChat = 699; + break; + case 699: + sendNpcChat3("If i were you I would talk to Baraek, the fur trader in", "the market place. I've heard he has connections with the", "Phoenix Gang.", player.talkingNpc, "Reldo"); + player.shieldArrav = 3; + player.nextChat = 700; + break; + case 700: + sendPlayerChat1("Thanks, I'll try that!"); + player.nextChat = 0; + break; + //Baraek + case 701: + sendPlayerChat1("Can you tell me where I can find the Phoenix Gang?"); + player.nextChat = 702; + break; + case 702: + sendNpcChat2("Sh sh sh, not so loud! You don't want to get me in", "trouble!", player.talkingNpc, "Baraek"); + player.nextChat = 703; + break; + case 703: + sendPlayerChat1("So DO you know where they are?"); + player.nextChat = 704; + break; + case 704: + sendNpcChat1("I may do.", player.talkingNpc, "Baraek"); + player.nextChat = 705; + break; + case 705: + sendNpcChat2("But I don't want to get into trouble for revealing their", "hideout.", player.talkingNpc, "Baraek"); + player.nextChat = 706; + break; + case 706: + sendNpcChat2("Of course, if I was, say 20 gold coins richer I may", "happen to be more inclined to take that sort of risk...", player.talkingNpc, "Baraek"); + player.nextChat = 707; + break; + case 707: + if (player.getItemAssistant().playerHasItem(995, 20)) { + sendPlayerChat1("Okay. Have 20 gold coins."); + player.nextChat = 708; + } else { + sendPlayerChat1("I'm a little short on gold coins right now.."); + player.nextChat = 0; + } + break; + case 708: + sendNpcChat4("Ok, to get to the gang hideout, enter Varrock through", + "the south gate. Then, if you take the first turn east,", + "somewhere along there is an alleyway to the south. The", + "door at the end of there is the entrance to the Phoenix", + player.talkingNpc, "Baraek"); + player.shieldArrav = 4; + player.nextChat = 709; + break; + case 709: + sendNpcChat3("Gang. They're operating there under the name of", + "VTAM Corporation. Be careful. The Pheonixes ain't", + "the types to be messed about.", + player.talkingNpc, "Baraek"); + player.nextChat = 710; + break; + case 710: + sendPlayerChat1("Thanks!"); + player.nextChat = 0; + break; + //Straven + case 711: + sendPlayerChat1("What's through that door?"); + player.nextChat = 712; + break; + case 712: + sendNpcChat2("Hey! You can't go in there. Only authorised personnel", + "of the VTAM Corporation are allowed beyond this point.", + player.talkingNpc, "Straven"); + if (player.shieldArrav < 4) + player.nextChat = 0; + else if (player.shieldArrav == 4) + player.nextChat = 713; + break; + case 713: + sendPlayerChat1("I know who you are!"); + player.nextChat = 714; + break; + case 714: + sendNpcChat1("Really.", player.talkingNpc, "Straven"); + player.nextChat = 715; + break; + case 715: + sendNpcChat1("Well?", player.talkingNpc, "Straven"); + player.nextChat = 716; + break; + case 716: + sendNpcChat1("Who are we then?", player.talkingNpc, "Straven"); + player.nextChat = 717; + break; + case 717: + sendPlayerChat2("This is the headquarters of the Phoenix Gang, the most", "powerful crime syndicate this city has ever seen!"); + player.nextChat = 718; + break; + case 718: + sendNpcChat2("No, this is a legitimate business run by legitimate", "businessmen.", player.talkingNpc, "Straven"); + player.nextChat = 719; + break; + case 719: + sendNpcChat2("Supposing we were this crime gang however, what would", "you want with us?", player.talkingNpc, "Straven"); + player.nextChat = 720; + break; + case 720: + sendPlayerChat1("I'd like to offer you my services."); + player.nextChat = 721; + break; + case 721: + sendNpcChat1("You mean you'd like to join the Phoenix Gang?", player.talkingNpc, "Straven"); + player.nextChat = 722; + break; + case 722: + sendNpcChat2("Well, obviously I can't speak for them, but the Phoenix", "Gang doesn't let people join just like that.", player.talkingNpc, "Straven"); + player.nextChat = 723; + break; + case 723: + sendNpcChat1("You can't be too careful, you understand.", player.talkingNpc, "Straven"); + player.nextChat = 724; + break; + case 724: + sendNpcChat2("Generally someone has to prove their loyalty before", "they can join.", player.talkingNpc, "Straven"); + player.nextChat = 725; + break; + case 725: + sendPlayerChat1("How would I go about doing that?"); + player.nextChat = 726; + break; + case 726: + sendNpcChat1("Obviously, I would have no idea about that.", player.talkingNpc, "Straven"); + player.nextChat = 727; + break; + case 727: + sendNpcChat4("Although having said that, a rival gang of ours, er,", + "theirs, called the Black Arm Gang is supposedly meeting", + "a contact from Port Sarim today in the Blue Moon", + "Inn.", + player.talkingNpc, "Straven"); + player.nextChat = 728; + break; + case 728: + sendNpcChat4("OBVIOUSLY I know NOTHING about the dealings", + "of the Phoenix Gang, but I bet if SOMEBODY were", + "to kill him and bring back his intelligence report, they", + "would be considered loyal enough to join.", + player.talkingNpc, "Straven"); + player.nextChat = 729; + break; + case 729: + sendPlayerChat1("Ok, I'll get right on it."); + player.shieldArrav = 5; + player.nextChat = 0; + break; + case 730: + sendNpcChat1("How's your little mission going?", player.talkingNpc, "Straven"); + if (player.getItemAssistant().playerHasItem(761, 1)) + player.nextChat = 733; + else + player.nextChat = 731; + break; + case 731: + sendPlayerChat1("I haven't managed to find the report yet..."); + player.nextChat = 732; + break; + case 732: + sendNpcChat3("You need to kill Jonny the Beard, who should be in", + "the Blue Moon Inn ...I would guess.", + "Not being a member of the Phoenix Gang and all.", + player.talkingNpc, "Straven"); + player.nextChat = 0; + break; + case 733: + sendPlayerChat1("I have the intelligence report!"); + player.nextChat = 734; + break; + case 734: + sendNpcChat1("Let's see it then.", player.talkingNpc, "Straven"); + player.nextChat = 735; + break; + case 735: + sendStatement("You hand over the report. The man reads the report."); + player.getItemAssistant().deleteItem(761, 1); + player.nextChat = 736; + break; + case 736: + sendNpcChat1("Yes. Yes, this is very good.", player.talkingNpc, "Straven"); + player.nextChat = 737; + break; + case 737: + sendNpcChat2("Ok! You can join the Phoenix Gang! I am Straven, one", "of the gang leaders.", player.talkingNpc, "Straven"); + player.nextChat = 738; + break; + case 738: + sendPlayerChat1("Nice to meet you."); + player.nextChat = 739; + break; + case 739: + sendNpcChat1("Take this key.", player.talkingNpc, "Straven"); + player.nextChat = 740; + break; + case 740: + sendItemChat1(player, "", "Straven hands you a key", 759, 150); + player.getItemAssistant().addOrDropItem(759, 1); + player.shieldArrav = 6; + player.nextChat = 0; + break; + case 741: + sendNpcChat1("Greetings, fellow gang member.", player.talkingNpc, "Straven"); + player.nextChat = 0; + break; + //Phoenix gang weapons chest + case 742: + sendStatement("You search the chest."); + if (player.getItemAssistant().playerHasItem(763) || player.shieldArrav < 6) + player.nextChat = 743; + else + player.nextChat = 744; + break; + case 743: + sendStatement("It's empty."); + break; + case 744: + sendItemChat1(player, "", "You find half of a shield, which you take.", 763, 150); + player.getItemAssistant().addOrDropItem(763, 1); + player.nextChat = 0; + break; + //Curator Haig Halen + case 745: + sendNpcChat1("Welcome to the museum of Varrock.", player.talkingNpc, "Curator Haig Halen"); + if (player.shieldArrav == 6 && (player.getItemAssistant().playerHasItem(763) || player.getItemAssistant().playerHasItem(765))) + player.nextChat = 746; + else + player.nextChat = 0; + break; + case 746: + sendPlayerChat2("I have half the shield of Arrav here. Can I get a", "reward?"); + player.nextChat = 747; + break; + case 747: + sendNpcChat3("The Shield of Arrav! Goodness, the Museum has been", + "searching for that for years! The late King Roald II", + "offered a reward for it years ago!", + player.talkingNpc, "Curator Haig Halen"); + player.nextChat = 748; + break; + case 748: + sendPlayerChat1("Well, I'm here to claim it."); + player.nextChat = 749; + break; + case 749: + sendNpcChat1("Let me have a look at it first.", player.talkingNpc, "Curator Haig Halen"); + player.nextChat = 750; + break; + case 750: + if (player.getItemAssistant().playerHasItem(763)) + sendItemChat1(player, "", "The curator peers at the shield", 763, 150); + else if (player.getItemAssistant().playerHasItem(765)) + sendItemChat1(player, "", "The curator peers at the shield", 765, 150); + player.nextChat = 751; + break; + case 751: + sendNpcChat1("This is incredible!", player.talkingNpc, "Curator Haig Halen"); + player.nextChat = 752; + break; + case 752: + sendNpcChat1("That shield has been missing for over twenty-fice years!", player.talkingNpc, "Curator Haig Halen"); + player.nextChat = 753; + break; + case 753: + sendNpcChat3("Leave the shield here with me and I'll write you out a", + "certificate saying that you have returned the shield, so", + "that you can claim your reward from the King.", + player.talkingNpc, "Curator Haig Halen"); + player.nextChat = 754; + break; + case 754: + if (player.getItemAssistant().playerHasItem(763)) { + sendItemChat1(player, "", "You hand over the shield half.", 763, 150); + player.getItemAssistant().deleteItem(763, 1); + } else if (player.getItemAssistant().playerHasItem(765)) { + sendItemChat1(player, "", "You hand over the shield half.", 765, 150); + player.getItemAssistant().deleteItem(765, 1); + } + player.nextChat = 755; + break; + case 755: + sendItemChat1(player, "", "The curator writes out a certificate.", 769, 150); + player.getItemAssistant().addOrDropItem(769, 1); + player.shieldArrav = 7; + player.nextChat = 0; + break; + //King Roald + case 756: + sendPlayerChat1("Greetings, your majesty."); + player.nextChat = 757; + break; + case 757: + sendPlayerChat2("Your majesty, I have come to claim the reward for the", "return of the Shield of Arrav."); + player.nextChat = 758; + break; + case 758: + sendItemChat1(player, "", "You show the certificate to the king.", 769, 150); + player.nextChat = 759; + break; + case 759: + sendNpcChat2("My goodness! This claim is for the reward offered by", + "my father many years ago!", + player.talkingNpc, "King Roald"); + player.nextChat = 760; + break; + case 760: + sendNpcChat2("I never thought I would live to see the day when", + "someone came forward to claim this reward", + player.talkingNpc, "King Roald"); + player.nextChat = 761; + break; + case 761: + sendItemChat1(player, "", "You hand over the certificate, The king gives you 1,200gp.", 995, 150); + player.nextChat = 762; + break; + case 762: + player.getItemAssistant().deleteItem(769, 1); + QuestRewards.shieldArravReward(player); + player.nextChat = 0; + break; + + + + + case 908: sendPlayerChat1("Hello there " + NpcHandler.getNpcListName(player.talkingNpc) + "!"); player.nextChat = 909; diff --git a/2006Redone Server/src/redone/game/npcs/NpcActions.java b/2006Redone Server/src/redone/game/npcs/NpcActions.java index afc7835c..d3753cfc 100644 --- a/2006Redone Server/src/redone/game/npcs/NpcActions.java +++ b/2006Redone Server/src/redone/game/npcs/NpcActions.java @@ -61,6 +61,15 @@ public class NpcActions { if (c.knightS == 1) { c.getDialogueHandler().sendDialogues(626, 647); } + else if (c.shieldArrav == 0) { + c.getDialogueHandler().sendDialogues(690, 647); + } + else if (c.shieldArrav == 1) { + c.getDialogueHandler().sendDialogues(694, 647); + } + else if (c.shieldArrav == 2) { + c.getDialogueHandler().sendDialogues(697, 647); + } break; case 604://thurgo if (c.knightS == 2) { @@ -99,10 +108,37 @@ public class NpcActions { } break; + case 547: //Baraek + if (c.shieldArrav == 3) { + c.getDialogueHandler().sendDialogues(701, npcType); + } + break; + case 599: c.getDialogueHandler().sendDialogues(1369, npcType); break; + case 644: //Straven + if (c.shieldArrav <= 4) { + c.getDialogueHandler().sendDialogues(711, npcType); + } + else if (c.shieldArrav == 5) { + c.getDialogueHandler().sendDialogues(730, npcType); + } + else if (c.shieldArrav > 5) { + c.getDialogueHandler().sendDialogues(741, npcType); + } + break; + + case 646: //Curator Haig Halen + c.getDialogueHandler().sendDialogues(745, npcType); + break; + + case 648: //King Roald + if (c.shieldArrav == 7 && c.getItemAssistant().playerHasItem(769)) + c.getDialogueHandler().sendDialogues(756, npcType); + break; + case 663: c.getDialogueHandler().sendDialogues(3189, npcType); break; diff --git a/2006Redone Server/src/redone/game/npcs/NpcHandler.java b/2006Redone Server/src/redone/game/npcs/NpcHandler.java index fe3933c5..b74f00ff 100644 --- a/2006Redone Server/src/redone/game/npcs/NpcHandler.java +++ b/2006Redone Server/src/redone/game/npcs/NpcHandler.java @@ -927,6 +927,11 @@ public class NpcHandler { Server.itemHandler.createGroundItem(c, 300, npcs[i].absX, npcs[i].absY, 1, c.playerId); } break; + case 645: + if (c.shieldArrav == 5) { + Server.itemHandler.createGroundItem(c, 761, npcs[i].absX, npcs[i].absY, 1, c.playerId); + } + break; } } } diff --git a/2006Redone Server/src/redone/game/objects/ObjectsActions.java b/2006Redone Server/src/redone/game/objects/ObjectsActions.java index 5cbd1ddb..cacbd23c 100644 --- a/2006Redone Server/src/redone/game/objects/ObjectsActions.java +++ b/2006Redone Server/src/redone/game/objects/ObjectsActions.java @@ -2108,16 +2108,22 @@ public class ObjectsActions { player.getPlayerAssistant().openUpBank(); break; - case 2604: - if (player.objectX == 3235 && player.objectY == 9761) { - return; - } else { - player.getPlayerAssistant().openUpBank(); + case 2403:// should be 2418 but not working + if (player.shieldArrav >= 6 && player.getItemAssistant().playerHasItem(759)) { + Server.objectHandler.createAnObject(player, 2604, objectX, objectY, 0); + Region.addObject(2604, objectX, objectY, 0, 0, 0, false); + } + else { + player.getActionSender().sendMessage("It's locked, maybe I can get the key from somewhere."); } break; - case 2403:// should be 2418 but not working - Server.objectHandler.createAnObject(player, 2604, objectX, objectY, -1); + case 2604: + if (player.objectX == 3235 && player.objectY == 9761 && player.shieldArrav >= 6) { + player.getDialogueHandler().sendDialogues(742, -1); + } else { + player.getPlayerAssistant().openUpBank(); + } break; case 3193: @@ -2608,6 +2614,14 @@ public class ObjectsActions { player.getActionSender().sendMessage("You have already finished this quest."); } break; + + case 2402: + if (player.shieldArrav == 1) + player.getDialogueHandler().sendDialogues(696, -1); + else + player.getActionSender().sendMessage("The bookcase is empty."); + break; + case 2550: ThieveOther.pickLock(player, 1, 3.5, 2674, 3306, 1, false); break; diff --git a/2006Redone Server/src/redone/game/players/Client.java b/2006Redone Server/src/redone/game/players/Client.java index 6feb622e..ae58ffaa 100644 --- a/2006Redone Server/src/redone/game/players/Client.java +++ b/2006Redone Server/src/redone/game/players/Client.java @@ -930,7 +930,7 @@ public class Client extends Player { @Override public void process() { - if (playerEnergy < 100&& System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) { + if (playerEnergy < 100 && System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) { playerEnergy += 1; lastIncrease = System.currentTimeMillis(); } diff --git a/2006Redone Server/src/redone/game/players/Player.java b/2006Redone Server/src/redone/game/players/Player.java index eac6765b..0b4dd8fe 100644 --- a/2006Redone Server/src/redone/game/players/Player.java +++ b/2006Redone Server/src/redone/game/players/Player.java @@ -85,7 +85,7 @@ public abstract class Player { randomEventsEnabled = false, debugMode = false, clickToTele = false; public int votePoints, thankedForDonation, saveDelay, playerKilled, gertCat, restGhost, - romeojuliet, runeMist, vampSlayer, cookAss, doricQuest, blackKnight, + romeojuliet, runeMist, vampSlayer, cookAss, doricQuest, blackKnight, shieldArrav, dragonSlayerQuestStage, sheepShear, impsC, randomActions, pkPoints, totalPlayerDamageDealt, killedBy, lastChatId = 1, privateChat, friendSlot = 0, dialogueId, randomCoffin, newLocation, specEffect, diff --git a/2006Redone Server/src/redone/game/players/PlayerSave.java b/2006Redone Server/src/redone/game/players/PlayerSave.java index 8dd778af..28ec62e4 100644 --- a/2006Redone Server/src/redone/game/players/PlayerSave.java +++ b/2006Redone Server/src/redone/game/players/PlayerSave.java @@ -260,6 +260,9 @@ public class PlayerSave { case "blackKnight": player.blackKnight = Integer.parseInt(token2); break; + case "shieldArrav": + player.shieldArrav = Integer.parseInt(token2); + break; case "pirateTreasure": player.pirateTreasure = Integer.parseInt(token2); break; @@ -832,6 +835,10 @@ public class PlayerSave { characterfile.write(Integer.toString(player.blackKnight), 0, Integer .toString(player.blackKnight).length()); characterfile.newLine(); + characterfile.write("shieldArrav = ", 0, 14); + characterfile.write(Integer.toString(player.shieldArrav), 0, Integer + .toString(player.shieldArrav).length()); + characterfile.newLine(); characterfile.write("cookAss = ", 0, 10); characterfile.write(Integer.toString(player.cookAss), 0, Integer .toString(player.cookAss).length()); diff --git a/2006Redone Server/src/redone/net/packets/impl/ClickingButtons.java b/2006Redone Server/src/redone/net/packets/impl/ClickingButtons.java index 15fbd606..348112a5 100644 --- a/2006Redone Server/src/redone/net/packets/impl/ClickingButtons.java +++ b/2006Redone Server/src/redone/net/packets/impl/ClickingButtons.java @@ -1096,6 +1096,9 @@ public class ClickingButtons implements PacketType { case 185: player.getDialogueHandler().sendDialogues(629, player.npcType); return; + case 186: // Shield of Arrav + player.getDialogueHandler().sendDialogues(629, player.npcType); + return; } player.dialogueAction = 0; player.getPlayerAssistant().removeAllWindows(); @@ -1171,6 +1174,9 @@ public class ClickingButtons implements PacketType { case 185: player.getDialogueHandler().sendDialogues(628, player.npcType); return; + case 186: // Shield of Arrav + player.getDialogueHandler().sendDialogues(628, player.npcType); + return; } player.dialogueAction = 0; player.getPlayerAssistant().removeAllWindows(); @@ -1249,6 +1255,9 @@ public class ClickingButtons implements PacketType { case 185: player.getDialogueHandler().sendDialogues(630, player.npcType); return; + case 186: // Shield of Arrav + player.getDialogueHandler().sendDialogues(691, player.npcType); + return; } player.dialogueAction = 0; player.getPlayerAssistant().removeAllWindows();