From 137d5cabd89cd8a3f713908900cb69e3def8a93e Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 30 Apr 2019 16:01:39 +0000 Subject: [PATCH] Third part for Best Choice series quests. Contributed by NightBR. --- .../data/scripts/quests/MissingQuests.txt | 2 - .../Q10577_TemperARustingBlade/30677-01.htm | 4 + .../Q10577_TemperARustingBlade/30677-02.htm | 5 + .../Q10577_TemperARustingBlade/30677-03.htm | 6 + .../Q10577_TemperARustingBlade/30677-04.html | 5 + .../Q10577_TemperARustingBlade/30677-05.html | 6 + .../Q10577_TemperARustingBlade/30677-06.html | 3 + .../Q10577_TemperARustingBlade/30677-07.html | 5 + .../Q10577_TemperARustingBlade/30677-08.html | 4 + .../Q10577_TemperARustingBlade/30677-09.html | 3 + .../Q10577_TemperARustingBlade/30677-99.html | 4 + .../Q10577_TemperARustingBlade.java | 172 ++++++++++++++++ .../Q10577_TemperARustingBlade/noLevel.html | 4 + .../Q10578_TheSoulOfASword/31316-01.htm | 5 + .../Q10578_TheSoulOfASword/31316-02.htm | 5 + .../Q10578_TheSoulOfASword/31316-03.htm | 5 + .../Q10578_TheSoulOfASword/31316-04.html | 5 + .../Q10578_TheSoulOfASword/31316-05.html | 6 + .../Q10578_TheSoulOfASword/31316-06.html | 5 + .../Q10578_TheSoulOfASword/31316-07.html | 5 + .../Q10578_TheSoulOfASword/31316-08.html | 4 + .../Q10578_TheSoulOfASword/31316-09.html | 5 + .../Q10578_TheSoulOfASword/31316-10.html | 5 + .../Q10578_TheSoulOfASword/31316-11.html | 5 + .../Q10578_TheSoulOfASword/31316-12.html | 3 + .../Q10578_TheSoulOfASword/31316-99.html | 4 + .../Q10578_TheSoulOfASword.java | 183 ++++++++++++++++++ .../Q10578_TheSoulOfASword/noLevel.html | 4 + .../scripts/quests/QuestMasterHandler.java | 6 +- .../not_done/Q10577_TemperARustingBlade.java | 36 ---- .../not_done/Q10578_TheSoulOfASword.java | 36 ---- .../data/stats/augmentation/Variations.xml | 5 + .../game/data/stats/items/36700-36799.xml | 2 +- .../game/data/stats/items/46600-46699.xml | 18 +- .../gameserver/model/events/EventType.java | 2 + .../impl/item/OnItemSoulCrystalAdd.java | 53 +++++ .../model/items/instance/ItemInstance.java | 4 + .../data/scripts/quests/MissingQuests.txt | 2 - .../Q10577_TemperARustingBlade/30677-01.htm | 4 + .../Q10577_TemperARustingBlade/30677-02.htm | 5 + .../Q10577_TemperARustingBlade/30677-03.htm | 6 + .../Q10577_TemperARustingBlade/30677-04.html | 5 + .../Q10577_TemperARustingBlade/30677-05.html | 6 + .../Q10577_TemperARustingBlade/30677-06.html | 3 + .../Q10577_TemperARustingBlade/30677-07.html | 5 + .../Q10577_TemperARustingBlade/30677-08.html | 4 + .../Q10577_TemperARustingBlade/30677-09.html | 3 + .../Q10577_TemperARustingBlade/30677-99.html | 4 + .../Q10577_TemperARustingBlade.java | 172 ++++++++++++++++ .../Q10577_TemperARustingBlade/noLevel.html | 4 + .../Q10578_TheSoulOfASword/31316-01.htm | 5 + .../Q10578_TheSoulOfASword/31316-02.htm | 5 + .../Q10578_TheSoulOfASword/31316-03.htm | 5 + .../Q10578_TheSoulOfASword/31316-04.html | 5 + .../Q10578_TheSoulOfASword/31316-05.html | 6 + .../Q10578_TheSoulOfASword/31316-06.html | 5 + .../Q10578_TheSoulOfASword/31316-07.html | 5 + .../Q10578_TheSoulOfASword/31316-08.html | 4 + .../Q10578_TheSoulOfASword/31316-09.html | 5 + .../Q10578_TheSoulOfASword/31316-10.html | 5 + .../Q10578_TheSoulOfASword/31316-11.html | 5 + .../Q10578_TheSoulOfASword/31316-12.html | 3 + .../Q10578_TheSoulOfASword/31316-99.html | 4 + .../Q10578_TheSoulOfASword.java | 183 ++++++++++++++++++ .../Q10578_TheSoulOfASword/noLevel.html | 4 + .../scripts/quests/QuestMasterHandler.java | 6 +- .../not_done/Q10577_TemperARustingBlade.java | 36 ---- .../not_done/Q10578_TheSoulOfASword.java | 36 ---- .../data/stats/augmentation/Variations.xml | 5 + .../game/data/stats/items/36700-36799.xml | 2 +- .../game/data/stats/items/46600-46699.xml | 18 +- .../gameserver/model/events/EventType.java | 2 + .../impl/item/OnItemSoulCrystalAdd.java | 53 +++++ .../model/items/instance/ItemInstance.java | 4 + .../data/scripts/quests/MissingQuests.txt | 2 - .../Q10577_TemperARustingBlade/30677-01.htm | 4 + .../Q10577_TemperARustingBlade/30677-02.htm | 5 + .../Q10577_TemperARustingBlade/30677-03.htm | 6 + .../Q10577_TemperARustingBlade/30677-04.html | 5 + .../Q10577_TemperARustingBlade/30677-05.html | 6 + .../Q10577_TemperARustingBlade/30677-06.html | 3 + .../Q10577_TemperARustingBlade/30677-07.html | 5 + .../Q10577_TemperARustingBlade/30677-08.html | 4 + .../Q10577_TemperARustingBlade/30677-09.html | 3 + .../Q10577_TemperARustingBlade/30677-99.html | 4 + .../Q10577_TemperARustingBlade.java | 172 ++++++++++++++++ .../Q10577_TemperARustingBlade/noLevel.html | 4 + .../Q10578_TheSoulOfASword/31316-01.htm | 5 + .../Q10578_TheSoulOfASword/31316-02.htm | 5 + .../Q10578_TheSoulOfASword/31316-03.htm | 5 + .../Q10578_TheSoulOfASword/31316-04.html | 5 + .../Q10578_TheSoulOfASword/31316-05.html | 6 + .../Q10578_TheSoulOfASword/31316-06.html | 5 + .../Q10578_TheSoulOfASword/31316-07.html | 5 + .../Q10578_TheSoulOfASword/31316-08.html | 4 + .../Q10578_TheSoulOfASword/31316-09.html | 5 + .../Q10578_TheSoulOfASword/31316-10.html | 5 + .../Q10578_TheSoulOfASword/31316-11.html | 5 + .../Q10578_TheSoulOfASword/31316-12.html | 3 + .../Q10578_TheSoulOfASword/31316-99.html | 4 + .../Q10578_TheSoulOfASword.java | 183 ++++++++++++++++++ .../Q10578_TheSoulOfASword/noLevel.html | 4 + .../scripts/quests/QuestMasterHandler.java | 6 +- .../not_done/Q10577_TemperARustingBlade.java | 36 ---- .../not_done/Q10578_TheSoulOfASword.java | 36 ---- .../data/stats/augmentation/Variations.xml | 5 + .../game/data/stats/items/36700-36799.xml | 2 +- .../game/data/stats/items/46600-46699.xml | 18 +- .../gameserver/model/events/EventType.java | 2 + .../impl/item/OnItemSoulCrystalAdd.java | 53 +++++ .../model/items/instance/ItemInstance.java | 4 + 111 files changed, 1641 insertions(+), 261 deletions(-) create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html delete mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java delete mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java create mode 100644 L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html delete mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java delete mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java create mode 100644 L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html delete mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java delete mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java create mode 100644 L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt index a2e83026ad..bd4f0e1454 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt @@ -185,8 +185,6 @@ 10572 To Expel the Embryo's Forces 10574 Special Mission: Fortuna 10576 Glittering Weapons -10577 Temper a Rusting Blade -10578 The Soul of a Sword 10580 Special Mission: Defeat Spezion 10594 Fergason's Scheme 10595 The Dimensional Warp, Part 8 diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm new file mode 100644 index 0000000000..86894edd1d --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Do you know what augmenting is? Your weapon sure doesen't look it.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm new file mode 100644 index 0000000000..ef1041aca6 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+See? I was right! Only when your weapons are reliable, can you be confident about your skills.
+Now, pay attention. I will teach you to maximize the hidden potential.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm new file mode 100644 index 0000000000..7b0f62b55d --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm @@ -0,0 +1,6 @@ +Head Blacksmith Flutter:
+First, you must understand augmenting. It provides items with additional options, separately from enchanting, soul crystal enhancement or attributes that you will learn later.
+For augmenting, you have to get all the required material and ask any village's blacksmith to make an item. Keep in mind that you can have accessories and hair accessories augmented but not armor.
+So far so good, huh? + + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html new file mode 100644 index 0000000000..2d5821a82e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+I told you about the items needed, right? Well, of course you need items for augmenting too. First, you need equipment you want to augment. It can be a weapon, accessory, or a hair accessory. You also need Spirit Stones. And you need Gemstones to pay the fee for augmenting, and the amount depends on the weapon grade.
+A good way to get the items I mentioned is by using the private store. There are many merchants who buy and sell items in the village, and you can get the items you want without having to pay fees and stuff. There's some legwork... but it can be fun too!
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html new file mode 100644 index 0000000000..5c100416ad --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html @@ -0,0 +1,6 @@ +Head Blacksmith Flutter:
+Now, assuming tha you have all the necessary items, let's talk about augmentation. There are only two things you need to know. First, augmentation options are just random. Sometimes, you need to release and repeat the augmentation to gain your desired option.
+Second, the augmented items cannot be exchanged or traded. In order to exchange the augmented item, you'll have to release the augmentation first.
+That should be everithig I need to explain. Let's get practicing now! + + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html new file mode 100644 index 0000000000..421c68bca5 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html @@ -0,0 +1,3 @@ +Head Blacksmith Flutter:
+Since this is your first time, I'll provide the materials. Here are an Augmentation Practice Weapon, an Augmentation Practice Spirit Stone(46), and an Augmentation Practice Gemstone(R-grade). Try augmenting as I taught you. If you succeed, you will get an augmented Augmentation Practice Weapon.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html new file mode 100644 index 0000000000..55e2989f0b --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+Congratulations. Feel free to toss this practice weapon, if you don't like the result. That's what practice is for. In the real world, if you don't like the final version, you can remove augmentation with some Adena. Keep that in mind.
+Anyway, you did a good job following my instructions.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html new file mode 100644 index 0000000000..47e7d7230a --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Oh yeah? Hahaha. Anyway, I'll give you the certificate as a Reward. If you don't practice what you've learned, you'll forget it. So try augmentin whenever you have time.
+I hope you will put your new augmenting skills to good use.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html new file mode 100644 index 0000000000..cffbef72aa --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html @@ -0,0 +1,3 @@ +Head Blacksmith Flutter:
+Was it hard? Try augmenting with an Augmentation Practice Weapon, an Augmentation Practice Spirit Stone(46), and an Augmentation Practice Gemstone (R-grade). Try augmenting as I taught you. If you succeed, you will get an augmented Augmentation Practice Weapon.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html new file mode 100644 index 0000000000..ba19dae114 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Hey, let nature take its course. It's not good for us to go against it.
+(Only characters who have the quest "Best Choice" in progress, can play this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java new file mode 100644 index 0000000000..4448d3dccc --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java @@ -0,0 +1,172 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q10577_TemperARustingBlade; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.Containers; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAugment; +import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId; + +import quests.Q10566_BestChoice.Q10566_BestChoice; + +/** + * Temper a Rusting Blade (10577) + * @URL https://l2wiki.com/Temper_a_Rusting_Blade + * @author NightBR + * @html by Werum + */ +public final class Q10577_TemperARustingBlade extends Quest +{ + // NPCs + private static final int FLUTTER = 30677; + // Item + private static final int AUGMENTATION_PRACTICE_STORMBRINGER = 36717; + private static final int AUGMENTATION_PRACTICE_SPIRIT_STONE = 36718; + private static final int AUGMENTATION_PRACTICE_GEMSTONE = 36719; + // Rewards + private static final long XP = 597699960; + private static final int SP = 597690; + private static final int CERTIFICATE_FROM_FLUTTER = 48175; + // Misc + private static final int MIN_LEVEL = 95; + + public Q10577_TemperARustingBlade() + { + super(10577); + addStartNpc(FLUTTER); + addTalkId(FLUTTER); + addCondMinLevel(MIN_LEVEL, "noLevel.html"); + registerQuestItems(AUGMENTATION_PRACTICE_STORMBRINGER, AUGMENTATION_PRACTICE_SPIRIT_STONE, AUGMENTATION_PRACTICE_GEMSTONE); + addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "30677-99.html"); + Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_AUGMENT, (OnPlayerAugment event) -> OnPlayerAugment(event), this)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + String htmltext = null; + switch (event) + { + case "30677-02.htm": + case "30677-05.html": + case "30677-07.html": + { + htmltext = event; + break; + } + case "30677-03.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "30677-04.html": + { + // show Service/Help/Private Store page + player.sendPacket(new ExTutorialShowId(57)); + htmltext = event; + break; + } + case "30677-06.html": + { + // show Service/Help/Augmentation page + player.sendPacket(new ExTutorialShowId(39)); + giveItems(player, AUGMENTATION_PRACTICE_STORMBRINGER, 1); + giveItems(player, AUGMENTATION_PRACTICE_SPIRIT_STONE, 1); + giveItems(player, AUGMENTATION_PRACTICE_GEMSTONE, 20); + qs.setCond(2, true); + htmltext = event; + break; + } + case "30677-08.html": + { + addExpAndSp(player, XP, SP); + giveItems(player, CERTIFICATE_FROM_FLUTTER, 1); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "30677-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30677-03.html"; + } + else if (qs.isCond(2)) + { + htmltext = "30677-09.html"; + } + else + { + htmltext = "30677-07.html"; + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + public void OnPlayerAugment(OnPlayerAugment event) + { + final PlayerInstance player = event.getPlayer(); + if ((player == null) || (event.getItem().getId() != AUGMENTATION_PRACTICE_STORMBRINGER)) + { + return; + } + + final QuestState qs = getQuestState(player, false); + // Check if weapon has been augmented to complete the quest + if ((qs != null) && qs.isCond(2) && (player.getInventory().getItemByItemId(AUGMENTATION_PRACTICE_STORMBRINGER).isAugmented())) + { + qs.setCond(3, true); + } + } +} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html new file mode 100644 index 0000000000..4c003052ac --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.
+(Only characters with Lv. 95 or above may undertake this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm new file mode 100644 index 0000000000..5bf9f7ab87 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Hello. Are you here to learn about Soul Crystals?
+Well, you've come to the right place. And you are also ready to learn about them. Should we get started?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm new file mode 100644 index 0000000000..6f7168ceb5 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Let me offer a proposal. I'm confident that this will be very useful to you. I'll give you the items needed for experiencing Soul Crystals and I'll also teach you how. You just need to do as I tell you and try Soul Crystal. If you succeed in this, I'll give you a little reward.
+So, what do you think? Isn't it a nice opportunity?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm new file mode 100644 index 0000000000..40eb1b0508 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Good. Now, I'll give you information on Soul Crystals. Originally, Soul Crystals give a special ability to weapon by using the spirit of monster. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.
+But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html new file mode 100644 index 0000000000..05fdfd32b0 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Fortunately, there was a solution. Magisters, Maestros, and even scholars have helped find something that can replace the old Soul Crystals. The new Soul Crystals can be upgraded by combining them.
+Surprisingly, the Soul Crystals can be just simply upgraded via combination. And one more thing. The method of granting Soul Crystal effects through Blacksmiths is slightly different now. This is what I want to talk to you about.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html new file mode 100644 index 0000000000..46b02a843c --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html @@ -0,0 +1,6 @@ +Blacksmith Vincenz:
+First off, you can't use old Soul Crystals anymore. To bestow the new special abilities, you need the new Soul Crystals. You can get them by defeating bosses or raid monsters.
+When you get the Soul Crystals, then you can combine them to make an upgraded Soul Crystal. For combination, you need two Soul Crystals of the same type and the same stage. However, there is a chance of failure. If the combination fails, one of the two Soul Crystals will disappear.
+In any case, by doing this, you can get your desired Soul Crystal class and then give the ability to a weapon.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html new file mode 100644 index 0000000000..639a3676a8 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Well, it's better to just try it for yourself. Here's a Practice StormBringer and a Practice Soul Crystal-Stage 1. You'll need to have a Gemstone that is appropriate for the level of the Soul Crystal. Now, I'll give you a Practice Soul Crystal Gemstone, but next time, you'll have to obtain the Gemstone yourself.
+You can purchase Gemstones from the Traders at the Store in the Village. There are various Stores in the village and each trader sells different items. It'll be good to know about their items.
+If you want to try a Soul Crystal ability with other weapons, you can always try it out.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html new file mode 100644 index 0000000000..7bb3927845 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Oh, you succeeded? Got it now?
+It's easier than it sounds, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html new file mode 100644 index 0000000000..0e90736eac --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Good. Remenber what I've taught you next time you need to use Soul Crystals.
+Oh, right. You can bestow up to 3 special abilities to new Soul Crystals! Don't forget all the effort we've put into this!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html new file mode 100644 index 0000000000..476787a17c --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Now, I'll tell you about Soul Crystals. Originally, Soul Crystals give a special ability to weapon by using the spirit of monster. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.
+But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html new file mode 100644 index 0000000000..48e038ab54 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Hm? It looks like you didn't succeed yet. Do you need anything?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html new file mode 100644 index 0000000000..77ba81a9a5 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Alright. you can use a Soul Crystal to bestow a special ability onto weapons. There have been some changes to the Soul Crystals, and now you can upgrade them by combining them. That's why we have new Soul Crystals now.
+The Soul Crystals from before cannot be used anymore. You can get the new Soul Crystals by defeating boss monsters, so remember that.
+If you need more information, check the instructions.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html new file mode 100644 index 0000000000..a3654a979b --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html @@ -0,0 +1,3 @@ +Blacksmith Vincenz:
+I've already given you all the necessary items, I can't give you anymore.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html new file mode 100644 index 0000000000..2dbc6ddcba --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Hey, let nature take its course. It's not good for us to go against it.
+(Only characters who have the quest "Best Choice" in progress, can play this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java new file mode 100644 index 0000000000..4ce4133892 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java @@ -0,0 +1,183 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q10578_TheSoulOfASword; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.Containers; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; +import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId; + +import quests.Q10566_BestChoice.Q10566_BestChoice; + +/** + * The Soul of a Sword (10578) + * @URL https://l2wiki.com/The_Soul_of_a_Sword + * @author NightBR + * @html by Werum + */ +public final class Q10578_TheSoulOfASword extends Quest +{ + // NPCs + private static final int VINCENZ = 31316; + // Items + private static final int PRACTICE_STORMBRINGER = 46629; + private static final int PRACTICE_SOUL_CRYSTAL_STAGE1 = 46526; + private static final int SOUL_CRYSTAL_PRACTICE_GEMSTONE = 36722; + // Rewards + private static final long XP = 597699960; + private static final int SP = 597690; + private static final int CERTIFICATE_FROM_VINCENZ = 48176; + // Misc + private static final int MIN_LEVEL = 95; + + public Q10578_TheSoulOfASword() + { + super(10578); + addStartNpc(VINCENZ); + addTalkId(VINCENZ); + addCondMinLevel(MIN_LEVEL, "noLevel.html"); + registerQuestItems(PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE); + addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "31316-99.html"); + Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_ITEM_SOUL_CRYSTAL_ADD, (OnItemSoulCrystalAdd event) -> OnItemSoulCrystalAdd(event), this)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + String htmltext = null; + switch (event) + { + case "31316-02.htm": + case "31316-04.html": + case "31316-07.html": + case "31316-11.html": + { + htmltext = event; + break; + } + case "31316-03.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31316-05.html": + { + // show Service/Help/Soul Crystal Enhancement page + player.sendPacket(new ExTutorialShowId(40)); + htmltext = event; + break; + } + case "31316-06.html": + { + // show Service/Help/Buy Item page + player.sendPacket(new ExTutorialShowId(36)); + // TODO: check if player already have quest items + if (hasQuestItems(player, PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE)) + { + htmltext = "31316-12.html"; + } + else + { + // To make sure player does not have them already + removeRegisteredQuestItems(player); + giveItems(player, PRACTICE_STORMBRINGER, 1); + giveItems(player, PRACTICE_SOUL_CRYSTAL_STAGE1, 1); + giveItems(player, SOUL_CRYSTAL_PRACTICE_GEMSTONE, 10); + qs.setCond(2, true); + htmltext = event; + } + break; + } + case "31316-08.html": + { + addExpAndSp(player, XP, SP); + giveItems(player, CERTIFICATE_FROM_VINCENZ, 1); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31316-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31316-09.html"; + } + else if (qs.isCond(2)) + { + htmltext = "31316-10.html"; + } + else + { + htmltext = "31316-07.html"; + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + public void OnItemSoulCrystalAdd(OnItemSoulCrystalAdd event) + { + final PlayerInstance player = event.getPlayer(); + if ((player == null) || (event.getItem().getId() != PRACTICE_STORMBRINGER)) + { + return; + } + + final QuestState qs = getQuestState(player, false); + // Check if weapon has been augmented to complete the quest + if ((qs != null) && qs.isCond(2) && (!player.getInventory().getItemByItemId(PRACTICE_STORMBRINGER).getSpecialAbilities().isEmpty())) + { + qs.setCond(3, true); + } + } +} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html new file mode 100644 index 0000000000..d46b70479c --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.
+(Only characters with Lv. 95 or above may undertake this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java index e63e2a63d6..3a3e8fbb0c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -356,6 +356,8 @@ import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine; import quests.Q10562_TakeUpArms.Q10562_TakeUpArms; import quests.Q10566_BestChoice.Q10566_BestChoice; import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing; +import quests.Q10577_TemperARustingBlade.Q10577_TemperARustingBlade; +import quests.Q10578_TheSoulOfASword.Q10578_TheSoulOfASword; import quests.Q10579_ContainingTheAttributePower.Q10579_ContainingTheAttributePower; import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension; import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction; @@ -913,8 +915,8 @@ public class QuestMasterHandler Q10574_SpecialMissionFortuna.class, // TODO: Not done. Q10575_LetsGoFishing.class, Q10576_GlitteringWeapons.class, // TODO: Not done. - Q10577_TemperARustingBlade.class, // TODO: Not done. - Q10578_TheSoulOfASword.class, // TODO: Not done. + Q10577_TemperARustingBlade.class, + Q10578_TheSoulOfASword.class, Q10579_ContainingTheAttributePower.class, Q10580_SpecialMissionDefeatSpezion.class, // TODO: Not done. Q10594_FergasonsScheme.class, // TODO: Not done. diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java deleted file mode 100644 index fece4e3539..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package quests.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10577_TemperARustingBlade extends Quest -{ - private static final int START_NPC = 30677; - - public Q10577_TemperARustingBlade() - { - super(10577); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java deleted file mode 100644 index 2c5c2be1d0..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package quests.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10578_TheSoulOfASword extends Quest -{ - private static final int START_NPC = 31316; - - public Q10578_TheSoulOfASword() - { - super(10578); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/augmentation/Variations.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/augmentation/Variations.xml index 96dcbe0afe..e6c8b9d602 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/augmentation/Variations.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/augmentation/Variations.xml @@ -8073,6 +8073,7 @@ + @@ -8660,6 +8661,7 @@ + @@ -8953,6 +8955,7 @@ + @@ -10417,6 +10420,7 @@ + @@ -14329,6 +14333,7 @@ + diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/36700-36799.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/36700-36799.xml index 9c59297251..14bb2d5bda 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/36700-36799.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/36700-36799.xml @@ -291,7 +291,7 @@ - + diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/46600-46699.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/46600-46699.xml index 5785adb775..13e88ac237 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/46600-46699.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/items/46600-46699.xml @@ -334,18 +334,16 @@ - + - - - - - - - - - + + + + + + + 107.0 68.0 diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/EventType.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/EventType.java index b87a8f7bfb..cc88e4a987 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/EventType.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/EventType.java @@ -123,6 +123,7 @@ import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceStatusChang import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent; import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk; import org.l2jmobius.gameserver.model.events.impl.olympiad.OnOlympiadMatchResult; import org.l2jmobius.gameserver.model.events.impl.server.OnPacketReceived; @@ -183,6 +184,7 @@ public enum EventType ON_ITEM_CREATE(OnItemCreate.class, void.class), ON_ITEM_TALK(OnItemTalk.class, void.class), ON_ITEM_ATTRIBUTE_ADD(OnItemAttributeAdd.class, void.class), + ON_ITEM_SOUL_CRYSTAL_ADD(OnItemSoulCrystalAdd.class, void.class), // NPC events ON_NPC_CAN_BE_SEEN(OnNpcCanBeSeen.class, void.class, TerminateReturn.class), diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java new file mode 100644 index 0000000000..6061ec1171 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java @@ -0,0 +1,53 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.model.events.impl.item; + +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.IBaseEvent; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; + +/** + * @author NightBR + */ +public class OnItemSoulCrystalAdd implements IBaseEvent +{ + private final PlayerInstance _player; + private final ItemInstance _item; + + public OnItemSoulCrystalAdd(PlayerInstance player, ItemInstance item) + { + _player = player; + _item = item; + } + + public PlayerInstance getPlayer() + { + return _player; + } + + public ItemInstance getItem() + { + return _item; + } + + @Override + public EventType getType() + { + return EventType.ON_ITEM_SOUL_CRYSTAL_ADD; + } +} diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index a5e2ab5ade..58c4d4b894 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -69,6 +69,7 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDr import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemPickup; import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk; import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.items.Armor; @@ -2207,6 +2208,9 @@ public final class ItemInstance extends WorldObject { updateSpecialAbilities(); } + + // Notify to Scripts + EventDispatcher.getInstance().notifyEventAsync(new OnItemSoulCrystalAdd(getActingPlayer(), this)); } public void removeSpecialAbility(int position, int type) diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt index 59fd1ec7df..ca5f482212 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt @@ -197,8 +197,6 @@ 10572 To Expel the Embryo's Forces 10574 Special Mission: Fortuna 10576 Glittering Weapons -10577 Temper a Rusting Blade -10578 The Soul of a Sword 10580 Special Mission: Defeat Spezion 10594 Fergason's Scheme 10595 The Dimensional Warp, Part 8 diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm new file mode 100644 index 0000000000..86894edd1d --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Do you know what augmenting is? Your weapon sure doesen't look it.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm new file mode 100644 index 0000000000..ef1041aca6 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+See? I was right! Only when your weapons are reliable, can you be confident about your skills.
+Now, pay attention. I will teach you to maximize the hidden potential.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm new file mode 100644 index 0000000000..7b0f62b55d --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm @@ -0,0 +1,6 @@ +Head Blacksmith Flutter:
+First, you must understand augmenting. It provides items with additional options, separately from enchanting, soul crystal enhancement or attributes that you will learn later.
+For augmenting, you have to get all the required material and ask any village's blacksmith to make an item. Keep in mind that you can have accessories and hair accessories augmented but not armor.
+So far so good, huh? + + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html new file mode 100644 index 0000000000..2d5821a82e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+I told you about the items needed, right? Well, of course you need items for augmenting too. First, you need equipment you want to augment. It can be a weapon, accessory, or a hair accessory. You also need Spirit Stones. And you need Gemstones to pay the fee for augmenting, and the amount depends on the weapon grade.
+A good way to get the items I mentioned is by using the private store. There are many merchants who buy and sell items in the village, and you can get the items you want without having to pay fees and stuff. There's some legwork... but it can be fun too!
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html new file mode 100644 index 0000000000..5c100416ad --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html @@ -0,0 +1,6 @@ +Head Blacksmith Flutter:
+Now, assuming tha you have all the necessary items, let's talk about augmentation. There are only two things you need to know. First, augmentation options are just random. Sometimes, you need to release and repeat the augmentation to gain your desired option.
+Second, the augmented items cannot be exchanged or traded. In order to exchange the augmented item, you'll have to release the augmentation first.
+That should be everithig I need to explain. Let's get practicing now! + + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html new file mode 100644 index 0000000000..421c68bca5 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html @@ -0,0 +1,3 @@ +Head Blacksmith Flutter:
+Since this is your first time, I'll provide the materials. Here are an Augmentation Practice Weapon, an Augmentation Practice Spirit Stone(46), and an Augmentation Practice Gemstone(R-grade). Try augmenting as I taught you. If you succeed, you will get an augmented Augmentation Practice Weapon.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html new file mode 100644 index 0000000000..55e2989f0b --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+Congratulations. Feel free to toss this practice weapon, if you don't like the result. That's what practice is for. In the real world, if you don't like the final version, you can remove augmentation with some Adena. Keep that in mind.
+Anyway, you did a good job following my instructions.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html new file mode 100644 index 0000000000..47e7d7230a --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Oh yeah? Hahaha. Anyway, I'll give you the certificate as a Reward. If you don't practice what you've learned, you'll forget it. So try augmentin whenever you have time.
+I hope you will put your new augmenting skills to good use.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html new file mode 100644 index 0000000000..cffbef72aa --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html @@ -0,0 +1,3 @@ +Head Blacksmith Flutter:
+Was it hard? Try augmenting with an Augmentation Practice Weapon, an Augmentation Practice Spirit Stone(46), and an Augmentation Practice Gemstone (R-grade). Try augmenting as I taught you. If you succeed, you will get an augmented Augmentation Practice Weapon.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html new file mode 100644 index 0000000000..ba19dae114 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Hey, let nature take its course. It's not good for us to go against it.
+(Only characters who have the quest "Best Choice" in progress, can play this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java new file mode 100644 index 0000000000..4448d3dccc --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java @@ -0,0 +1,172 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q10577_TemperARustingBlade; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.Containers; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAugment; +import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId; + +import quests.Q10566_BestChoice.Q10566_BestChoice; + +/** + * Temper a Rusting Blade (10577) + * @URL https://l2wiki.com/Temper_a_Rusting_Blade + * @author NightBR + * @html by Werum + */ +public final class Q10577_TemperARustingBlade extends Quest +{ + // NPCs + private static final int FLUTTER = 30677; + // Item + private static final int AUGMENTATION_PRACTICE_STORMBRINGER = 36717; + private static final int AUGMENTATION_PRACTICE_SPIRIT_STONE = 36718; + private static final int AUGMENTATION_PRACTICE_GEMSTONE = 36719; + // Rewards + private static final long XP = 597699960; + private static final int SP = 597690; + private static final int CERTIFICATE_FROM_FLUTTER = 48175; + // Misc + private static final int MIN_LEVEL = 95; + + public Q10577_TemperARustingBlade() + { + super(10577); + addStartNpc(FLUTTER); + addTalkId(FLUTTER); + addCondMinLevel(MIN_LEVEL, "noLevel.html"); + registerQuestItems(AUGMENTATION_PRACTICE_STORMBRINGER, AUGMENTATION_PRACTICE_SPIRIT_STONE, AUGMENTATION_PRACTICE_GEMSTONE); + addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "30677-99.html"); + Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_AUGMENT, (OnPlayerAugment event) -> OnPlayerAugment(event), this)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + String htmltext = null; + switch (event) + { + case "30677-02.htm": + case "30677-05.html": + case "30677-07.html": + { + htmltext = event; + break; + } + case "30677-03.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "30677-04.html": + { + // show Service/Help/Private Store page + player.sendPacket(new ExTutorialShowId(57)); + htmltext = event; + break; + } + case "30677-06.html": + { + // show Service/Help/Augmentation page + player.sendPacket(new ExTutorialShowId(39)); + giveItems(player, AUGMENTATION_PRACTICE_STORMBRINGER, 1); + giveItems(player, AUGMENTATION_PRACTICE_SPIRIT_STONE, 1); + giveItems(player, AUGMENTATION_PRACTICE_GEMSTONE, 20); + qs.setCond(2, true); + htmltext = event; + break; + } + case "30677-08.html": + { + addExpAndSp(player, XP, SP); + giveItems(player, CERTIFICATE_FROM_FLUTTER, 1); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "30677-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30677-03.html"; + } + else if (qs.isCond(2)) + { + htmltext = "30677-09.html"; + } + else + { + htmltext = "30677-07.html"; + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + public void OnPlayerAugment(OnPlayerAugment event) + { + final PlayerInstance player = event.getPlayer(); + if ((player == null) || (event.getItem().getId() != AUGMENTATION_PRACTICE_STORMBRINGER)) + { + return; + } + + final QuestState qs = getQuestState(player, false); + // Check if weapon has been augmented to complete the quest + if ((qs != null) && qs.isCond(2) && (player.getInventory().getItemByItemId(AUGMENTATION_PRACTICE_STORMBRINGER).isAugmented())) + { + qs.setCond(3, true); + } + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html new file mode 100644 index 0000000000..4c003052ac --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.
+(Only characters with Lv. 95 or above may undertake this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm new file mode 100644 index 0000000000..5bf9f7ab87 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Hello. Are you here to learn about Soul Crystals?
+Well, you've come to the right place. And you are also ready to learn about them. Should we get started?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm new file mode 100644 index 0000000000..6f7168ceb5 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Let me offer a proposal. I'm confident that this will be very useful to you. I'll give you the items needed for experiencing Soul Crystals and I'll also teach you how. You just need to do as I tell you and try Soul Crystal. If you succeed in this, I'll give you a little reward.
+So, what do you think? Isn't it a nice opportunity?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm new file mode 100644 index 0000000000..40eb1b0508 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Good. Now, I'll give you information on Soul Crystals. Originally, Soul Crystals give a special ability to weapon by using the spirit of monster. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.
+But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html new file mode 100644 index 0000000000..05fdfd32b0 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Fortunately, there was a solution. Magisters, Maestros, and even scholars have helped find something that can replace the old Soul Crystals. The new Soul Crystals can be upgraded by combining them.
+Surprisingly, the Soul Crystals can be just simply upgraded via combination. And one more thing. The method of granting Soul Crystal effects through Blacksmiths is slightly different now. This is what I want to talk to you about.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html new file mode 100644 index 0000000000..46b02a843c --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html @@ -0,0 +1,6 @@ +Blacksmith Vincenz:
+First off, you can't use old Soul Crystals anymore. To bestow the new special abilities, you need the new Soul Crystals. You can get them by defeating bosses or raid monsters.
+When you get the Soul Crystals, then you can combine them to make an upgraded Soul Crystal. For combination, you need two Soul Crystals of the same type and the same stage. However, there is a chance of failure. If the combination fails, one of the two Soul Crystals will disappear.
+In any case, by doing this, you can get your desired Soul Crystal class and then give the ability to a weapon.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html new file mode 100644 index 0000000000..639a3676a8 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Well, it's better to just try it for yourself. Here's a Practice StormBringer and a Practice Soul Crystal-Stage 1. You'll need to have a Gemstone that is appropriate for the level of the Soul Crystal. Now, I'll give you a Practice Soul Crystal Gemstone, but next time, you'll have to obtain the Gemstone yourself.
+You can purchase Gemstones from the Traders at the Store in the Village. There are various Stores in the village and each trader sells different items. It'll be good to know about their items.
+If you want to try a Soul Crystal ability with other weapons, you can always try it out.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html new file mode 100644 index 0000000000..7bb3927845 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Oh, you succeeded? Got it now?
+It's easier than it sounds, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html new file mode 100644 index 0000000000..0e90736eac --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Good. Remenber what I've taught you next time you need to use Soul Crystals.
+Oh, right. You can bestow up to 3 special abilities to new Soul Crystals! Don't forget all the effort we've put into this!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html new file mode 100644 index 0000000000..476787a17c --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Now, I'll tell you about Soul Crystals. Originally, Soul Crystals give a special ability to weapon by using the spirit of monster. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.
+But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html new file mode 100644 index 0000000000..48e038ab54 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Hm? It looks like you didn't succeed yet. Do you need anything?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html new file mode 100644 index 0000000000..77ba81a9a5 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Alright. you can use a Soul Crystal to bestow a special ability onto weapons. There have been some changes to the Soul Crystals, and now you can upgrade them by combining them. That's why we have new Soul Crystals now.
+The Soul Crystals from before cannot be used anymore. You can get the new Soul Crystals by defeating boss monsters, so remember that.
+If you need more information, check the instructions.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html new file mode 100644 index 0000000000..a3654a979b --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html @@ -0,0 +1,3 @@ +Blacksmith Vincenz:
+I've already given you all the necessary items, I can't give you anymore.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html new file mode 100644 index 0000000000..2dbc6ddcba --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Hey, let nature take its course. It's not good for us to go against it.
+(Only characters who have the quest "Best Choice" in progress, can play this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java new file mode 100644 index 0000000000..4ce4133892 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java @@ -0,0 +1,183 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q10578_TheSoulOfASword; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.Containers; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; +import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId; + +import quests.Q10566_BestChoice.Q10566_BestChoice; + +/** + * The Soul of a Sword (10578) + * @URL https://l2wiki.com/The_Soul_of_a_Sword + * @author NightBR + * @html by Werum + */ +public final class Q10578_TheSoulOfASword extends Quest +{ + // NPCs + private static final int VINCENZ = 31316; + // Items + private static final int PRACTICE_STORMBRINGER = 46629; + private static final int PRACTICE_SOUL_CRYSTAL_STAGE1 = 46526; + private static final int SOUL_CRYSTAL_PRACTICE_GEMSTONE = 36722; + // Rewards + private static final long XP = 597699960; + private static final int SP = 597690; + private static final int CERTIFICATE_FROM_VINCENZ = 48176; + // Misc + private static final int MIN_LEVEL = 95; + + public Q10578_TheSoulOfASword() + { + super(10578); + addStartNpc(VINCENZ); + addTalkId(VINCENZ); + addCondMinLevel(MIN_LEVEL, "noLevel.html"); + registerQuestItems(PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE); + addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "31316-99.html"); + Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_ITEM_SOUL_CRYSTAL_ADD, (OnItemSoulCrystalAdd event) -> OnItemSoulCrystalAdd(event), this)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + String htmltext = null; + switch (event) + { + case "31316-02.htm": + case "31316-04.html": + case "31316-07.html": + case "31316-11.html": + { + htmltext = event; + break; + } + case "31316-03.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31316-05.html": + { + // show Service/Help/Soul Crystal Enhancement page + player.sendPacket(new ExTutorialShowId(40)); + htmltext = event; + break; + } + case "31316-06.html": + { + // show Service/Help/Buy Item page + player.sendPacket(new ExTutorialShowId(36)); + // TODO: check if player already have quest items + if (hasQuestItems(player, PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE)) + { + htmltext = "31316-12.html"; + } + else + { + // To make sure player does not have them already + removeRegisteredQuestItems(player); + giveItems(player, PRACTICE_STORMBRINGER, 1); + giveItems(player, PRACTICE_SOUL_CRYSTAL_STAGE1, 1); + giveItems(player, SOUL_CRYSTAL_PRACTICE_GEMSTONE, 10); + qs.setCond(2, true); + htmltext = event; + } + break; + } + case "31316-08.html": + { + addExpAndSp(player, XP, SP); + giveItems(player, CERTIFICATE_FROM_VINCENZ, 1); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31316-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31316-09.html"; + } + else if (qs.isCond(2)) + { + htmltext = "31316-10.html"; + } + else + { + htmltext = "31316-07.html"; + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + public void OnItemSoulCrystalAdd(OnItemSoulCrystalAdd event) + { + final PlayerInstance player = event.getPlayer(); + if ((player == null) || (event.getItem().getId() != PRACTICE_STORMBRINGER)) + { + return; + } + + final QuestState qs = getQuestState(player, false); + // Check if weapon has been augmented to complete the quest + if ((qs != null) && qs.isCond(2) && (!player.getInventory().getItemByItemId(PRACTICE_STORMBRINGER).getSpecialAbilities().isEmpty())) + { + qs.setCond(3, true); + } + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html new file mode 100644 index 0000000000..d46b70479c --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.
+(Only characters with Lv. 95 or above may undertake this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java index c7760a7478..c30181a248 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -310,6 +310,8 @@ import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine; import quests.Q10562_TakeUpArms.Q10562_TakeUpArms; import quests.Q10566_BestChoice.Q10566_BestChoice; import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing; +import quests.Q10577_TemperARustingBlade.Q10577_TemperARustingBlade; +import quests.Q10578_TheSoulOfASword.Q10578_TheSoulOfASword; import quests.Q10579_ContainingTheAttributePower.Q10579_ContainingTheAttributePower; import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension; import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction; @@ -826,8 +828,8 @@ public class QuestMasterHandler Q10574_SpecialMissionFortuna.class, // TODO: Not done. Q10575_LetsGoFishing.class, Q10576_GlitteringWeapons.class, // TODO: Not done. - Q10577_TemperARustingBlade.class, // TODO: Not done. - Q10578_TheSoulOfASword.class, // TODO: Not done. + Q10577_TemperARustingBlade.class, + Q10578_TheSoulOfASword.class, Q10579_ContainingTheAttributePower.class, Q10580_SpecialMissionDefeatSpezion.class, // TODO: Not done. Q10594_FergasonsScheme.class, // TODO: Not done. diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java deleted file mode 100644 index fece4e3539..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package quests.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10577_TemperARustingBlade extends Quest -{ - private static final int START_NPC = 30677; - - public Q10577_TemperARustingBlade() - { - super(10577); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java deleted file mode 100644 index 2c5c2be1d0..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package quests.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10578_TheSoulOfASword extends Quest -{ - private static final int START_NPC = 31316; - - public Q10578_TheSoulOfASword() - { - super(10578); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/augmentation/Variations.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/augmentation/Variations.xml index 96dcbe0afe..e6c8b9d602 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/augmentation/Variations.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/augmentation/Variations.xml @@ -8073,6 +8073,7 @@
+ @@ -8660,6 +8661,7 @@ + @@ -8953,6 +8955,7 @@ + @@ -10417,6 +10420,7 @@ + @@ -14329,6 +14333,7 @@ + diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/36700-36799.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/36700-36799.xml index 8b8f51e169..90d082c9dd 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/36700-36799.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/36700-36799.xml @@ -291,7 +291,7 @@ - + diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/46600-46699.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/46600-46699.xml index df84d280a8..9a0e044255 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/46600-46699.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/46600-46699.xml @@ -334,18 +334,16 @@ - + - - - - - - - - - + + + + + + + 107.0 68.0 diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/EventType.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/EventType.java index b87a8f7bfb..cc88e4a987 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/EventType.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/EventType.java @@ -123,6 +123,7 @@ import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceStatusChang import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent; import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk; import org.l2jmobius.gameserver.model.events.impl.olympiad.OnOlympiadMatchResult; import org.l2jmobius.gameserver.model.events.impl.server.OnPacketReceived; @@ -183,6 +184,7 @@ public enum EventType ON_ITEM_CREATE(OnItemCreate.class, void.class), ON_ITEM_TALK(OnItemTalk.class, void.class), ON_ITEM_ATTRIBUTE_ADD(OnItemAttributeAdd.class, void.class), + ON_ITEM_SOUL_CRYSTAL_ADD(OnItemSoulCrystalAdd.class, void.class), // NPC events ON_NPC_CAN_BE_SEEN(OnNpcCanBeSeen.class, void.class, TerminateReturn.class), diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java new file mode 100644 index 0000000000..6061ec1171 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java @@ -0,0 +1,53 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.model.events.impl.item; + +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.IBaseEvent; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; + +/** + * @author NightBR + */ +public class OnItemSoulCrystalAdd implements IBaseEvent +{ + private final PlayerInstance _player; + private final ItemInstance _item; + + public OnItemSoulCrystalAdd(PlayerInstance player, ItemInstance item) + { + _player = player; + _item = item; + } + + public PlayerInstance getPlayer() + { + return _player; + } + + public ItemInstance getItem() + { + return _item; + } + + @Override + public EventType getType() + { + return EventType.ON_ITEM_SOUL_CRYSTAL_ADD; + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index a5e2ab5ade..58c4d4b894 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -69,6 +69,7 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDr import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemPickup; import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk; import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.items.Armor; @@ -2207,6 +2208,9 @@ public final class ItemInstance extends WorldObject { updateSpecialAbilities(); } + + // Notify to Scripts + EventDispatcher.getInstance().notifyEventAsync(new OnItemSoulCrystalAdd(getActingPlayer(), this)); } public void removeSpecialAbility(int position, int type) diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt index 36c41720d9..ef619b7ba1 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt @@ -202,8 +202,6 @@ 10571 Strategic Reconciliation 10572 To Expel the Embryo's Forces 10576 Glittering Weapons -10577 Temper a Rusting Blade -10578 The Soul of a Sword 10580 Special Mission: Defeat Spezion 10588 Special Mission: Defeat Baylor 10594 Fergason's Scheme diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm new file mode 100644 index 0000000000..86894edd1d --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-01.htm @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Do you know what augmenting is? Your weapon sure doesen't look it.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm new file mode 100644 index 0000000000..ef1041aca6 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-02.htm @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+See? I was right! Only when your weapons are reliable, can you be confident about your skills.
+Now, pay attention. I will teach you to maximize the hidden potential.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm new file mode 100644 index 0000000000..7b0f62b55d --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-03.htm @@ -0,0 +1,6 @@ +Head Blacksmith Flutter:
+First, you must understand augmenting. It provides items with additional options, separately from enchanting, soul crystal enhancement or attributes that you will learn later.
+For augmenting, you have to get all the required material and ask any village's blacksmith to make an item. Keep in mind that you can have accessories and hair accessories augmented but not armor.
+So far so good, huh? + + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html new file mode 100644 index 0000000000..2d5821a82e --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-04.html @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+I told you about the items needed, right? Well, of course you need items for augmenting too. First, you need equipment you want to augment. It can be a weapon, accessory, or a hair accessory. You also need Spirit Stones. And you need Gemstones to pay the fee for augmenting, and the amount depends on the weapon grade.
+A good way to get the items I mentioned is by using the private store. There are many merchants who buy and sell items in the village, and you can get the items you want without having to pay fees and stuff. There's some legwork... but it can be fun too!
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html new file mode 100644 index 0000000000..5c100416ad --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-05.html @@ -0,0 +1,6 @@ +Head Blacksmith Flutter:
+Now, assuming tha you have all the necessary items, let's talk about augmentation. There are only two things you need to know. First, augmentation options are just random. Sometimes, you need to release and repeat the augmentation to gain your desired option.
+Second, the augmented items cannot be exchanged or traded. In order to exchange the augmented item, you'll have to release the augmentation first.
+That should be everithig I need to explain. Let's get practicing now! + + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html new file mode 100644 index 0000000000..421c68bca5 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-06.html @@ -0,0 +1,3 @@ +Head Blacksmith Flutter:
+Since this is your first time, I'll provide the materials. Here are an Augmentation Practice Weapon, an Augmentation Practice Spirit Stone(46), and an Augmentation Practice Gemstone(R-grade). Try augmenting as I taught you. If you succeed, you will get an augmented Augmentation Practice Weapon.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html new file mode 100644 index 0000000000..55e2989f0b --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-07.html @@ -0,0 +1,5 @@ +Head Blacksmith Flutter:
+Congratulations. Feel free to toss this practice weapon, if you don't like the result. That's what practice is for. In the real world, if you don't like the final version, you can remove augmentation with some Adena. Keep that in mind.
+Anyway, you did a good job following my instructions.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html new file mode 100644 index 0000000000..47e7d7230a --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-08.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Oh yeah? Hahaha. Anyway, I'll give you the certificate as a Reward. If you don't practice what you've learned, you'll forget it. So try augmentin whenever you have time.
+I hope you will put your new augmenting skills to good use.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html new file mode 100644 index 0000000000..cffbef72aa --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-09.html @@ -0,0 +1,3 @@ +Head Blacksmith Flutter:
+Was it hard? Try augmenting with an Augmentation Practice Weapon, an Augmentation Practice Spirit Stone(46), and an Augmentation Practice Gemstone (R-grade). Try augmenting as I taught you. If you succeed, you will get an augmented Augmentation Practice Weapon.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html new file mode 100644 index 0000000000..ba19dae114 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/30677-99.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Hey, let nature take its course. It's not good for us to go against it.
+(Only characters who have the quest "Best Choice" in progress, can play this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java new file mode 100644 index 0000000000..4448d3dccc --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/Q10577_TemperARustingBlade.java @@ -0,0 +1,172 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q10577_TemperARustingBlade; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.Containers; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAugment; +import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId; + +import quests.Q10566_BestChoice.Q10566_BestChoice; + +/** + * Temper a Rusting Blade (10577) + * @URL https://l2wiki.com/Temper_a_Rusting_Blade + * @author NightBR + * @html by Werum + */ +public final class Q10577_TemperARustingBlade extends Quest +{ + // NPCs + private static final int FLUTTER = 30677; + // Item + private static final int AUGMENTATION_PRACTICE_STORMBRINGER = 36717; + private static final int AUGMENTATION_PRACTICE_SPIRIT_STONE = 36718; + private static final int AUGMENTATION_PRACTICE_GEMSTONE = 36719; + // Rewards + private static final long XP = 597699960; + private static final int SP = 597690; + private static final int CERTIFICATE_FROM_FLUTTER = 48175; + // Misc + private static final int MIN_LEVEL = 95; + + public Q10577_TemperARustingBlade() + { + super(10577); + addStartNpc(FLUTTER); + addTalkId(FLUTTER); + addCondMinLevel(MIN_LEVEL, "noLevel.html"); + registerQuestItems(AUGMENTATION_PRACTICE_STORMBRINGER, AUGMENTATION_PRACTICE_SPIRIT_STONE, AUGMENTATION_PRACTICE_GEMSTONE); + addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "30677-99.html"); + Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_AUGMENT, (OnPlayerAugment event) -> OnPlayerAugment(event), this)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + String htmltext = null; + switch (event) + { + case "30677-02.htm": + case "30677-05.html": + case "30677-07.html": + { + htmltext = event; + break; + } + case "30677-03.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "30677-04.html": + { + // show Service/Help/Private Store page + player.sendPacket(new ExTutorialShowId(57)); + htmltext = event; + break; + } + case "30677-06.html": + { + // show Service/Help/Augmentation page + player.sendPacket(new ExTutorialShowId(39)); + giveItems(player, AUGMENTATION_PRACTICE_STORMBRINGER, 1); + giveItems(player, AUGMENTATION_PRACTICE_SPIRIT_STONE, 1); + giveItems(player, AUGMENTATION_PRACTICE_GEMSTONE, 20); + qs.setCond(2, true); + htmltext = event; + break; + } + case "30677-08.html": + { + addExpAndSp(player, XP, SP); + giveItems(player, CERTIFICATE_FROM_FLUTTER, 1); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "30677-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30677-03.html"; + } + else if (qs.isCond(2)) + { + htmltext = "30677-09.html"; + } + else + { + htmltext = "30677-07.html"; + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + public void OnPlayerAugment(OnPlayerAugment event) + { + final PlayerInstance player = event.getPlayer(); + if ((player == null) || (event.getItem().getId() != AUGMENTATION_PRACTICE_STORMBRINGER)) + { + return; + } + + final QuestState qs = getQuestState(player, false); + // Check if weapon has been augmented to complete the quest + if ((qs != null) && qs.isCond(2) && (player.getInventory().getItemByItemId(AUGMENTATION_PRACTICE_STORMBRINGER).isAugmented())) + { + qs.setCond(3, true); + } + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html new file mode 100644 index 0000000000..4c003052ac --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10577_TemperARustingBlade/noLevel.html @@ -0,0 +1,4 @@ +Head Blacksmith Flutter:
+Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.
+(Only characters with Lv. 95 or above may undertake this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm new file mode 100644 index 0000000000..5bf9f7ab87 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Hello. Are you here to learn about Soul Crystals?
+Well, you've come to the right place. And you are also ready to learn about them. Should we get started?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm new file mode 100644 index 0000000000..6f7168ceb5 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Let me offer a proposal. I'm confident that this will be very useful to you. I'll give you the items needed for experiencing Soul Crystals and I'll also teach you how. You just need to do as I tell you and try Soul Crystal. If you succeed in this, I'll give you a little reward.
+So, what do you think? Isn't it a nice opportunity?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm new file mode 100644 index 0000000000..40eb1b0508 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Good. Now, I'll give you information on Soul Crystals. Originally, Soul Crystals give a special ability to weapon by using the spirit of monster. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.
+But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html new file mode 100644 index 0000000000..05fdfd32b0 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Fortunately, there was a solution. Magisters, Maestros, and even scholars have helped find something that can replace the old Soul Crystals. The new Soul Crystals can be upgraded by combining them.
+Surprisingly, the Soul Crystals can be just simply upgraded via combination. And one more thing. The method of granting Soul Crystal effects through Blacksmiths is slightly different now. This is what I want to talk to you about.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html new file mode 100644 index 0000000000..46b02a843c --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html @@ -0,0 +1,6 @@ +Blacksmith Vincenz:
+First off, you can't use old Soul Crystals anymore. To bestow the new special abilities, you need the new Soul Crystals. You can get them by defeating bosses or raid monsters.
+When you get the Soul Crystals, then you can combine them to make an upgraded Soul Crystal. For combination, you need two Soul Crystals of the same type and the same stage. However, there is a chance of failure. If the combination fails, one of the two Soul Crystals will disappear.
+In any case, by doing this, you can get your desired Soul Crystal class and then give the ability to a weapon.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html new file mode 100644 index 0000000000..639a3676a8 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Well, it's better to just try it for yourself. Here's a Practice StormBringer and a Practice Soul Crystal-Stage 1. You'll need to have a Gemstone that is appropriate for the level of the Soul Crystal. Now, I'll give you a Practice Soul Crystal Gemstone, but next time, you'll have to obtain the Gemstone yourself.
+You can purchase Gemstones from the Traders at the Store in the Village. There are various Stores in the village and each trader sells different items. It'll be good to know about their items.
+If you want to try a Soul Crystal ability with other weapons, you can always try it out.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html new file mode 100644 index 0000000000..7bb3927845 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Oh, you succeeded? Got it now?
+It's easier than it sounds, right?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html new file mode 100644 index 0000000000..0e90736eac --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Good. Remenber what I've taught you next time you need to use Soul Crystals.
+Oh, right. You can bestow up to 3 special abilities to new Soul Crystals! Don't forget all the effort we've put into this!
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html new file mode 100644 index 0000000000..476787a17c --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Now, I'll tell you about Soul Crystals. Originally, Soul Crystals give a special ability to weapon by using the spirit of monster. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.
+But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html new file mode 100644 index 0000000000..48e038ab54 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Hm? It looks like you didn't succeed yet. Do you need anything?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html new file mode 100644 index 0000000000..77ba81a9a5 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html @@ -0,0 +1,5 @@ +Blacksmith Vincenz:
+Alright. you can use a Soul Crystal to bestow a special ability onto weapons. There have been some changes to the Soul Crystals, and now you can upgrade them by combining them. That's why we have new Soul Crystals now.
+The Soul Crystals from before cannot be used anymore. You can get the new Soul Crystals by defeating boss monsters, so remember that.
+If you need more information, check the instructions.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html new file mode 100644 index 0000000000..a3654a979b --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html @@ -0,0 +1,3 @@ +Blacksmith Vincenz:
+I've already given you all the necessary items, I can't give you anymore.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html new file mode 100644 index 0000000000..2dbc6ddcba --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Hey, let nature take its course. It's not good for us to go against it.
+(Only characters who have the quest "Best Choice" in progress, can play this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java new file mode 100644 index 0000000000..4ce4133892 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/Q10578_TheSoulOfASword.java @@ -0,0 +1,183 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q10578_TheSoulOfASword; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.Containers; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; +import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId; + +import quests.Q10566_BestChoice.Q10566_BestChoice; + +/** + * The Soul of a Sword (10578) + * @URL https://l2wiki.com/The_Soul_of_a_Sword + * @author NightBR + * @html by Werum + */ +public final class Q10578_TheSoulOfASword extends Quest +{ + // NPCs + private static final int VINCENZ = 31316; + // Items + private static final int PRACTICE_STORMBRINGER = 46629; + private static final int PRACTICE_SOUL_CRYSTAL_STAGE1 = 46526; + private static final int SOUL_CRYSTAL_PRACTICE_GEMSTONE = 36722; + // Rewards + private static final long XP = 597699960; + private static final int SP = 597690; + private static final int CERTIFICATE_FROM_VINCENZ = 48176; + // Misc + private static final int MIN_LEVEL = 95; + + public Q10578_TheSoulOfASword() + { + super(10578); + addStartNpc(VINCENZ); + addTalkId(VINCENZ); + addCondMinLevel(MIN_LEVEL, "noLevel.html"); + registerQuestItems(PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE); + addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "31316-99.html"); + Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_ITEM_SOUL_CRYSTAL_ADD, (OnItemSoulCrystalAdd event) -> OnItemSoulCrystalAdd(event), this)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + String htmltext = null; + switch (event) + { + case "31316-02.htm": + case "31316-04.html": + case "31316-07.html": + case "31316-11.html": + { + htmltext = event; + break; + } + case "31316-03.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31316-05.html": + { + // show Service/Help/Soul Crystal Enhancement page + player.sendPacket(new ExTutorialShowId(40)); + htmltext = event; + break; + } + case "31316-06.html": + { + // show Service/Help/Buy Item page + player.sendPacket(new ExTutorialShowId(36)); + // TODO: check if player already have quest items + if (hasQuestItems(player, PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE)) + { + htmltext = "31316-12.html"; + } + else + { + // To make sure player does not have them already + removeRegisteredQuestItems(player); + giveItems(player, PRACTICE_STORMBRINGER, 1); + giveItems(player, PRACTICE_SOUL_CRYSTAL_STAGE1, 1); + giveItems(player, SOUL_CRYSTAL_PRACTICE_GEMSTONE, 10); + qs.setCond(2, true); + htmltext = event; + } + break; + } + case "31316-08.html": + { + addExpAndSp(player, XP, SP); + giveItems(player, CERTIFICATE_FROM_VINCENZ, 1); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31316-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31316-09.html"; + } + else if (qs.isCond(2)) + { + htmltext = "31316-10.html"; + } + else + { + htmltext = "31316-07.html"; + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + public void OnItemSoulCrystalAdd(OnItemSoulCrystalAdd event) + { + final PlayerInstance player = event.getPlayer(); + if ((player == null) || (event.getItem().getId() != PRACTICE_STORMBRINGER)) + { + return; + } + + final QuestState qs = getQuestState(player, false); + // Check if weapon has been augmented to complete the quest + if ((qs != null) && qs.isCond(2) && (!player.getInventory().getItemByItemId(PRACTICE_STORMBRINGER).getSpecialAbilities().isEmpty())) + { + qs.setCond(3, true); + } + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html new file mode 100644 index 0000000000..d46b70479c --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html @@ -0,0 +1,4 @@ +Blacksmith Vincenz:
+Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.
+(Only characters with Lv. 95 or above may undertake this quest.) + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java index f6846eb82c..b66c041d70 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -308,6 +308,8 @@ import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine; import quests.Q10562_TakeUpArms.Q10562_TakeUpArms; import quests.Q10566_BestChoice.Q10566_BestChoice; import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing; +import quests.Q10577_TemperARustingBlade.Q10577_TemperARustingBlade; +import quests.Q10578_TheSoulOfASword.Q10578_TheSoulOfASword; import quests.Q10579_ContainingTheAttributePower.Q10579_ContainingTheAttributePower; import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension; import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction; @@ -845,8 +847,8 @@ public class QuestMasterHandler Q10572_ToExpelTheEmbryosForces.class, // TODO: Not done. Q10575_LetsGoFishing.class, Q10576_GlitteringWeapons.class, // TODO: Not done. - Q10577_TemperARustingBlade.class, // TODO: Not done. - Q10578_TheSoulOfASword.class, // TODO: Not done. + Q10577_TemperARustingBlade.class, + Q10578_TheSoulOfASword.class, Q10579_ContainingTheAttributePower.class, Q10580_SpecialMissionDefeatSpezion.class, // TODO: Not done. Q10588_SpecialMissionDefeatBaylor.class, // TODO: Not done. diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java deleted file mode 100644 index fece4e3539..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10577_TemperARustingBlade.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package quests.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10577_TemperARustingBlade extends Quest -{ - private static final int START_NPC = 30677; - - public Q10577_TemperARustingBlade() - { - super(10577); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java deleted file mode 100644 index 2c5c2be1d0..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10578_TheSoulOfASword.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package quests.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10578_TheSoulOfASword extends Quest -{ - private static final int START_NPC = 31316; - - public Q10578_TheSoulOfASword() - { - super(10578); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/augmentation/Variations.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/augmentation/Variations.xml index e3830381d3..d49a1bd3d0 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/augmentation/Variations.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/augmentation/Variations.xml @@ -8073,6 +8073,7 @@
+ @@ -8660,6 +8661,7 @@ + @@ -8953,6 +8955,7 @@ + @@ -10417,6 +10420,7 @@ + @@ -14329,6 +14333,7 @@ + diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/36700-36799.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/36700-36799.xml index 58d74041d5..4ad42d4c47 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/36700-36799.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/36700-36799.xml @@ -291,7 +291,7 @@ - + diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/46600-46699.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/46600-46699.xml index 3c6530f203..fbffa3e77b 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/46600-46699.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/46600-46699.xml @@ -334,18 +334,16 @@ - + - - - - - - - - - + + + + + + + 107.0 68.0 diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/EventType.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/EventType.java index b87a8f7bfb..cc88e4a987 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/EventType.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/EventType.java @@ -123,6 +123,7 @@ import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceStatusChang import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent; import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk; import org.l2jmobius.gameserver.model.events.impl.olympiad.OnOlympiadMatchResult; import org.l2jmobius.gameserver.model.events.impl.server.OnPacketReceived; @@ -183,6 +184,7 @@ public enum EventType ON_ITEM_CREATE(OnItemCreate.class, void.class), ON_ITEM_TALK(OnItemTalk.class, void.class), ON_ITEM_ATTRIBUTE_ADD(OnItemAttributeAdd.class, void.class), + ON_ITEM_SOUL_CRYSTAL_ADD(OnItemSoulCrystalAdd.class, void.class), // NPC events ON_NPC_CAN_BE_SEEN(OnNpcCanBeSeen.class, void.class, TerminateReturn.class), diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java new file mode 100644 index 0000000000..6061ec1171 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/impl/item/OnItemSoulCrystalAdd.java @@ -0,0 +1,53 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.model.events.impl.item; + +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.impl.IBaseEvent; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; + +/** + * @author NightBR + */ +public class OnItemSoulCrystalAdd implements IBaseEvent +{ + private final PlayerInstance _player; + private final ItemInstance _item; + + public OnItemSoulCrystalAdd(PlayerInstance player, ItemInstance item) + { + _player = player; + _item = item; + } + + public PlayerInstance getPlayer() + { + return _player; + } + + public ItemInstance getItem() + { + return _item; + } + + @Override + public EventType getType() + { + return EventType.ON_ITEM_SOUL_CRYSTAL_ADD; + } +} diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java index a5e2ab5ade..58c4d4b894 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/instance/ItemInstance.java @@ -69,6 +69,7 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDr import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemPickup; import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent; +import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd; import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk; import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.items.Armor; @@ -2207,6 +2208,9 @@ public final class ItemInstance extends WorldObject { updateSpecialAbilities(); } + + // Notify to Scripts + EventDispatcher.getInstance().notifyEventAsync(new OnItemSoulCrystalAdd(getActingPlayer(), this)); } public void removeSpecialAbility(int position, int type)